Multi Half-Bridge  4.0.0
Library of Infineon's Multi Half-Bridge IC controllers family
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 
19 namespace tle94112
20 {
21 
22 class 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 
49 extern 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.