| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 | #ifndef __LOG_H#define __LOG_H#include "at32f403a_407.h"#include <stdbool.h>#ifdef __cplusplusextern "C" {#endif  #define LOG_ENTRY_VERSION               1#define ARCHIV_ENTRY_VERSION            1#define LOG_FLASH_SECTOR_OFFSET         4#define LOG_FLASH_SECTOR_COUNT          51 //252#define ARCHIVE_FLASH_SECTOR_OFFSET     260#define ARCHIVE_FLASH_SECTOR_COUNT      38 //252#define SECTOR_COUNT (spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET)#define MB_ARCHIVE_ENTRY                0x06  #define MB_LOG_ENTRY                    0x07//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;    uint8_t code_type;  // код типа события    uint8_t code_state; // код состояния    uint8_t channel_number; // номер канала    float value;        // значение    uint8_t crc;    } log_entry_t;// Структура архивной записиtypedef __packed struct{    uint64_t timestamp;    uint8_t input_value;    uint8_t crc;    } archive_entry_t;//void log_init(bool format);//int log_fetch(void *entry, entry_type_t entry_type, uint32_t timeout);//int log_discard(void *entry, entry_type_t entry_type, uint32_t timeout);// int log_append(void *entry, entry_type_t entry_type);//uint16_t log_capacity(void);//uint16_t log_arch_capacity(void);// -------------------------------------------------------------------------- //// miscuint8_t crc_8(uint8_t *data, int length);// -------------------------------------------------------------------------- //// Tests//void log_info(uint8_t val);//void log_format(uint8_t val);//int log_add_random_entry(uint8_t val, uint32_t cnt_entry);//void test_fetch(void);//void log_archive_state(bool state);//void log_log_state(bool state);//void test_archive_format(void);// -------------------------------------------------------------------------- //extern uint16_t log_entries_capacity;extern uint16_t archive_entries_capacity;#ifdef __cplusplus}#endif#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        47extern char logFileBuf[FILE_BUF_MAX_LEN];extern char name_login[50];#define LOG_ENTRY_VERSION 1extern 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 */
 |