log.h 2.7 KB

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