Multi Half-Bridge 4.0.0
Library of Infineon's Multi Half-Bridge IC controllers family
 
Loading...
Searching...
No Matches
tle94112-logger.hpp
Go to the documentation of this file.
1
9#ifndef TLE94112_LOGGER_HPP_
10#define TLE94112_LOGGER_HPP_
11
12#include "tle94112-conf.hpp"
13
14#if (TLE94112_LOGGER_ENABLED == 1)
15
16#include <stdint.h>
17#include "logger.hpp"
18
19namespace tle94112
20{
21
22class Logger
23{
24 public:
25
26 Logger ();
27 Logger (LoggerPAL *logpal);
28 ~Logger ();
29 void init ();
30 void deinit ();
31 void print (const char * format,
32 ...);
33 void printfModule (const char * format,
34 const char * module,
35 const char * color,
36 ...);
37 void printModuleHex (const uint8_t * array,
38 uint32_t length,
39 const char * module,
40 const char * color);
41
42 private:
43 LoggerPAL * logpal;
44};
45
49extern Logger tle_log;
50
54#define TLE94112_LOGGER_COLOR_RED "\x1b[31m"
55#define TLE94112_LOGGER_COLOR_GREEN "\x1b[32m"
56#define TLE94112_LOGGER_COLOR_YELLOW "\x1b[33m"
57#define TLE94112_LOGGER_COLOR_BLUE "\x1b[34m"
58#define TLE94112_LOGGER_COLOR_MAGENTA "\x1b[35m"
59#define TLE94112_LOGGER_COLOR_CYAN "\x1b[36m"
60#define TLE94112_LOGGER_COLOR_LIGHT_GREY "\x1b[90m"
61#define TLE94112_LOGGER_COLOR_LIGHT_RED "\x1b[91m"
62#define TLE94112_LOGGER_COLOR_LIGHT_GREEN "\x1b[92m"
63#define TLE94112_LOGGER_COLOR_LIGHT_YELLOW "\x1b[93m"
64#define TLE94112_LOGGER_COLOR_LIGHT_BLUE "\x1b[94m"
65#define TLE94112_LOGGER_COLOR_LIGHT_MAGENTA "\x1b[95m"
66#define TLE94112_LOGGER_COLOR_LIGHT_CYAN "\x1b[96m"
67#define TLE94112_LOGGER_COLOR_DEFAULT "\x1b[0m"
68
76#define TLE94112_LOGGER_ERROR_COLOR TLE94112_LOGGER_COLOR_RED
77#define TLE94112_LOGGER_WARNING_COLOR TLE94112_LOGGER_COLOR_YELLOW
78
79
80#define TLE94112_LOG_INIT()\
81{\
82 tle_log.init();\
83}
84
85#define TLE94112_LOG_DEINIT()\
86{\
87 tle_log.deinit();\
88}
89
93#if (TLE94112_CORE_LOGGER_ENABLED == 1)
94
95#define TLE94112_LOGGER_SERVICE "[tle94112] : "
96#define TLE94112_LOGGER_COLOR TLE94112_LOGGER_COLOR_GREEN
97
98#define TLE94112_LOG_MSG(str)\
99{\
100 tle_log.printfModule(str, TLE94112_LOGGER_SERVICE, TLE94112_LOGGER_COLOR);\
101}
102
103#define TLE94112_LOG_RETURN(ret)\
104{\
105 if( 0 > ret)\
106 {\
107 tle_log.printfModule("fail with return code %i", TLE94112_LOGGER_SERVICE, TLE94112_LOGGER_ERROR_COLOR, ret);\
108 }\
109 else\
110 {\
111 tle_log.printfModule("pass", TLE94112_LOGGER_SERVICE, TLE94112_LOGGER_COLOR);\
112 }\
113}
114
115#else
116
117#define TLE94112_LOG_MSG(str) { }
118#define TLE94112_LOG_RETURN(ret) { }
119
120#endif /* TLE94112_CORE_LOGGER_ENABLED */
121
125#if (TLE94112_MOTOR_LOGGER_ENABLED == 1)
126
127#define TLE94112_MOTOR_LOGGER_SERVICE "[tle94112 motor] : "
128#define TLE94112_MOTOR_LOGGER_COLOR TLE94112_LOGGER_COLOR_BLUE
129
130#define TLE94112_MOTOR_LOG_MSG(str)\
131{\
132 tle_log.printfModule(str, TLE94112_MOTOR_LOGGER_SERVICE, TLE94112_MOTOR_LOGGER_COLOR);\
133}
134
135#define TLE94112_MOTOR_LOG_RETURN(ret)\
136{\
137 if( 0 > ret)\
138 {\
139 tle_log.printfModule("fail with return code %i", TLE94112_MOTOR_LOGGER_SERVICE, TLE94112_LOGGER_ERROR_COLOR, ret);\
140 }\
141 else\
142 {\
143 tle_log.printfModule("pass", TLE94112_MOTOR_LOGGER_SERVICE, TLE94112_MOTOR_LOGGER_COLOR);\
144 }\
145}
146
147#else
148
149#define TLE94112_MOTOR_LOG_MSG(str) { }
150#define TLE94112_MOTOR_LOG_RETURN(ret) { }
151
152#endif /* TLE94112_MOTOR_LOGGER_ENABLED */
153
157#if (TLE94112_REG_LOGGER_ENABLED == 1)
158
159#define TLE94112_REG_LOGGER_SERVICE "[tle94112 reg] : "
160#define TLE94112_REG_LOGGER_COLOR TLE94112_LOGGER_COLOR_GREEN
161
162#define TLE94112_REG_LOG_MSG(str)\
163{\
164 tle_log.printfModule(str, TLE94112_REG_LOGGER_SERVICE, TLE94112_REG_LOGGER_COLOR);\
165}
166
167#define TLE94112_REG_LOG_RETURN(ret)\
168{\
169 if( 0 > ret)\
170 {\
171 tle_log.printfModule("fail with return code %i", TLE94112_REG_LOGGER_SERVICE, TLE94112_LOGGER_ERROR_COLOR, ret);\
172 }\
173 else\
174 {\
175 tle_log.printfModule("pass", TLE94112_REG_LOGGER_SERVICE, TLE94112_REG_LOGGER_COLOR);\
176 }\
177}
178
179#define TLE94112_REG_VALUE_HEX(addr_ptr)\
180{\
181 tle_log.printModuleHex(addr_ptr, 1, TLE94112_REG_LOGGER_SERVICE, TLE94112_REG_LOGGER_COLOR);\
182}
183
184#define TLE94112_REG_BITF_VALUE(map, addr, bitf)\
185{\
186 tle_log.printfModule("%x :: 0x%02x -> bfield 0x%02x", TLE94112_REG_LOGGER_SERVICE, TLE94112_REG_LOGGER_COLOR, addr, map[addr], bitf);\
187}
188
189#define TLE94112_REG_MAP_HEX(map, length, addr)\
190{\
191 tle_log.print("%s%s", TLE94112_REG_LOGGER_COLOR, TLE94112_REG_LOGGER_SERVICE);\
192 tle_log.print("%x :: 0x%02x\r\n", 0, map[0]);\
193 for(uint8_t i = 1; i < length; i++)\
194 {\
195 tle_log.print("%17x :: ", i);\
196 tle_log.print("0x%02x", map[i]);\
197 if(i == addr)\
198 tle_log.print("<---");\
199 \
200 tle_log.print("\r\n");\
201 }\
202 tle_log.print("%s", TLE94112_LOGGER_COLOR_DEFAULT);\
203}
204
205#else
206
207#define TLE94112_REG_VALUE_HEX(addr_ptr) { }
208#define TLE94112_REG_BITF_VALUE(map, addr, bitf) { }
209#define TLE94112_REG_MAP_HEX(map, length, addr) { }
210
211
212#endif /* TLE94112_REG_LOGGER_ENABLED */
213
217#if (TLE94112_APP_LOGGER_ENABLED == 1)
218
222#define TLE94112_APP_LOGGER_ERROR_COLOR TLE94112_LOGGER_COLOR_RED
223#define TLE94112_APP_LOGGER_WARNING_COLOR TLE94112_LOGGER_COLOR_YELLOW
224
225
226#define TLE94112_APP_LOGGER_SERVICE "[tle94112 app] : "
227#define TLE94112_APP_LOGGER_COLOR TLE94112_LOGGER_COLOR_MAGENTA
228
229#define TLE94112_APP_LOG_MSG(str)\
230{\
231 tle_log.printfModule(str, TLE94112_APP_LOGGER_SERVICE, TLE94112_APP_LOGGER_COLOR);\
232}
233
234#define TLE94112_APP_LOG_VAR(str, var)\
235{\
236 tle_log.printfModule(str, TLE94112_APP_LOGGER_SERVICE, TLE94112_APP_LOGGER_COLOR, var);\
237}\
238
239#define TLE94112_APP_LOG_RETURN(ret)\
240{\
241 if( 0 > ret)\
242 {\
243 tle_log.printfModule("fail with return code %i", TLE94112_APP_LOGGER_SERVICE, TLE94112_APP_LOGGER_ERROR_COLOR, ret);\
244 }\
245 else\
246 {\
247 tle_log.printfModule("pass", TLE94112_APP_LOGGER_SERVICE, TLE94112_APP_LOGGER_COLOR);\
248 }\
249}
250
251#else
252
253#define TLE94112_APP_LOG_MSG(str) {}
254#define TLE94112_APP_LOG_VAR(str, var) {}
255#define TLE94112_APP_LOG_RETURN(ret) {}
256
257#endif /* TLE94112_APP_LOGGER_ENABLED */
258
259}
260
261#else
262
267#define TLE94112_LOG_INIT() { }
268#define TLE94112_LOG_DEINIT() { }
269
270#define TLE94112_LOG_MSG(str) { }
271#define TLE94112_LOG_RETURN(ret) { }
272
273#define TLE94112_MOTOR_LOG_MSG(str) { }
274#define TLE94112_MOTOR_LOG_RETURN(ret) { }
275
276#define TLE94112_REG_BITF_VALUE(map, addr, bitf) { }
277#define TLE94112_REG_MAP_HEX(map, length, addr) { }
278
279#define TLE94112_APP_LOG_MSG(str) { }
280#define TLE94112_APP_LOG_VAR(str, var) { }
281#define TLE94112_APP_LOG_RETURN(ret) { }
282
283#endif /* TLE94112_LOGGER_ENABLED */
284
285#endif /* TLE94112_LOGGER_HPP_ */
TLE94112 Logger Platform Abstraction Layer.
Definition tle94112-types.hpp:14
TLE94112 Library Configuration.