Refactor client version string generation in MQTTBridge

This commit is contained in:
agessaman committed 2026-01-02 13:36:41 -08:00
1 parent 8b4c1bed4a
commit a3875d8727
2 files changed
+23 -6

No files matched your search

+14 -6
View File
@@ -684,7 +684,7 @@ bool MQTTBridge::publishStatus() {
// Build client version string
char client_version[64];
snprintf(client_version, sizeof(client_version), "meshcore/%s", _firmware_version);
getClientVersion(client_version, sizeof(client_version));
// Collect stats on-demand if sources are available
int battery_mv = -1;
@@ -1110,7 +1110,7 @@ bool MQTTBridge::createAuthToken() {
// Build client version string (same format as used in status messages)
char client_version[64];
snprintf(client_version, sizeof(client_version), "meshcore/%s", _firmware_version);
getClientVersion(client_version, sizeof(client_version));
// Get email from preferences (if set)
const char* email = nullptr;
@@ -1374,7 +1374,7 @@ void MQTTBridge::publishStatusToAnalyzerClient(PsychicMqttClient* client, const
// Build client version string
char client_version[64];
snprintf(client_version, sizeof(client_version), "meshcore/%s", _firmware_version);
getClientVersion(client_version, sizeof(client_version));
// Collect stats on-demand if sources are available
int battery_mv = -1;
@@ -1488,7 +1488,7 @@ void MQTTBridge::maintainAnalyzerConnections() {
// Build client version string (same format as used in status messages)
char client_version[64];
snprintf(client_version, sizeof(client_version), "meshcore/%s", _firmware_version);
getClientVersion(client_version, sizeof(client_version));
// Get email from preferences (if set)
const char* email = nullptr;
@@ -1577,9 +1577,9 @@ void MQTTBridge::maintainAnalyzerConnections() {
owner_key = owner_key_uppercase;
}
// Build client version string (same format as used in status messages)
// Build client version string
char client_version[64];
snprintf(client_version, sizeof(client_version), "meshcore/%s", _firmware_version);
getClientVersion(client_version, sizeof(client_version));
// Get email from preferences (if set)
const char* email = nullptr;
@@ -1878,6 +1878,14 @@ Timezone* MQTTBridge::createTimezoneFromString(const char* tz_string) {
}
}
void MQTTBridge::getClientVersion(char* buffer, size_t buffer_size) const {
if (!buffer || buffer_size == 0) {
return;
}
// Generate client version string in format "meshcore/{firmware_version}"
snprintf(buffer, buffer_size, "meshcore/%s", _firmware_version);
}
void MQTTBridge::logMemoryStatus() {
MQTT_DEBUG_PRINTLN("=== Memory Status ===");
MQTT_DEBUG_PRINTLN("Free heap: %d bytes", ESP.getFreeHeap());
+9
View File
@@ -362,6 +362,15 @@ public:
mesh::MainBoard* board, mesh::MillisecondClock* ms);
private:
/**
* Generate client version string in format "meshcore/{firmware_version}"
* Memory-efficient: writes to provided buffer, no dynamic allocation
*
* @param buffer Buffer to write the client version string to
* @param buffer_size Size of the buffer (must be at least 64 bytes)
*/
void getClientVersion(char* buffer, size_t buffer_size) const;
/**
* Log memory status for debugging
*/