123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- #ifndef __LOG_H
- #define __LOG_H
- #include "at32f403a_407.h"
- #include <stdbool.h>
- #define LOG_ENTRY_VERSION 1
- #define ARCHIV_ENTRY_VERSION 1
- #define LOG_FLASH_SECTOR_OFFSET 4
- #define LOG_FLASH_SECTOR_COUNT 252
- #define ARCHIVE_FLASH_SECTOR_OFFSET 260
- #define ARCHIVE_FLASH_SECTOR_COUNT 252
- #define SECTOR_COUNT (spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET)
- //
- typedef enum
- {
- LOG_SYSTEM_BOOT = 0, // device booted
- LOG_SYSTEM_DEFCONFIG, // default config applied
- LOG_UPDATE_SOFT,
- LOG_TURN_ON, //
- LOG_PSW_CHANGE, //
- LOG_SETTING_SAVE, //
- LOG_LOGIN_TELNET, //
- LOG_LOGIN_SSH,
- LOG_LOGIN, //
- LOG_TEST_UPS, //
- LOG_SHUTDOWN_UPS,
- LOG_ALARM_VAC_LOW_OUTPUT,
- LOG_ALARM_VAC_HIGH_OUTPUT,
- LOG_ALARM_HIGH_TEMP,
- LOG_ALARM_LOW_TEMP,
- LOG_ALARM_LINE,
- LOG_ALARM_LOW_BAT,
- LOG_ALARM_POWER,
- LOG_ALARM_UPS,
- LOG_ALARM_AKB,
- LOG_ALARM_CHANGE_AKB,
- LOG_PHASE_FAIL,
- LOG_EPO_FAIL,
- LOG_VALUE,
- LOG_NONE,
- } log_type_t;
- typedef enum
- {
- LOG_ENTRY = 0,
- ARCHIVE_ENTRY,
-
- } entry_type_t;
- typedef __packed struct
- {
- uint64_t timestamp;
-
- } common_entry_t;
- //
- typedef __packed struct
- {
- uint64_t timestamp;
- log_type_t type:8;
- char data[50];
-
- } log_entry_t;
- typedef __packed struct
- {
- uint64_t timestamp;
- uint8_t input_value;
- uint8_t crc;
- } archive_entry_t;
- void log_init(bool format);
- // -------------------------------------------------------------------------- //
- // Tests
- // fs_log
- int log_test(void);
- // fs_archive
- int test_archive(void);
- //
- int test_add_random_archive_entry(uint32_t cnt_entry);
- //
- void test_archive_info(void);
- //
- void test_fetch(void);
- //
- void test_archive_format(void);
- #if 0
- #include "main.h"
- #include "common_config.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
- #define UPS_DATA_STRING_SIZE 47
- extern char logFileBuf[FILE_BUF_MAX_LEN];
- extern char name_login[50];
- #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
- #endif /* __LOG_H */
|