#ifndef LOG_H #define LOG_H #include "main.h" #define FILE_BUF_MAX_LEN 10*STRING_SIZE_HISTORY // Размер временного буфера для отправки/копирования Лог файла #define FILE_BUF_MAX_LEN_LOG 10*STRING_SIZE // Размер временного буфера для отправки/копирования Лог файла #define STRING_SIZE 64 #define STRING_SIZE_HISTORY 100 extern char logFileBuf[FILE_BUF_MAX_LEN]; extern char name_login[50]; extern char name_login_telnet[50]; extern bool telnet_act; typedef __packed enum { LOG_SYSTEM_BOOT = 0x00, // device booted LOG_SYSTEM_DEFCONFIG, // default config applied LOG_UPDATE_SOFT, LOG_TURN_ON, // LOG_PSW_CHANGE, // LOG_SETTING_SAVE, // #if defined HARDWARE_BT6707 || HARDWARE_BT6709 LOG_LOGIN_TELNET, // #endif LOG_LOGIN, // LOG_TEST_UPS, // LOG_SHUTDOWN_UPS, #ifndef HARDWARE_BT6709 LOG_ALARM_DIO, LOG_DO0_STATE, LOG_DO1_STATE, #if defined HARDWARE_BT6707 LOG_DO2_STATE, #endif #endif #if defined HARDWARE_BT6707 || HARDWARE_BT6709 LOG_ALARM_VAC_LOW_OUTPUT, LOG_ALARM_VAC_HIGH_OUTPUT, #endif LOG_ALARM_HIGH_TEMP, LOG_ALARM_LOW_TEMP, LOG_ALARM_LINE, LOG_ALARM_LOW_BAT, LOG_ALARM_POWER, LOG_ALARM_UPS, LOG_ALARM_AKB, #ifdef HARDWARE_BT6709 LOG_ALARM_CHANGE_AKB, #endif LOG_VALUE, LOG_NONE, } log_type_t; typedef __packed struct { uint32_t timestamp; log_type_t type:8; char data[50]; } log_entry_t; #define LOG_ENTRY_VERSION 1 extern void log_init(bool format); extern int log_test(void); extern int log_append(log_entry_t *entry); extern int log_fetch(log_entry_t *entry, uint32_t timeout); extern int log_rewind(log_entry_t *entry, uint32_t timeout); extern int log_discard(log_entry_t *entry, uint32_t timeout); void log_add(char *log_data); void log_event_data(log_type_t type, char *data); /** * @brief Возвращает true если журнал проинициализирован */ bool LOG_IsInit(); /** * @brief Отключает журнал для безопасной перезагрузки */ bool LOG_Disable(void); /** * @brief Возвращает общее количество страниц */ uint32_t LOG_GetPageCount(void); uint32_t LOG_GetTotalSTRCount(void); void LOG_GetPage(char *str, uint32_t page); void LOG_GetPage_tabs(char *str, uint32_t page); uint32_t LOG_GetData(int ptr, char *str, uint32_t size, bool start); uint32_t History_GetPageCount(void); uint32_t History_GetTotalSTRCount(void); void History_GetPage(char *str, uint32_t page); uint32_t History_GetData(int ptr, char *str, uint32_t size, bool start); void History_GetPage_tabs(char *str, uint32_t page); #endif /* LOG_H */