log.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. extern char logFileBuf[FILE_BUF_MAX_LEN];
  9. extern char name_login[50];
  10. typedef __packed enum {
  11. LOG_SYSTEM_BOOT = 0x00, // device booted
  12. LOG_SYSTEM_DEFCONFIG, // default config applied
  13. LOG_UPDATE_SOFT,
  14. LOG_TURN_ON, //
  15. LOG_PSW_CHANGE, //
  16. LOG_SETTING_SAVE, //
  17. LOG_LOGIN, //
  18. LOG_TEST_UPS, //
  19. LOG_SHUTDOWN_UPS,
  20. LOG_ALARM_DIO,
  21. LOG_DO0_STATE,
  22. LOG_DO1_STATE,
  23. #ifdef HARDWARE_BT6706
  24. LOG_DO2_STATE,
  25. LOG_ALARM_VAC_OUTPUT,
  26. #endif
  27. LOG_ALARM_TEMP,
  28. LOG_ALARM_LINE,
  29. LOG_ALARM_LOW_BAT,
  30. LOG_ALARM_POWER,
  31. LOG_ALARM_UPS,
  32. LOG_ALARM_AKB,
  33. LOG_VALUE,
  34. LOG_NONE,
  35. } log_type_t;
  36. typedef __packed struct {
  37. uint32_t timestamp;
  38. log_type_t type:8;
  39. char data[50];
  40. } log_entry_t;
  41. #define LOG_ENTRY_VERSION 1
  42. extern void log_init(bool format);
  43. extern int log_test(void);
  44. extern int log_append(log_entry_t *entry);
  45. extern int log_fetch(log_entry_t *entry, uint32_t timeout);
  46. extern int log_rewind(log_entry_t *entry, uint32_t timeout);
  47. extern int log_discard(log_entry_t *entry, uint32_t timeout);
  48. void log_add(char *log_data);
  49. void log_event_data(log_type_t type, char *data);
  50. /**
  51. * @brief Возвращает true если журнал проинициализирован
  52. */
  53. bool LOG_IsInit();
  54. /**
  55. * @brief Отключает журнал для безопасной перезагрузки
  56. */
  57. bool LOG_Disable(void);
  58. /**
  59. * @brief Возвращает общее количество страниц
  60. */
  61. uint32_t LOG_GetPageCount(void);
  62. uint32_t LOG_GetTotalSTRCount(void);
  63. void LOG_GetPage(char *str, uint32_t page);
  64. uint32_t LOG_GetData(int ptr, char *str, uint32_t size, bool start);
  65. uint32_t History_GetPageCount(void);
  66. uint32_t History_GetTotalSTRCount(void);
  67. void History_GetPage(char *str, uint32_t page);
  68. uint32_t History_GetData(int ptr, char *str, uint32_t size, bool start);
  69. #endif /* LOG_H */