log.h 1.12 KiB
#pragma once
#include "ds1307.h"
#include "shell/shell.h"
#define EEPROM_SIZE 2048
struct log_entry_t{
uint8_t event; // 1
date_t date; // 7
uint8_t door_status; // 1
uint8_t power_status; // 1
uint16_t param; // 2
} typedef log_entry_t; //12byte
#define LOG_DATA_OFFSET 1024
#define LOG_MAX_COUNT ((EEPROM_SIZE-2-LOG_DATA_OFFSET)/sizeof(log_entry_t))
#define LOG_START_POINTER_LOCATION ((void*)(EEPROM_SIZE-1))
#define LOG_END_POINTER_LOCATION ((void*)(EEPROM_SIZE-2))
#define LOG_EVENT_STARTUP 0x00
#define LOG_EVENT_ALARM_RAISED 0x01
#define LOG_EVENT_ALARM_CHANGED 0x02
#define LOG_EVENT_ALARM_LOGIN 0x03
#define LOG_EVENT_ALARM_DISABLED 0x04
#define LOG_EVENT_AC_FAIL 0x05
#define LOG_EVENT_AC_RETURN 0x06
#define LOG_EVENT_MAIN_BATTERY_LOW 0x07
#define LOG_EVENT_KEYMATIC_BATTERY_LOW 0x08
#define LOG_EVENT_DOOR_COMMAND_TIMEOUT 0x09
#define LOG_EVENT_DOOR_COMMAND_RETRY_FAIL 0x0A
#define LOG_EVENT_NONE 0xFF
void log_dump(void);
void log_append(uint8_t event, uint16_t param);