Arduino C ++程序在发送" on"后锁定。但不是" off"

时间:2016-01-28 12:34:48

标签: c++ arduino-yun

我有一段发送MQTT消息的代码。

消息是相同的,唯一的变化是改变' on'和'关闭' 我可以随心所欲地结束,但是当我发送' on'它会锁定(即使它是第一条消息)

这是代码

void update_thing(int pin, String thing, String action) {  

  Serial.println(thing + " State Requested to " + action);
  Serial.println(action.c_str());
    if (action == "On") {
      digitalWrite(pin, HIGH);                    // Pin  = 5 V, LED Turns On
    } else {
      digitalWrite(pin, LOW);                     // Pin  = 5 V, LED Turns Off     
    }

  // Generate a new message 
  sprintf(msg, "{\"state\":{\"reported\":{\"%s\": \"%s\"}}}", thing.c_str(), action.c_str());
  if((rc = myClient.publish("$aws/things/myYunLight/shadow/update", msg, strlen(msg), 1, false)) != 0) {
    Serial.println("Publish failed!");
    Serial.println(rc);
  }
}

问题似乎在于msg变量,声明为

char msg[100]; // read-write buffer

,特别是提供给行动的价值(或者即使我将其移除并使用文字'或者'关闭'。如果我使用' on&# 39;(有空格)它工作正常

0 个答案:

没有答案