manager: [#25] add Event parser

This commit is contained in:
Vasily Davydov 2023-04-29 08:58:34 +03:00 committed by RedHawk
parent df04fc9107
commit a2b07be73b
3 changed files with 35 additions and 3 deletions

View File

@ -26,6 +26,12 @@ public:
SetPoint
};
typedef struct _EventPair
{
EventRawData rd;
EventType et;
} EventPair;
Event(Event::EventType type, EventRawData data)
{
events.insert({type, data});

View File

@ -8,10 +8,10 @@
#include "Manager.h"
#include "ThreadCommon.h"
Manager::Manager(ThreadCommon::QueueManager* qm) : _qm(qm)
Manager::Manager(ThreadCommon::QueueManager* qm)
: _qm(qm), set_point(0, 100, 5)
{
// TODO Auto-generated constructor stub
set_point.setCurrent(0);
}
Manager::~Manager()
@ -19,12 +19,30 @@ Manager::~Manager()
// TODO Auto-generated destructor stub
}
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;
}
}
}
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);
}
}

View File

@ -10,6 +10,8 @@
#include "ThreadCommon.h"
#include "Event.h"
#include "Counter.h"
class Manager {
public:
@ -17,7 +19,13 @@ public:
virtual ~Manager();
void taskFunction();
private:
Event::EventPair parseEvent(Event* e);
ThreadCommon::QueueManager* _qm;
Counter<EventRawData> set_point;
EventRawData int_temp;
EventRawData ext_temp;
EventRawData rotary_action;
};
void thread_manager(void* pvParams);