|  |  | @ -10,8 +10,8 @@ class DisplayMono64X48 : public DisplayMono { | 
			
		
	
		
			
				
					|  |  |  |     public: | 
			
		
	
		
			
				
					|  |  |  |         DisplayMono64X48() : DisplayMono() { | 
			
		
	
		
			
				
					|  |  |  |             mEnPowerSafe = true; | 
			
		
	
		
			
				
					|  |  |  |             mEnScreenSaver = true; | 
			
		
	
		
			
				
					|  |  |  |             mLuminance = 50; | 
			
		
	
		
			
				
					|  |  |  |             mEnScreenSaver = false; | 
			
		
	
		
			
				
					|  |  |  |             mLuminance = 20; | 
			
		
	
		
			
				
					|  |  |  |             mExtra = 0; | 
			
		
	
		
			
				
					|  |  |  |             mDispY = 0; | 
			
		
	
		
			
				
					|  |  |  |             mTimeout = DISP_DEFAULT_TIMEOUT;  // interval at which to power save (milliseconds)
 | 
			
		
	
	
		
			
				
					|  |  | @ -36,8 +36,8 @@ class DisplayMono64X48 : public DisplayMono { | 
			
		
	
		
			
				
					|  |  |  |             mDisplay->setContrast(mLuminance); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             printText("AHOY!", 0); | 
			
		
	
		
			
				
					|  |  |  |             printText("ahoydtu.de", 2); | 
			
		
	
		
			
				
					|  |  |  |             printText(version, 3); | 
			
		
	
		
			
				
					|  |  |  |             printText("ahoydtu.de", 1); | 
			
		
	
		
			
				
					|  |  |  |             printText(version, 2); | 
			
		
	
		
			
				
					|  |  |  |             mDisplay->sendBuffer(); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -77,24 +77,24 @@ class DisplayMono64X48 : public DisplayMono { | 
			
		
	
		
			
				
					|  |  |  |                     mDisplay->setPowerSave(mEnPowerSafe); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             snprintf(mFmtText, DISP_FMT_TEXT_LEN, "today: %4.0f Wh", totalYieldDay); | 
			
		
	
		
			
				
					|  |  |  |             snprintf(mFmtText, DISP_FMT_TEXT_LEN, "D: %4.0f Wh", totalYieldDay); | 
			
		
	
		
			
				
					|  |  |  |             printText(mFmtText, 1); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             snprintf(mFmtText, DISP_FMT_TEXT_LEN, "total: %.1f kWh", totalYieldTotal); | 
			
		
	
		
			
				
					|  |  |  |             snprintf(mFmtText, DISP_FMT_TEXT_LEN, "T: %.1f kWh", totalYieldTotal); | 
			
		
	
		
			
				
					|  |  |  |             printText(mFmtText, 2); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             IPAddress ip = WiFi.localIP(); | 
			
		
	
		
			
				
					|  |  |  |             if (!(mExtra % 10) && (ip)) | 
			
		
	
		
			
				
					|  |  |  |                 printText(ip.toString().c_str(), 3); | 
			
		
	
		
			
				
					|  |  |  |             else if (!(mExtra % 5)) { | 
			
		
	
		
			
				
					|  |  |  |                 snprintf(mFmtText, DISP_FMT_TEXT_LEN, "%d Inverter on", isprod); | 
			
		
	
		
			
				
					|  |  |  |                 snprintf(mFmtText, DISP_FMT_TEXT_LEN, "active Inv: %d", isprod); | 
			
		
	
		
			
				
					|  |  |  |                 printText(mFmtText, 3); | 
			
		
	
		
			
				
					|  |  |  |             } else if (NULL != mUtcTs) | 
			
		
	
		
			
				
					|  |  |  |                 printText(ah::getTimeStr(gTimezone.toLocal(*mUtcTs)).c_str(), 3); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             mDisplay->sendBuffer(); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             mExtra = 1; | 
			
		
	
		
			
				
					|  |  |  |             mExtra++; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     private: | 
			
		
	
	
		
			
				
					|  |  | @ -110,22 +110,25 @@ class DisplayMono64X48 : public DisplayMono { | 
			
		
	
		
			
				
					|  |  |  |         inline void setFont(uint8_t line) { | 
			
		
	
		
			
				
					|  |  |  |             switch (line) { | 
			
		
	
		
			
				
					|  |  |  |                 case 0: | 
			
		
	
		
			
				
					|  |  |  |                     mDisplay->setFont(u8g2_font_logisoso16_tr); | 
			
		
	
		
			
				
					|  |  |  |                     mDisplay->setFont(u8g2_font_fur11_tf); | 
			
		
	
		
			
				
					|  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |                 case 1: | 
			
		
	
		
			
				
					|  |  |  |                 case 2: | 
			
		
	
		
			
				
					|  |  |  |                     mDisplay->setFont(u8g2_font_6x10_tf); | 
			
		
	
		
			
				
					|  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |                 case 3: | 
			
		
	
		
			
				
					|  |  |  |                     mDisplay->setFont(u8g2_font_5x8_tr); | 
			
		
	
		
			
				
					|  |  |  |                     mDisplay->setFont(u8g2_font_4x6_tr); | 
			
		
	
		
			
				
					|  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |                 default: | 
			
		
	
		
			
				
					|  |  |  |                     mDisplay->setFont(u8g2_font_5x8_tr); | 
			
		
	
		
			
				
					|  |  |  |                 case 4: | 
			
		
	
		
			
				
					|  |  |  |                     mDisplay->setFont(u8g2_font_4x6_tr); | 
			
		
	
		
			
				
					|  |  |  |                     break; | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         void printText(const char *text, uint8_t line) { | 
			
		
	
		
			
				
					|  |  |  |             uint8_t dispX = (line == 0) ? 10 : 5; | 
			
		
	
		
			
				
					|  |  |  |             uint8_t dispX = 0; //small display, use all we have
 | 
			
		
	
		
			
				
					|  |  |  |             dispX += (mEnScreenSaver) ? (mExtra % 4) : 0; | 
			
		
	
		
			
				
					|  |  |  |             setFont(line); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             dispX += (mEnScreenSaver) ? (mExtra % 7) : 0; | 
			
		
	
		
			
				
					|  |  |  |             mDisplay->drawStr(dispX, mLineYOffsets[line], text); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | }; | 
			
		
	
	
		
			
				
					|  |  | 
 |