relay: [#9] utilize parsed event data
This commit is contained in:
parent
b7196b769e
commit
a0023e622e
@ -83,6 +83,7 @@ void Relay::taskFunction()
|
|||||||
{
|
{
|
||||||
_qm->receive<Event>(ThreadCommon::QueueManager::relay_event_master, &data, portMAX_DELAY);
|
_qm->receive<Event>(ThreadCommon::QueueManager::relay_event_master, &data, portMAX_DELAY);
|
||||||
parseEvent(&data);
|
parseEvent(&data);
|
||||||
|
utilizeEventData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,6 +112,37 @@ void Relay::parseEvent(Event* d)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Relay::utilizeEventData()
|
||||||
|
{
|
||||||
|
PowerMode pm = POWER_0;
|
||||||
|
/* If setpoint is lower than ext_temp,
|
||||||
|
* none of below checks will pass and function
|
||||||
|
* shall turn OFF the heater.
|
||||||
|
* When setpoint is always higher than ext_temp,
|
||||||
|
* we can use up to three stages determine how
|
||||||
|
* powerful the output of the signal should be.
|
||||||
|
*/
|
||||||
|
int8_t diff = setpoint - ext_temp;
|
||||||
|
|
||||||
|
if (diff >= 10)
|
||||||
|
{
|
||||||
|
pm = POWER_3;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (diff >= 5)
|
||||||
|
{
|
||||||
|
pm = POWER_2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (diff >= 1)
|
||||||
|
{
|
||||||
|
pm = POWER_1;
|
||||||
|
}
|
||||||
|
|
||||||
|
setPowerMode(pm);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
void thread_relay(void * pvParams)
|
void thread_relay(void * pvParams)
|
||||||
{
|
{
|
||||||
ThreadCommon::CommonManagers * manager = static_cast<ThreadCommon::CommonManagers*>(pvParams);
|
ThreadCommon::CommonManagers * manager = static_cast<ThreadCommon::CommonManagers*>(pvParams);
|
||||||
|
|||||||
@ -45,6 +45,7 @@ public:
|
|||||||
virtual ~Relay();
|
virtual ~Relay();
|
||||||
void taskFunction();
|
void taskFunction();
|
||||||
void setPowerMode(PowerMode pm);
|
void setPowerMode(PowerMode pm);
|
||||||
|
void utilizeEventData();
|
||||||
private:
|
private:
|
||||||
ThreadCommon::QueueManager* _qm;
|
ThreadCommon::QueueManager* _qm;
|
||||||
RelayDevice relays [2] = {{0, 24, 0},
|
RelayDevice relays [2] = {{0, 24, 0},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user