#ifndef LOGGING_H #define LOGGING_H #include "firmware.h" #define SERIAL_LOGGING true #define LOG_SIZE 90 // 100 blew up the stack #define LOG_DATA_LENGTH 10 enum eventCodes { LOG_BOOT_UP, LOG_INIT_COMPLETE, LOG_WIFI_CONNECTED, LOG_WIFI_DISCONNECTED, LOG_COMM_LOCK_ARM, LOG_COMM_LOCK_DISARM, LOG_COMM_LOCK_FAIL, LOG_COMM_CARD_FAIL, LOG_COMM_INFO_FAIL, LOG_LOCK_OFF, LOG_LOCK_ARMED, LOG_LOCK_TIMEOUT, LOG_LOCK_ON, LOG_LOCK_DISARM, LOG_LOCK_ERROR, LOG_CARD_GOOD_READ, LOG_CARD_ACCEPTED, LOG_CARD_DENIED, LOG_UPDATE_FAILED, LOG_TEST, }; struct __attribute__((packed)) logData { uint32_t unixTime; uint8_t eventCode; char data[LOG_DATA_LENGTH]; }; extern struct logData eventLog[LOG_SIZE]; extern uint16_t logPosition; void logEvent(uint8_t eventCode, const char *data = nullptr, size_t num = 0); void removeLogRecords(uint8_t num); #endif