2012-09-12 102 views
2

讨厌发表这个,但我用google搜索了很多不同的选项,但没有成功。Arduino - 解析GET字符串

基本上我想获得一个页面,10个灯的状态,并打开/关闭相应的灯。 Arduino正在获取结果并在串行监视器中发布该字符串,但该字符串不会触发我的if语句。不知道如果我使用错误的函数来解析字符串或我的if语句不正确。

这里是GET,这在串行监控帖(打印readString)的输出:

光线1:1 Light2:0 Light3:0 Light4:0 Light5:0 Light6 :1 Light7:0 Light8:1 Light9:0 Light10:0

这里是我试过的最后一件事在草图中,每个灯都带有if语句:

if (readString.indexOf("Light1:1">0)) 
{ 
    digitalWrite(light1, HIGH); 
} 
else 
{ 
    digitalWrite(light1, LOW); 
} 

您将使用什么函数?我究竟做错了什么? 重构页面的输出也是一种选择。

+1

看起来像一个更简单的格式将只是连续10个1或0 ...这更容易解析(但不太灵活或可扩展)。 – nneonneo

+0

我试着将输出更改为1s和0s。似乎更有效率和灵活性在这里不是问题。我使用readString.substring(1,1)==“1”为每个位置,仍然没有运气。 –

回答

2

可能错字......你已经得到了.indexOf()电话里你的比较。你的意思是

if (readString.indexOf("Light1:1") >= 0) 
+0

Yahtzee! :-)你说得对,我的indexOf语句格式不正确。 –

1

的字符串开始处位置0使用> = 0

+0

,如果找不到,你会得到-1的值。 – ViennaMike

+0

尝试了解决方案,仍然没有运气。 –