Skip to content

Commit

Permalink
Move the conversation from time_t to String into DevInfoParser
Browse files Browse the repository at this point in the history
  • Loading branch information
tbnobody committed Jan 20, 2024
1 parent dcc1572 commit e66060e
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 12 deletions.
10 changes: 9 additions & 1 deletion lib/Hoymiles/src/parser/DevInfoParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,14 @@ time_t DevInfoParser::getFwBuildDateTime() const
return timegm(&timeinfo);
}

String DevInfoParser::getFwBuildDateTimeStr() const
{
char timebuffer[32];
const time_t t = getFwBuildDateTime();
std::strftime(timebuffer, sizeof(timebuffer), "%Y-%m-%d %H:%M:%S", gmtime(&t));
return timebuffer;
}

uint16_t DevInfoParser::getFwBootloaderVersion() const
{
HOY_SEMAPHORE_TAKE();
Expand Down Expand Up @@ -254,4 +262,4 @@ time_t DevInfoParser::timegm(const struct tm* t)
result -= 3600;
/*@ -matchanyintegral @*/
return (result);
}
}
3 changes: 2 additions & 1 deletion lib/Hoymiles/src/parser/DevInfoParser.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class DevInfoParser : public Parser {

uint16_t getFwBuildVersion() const;
time_t getFwBuildDateTime() const;
String getFwBuildDateTimeStr() const;
uint16_t getFwBootloaderVersion() const;

uint32_t getHwPartNumber() const;
Expand All @@ -43,4 +44,4 @@ class DevInfoParser : public Parser {

uint8_t _payloadDevInfoSimple[DEV_INFO_SIZE] = {};
uint8_t _devInfoSimpleLength = 0;
};
};
5 changes: 1 addition & 4 deletions src/MqttHandleInverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,7 @@ void MqttHandleInverterClass::loop()
MqttSettings.publish(subtopic + "/device/fwbuildversion", String(inv->DevInfo()->getFwBuildVersion()));

// Firmware Build DateTime
char timebuffer[32];
const time_t t = inv->DevInfo()->getFwBuildDateTime();
std::strftime(timebuffer, sizeof(timebuffer), "%Y-%m-%d %H:%M:%S", gmtime(&t));
MqttSettings.publish(subtopic + "/device/fwbuilddatetime", String(timebuffer));
MqttSettings.publish(subtopic + "/device/fwbuilddatetime", inv->DevInfo()->getFwBuildDateTimeStr());

// Hardware part number
MqttSettings.publish(subtopic + "/device/hwpartnumber", String(inv->DevInfo()->getHwPartNumber()));
Expand Down
8 changes: 2 additions & 6 deletions src/WebApi_devinfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,9 @@ void WebApiDevInfoClass::onDevInfoStatus(AsyncWebServerRequest* request)
root["hw_version"] = inv->DevInfo()->getHwVersion();
root["hw_model_name"] = inv->DevInfo()->getHwModelName();
root["max_power"] = inv->DevInfo()->getMaxPower();

char timebuffer[32];
const time_t t = inv->DevInfo()->getFwBuildDateTime();
std::strftime(timebuffer, sizeof(timebuffer), "%Y-%m-%d %H:%M:%S", gmtime(&t));
root["fw_build_datetime"] = String(timebuffer);
root["fw_build_datetime"] = inv->DevInfo()->getFwBuildDateTimeStr();
}

response->setLength();
request->send(response);
}
}

0 comments on commit e66060e

Please sign in to comment.