threads: manager: [#46] use new Event

This commit is contained in:
Vasily Davydov 2023-05-18 23:24:08 +03:00
parent 4c0bc407dc
commit 2f6bce5d9a
4 changed files with 7 additions and 28 deletions

View File

@ -20,33 +20,13 @@ Manager::~Manager()
LOG_ERROR("Deleting Manager");
}
Event::EventPair Manager::parseEvent(Event* e)
{
EventRawData raw_data;
for(Event::EventType i :
{Event::Rotary, Event::InternalTemp,
Event::ExternalTemp})
{
raw_data = e->getDataOf(i);
if(raw_data != ERROR_RETURN)
{
Event::EventPair p = {raw_data, i};
return p;
}
}
LOG_WARNING("Event is empty");
return {ERROR_RETURN, Event::Null};
}
void Manager::taskFunction()
{
Event data(Event::Null, 0);
Event::EventPair event_pair = {0, Event::EventType::Null};
for(;;)
{
_qm->receive<Event>(ThreadCommon::QueueManager::manager_event_master, &data, portMAX_DELAY);
event_pair= this->parseEvent(&data);
_menu.HandleEventPair(&event_pair);
_menu.HandleEventPair(&data);
}
}

View File

@ -20,7 +20,6 @@ public:
virtual ~Manager();
void taskFunction();
private:
Event::EventPair parseEvent(Event* e);
ThreadCommon::QueueManager* _qm;
Menu _menu;

View File

@ -38,14 +38,14 @@ Menu::readSetPointFromEEPROM (void)
}
}
void Menu::HandleEventPair (Event::EventPair *ep)
void Menu::HandleEventPair (Event *ep)
{
switch(ep->et/*EventType*/)
switch(ep->getType()/*EventType*/)
{
case Event::Rotary:
// can be wrapped in a function, but this was found to be more clear solution,
// since we are still handling eventpair here, although nested
switch(static_cast<ThreadCommon::RotaryAction>(ep->rd)/*RawData*/)
switch(static_cast<ThreadCommon::RotaryAction>(ep->getData())/*RawData*/)
{
case ThreadCommon::RotaryAction::Right:
this->HandleObj(MenuObjEvent (MenuObjEvent::eRollClockWise));
@ -68,7 +68,7 @@ void Menu::HandleEventPair (Event::EventPair *ep)
break;
case Event::ExternalTemp:
//Change ExternalTemp value. -99 <= ext_temp <= 99
this->ext_temp.setCurrent(ep->rd);
this->ext_temp.setCurrent(ep->getData());
//Refresh the menu screen.
this->HandleObj(MenuObjEvent (MenuObjEvent::eRefresh));
break;
@ -179,7 +179,7 @@ void Menu::sSetPointMod(const MenuObjEvent &e)
// Write to EEPROM
eeprom.write_to(EEPROM_START_ADDR, (void*)&sp, sizeof(EventRawData));
event_sp.setDataOf(Event::EventType::SetPoint, sp);
event_sp.setEvent(Event::EventType::SetPoint, sp);
_qm->send<Event>(ThreadCommon::QueueManager::master_event_all, &event_sp, 1);
this->SetState(&Menu::sMainView);

View File

@ -22,7 +22,7 @@ class Menu
public:
Menu (ThreadCommon::QueueManager* qm);
virtual ~Menu ();
void HandleEventPair (Event::EventPair *ep);
void HandleEventPair (Event *ep);
private:
/* Variables and objects */