OK, also sprintf. erscheint nirgendwo, aber sprintf und zwar hier:
void drawDateTime(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) {
now = time(nullptr);
struct tm* timeInfo;
timeInfo = localtime(&now);
char buff[16];
display->setTextAlignment(TEXT_ALIGN_CENTER);
display->setFont(ArialMT_Plain_10);
String date = WDAY_NAMES[timeInfo->tm_wday];
sprintf_P(buff, PSTR("%s, %02d/%02d/%04d"), WDAY_NAMES[timeInfo->tm_wday].c_str(), timeInfo->tm_mday, timeInfo->tm_mon + 1, timeInfo->tm_year + 1900);
display->drawString(64 + x, 5 + y, String(buff));
display->setFont(ArialMT_Plain_24);
sprintf_P(buff, PSTR("%02d:%02d:%02d"), timeInfo->tm_hour, timeInfo->tm_min, timeInfo->tm_sec);
display->drawString(64 + x, 15 + y, String(buff));
display->setTextAlignment(TEXT_ALIGN_LEFT);
}
und hier:
void drawHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state) {
now = time(nullptr);
struct tm* timeInfo;
timeInfo = localtime(&now);
char buff[14];
sprintf_P(buff, PSTR("%02d:%02d"), timeInfo->tm_hour, timeInfo->tm_min);
display->setColor(WHITE);
display->setFont(ArialMT_Plain_10);
display->setTextAlignment(TEXT_ALIGN_LEFT);
display->drawString(0, 54, String(buff));
display->setTextAlignment(TEXT_ALIGN_RIGHT);
String temp = String(currentWeather.temp, 1) + (IS_METRIC ? "°„C" : "°„F");
display->drawString(128, 54, temp);
display->drawHorizontalLine(0, 52, 128);
}
Und was mach ich jetzt? :-*
Also die Werte auf dem OLED werden bei Temperatur, Luftfeuchtigkeit und Luftdruck werden mit einer Stelle nach dem Komma ausgegeben. Mir geht es um die Weitergabe über WiFiClientSecure.h an meinen Webserver. Da kommen bei der Temperatur, Feuchtigkeit und Luftdruck zwei Stellen nach dem Komma an. Aber bei Temperatur und Feuchtigkeit sollen da nur eine Stelle ankommen und bei Luftdruck gar keine.