OLED Display dims after 1 minute of no keyboard action. Keypress restores brightness for another minute.
Allows for user defined interval, if zero display will not dim (user adjustment to be implemented)
This commit is contained in:
parent
54fa331d23
commit
e5db792179
|
@ -95,6 +95,7 @@ CScreenManager::CScreenManager()
|
||||||
_pDisplay = NULL;
|
_pDisplay = NULL;
|
||||||
_currentScreen = -1;
|
_currentScreen = -1;
|
||||||
_bReqUpdate = false;
|
_bReqUpdate = false;
|
||||||
|
_DimTime = millis() + 60000;
|
||||||
}
|
}
|
||||||
|
|
||||||
CScreenManager::~CScreenManager()
|
CScreenManager::~CScreenManager()
|
||||||
|
@ -150,6 +151,15 @@ CScreenManager::begin()
|
||||||
bool
|
bool
|
||||||
CScreenManager::checkUpdate()
|
CScreenManager::checkUpdate()
|
||||||
{
|
{
|
||||||
|
if(_DimTime) {
|
||||||
|
long tDelta = millis() - _DimTime;
|
||||||
|
if(tDelta > 0) {
|
||||||
|
if(NVstore.getDimTime())
|
||||||
|
_pDisplay->dim(true);
|
||||||
|
_DimTime = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(_bReqUpdate) {
|
if(_bReqUpdate) {
|
||||||
if(_currentScreen >= 0) {
|
if(_currentScreen >= 0) {
|
||||||
_Screens[_currentScreen]->show();
|
_Screens[_currentScreen]->show();
|
||||||
|
@ -216,6 +226,10 @@ CScreenManager::keyHandler(uint8_t event)
|
||||||
{
|
{
|
||||||
if(_currentScreen >= 0)
|
if(_currentScreen >= 0)
|
||||||
_Screens[_currentScreen]->keyHandler(event);
|
_Screens[_currentScreen]->keyHandler(event);
|
||||||
|
|
||||||
|
if(_DimTime == 0)
|
||||||
|
_pDisplay->dim(false);
|
||||||
|
_DimTime = millis() + NVstore.getDimTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ class CScreenManager {
|
||||||
std::vector<CScreen*> _Screens;
|
std::vector<CScreen*> _Screens;
|
||||||
C128x64_OLED* _pDisplay;
|
C128x64_OLED* _pDisplay;
|
||||||
int _currentScreen;
|
int _currentScreen;
|
||||||
|
unsigned long _DimTime;
|
||||||
bool _bReqUpdate;
|
bool _bReqUpdate;
|
||||||
void _switchScreen();
|
void _switchScreen();
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -34,6 +34,7 @@ sNVStore::valid()
|
||||||
retval &= (timer[i].stop.min >= 0 && timer[i].stop.min < 60);
|
retval &= (timer[i].stop.min >= 0 && timer[i].stop.min < 60);
|
||||||
retval &= timer[i].repeat < 2;
|
retval &= timer[i].repeat < 2;
|
||||||
}
|
}
|
||||||
|
retval &= (DimTime >= 0) && (DimTime < 300000); // 5 mins
|
||||||
retval &= Heater.Pmin < 100;
|
retval &= Heater.Pmin < 100;
|
||||||
retval &= Heater.Pmax < 150;
|
retval &= Heater.Pmax < 150;
|
||||||
retval &= Heater.Fmin < 5000;
|
retval &= Heater.Fmin < 5000;
|
||||||
|
@ -54,6 +55,7 @@ sNVStore::init()
|
||||||
timer[i].enabled = 0;
|
timer[i].enabled = 0;
|
||||||
timer[i].repeat = 0;
|
timer[i].repeat = 0;
|
||||||
}
|
}
|
||||||
|
DimTime = 60000; // 1 minute
|
||||||
Heater.Pmin = 14;
|
Heater.Pmin = 14;
|
||||||
Heater.Pmax = 45;
|
Heater.Pmax = 45;
|
||||||
Heater.Fmin = 1500;
|
Heater.Fmin = 1500;
|
||||||
|
@ -162,7 +164,17 @@ CHeaterStorage::setTimerInfo(int idx, const sTimer& timerInfo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned long
|
||||||
|
CHeaterStorage::getDimTime()
|
||||||
|
{
|
||||||
|
return _calValues.DimTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CHeaterStorage::setDimTime(unsigned long val)
|
||||||
|
{
|
||||||
|
_calValues.DimTime = val;
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
// ESP32
|
// ESP32
|
||||||
|
|
|
@ -64,6 +64,7 @@ struct sTimer {
|
||||||
// the actual data stored to NV memory
|
// the actual data stored to NV memory
|
||||||
struct sNVStore {
|
struct sNVStore {
|
||||||
sHeater Heater;
|
sHeater Heater;
|
||||||
|
long DimTime;
|
||||||
sTimer timer[2];
|
sTimer timer[2];
|
||||||
bool valid();
|
bool valid();
|
||||||
void init();
|
void init();
|
||||||
|
@ -100,6 +101,7 @@ public:
|
||||||
unsigned short getFmax();
|
unsigned short getFmax();
|
||||||
unsigned char getDesiredTemperature();
|
unsigned char getDesiredTemperature();
|
||||||
unsigned char getThermostatMode();
|
unsigned char getThermostatMode();
|
||||||
|
unsigned long getDimTime();
|
||||||
|
|
||||||
void setPmin(float);
|
void setPmin(float);
|
||||||
void setPmax(float);
|
void setPmax(float);
|
||||||
|
@ -107,6 +109,7 @@ public:
|
||||||
void setFmax(unsigned short val);
|
void setFmax(unsigned short val);
|
||||||
void setDesiredTemperature(unsigned char val);
|
void setDesiredTemperature(unsigned char val);
|
||||||
void setThermostatMode(unsigned char val);
|
void setThermostatMode(unsigned char val);
|
||||||
|
void setDimTime(unsigned long val);
|
||||||
|
|
||||||
void getTimerInfo(int idx, sTimer& timerInfo);
|
void getTimerInfo(int idx, sTimer& timerInfo);
|
||||||
void setTimerInfo(int idx, const sTimer& timerInfo);
|
void setTimerInfo(int idx, const sTimer& timerInfo);
|
||||||
|
|
Loading…
Reference in a new issue