log.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #ifndef LOG_H
  2. #define LOG_H
  3. #include "main.h"
  4. #define FILE_BUF_MAX_LEN 10*STRING_SIZE_HISTORY // Размер временного буфера для отправки/копирования Лог файла
  5. #define FILE_BUF_MAX_LEN_LOG 10*STRING_SIZE // Размер временного буфера для отправки/копирования Лог файла
  6. #define STRING_SIZE 64
  7. #define STRING_SIZE_HISTORY 100
  8. char logFileBuf[FILE_BUF_MAX_LEN];
  9. typedef enum {
  10. LOG_SYSTEM_BOOT = 0x00, // device booted
  11. LOG_SYSTEM_DEFCONFIG, // default config applied
  12. LOG_UPDATE_SOFT, //
  13. LOG_PSW_CHANGE, //
  14. LOG_LOGIN, //
  15. LOG_TEST_UPS, //
  16. LOG_SHUTDOWN_UPS,
  17. LOG_ALARM_DIO,
  18. LOG_DO0_STATE,
  19. LOG_DO1_STATE,
  20. LOG_ALARM_TEMP,
  21. LOG_ALARM_LINE,
  22. LOG_ALARM_LOW_BAT,
  23. LOG_ALARM_POWER,
  24. LOG_ALARM_UPS,
  25. LOG_ALARM_AKB,
  26. LOG_VALUE,
  27. LOG_NONE,
  28. } __packed log_type_t;
  29. typedef struct {
  30. uint32_t timestamp;
  31. log_type_t type:8;
  32. char data[50];
  33. } __packed log_entry_t;
  34. #define LOG_ENTRY_VERSION 1
  35. extern void log_init(bool format);
  36. extern int log_test(void);
  37. extern int log_append(log_entry_t *entry);
  38. extern int log_fetch(log_entry_t *entry, uint32_t timeout);
  39. extern int log_rewind(log_entry_t *entry, uint32_t timeout);
  40. extern int log_discard(log_entry_t *entry, uint32_t timeout);
  41. void log_add(char *log_data);
  42. void log_event_data(log_type_t type, char *data);
  43. /**
  44. * @brief Возвращает true если журнал проинициализирован
  45. */
  46. bool LOG_IsInit();
  47. /**
  48. * @brief Возвращает общее количество страниц
  49. */
  50. uint32_t LOG_GetPageCount(void);
  51. uint32_t LOG_GetTotalSTRCount(void);
  52. void LOG_GetPage(char *str, uint32_t page);
  53. uint32_t LOG_GetData(int ptr, char *str, uint32_t size, bool start);
  54. uint32_t History_GetPageCount(void);
  55. uint32_t History_GetTotalSTRCount(void);
  56. void History_GetPage(char *str, uint32_t page);
  57. uint32_t History_GetData(int ptr, char *str, uint32_t size, bool start);
  58. #endif /* LOG_H */