我有一个程序可以毫无问题地编译和闪烁到Photon。它运行良好,直到它向PubNub发布一个字符串。通过更改正在发送的字符串,我得到了不同的结果。
以下示例是相关的:
这有效:
String msg = String(tempc);
client = PubNub.publish(channel, msg);
这有效:
String msg = String("24");
client = PubNub.publish(channel, msg);
这会导致光子崩溃(闪烁红色):
msg = "24.000:145:654"
client = PubNub.publish(channel, msg);
你能否告诉为什么引入分隔符(=, - ,:)会导致光子崩溃。
非常感谢。
答案 0 :(得分:0)
我设法解决了这个问题,但我不确定为什么之前的" msg"构造不起作用(如果有人能为我阐明这一点,我会非常感激)。
这是我用来解决问题的msg结构。它现在是一个对象形式,很容易在Javascript端使用。
char msgChar[150] = "";
String tempstring = "{\"tN\":\"" + oT.f2s(oT.Now()) + "\",\
\"tH\":\"" + oT.f2s(oT.Low()) + "\",\
\"tL\":\"" + oT.f2s(oT.High()) + "\",\
\"hN\":\"" + oH.f2s(oH.Now()) + "\",\
\"hH\":\"" + oH.f2s(oH.Low()) + "\",\
\"hL\":\"" + oH.f2s(oH.High()) + "\",\
\"lN\":\"" + oL.f2s(oL.Now()) + "\",\
\"lH\":\"" + oL.f2s(oL.Low()) + "\",\
\"lL\":\"" + oL.f2s(oL.High()) + "\"}";
tempstring.toCharArray (msgChar, 150);
感谢那些为解决方案做出贡献的人。