You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
680 B
39 lines
680 B
#include "logging.h" |
|
|
|
void logEvent(uint8_t eventCode, const char *data, size_t num) |
|
{ |
|
struct logData event; |
|
|
|
noInterrupts(); |
|
|
|
event.unixTime = time(nullptr); |
|
event.eventCode = eventCode; |
|
|
|
memset(event.data, 0, LOG_DATA_LENGTH); |
|
for (uint8_t i = 0; i < LOG_DATA_LENGTH; i++) { |
|
if (i >= num) break; |
|
event.data[i] = data[i]; |
|
} |
|
|
|
if (logPosition < LOG_SIZE) { |
|
eventLog[logPosition++] = event; |
|
} |
|
|
|
interrupts(); |
|
} |
|
|
|
void removeLogRecords(uint8_t num) |
|
{ |
|
// shift records down by num because they've been sent |
|
|
|
if (num > logPosition) return; |
|
|
|
noInterrupts(); |
|
|
|
for (int i = 0; i < num; i++) { |
|
eventLog[i] = eventLog[i + num]; |
|
} |
|
logPosition -= num; |
|
|
|
interrupts(); |
|
}
|
|
|