69 lines
2.0 KiB
C
69 lines
2.0 KiB
C
#ifndef __LOG_TASK_H
|
|
#define __LOG_TASK_H
|
|
|
|
#define LOG_TYPE_INVALID 0
|
|
#define LOG_TYPE_POWER_ON 1
|
|
#define LOG_TYPE_POWER_OFF 2
|
|
#define LOG_TYPE_SYS_PARA_CHANGE 3
|
|
#define LOG_TYPE_TIME_CHANGE 4
|
|
#define LOG_TYPE_GPS_UNLOCK 5
|
|
#define LOG_TYPE_GPS_LOCK 6
|
|
#define LOG_TYPE_TS_ERR 7
|
|
#define LOG_TYPE_TS_OK 8
|
|
#define LOG_TYPE_OVER_TEMPERATURE 9
|
|
#define LOG_TYPE_NORMAL_TEMPERATURE 10
|
|
#define LOG_TYPE_OVER_FLOW 11
|
|
#define LOG_TYPE_UNDER_FLOW 12
|
|
//..其他告警类型
|
|
#define LOG_TYPE_END 13 //结束标志
|
|
|
|
|
|
|
|
#define LOG_ERR_NO_ERR 0
|
|
#define LOG_ERR_PARA_INVALID 1
|
|
#define LOG_ERR_ALLOC_MSG_FAILED 2
|
|
#define LOG_ERR_ALLOC_MEM_FAILED 3
|
|
|
|
|
|
//日志最大多少条合适?
|
|
#define LOG_MAX_RECORD_NUM 100
|
|
|
|
//一整条告警,64字节, 200*64 共12.5K字节
|
|
#define LOG_PER_RECORD_SIZE 32
|
|
typedef struct
|
|
{
|
|
uint8 valid;
|
|
uint8 type;
|
|
uint8 year;
|
|
uint8 month;
|
|
uint8 date;
|
|
uint8 hour;
|
|
uint8 min;
|
|
uint8 sec; //发生时间 8字节
|
|
|
|
|
|
uint8 content[LOG_PER_RECORD_SIZE-8]; //日志的具体内容,根据需要使用
|
|
}S_LOG_STRUCT;
|
|
|
|
typedef struct
|
|
{
|
|
uint16 ram_flag; //内存中数据是否有效标志
|
|
uint8 lastest_index; //当前的下一条log指向的位置 0~(LOG_MAX_RECORD_NUM-1) 是即将保存的位置,
|
|
uint8 total_num; //当前有效log数目
|
|
S_LOG_STRUCT log[LOG_MAX_RECORD_NUM];
|
|
}S_OS_LOG; //当前使用模式下,不能大于3.9K
|
|
|
|
|
|
extern void log_task(void * pvParameters);
|
|
|
|
extern uint32 log_read_record_by_index(uint32 index,void *pdata);
|
|
extern uint32 log_system_event_generate(S_SYS_TIME* ptime,uint32 type,uint8 *pcontent,uint32 ctlen);
|
|
uint32 log_get_total_record_num(void);
|
|
void log_record_reset(void);
|
|
void log_record_printf(void);
|
|
|
|
extern int sntp_enable(uint8 en, uint8 *pAddr);
|
|
|
|
#endif
|
|
|