Merge pull request #63 from vas-dav/unreachable-sensor-60
threads: [#60] display error when temperature is unavailable
This commit is contained in:
commit
2e496a23c9
@ -16,7 +16,9 @@ enum
|
|||||||
CURRENT_TEMP,
|
CURRENT_TEMP,
|
||||||
DESIRED_TEMP,
|
DESIRED_TEMP,
|
||||||
DESIRED_TEMP_F,
|
DESIRED_TEMP_F,
|
||||||
LOADING
|
LOADING,
|
||||||
|
ERROR_SCREEN,
|
||||||
|
DEVICE_CORRUPTED
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char * interface_messages [] =
|
static const char * interface_messages [] =
|
||||||
@ -24,7 +26,9 @@ static const char * interface_messages [] =
|
|||||||
"CURRENT %3d ",
|
"CURRENT %3d ",
|
||||||
"DESIRED %2d ",
|
"DESIRED %2d ",
|
||||||
"DESIRED [%2d] ",
|
"DESIRED [%2d] ",
|
||||||
" Loading... "
|
" Loading... ",
|
||||||
|
" ERROR ",
|
||||||
|
"Device Corrupted"
|
||||||
};
|
};
|
||||||
|
|
||||||
Menu::Menu(ThreadCommon::QueueManager* qm): _qm(qm),
|
Menu::Menu(ThreadCommon::QueueManager* qm): _qm(qm),
|
||||||
@ -58,6 +62,7 @@ Menu::readSetPointFromEEPROM (void)
|
|||||||
|
|
||||||
void Menu::parseEvent (Event *ep)
|
void Menu::parseEvent (Event *ep)
|
||||||
{
|
{
|
||||||
|
EventRawData ext_temp;
|
||||||
switch(ep->getType()/*EventType*/)
|
switch(ep->getType()/*EventType*/)
|
||||||
{
|
{
|
||||||
case Event::Rotary:
|
case Event::Rotary:
|
||||||
@ -86,7 +91,14 @@ void Menu::parseEvent (Event *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->getData());
|
ext_temp = ep->getData();
|
||||||
|
if(ext_temp == -128)
|
||||||
|
{
|
||||||
|
LOG_ERROR("Menu recieved -128 as ext_temp.");
|
||||||
|
this->SetState(&Menu::sErrorView);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
this->ext_temp.setCurrent(ext_temp);
|
||||||
//Refresh the menu screen.
|
//Refresh the menu screen.
|
||||||
this->HandleObj(MenuObjEvent (MenuObjEvent::eRefresh));
|
this->HandleObj(MenuObjEvent (MenuObjEvent::eRefresh));
|
||||||
break;
|
break;
|
||||||
@ -164,6 +176,40 @@ void Menu::sMainView(const MenuObjEvent &e)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Menu::sErrorView(const MenuObjEvent &e)
|
||||||
|
{
|
||||||
|
static char screen_text[64];
|
||||||
|
switch (e.type)
|
||||||
|
{
|
||||||
|
case MenuObjEvent::eFocus:
|
||||||
|
LOG_DEBUG("enter sErrorView");
|
||||||
|
constructUIString(0, interface_messages[ERROR_SCREEN]);
|
||||||
|
constructUIString(1, interface_messages[DEVICE_CORRUPTED]);
|
||||||
|
this->NotifyAndRefreshUI();
|
||||||
|
break;
|
||||||
|
case MenuObjEvent::eUnFocus:
|
||||||
|
LOG_DEBUG("leave sErrorView");
|
||||||
|
memset(screen_text, 0, 64); // Clear screen
|
||||||
|
this->NotifyAndRefreshUI();
|
||||||
|
break;
|
||||||
|
case MenuObjEvent::eRollClockWise:
|
||||||
|
break;
|
||||||
|
case MenuObjEvent::eRollCClockWise:
|
||||||
|
break;
|
||||||
|
case MenuObjEvent::eClick:
|
||||||
|
break;
|
||||||
|
case MenuObjEvent::eRefresh:
|
||||||
|
LOG_DEBUG("refresh sErrorView");
|
||||||
|
if (this->ext_temp.getCurrent() != -128)
|
||||||
|
{
|
||||||
|
this->SetState(&Menu::sInitView);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Menu::sSetPointMod(const MenuObjEvent &e)
|
void Menu::sSetPointMod(const MenuObjEvent &e)
|
||||||
{
|
{
|
||||||
static char screen_text[64];
|
static char screen_text[64];
|
||||||
|
|||||||
@ -35,6 +35,7 @@ private:
|
|||||||
/* States */
|
/* States */
|
||||||
void sInitView(const MenuObjEvent &e);
|
void sInitView(const MenuObjEvent &e);
|
||||||
void sMainView(const MenuObjEvent &e);
|
void sMainView(const MenuObjEvent &e);
|
||||||
|
void sErrorView(const MenuObjEvent &e);
|
||||||
void sSetPointMod(const MenuObjEvent &e);
|
void sSetPointMod(const MenuObjEvent &e);
|
||||||
/* Methods */
|
/* Methods */
|
||||||
void constructUIString(uint8_t line, const char *fmt, ...);
|
void constructUIString(uint8_t line, const char *fmt, ...);
|
||||||
|
|||||||
@ -16,14 +16,15 @@ Temperature::~Temperature() {}
|
|||||||
void Temperature::taskFunction()
|
void Temperature::taskFunction()
|
||||||
{
|
{
|
||||||
SensorTempTC74 ext_temp_sensor(this->_pi2c, 0x4a);
|
SensorTempTC74 ext_temp_sensor(this->_pi2c, 0x4a);
|
||||||
Event t (Event::ExternalTemp, -10);
|
Event t (Event::ExternalTemp, -128);
|
||||||
int8_t temp_value = -10;
|
int8_t temp_value = -128;
|
||||||
|
_qm->send<Event>(ThreadCommon::QueueManager::master_event_all, &t, 0);
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
if (ext_temp_sensor.is_up())
|
if (ext_temp_sensor.is_up())
|
||||||
temp_value = ext_temp_sensor.getTemperature();
|
temp_value = ext_temp_sensor.getTemperature();
|
||||||
|
|
||||||
if(temp_value == -10)
|
if(temp_value == -128)
|
||||||
{
|
{
|
||||||
LOG_ERROR("Failed to get temperature.");
|
LOG_ERROR("Failed to get temperature.");
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user