diff --git a/Software/src/devboard/utils/events.cpp b/Software/src/devboard/utils/events.cpp index 6cbd62bd..6191f853 100644 --- a/Software/src/devboard/utils/events.cpp +++ b/Software/src/devboard/utils/events.cpp @@ -105,12 +105,16 @@ void init_events(void) { // Push changes to eeprom EEPROM.commit(); +#ifdef DEBUG_VIA_USB Serial.println("EEPROM wasn't ready"); +#endif } else { events.event_log_head_index = EEPROM.readUShort(EE_EVENT_LOG_HEAD_INDEX_ADDRESS); events.event_log_tail_index = EEPROM.readUShort(EE_EVENT_LOG_TAIL_INDEX_ADDRESS); +#ifdef DEBUG_VIA_USB Serial.println("EEPROM was initialized for event logging"); Serial.println("head: " + String(events.event_log_head_index) + ", tail: " + String(events.event_log_tail_index)); +#endif print_event_log(); } @@ -121,6 +125,7 @@ void init_events(void) { events.entries[i].log = true; } + events.entries[EVENT_CAN_OVERRUN].level = EVENT_LEVEL_INFO; events.entries[EVENT_CAN_RX_FAILURE].level = EVENT_LEVEL_ERROR; events.entries[EVENT_CAN_RX_WARNING].level = EVENT_LEVEL_WARNING; events.entries[EVENT_CAN_TX_FAILURE].level = EVENT_LEVEL_ERROR; @@ -178,6 +183,8 @@ void clear_event(EVENTS_ENUM_TYPE event) { const char* get_event_message_string(EVENTS_ENUM_TYPE event) { switch (event) { + case EVENT_CAN_OVERRUN: + return "CAN message failed to send within defined time. Contact developers, CPU load might be too high."; case EVENT_CAN_RX_FAILURE: return "No CAN communication detected for 60s. Shutting down battery control."; case EVENT_CAN_RX_WARNING: @@ -365,7 +372,9 @@ static void log_event(EVENTS_ENUM_TYPE event, uint8_t data) { static void print_event_log(void) { // If the head actually points to the tail, the log is probably blank if (events.event_log_head_index == events.event_log_tail_index) { +#ifdef DEBUG_VIA_USB Serial.println("No events in log"); +#endif return; } EVENT_LOG_ENTRY_TYPE entry; @@ -380,9 +389,10 @@ static void print_event_log(void) { // The entry is a blank that has been left behind somehow continue; } +#ifdef DEBUG_VIA_USB Serial.println("Event: " + String(get_event_enum_string(entry.event)) + ", data: " + String(entry.data) + ", time: " + String(entry.timestamp)); - +#endif if (index == events.event_log_head_index) { break; } diff --git a/Software/src/devboard/utils/events.h b/Software/src/devboard/utils/events.h index 12b0839e..0374c8fb 100644 --- a/Software/src/devboard/utils/events.h +++ b/Software/src/devboard/utils/events.h @@ -28,6 +28,7 @@ */ #define EVENTS_ENUM_TYPE(XX) \ + XX(EVENT_CAN_OVERRUN) \ XX(EVENT_CAN_RX_FAILURE) \ XX(EVENT_CAN_RX_WARNING) \ XX(EVENT_CAN_TX_FAILURE) \ diff --git a/Software/src/devboard/webserver/events_html.cpp b/Software/src/devboard/webserver/events_html.cpp index 5890b217..3e5b37ed 100644 --- a/Software/src/devboard/webserver/events_html.cpp +++ b/Software/src/devboard/webserver/events_html.cpp @@ -22,10 +22,12 @@ String events_processor(const String& var) { for (int i = 0; i < EVENT_NOF_EVENTS; i++) { event_pointer = get_event_pointer((EVENTS_ENUM_TYPE)i); EVENTS_ENUM_TYPE event_handle = static_cast(i); +#ifdef DEBUG_VIA_USB Serial.println("Event: " + String(get_event_enum_string(event_handle)) + " count: " + String(event_pointer->occurences) + " seconds: " + String(event_pointer->timestamp) + " data: " + String(event_pointer->data) + " level: " + String(get_event_level_string(event_handle))); +#endif if (event_pointer->occurences > 0) { content.concat("
"); content.concat("
" + String(get_event_enum_string(event_handle)) + "
");