Chameleon-Mini
 All Classes Files Functions Variables Macros Pages
Log.h
1 #ifndef LOG_H_
2 #define LOG_H_
3 
4 #include "Common.h"
5 
6 typedef enum {
7  /* Generic */
8  LOG_INFO_GENERIC = 0x10,
9  LOG_INFO_CONFIG_CHANGED = 0x11,
10 
11  /* Codec */
12  LOG_INFO_RX_DATA = 0x20,
13  LOG_INFO_TX_DATA = 0x21,
14 
15  /* App */
16  LOG_INFO_APP_RESET = 0x30,
17  LOG_ERR_APP_AUTH_FAIL = 0x31,
18  LOG_ERR_APP_CHECKSUM_FAIL = 0x32,
19 
20  LOG_EMPTY = 0xFF
21 } LogEntryEnum;
22 
23 typedef enum {
24  LOG_MODE_OFF,
25  LOG_MODE_MEMORY,
26  LOG_MODE_TERMINAL
27 } LogModeEnum;
28 
29 typedef void (*LogFuncType) (LogEntryEnum Entry, void* Data, uint8_t Length);
30 
31 extern LogFuncType LogFunc;
32 
33 void LogInit(void);
34 void LogTick(void);
35 void LogTask(void);
36 
37 void LogMemClear(void);
38 uint16_t LogMemFree(void);
39 /* XModem callback */
40 bool LogMemLoadBlock(void* Buffer, uint32_t BlockAddress, uint16_t ByteCount);
41 
42 void LogSetModeById(LogModeEnum Mode);
43 bool LogSetModeByName(const char* Name);
44 void LogGetModeByName(char* Name, uint16_t BufferSize);
45 void LogGetModeList(char* List, uint16_t BufferSize);
46 
47 INLINE void LogEntry(LogEntryEnum Entry, void* Data, uint8_t Length) { LogFunc(Entry, Data, Length); }
48 
49 #endif /* LOG_H_ */