Приведение от 'char*' к 'char' теряет точность
Здесь немного нуб. Я пытаюсь использовать номер датчика (с плавающей запятой) в своей теме mqtt, но, похоже, не могу понять это правильно. Любая помощь будет оценена по достоинству. Продолжайте получать эту ошибку (приведение от 'char*' к 'char' теряет точность)
char buffer2[5];
dtostrf(sensor.sensor_no, 4, 2, buffer2);
char* buffer4 = mqtt_topic + char(buffer2);
dtostrf(sensor.dht22_t,0, 0, buffer);
client.publish(buffer4, buffer); //Название темы
@Pieter Janse van Rensburg, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ 1
Складывая строки вместе, вы фактически складываете адреса в памяти, где находятся эти строки.
Вместо этого вам нужно создать новый пустой буфер и заполнить его содержимым других строк.
char buffer4[32]; // <-- Достаточно места для обеих строк и символа NULL
strcpy(buffer4, mqtt_topic); // Копируем первую строку
strcat(buffer4, buffer2); // объединяем вторую строку
,
@Majenko
Ааа. Большое спасибо, @Pieter Janse van Rensburg
Смотрите также:
- Как подключиться к MQTT брокеру с помощью TLS?
- Преобразование byte* в int в Arduino
- esp32-cam публикует изображение в mqtt
- ESP8266 глубокий сон и MQTT
- ESP-01 неправильно просыпается после глубокого сна
- Публиковать данные json в mqtt
- Не удалось подключиться к брокеру MQTT через esp8266/32 и pub/sub client
- ESP8266 не может подключиться к брокеру MQTT
Вы не можете добавлять такие строки в C. Создайте новый пустой буфер, затем используйте strcpy() и strcat(), чтобы заполнить его данными., @Majenko