mDisplayData.RadioRSSI=(0<mDisplayData.nrProducing)?0:SCHAR_MIN;// Workaround as NRF24 has no RSSI. Could be approximated by transmisson error heuristic in the future
mDisplayData.RadioRSSI=(0<mDisplayData.nrProducing)?ivQuality2RadioRSSI(minQAllInv):SCHAR_MIN;// Workaround as NRF24 has no RSSI. Approximation by quality levels from heuristic function
@ -34,36 +29,25 @@ class DisplayMono84X48 : public DisplayMono {
mDisplay->sendBuffer();
mDisplay->sendBuffer();
}
}
voidloop(uint8_tlum){
if(mEnPowerSave){
if(mTimeout!=0)
mTimeout--;
}
if(mLuminance!=lum){
mLuminance=lum;
mDisplay->setContrast(mLuminance);
}
}
voiddisp(void){
voiddisp(void){
// Test
mDisplay->clearBuffer();
// Layout-Test
/*
/*
mDisplayData->nrSleeping=10;
mDisplayData->nrSleeping=0;
mDisplayData->nrProducing=10;
mDisplayData->nrProducing=1;
mDisplayData->totalPower=12345.67;
mDisplayData->totalPower=12345.67;
mDisplayData->totalYieldDay=12345.67;
mDisplayData->totalYieldDay=12345.67;
mDisplayData->totalYieldTotal=1234;
mDisplayData->totalYieldTotal=1234;
mDisplayData->utcTs+=1000000;
mDisplayData->utcTs+=1000000;
mDisplay->drawPixel(0,0);
mDisplay->drawPixel(mDispWidth-1,0);
mDisplay->drawPixel(0,mDispHeight-1);
mDisplay->drawPixel(mDispWidth-1,mDispHeight-1);
*/
*/
mDisplay->clearBuffer();
// print total power
// print total power
if(mDisplayData->nrProducing>0){
if(mDisplayData->nrProducing>0){
mTimeout=DISP_DEFAULT_TIMEOUT;
mDisplay->setPowerSave(false);
if(mDisplayData->totalPower>9999)
if(mDisplayData->totalPower>9999)
snprintf(mFmtText,DISP_FMT_TEXT_LEN,"%.2fkW",(mDisplayData->totalPower/1000));// forgo spacing between value and SI unit in favor of second position after decimal point
snprintf(mFmtText,DISP_FMT_TEXT_LEN,"%.2fkW",(mDisplayData->totalPower/1000));// forgo spacing between value and SI unit in favor of second position after decimal point
elseif(mDisplayData->totalPower>999)
elseif(mDisplayData->totalPower>999)
@ -74,9 +58,6 @@ class DisplayMono84X48 : public DisplayMono {
printText(mFmtText,l_TotalPower,0xff);
printText(mFmtText,l_TotalPower,0xff);
}else{
}else{
printText("offline",l_TotalPower,0xff);
printText("offline",l_TotalPower,0xff);
// check if it's time to enter power saving mode
if(mTimeout==0)
mDisplay->setPowerSave(mEnPowerSave);
}
}
// print Date and time
// print Date and time
@ -91,14 +72,15 @@ class DisplayMono84X48 : public DisplayMono {