Не принимает значение топика MQTT
- Войдите на сайт для отправки комментариев
Чт, 14/12/2017 - 22:42
Помогите разобраться. Arduino Mega + W5100. Отправляю топики с сервера, в сериал выводятся только названия, значений нет.
void callback(char* topic, byte* payload, unsigned int length) { { Serial.println (""); Serial.println ("-------"); Serial.println ("New callback of MQTT-broker"); payload[length] = '\0'; String strTopic = String(topic); String strPayload = String((char*)payload); Serial.println(); Serial.print (strTopic); //это выводится в сериал Serial.print (" "); Serial.println (strPayload); // это не выводится Serial.println ("-------"); Serial.println (""); if (strTopic == "zal/ZalSvet/ZalButton") { // состояние кнопки if (strPayload == "0") {ZalButton = 0;} // выкл if (strPayload == "1") {ZalButton = 1;} // вкл if (strPayload == "2") {ZalButton = 2;} // авто }
При компиляции вылазит такой warning:
C:\Users\User\Desktop\arduino\arduino.ino: In function 'void setup()':
C:\Users\User\Desktop\arduino\arduino.ino:169:28: warning: invalid conversion from 'void (*)(char*, byte*, unsigned int) {aka void (*)(char*, unsigned char*, unsigned int)}' to 'void (*)(char*, uint8_t*, uint32_t) {aka void (*)(char*, unsigned char*, long unsigned int)}' [-fpermissive]
client.setCallback(callback); // Устанавливает функцию обратного вызова сообщения
^
In file included from C:\Users\User\Desktop\arduino\arduino.ino:21:0:
C:\Users\User\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:121:18: note: initializing argument 1 of 'PubSubClient& PubSubClient::setCallback(void (*)(char*, uint8_t*, uint32_t))'
PubSubClient& setCallback(MQTT_CALLBACK_SIGNATURE);
^
Так попробуй:
Если тебе надо в строку payload сохранять, то: