menu:[#43] read/write setpoint within eeprom

This commit is contained in:
Vasily Davydov 2023-05-15 10:12:24 +03:00
parent ccce95abcd
commit b2a29edc45
2 changed files with 19 additions and 0 deletions

View File

@ -19,6 +19,7 @@ set_point_text("CURRENT %3d DESIRED[%3d] ")
this->SetState(&Menu::sInitView); this->SetState(&Menu::sInitView);
ext_temp.setCurrent(0); ext_temp.setCurrent(0);
set_point.setCurrent(0); set_point.setCurrent(0);
readSetPointFromEEPROM();
} }
Menu::~Menu() Menu::~Menu()
@ -26,6 +27,17 @@ Menu::~Menu()
LOG_DEBUG("Deleting Menu"); LOG_DEBUG("Deleting Menu");
} }
void
Menu::readSetPointFromEEPROM (void)
{
EventRawData *data = (EventRawData *)eeprom.read_from (EEPROM_START_ADDR,
sizeof(EventRawData));
if ((*data) > 0 && (*data) < 120)
{
ext_temp.setCurrent(*data);
}
}
void Menu::HandleEventPair (Event::EventPair *ep) void Menu::HandleEventPair (Event::EventPair *ep)
{ {
switch(ep->et/*EventType*/) switch(ep->et/*EventType*/)
@ -135,6 +147,7 @@ void Menu::sMainView(const MenuObjEvent &e)
void Menu::sSetPointMod(const MenuObjEvent &e) void Menu::sSetPointMod(const MenuObjEvent &e)
{ {
static char screen_text[64]; static char screen_text[64];
EventRawData sp;
switch (e.type) switch (e.type)
{ {
case MenuObjEvent::eFocus: case MenuObjEvent::eFocus:
@ -161,6 +174,9 @@ void Menu::sSetPointMod(const MenuObjEvent &e)
break; break;
case MenuObjEvent::eClick: case MenuObjEvent::eClick:
LOG_DEBUG("click sSetPointMod"); LOG_DEBUG("click sSetPointMod");
sp = set_point.getCurrent();
// Write to EEPROM
eeprom.write_to(EEPROM_START_ADDR, (void*)&sp, sizeof(EventRawData));
this->SetState(&Menu::sMainView); this->SetState(&Menu::sMainView);
break; break;
case MenuObjEvent::eRefresh: case MenuObjEvent::eRefresh:

View File

@ -11,6 +11,7 @@
#include "Counter.h" #include "Counter.h"
#include "MenuObjEvent.h" #include "MenuObjEvent.h"
#include "ThreadCommon.h" #include "ThreadCommon.h"
#include "EEPROMio.h"
#include "Event.h" #include "Event.h"
class Menu; class Menu;
@ -29,6 +30,7 @@ private:
p_state current; p_state current;
Counter<EventRawData> ext_temp; Counter<EventRawData> ext_temp;
Counter<EventRawData> set_point; Counter<EventRawData> set_point;
EEPROMio eeprom;
const char main_text[64]; const char main_text[64];
const char set_point_text[64]; const char set_point_text[64];
/* States */ /* States */
@ -39,6 +41,7 @@ private:
void SetState (p_state new_state); void SetState (p_state new_state);
void HandleObj (const MenuObjEvent &event); void HandleObj (const MenuObjEvent &event);
void NotifyAndRefreshUI (const char *str); void NotifyAndRefreshUI (const char *str);
void readSetPointFromEEPROM (void);
}; };
#endif /* THREADS_MANAGER_MENU_H_ */ #endif /* THREADS_MANAGER_MENU_H_ */