Trim float values for MQTT

This commit is contained in:
2022-04-23 13:26:18 +03:00
parent 5c5ef929fa
commit 61c072bbcc
11 changed files with 176 additions and 29 deletions

View File

@@ -24,6 +24,7 @@ void onMqttSubscribe(uint16_t packetId, uint8_t qos);
void onMqttUnsubscribe(uint16_t packetId);
void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total);
void onMqttPublish(uint16_t packetId);
void trim(char *s);
leds bled(LED_B, 300, true);
@@ -277,17 +278,20 @@ void loop() {
// Serial.println("Temp: " + String(temp));
// Serial.println("Hum: " + String(hum));
dtostrf(temp, 6, 1, s);
trim(s);
bled.start();
mqttClient.publish(TOPIC"temp", 1, false, s);
}
if(hum != 0.0f){
dtostrf(hum, 6, 1, s);
trim(s);
mqttClient.publish(TOPIC"hum", 1, false, s);
//sendDataI(msgLight, LightLev);
//minuts = 0;
}
bled.start();
dtostrf(cRun / 60000.0, 6, 1, s);
trim(s);
mqttClient.publish(TOPIC"mins", 1, false, s);
itoa(WiFi.RSSI(), s, 10);
mqttClient.publish(TOPIC"RSSI", 1, false, s);
@@ -461,3 +465,32 @@ void onMqttPublish(uint16_t packetId) {
// Serial.println(packetId);
//g_led.start();
}
void trim(char *s)
{
// удаляем пробелы и табы с начала строки:
int i=0,j;
while((s[i]==' ')||(s[i]=='\t'))
{
i++;
}
if(i>0)
{
for(j=0; j < strlen(s); j++)
{
s[j]=s[j+i];
}
s[j]='\0';
}
// удаляем пробелы и табы с конца строки:
i=strlen(s)-1;
while((s[i]==' ')||(s[i]=='\t'))
{
i--;
}
if(i < (strlen(s)-1))
{
s[i+1]='\0';
}
}