【发布时间】:2018-03-04 03:17:36
【问题描述】:
我正在玩 Arduino,我想比较来自 MQTT 消息的字符串。
这是我捕获传入消息的代码:
void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
int i=0;
for (i=0;i<length;i++) {
Serial.print((char)payload[i]);
}
Serial.println();
Serial.println((char)payload[0]);
if(topic==topic_conmutador){
if(strcmp((char*)(payload[0]), "0")==0)
digitalWrite(built_in_PIN, LOW);
}
}
if(strcmp((char*)(payload[0]), "0")==0){ 行给了我这个错误信息:
error: invalid conversion from 'byte {aka unsigned char}' to 'const char*' [-fpermissive]
我做错了什么?我只想检查传入消息的第一个字符是否为 0。
【问题讨论】:
-
topic==topic_conmutador这是错误的,除非你在比较指针 -
比较一个字节和一个指针是没有意义的。
标签: c++ arduino type-conversion