From a2b07be73b409716d9376d4507f37fb02b020cf1 Mon Sep 17 00:00:00 2001 From: Vasily Davydov Date: Sat, 29 Apr 2023 08:58:34 +0300 Subject: [PATCH] manager: [#25] add Event parser --- source/shoh/src/threads/common/Event.h | 6 ++++++ source/shoh/src/threads/manager/Manager.cpp | 24 ++++++++++++++++++--- source/shoh/src/threads/manager/Manager.h | 8 +++++++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/source/shoh/src/threads/common/Event.h b/source/shoh/src/threads/common/Event.h index 5577b00..87b535c 100644 --- a/source/shoh/src/threads/common/Event.h +++ b/source/shoh/src/threads/common/Event.h @@ -26,6 +26,12 @@ public: SetPoint }; + typedef struct _EventPair + { + EventRawData rd; + EventType et; + } EventPair; + Event(Event::EventType type, EventRawData data) { events.insert({type, data}); diff --git a/source/shoh/src/threads/manager/Manager.cpp b/source/shoh/src/threads/manager/Manager.cpp index 6490dc5..efea320 100644 --- a/source/shoh/src/threads/manager/Manager.cpp +++ b/source/shoh/src/threads/manager/Manager.cpp @@ -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(ThreadCommon::QueueManager::manager_event_master, &data, portMAX_DELAY); + event_pair= this->parseEvent(&data); } } diff --git a/source/shoh/src/threads/manager/Manager.h b/source/shoh/src/threads/manager/Manager.h index 1516073..c3533ba 100644 --- a/source/shoh/src/threads/manager/Manager.h +++ b/source/shoh/src/threads/manager/Manager.h @@ -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 set_point; + + EventRawData int_temp; + EventRawData ext_temp; + EventRawData rotary_action; }; void thread_manager(void* pvParams);