threads: manager: [#46] use new Event
This commit is contained in:
parent
4c0bc407dc
commit
2f6bce5d9a
@ -20,33 +20,13 @@ Manager::~Manager()
|
|||||||
LOG_ERROR("Deleting 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()
|
void Manager::taskFunction()
|
||||||
{
|
{
|
||||||
Event data(Event::Null, 0);
|
Event data(Event::Null, 0);
|
||||||
Event::EventPair event_pair = {0, Event::EventType::Null};
|
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
_qm->receive<Event>(ThreadCommon::QueueManager::manager_event_master, &data, portMAX_DELAY);
|
_qm->receive<Event>(ThreadCommon::QueueManager::manager_event_master, &data, portMAX_DELAY);
|
||||||
event_pair= this->parseEvent(&data);
|
_menu.HandleEventPair(&data);
|
||||||
_menu.HandleEventPair(&event_pair);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,6 @@ public:
|
|||||||
virtual ~Manager();
|
virtual ~Manager();
|
||||||
void taskFunction();
|
void taskFunction();
|
||||||
private:
|
private:
|
||||||
Event::EventPair parseEvent(Event* e);
|
|
||||||
ThreadCommon::QueueManager* _qm;
|
ThreadCommon::QueueManager* _qm;
|
||||||
Menu _menu;
|
Menu _menu;
|
||||||
|
|
||||||
|
|||||||
@ -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:
|
case Event::Rotary:
|
||||||
// can be wrapped in a function, but this was found to be more clear solution,
|
// can be wrapped in a function, but this was found to be more clear solution,
|
||||||
// since we are still handling eventpair here, although nested
|
// 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:
|
case ThreadCommon::RotaryAction::Right:
|
||||||
this->HandleObj(MenuObjEvent (MenuObjEvent::eRollClockWise));
|
this->HandleObj(MenuObjEvent (MenuObjEvent::eRollClockWise));
|
||||||
@ -68,7 +68,7 @@ void Menu::HandleEventPair (Event::EventPair *ep)
|
|||||||
break;
|
break;
|
||||||
case Event::ExternalTemp:
|
case Event::ExternalTemp:
|
||||||
//Change ExternalTemp value. -99 <= ext_temp <= 99
|
//Change ExternalTemp value. -99 <= ext_temp <= 99
|
||||||
this->ext_temp.setCurrent(ep->rd);
|
this->ext_temp.setCurrent(ep->getData());
|
||||||
//Refresh the menu screen.
|
//Refresh the menu screen.
|
||||||
this->HandleObj(MenuObjEvent (MenuObjEvent::eRefresh));
|
this->HandleObj(MenuObjEvent (MenuObjEvent::eRefresh));
|
||||||
break;
|
break;
|
||||||
@ -179,7 +179,7 @@ void Menu::sSetPointMod(const MenuObjEvent &e)
|
|||||||
// Write to EEPROM
|
// Write to EEPROM
|
||||||
eeprom.write_to(EEPROM_START_ADDR, (void*)&sp, sizeof(EventRawData));
|
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);
|
_qm->send<Event>(ThreadCommon::QueueManager::master_event_all, &event_sp, 1);
|
||||||
|
|
||||||
this->SetState(&Menu::sMainView);
|
this->SetState(&Menu::sMainView);
|
||||||
|
|||||||
@ -22,7 +22,7 @@ class Menu
|
|||||||
public:
|
public:
|
||||||
Menu (ThreadCommon::QueueManager* qm);
|
Menu (ThreadCommon::QueueManager* qm);
|
||||||
virtual ~Menu ();
|
virtual ~Menu ();
|
||||||
void HandleEventPair (Event::EventPair *ep);
|
void HandleEventPair (Event *ep);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/* Variables and objects */
|
/* Variables and objects */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user