Merge pull request #44 from vas-dav/handle-setpoint-43

Handle setpoint 43
This commit is contained in:
Vasily Davydov 2023-05-15 12:47:23 +03:00 committed by GitHub
commit 7f9d6bd5d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 5 deletions

View File

@ -19,6 +19,7 @@ set_point_text("CURRENT %3d DESIRED[%3d] ")
this->SetState(&Menu::sInitView); this->SetState(&Menu::sInitView);
ext_temp.setCurrent(0); ext_temp.setCurrent(0);
set_point.setCurrent(0); set_point.setCurrent(0);
readSetPointFromEEPROM();
} }
Menu::~Menu() Menu::~Menu()
@ -26,6 +27,17 @@ Menu::~Menu()
LOG_DEBUG("Deleting Menu"); LOG_DEBUG("Deleting Menu");
} }
void
Menu::readSetPointFromEEPROM (void)
{
EventRawData *data = (EventRawData *)eeprom.read_from (EEPROM_START_ADDR,
sizeof(EventRawData));
if ((*data) > 0 && (*data) < 120)
{
set_point.setCurrent(*data);
}
}
void Menu::HandleEventPair (Event::EventPair *ep) void Menu::HandleEventPair (Event::EventPair *ep)
{ {
switch(ep->et/*EventType*/) switch(ep->et/*EventType*/)
@ -135,6 +147,8 @@ void Menu::sMainView(const MenuObjEvent &e)
void Menu::sSetPointMod(const MenuObjEvent &e) void Menu::sSetPointMod(const MenuObjEvent &e)
{ {
static char screen_text[64]; static char screen_text[64];
EventRawData sp;
Event event_sp (Event::EventType::SetPoint, set_point.getCurrent());
switch (e.type) switch (e.type)
{ {
case MenuObjEvent::eFocus: case MenuObjEvent::eFocus:
@ -161,7 +175,15 @@ void Menu::sSetPointMod(const MenuObjEvent &e)
break; break;
case MenuObjEvent::eClick: case MenuObjEvent::eClick:
LOG_DEBUG("click sSetPointMod"); LOG_DEBUG("click sSetPointMod");
sp = set_point.getCurrent();
// Write to EEPROM
eeprom.write_to(EEPROM_START_ADDR, (void*)&sp, sizeof(EventRawData));
event_sp.setDataOf(Event::EventType::SetPoint, sp);
_qm->send<Event>(ThreadCommon::QueueManager::master_event_all, &event_sp, 1);
this->SetState(&Menu::sMainView); this->SetState(&Menu::sMainView);
break; break;
case MenuObjEvent::eRefresh: case MenuObjEvent::eRefresh:
LOG_DEBUG("refresh sSetPointMod"); LOG_DEBUG("refresh sSetPointMod");

View File

@ -11,6 +11,7 @@
#include "Counter.h" #include "Counter.h"
#include "MenuObjEvent.h" #include "MenuObjEvent.h"
#include "ThreadCommon.h" #include "ThreadCommon.h"
#include "EEPROMio.h"
#include "Event.h" #include "Event.h"
class Menu; class Menu;
@ -29,6 +30,7 @@ private:
p_state current; p_state current;
Counter<EventRawData> ext_temp; Counter<EventRawData> ext_temp;
Counter<EventRawData> set_point; Counter<EventRawData> set_point;
EEPROMio eeprom;
const char main_text[64]; const char main_text[64];
const char set_point_text[64]; const char set_point_text[64];
/* States */ /* States */
@ -39,6 +41,7 @@ private:
void SetState (p_state new_state); void SetState (p_state new_state);
void HandleObj (const MenuObjEvent &event); void HandleObj (const MenuObjEvent &event);
void NotifyAndRefreshUI (const char *str); void NotifyAndRefreshUI (const char *str);
void readSetPointFromEEPROM (void);
}; };
#endif /* THREADS_MANAGER_MENU_H_ */ #endif /* THREADS_MANAGER_MENU_H_ */

View File

@ -92,7 +92,7 @@ void thread_master(void* pvParams) {
ThreadCommon::QueueManager::logging_message_all); ThreadCommon::QueueManager::logging_message_all);
logging_queue = manager->qm->getQueue(ThreadCommon::QueueManager::logging_message_all); logging_queue = manager->qm->getQueue(ThreadCommon::QueueManager::logging_message_all);
manager->tm->createTask(thread_logging, "logging", manager->tm->createTask(thread_logging, "logging",
configMINIMAL_STACK_SIZE * 10,tskIDLE_PRIORITY + 1UL, configMINIMAL_STACK_SIZE * 9,tskIDLE_PRIORITY + 1UL,
static_cast<void*>(manager)); static_cast<void*>(manager));
LOG_INFO("Logging Active"); LOG_INFO("Logging Active");
@ -117,16 +117,16 @@ void thread_master(void* pvParams) {
LOG_INFO("Master is creating tasks"); LOG_INFO("Master is creating tasks");
manager->tm->createTask(thread_manager, "manager", manager->tm->createTask(thread_manager, "manager",
configMINIMAL_STACK_SIZE * 10,tskIDLE_PRIORITY + 1UL, configMINIMAL_STACK_SIZE * 15,tskIDLE_PRIORITY + 1UL,
static_cast<void*>(manager)); static_cast<void*>(manager));
manager->tm->createTask(thread_rotary, "rotary", manager->tm->createTask(thread_rotary, "rotary",
configMINIMAL_STACK_SIZE * 10,tskIDLE_PRIORITY + 1UL, configMINIMAL_STACK_SIZE * 9,tskIDLE_PRIORITY + 1UL,
static_cast<void*>(manager)); static_cast<void*>(manager));
manager->tm->createTask(thread_user_interface, "user_interface", manager->tm->createTask(thread_user_interface, "user_interface",
configMINIMAL_STACK_SIZE * 10,tskIDLE_PRIORITY + 1UL, configMINIMAL_STACK_SIZE * 9,tskIDLE_PRIORITY + 1UL,
static_cast<void*>(manager)); static_cast<void*>(manager));
manager->tm->createTask(thread_relay, "relay", manager->tm->createTask(thread_relay, "relay",
configMINIMAL_STACK_SIZE * 10,tskIDLE_PRIORITY + 1UL, configMINIMAL_STACK_SIZE * 9,tskIDLE_PRIORITY + 1UL,
static_cast<void*>(manager)); static_cast<void*>(manager));
LOG_INFO("Master created tasks"); LOG_INFO("Master created tasks");
m.taskFunction(); m.taskFunction();