mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 09:49:32 +02:00
15 minuter timer for EE write
This commit is contained in:
parent
d12fe99e8e
commit
1e0740fd27
2 changed files with 12 additions and 3 deletions
|
@ -27,6 +27,7 @@ typedef struct {
|
||||||
EVENTS_STRUCT_TYPE entries[EVENT_NOF_EVENTS];
|
EVENTS_STRUCT_TYPE entries[EVENT_NOF_EVENTS];
|
||||||
uint32_t time_seconds;
|
uint32_t time_seconds;
|
||||||
MyTimer second_timer;
|
MyTimer second_timer;
|
||||||
|
MyTimer ee_timer;
|
||||||
EVENTS_LEVEL_TYPE level;
|
EVENTS_LEVEL_TYPE level;
|
||||||
uint16_t event_log_head_index;
|
uint16_t event_log_head_index;
|
||||||
uint16_t event_log_tail_index;
|
uint16_t event_log_tail_index;
|
||||||
|
@ -44,6 +45,7 @@ static void update_event_level(void);
|
||||||
static void update_bms_status(void);
|
static void update_bms_status(void);
|
||||||
static void log_event(EVENTS_ENUM_TYPE event, uint8_t data);
|
static void log_event(EVENTS_ENUM_TYPE event, uint8_t data);
|
||||||
static void print_event_log(void);
|
static void print_event_log(void);
|
||||||
|
static void check_ee_write(void);
|
||||||
|
|
||||||
/* Exported functions */
|
/* Exported functions */
|
||||||
|
|
||||||
|
@ -51,6 +53,7 @@ static void print_event_log(void);
|
||||||
void run_event_handling(void) {
|
void run_event_handling(void) {
|
||||||
update_event_time();
|
update_event_time();
|
||||||
run_sequence_on_target();
|
run_sequence_on_target();
|
||||||
|
check_ee_write();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialization function */
|
/* Initialization function */
|
||||||
|
@ -58,7 +61,7 @@ void init_events(void) {
|
||||||
|
|
||||||
EEPROM.begin(1024);
|
EEPROM.begin(1024);
|
||||||
|
|
||||||
uint16_t header = EEPROM.readUShort(0);
|
uint16_t header = EEPROM.readUShort(EE_EVENT_LOG_START_ADDRESS);
|
||||||
if (header != EE_MAGIC_HEADER_VALUE) {
|
if (header != EE_MAGIC_HEADER_VALUE) {
|
||||||
EEPROM.writeUShort(EE_EVENT_LOG_START_ADDRESS, EE_MAGIC_HEADER_VALUE);
|
EEPROM.writeUShort(EE_EVENT_LOG_START_ADDRESS, EE_MAGIC_HEADER_VALUE);
|
||||||
EEPROM.writeUShort(EE_EVENT_LOG_HEAD_INDEX_ADDRESS, 0);
|
EEPROM.writeUShort(EE_EVENT_LOG_HEAD_INDEX_ADDRESS, 0);
|
||||||
|
@ -108,6 +111,7 @@ void init_events(void) {
|
||||||
events.entries[EVENT_DUMMY_ERROR].log = true;
|
events.entries[EVENT_DUMMY_ERROR].log = true;
|
||||||
|
|
||||||
events.second_timer.set_interval(1000);
|
events.second_timer.set_interval(1000);
|
||||||
|
events.ee_timer.set_interval(15 * 60 * 1000); // Write to EEPROM every 15 minutes
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_event(EVENTS_ENUM_TYPE event, uint8_t data) {
|
void set_event(EVENTS_ENUM_TYPE event, uint8_t data) {
|
||||||
|
@ -283,7 +287,6 @@ static void log_event(EVENTS_ENUM_TYPE event, uint8_t data) {
|
||||||
EEPROM.put(entry_address, entry);
|
EEPROM.put(entry_address, entry);
|
||||||
EEPROM.writeUShort(EE_EVENT_LOG_HEAD_INDEX_ADDRESS, events.event_log_head_index);
|
EEPROM.writeUShort(EE_EVENT_LOG_HEAD_INDEX_ADDRESS, events.event_log_head_index);
|
||||||
EEPROM.writeUShort(EE_EVENT_LOG_TAIL_INDEX_ADDRESS, events.event_log_tail_index);
|
EEPROM.writeUShort(EE_EVENT_LOG_TAIL_INDEX_ADDRESS, events.event_log_tail_index);
|
||||||
EEPROM.commit();
|
|
||||||
//Serial.println("Wrote event " + String(event) + " to " + String(entry_address));
|
//Serial.println("Wrote event " + String(event) + " to " + String(entry_address));
|
||||||
//Serial.println("head: " + String(events.event_log_head_index) + ", tail: " + String(events.event_log_tail_index));
|
//Serial.println("head: " + String(events.event_log_head_index) + ", tail: " + String(events.event_log_tail_index));
|
||||||
}
|
}
|
||||||
|
@ -307,3 +310,9 @@ static void print_event_log(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void check_ee_write(void) {
|
||||||
|
if (events.ee_timer.elapsed()) {
|
||||||
|
EEPROM.commit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ class EEPROMClass {
|
||||||
EEPROMClass EEPROM;
|
EEPROMClass EEPROM;
|
||||||
|
|
||||||
#include "../../Software/src/devboard/utils/events.cpp"
|
#include "../../Software/src/devboard/utils/events.cpp"
|
||||||
/* Local rest variables */
|
/* Local test variables */
|
||||||
bool elapsed = false;
|
bool elapsed = false;
|
||||||
|
|
||||||
/* Stubs */
|
/* Stubs */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue