Firmware
0.9.0
Toggle main menu visibility
Loading...
Searching...
No Matches
log.h
Go to the documentation of this file.
1
// Copyright (C) 2025 Vincent Hamp
2
//
3
// This program is free software: you can redistribute it and/or modify
4
// it under the terms of the GNU General Public License as published by
5
// the Free Software Foundation, either version 3 of the License, or
6
// (at your option) any later version.
7
//
8
// This program is distributed in the hope that it will be useful,
9
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
// GNU General Public License for more details.
12
//
13
// You should have received a copy of the GNU General Public License
14
// along with this program. If not, see <https://www.gnu.org/licenses/>.
15
21
22
#pragma once
23
24
#include <esp_log.h>
25
#include <boost/preprocessor.hpp>
26
27
#define PREFIX_LOG(LOG_MACRO, ...) \
28
do { \
29
ESP_##LOG_MACRO(__FILE__ ":" BOOST_PP_STRINGIZE(__LINE__), __VA_ARGS__); \
30
} while (0)
31
32
#define LOG_BUFFER_HEX_LEVEL(...) PREFIX_LOG(LOG_BUFFER_HEX_LEVEL, __VA_ARGS__)
33
#define LOG_BUFFER_CHAR_LEVEL(...) \
34
PREFIX_LOG(LOG_BUFFER_CHAR_LEVEL, __VA_ARGS__)
35
#define LOG_BUFFER_HEXDUMP(...) PREFIX_LOG(LOG_BUFFER_HEXDUMP, __VA_ARGS__)
36
#define LOG_BUFFER_HEX(...) PREFIX_LOG(LOG_BUFFER_HEX, __VA_ARGS__)
37
#define LOG_BUFFER_CHAR(...) PREFIX_LOG(LOG_BUFFER_CHAR, __VA_ARGS__)
38
#define EARLY_LOGE(...) PREFIX_LOG(EARLY_LOGE, __VA_ARGS__)
39
#define EARLY_LOGW(...) PREFIX_LOG(EARLY_LOGW, __VA_ARGS__)
40
#define EARLY_LOGI(...) PREFIX_LOG(EARLY_LOGI, __VA_ARGS__)
41
#define EARLY_LOGD(...) PREFIX_LOG(EARLY_LOGD, __VA_ARGS__)
42
#define EARLY_LOGV(...) PREFIX_LOG(EARLY_LOGV, __VA_ARGS__)
43
#define LOGE(...) PREFIX_LOG(LOGE, __VA_ARGS__)
44
#define LOGW(...) PREFIX_LOG(LOGW, __VA_ARGS__)
45
#define LOGI(...) PREFIX_LOG(LOGI, __VA_ARGS__)
46
#define LOGD(...) PREFIX_LOG(LOGD, __VA_ARGS__)
47
#define LOGV(...) PREFIX_LOG(LOGV, __VA_ARGS__)
48
#define DRAM_LOGE(...) PREFIX_LOG(DRAM_LOGE, __VA_ARGS__)
49
#define DRAM_LOGW(...) PREFIX_LOG(DRAM_LOGW, __VA_ARGS__)
50
#define DRAM_LOGI(...) PREFIX_LOG(DRAM_LOGI, __VA_ARGS__)
51
#define DRAM_LOGD(...) PREFIX_LOG(DRAM_LOGD, __VA_ARGS__)
52
#define DRAM_LOGV(...) PREFIX_LOG(DRAM_LOGV, __VA_ARGS__)
53
55
#define LOGI_TASK_CREATE(TASK) \
56
do { \
57
LOGI("Create %s task", TASK.name); \
58
TASK.create(); \
59
} while (0)
60
63
#define BOOST_PP_LOGI_TASK_CREATE(R, DATA, ELEM) LOGI_TASK_CREATE(ELEM);
64
66
#define LOGI_TASKS_CREATE(...) \
67
BOOST_PP_SEQ_FOR_EACH( \
68
BOOST_PP_LOGI_TASK_CREATE, _, BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))
69
71
#define LOGI_TASK_DESTROY_0() \
72
do { \
73
LOGI("Destroy %s task", pcTaskGetName(NULL)); \
74
vTaskDelete(NULL); \
75
std::unreachable(); \
76
} while (0)
77
79
#define LOGI_TASK_DESTROY_1(TASK) \
80
do { \
81
LOGI("Destroy %s task", TASK.name); \
82
TASK.destroy(); \
83
} while (0)
84
86
#define LOGI_TASK_DESTROY(...) \
87
BOOST_PP_OVERLOAD(LOGI_TASK_DESTROY_, __VA_ARGS__)(__VA_ARGS__)
88
90
#define LOGI_TASK_RESUME(TASK) \
91
do { \
92
LOGI("Resume %s task", TASK.name); \
93
TASK.resume(); \
94
} while (0)
95
97
#define LOGI_TASK_SUSPEND_0() \
98
do { \
99
LOGI("Suspend %s task", pcTaskGetName(NULL)); \
100
vTaskSuspend(NULL); \
101
} while (0)
102
104
#define LOGI_TASK_SUSPEND_1(TASK) \
105
do { \
106
LOGI("Suspend %s task", TASK.name); \
107
TASK.suspend(); \
108
} while (0)
109
111
#define LOGI_TASK_SUSPEND(...) \
112
BOOST_PP_OVERLOAD(LOGI_TASK_SUSPEND_, __VA_ARGS__)(__VA_ARGS__)
src
log.h
Firmware 0.9.0