2012-09-12 103 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

嘗試瞭解決方案,仍然沒有運氣。 –