我相信這應該非常簡單,但是我已經絞盡腦汁,爲什麼它不起作用。我正在使用Arduino向串行端口發送「O」和「C」。我想在發送「O」時執行一個子操作,而在發送「C」時執行另一個子操作。我可以用這個確認「O」和「C」被髮送,並且是字符串:比較串行輸入以執行操作
Private Sub SerialPort1_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim data As String = SerialPort1.ReadLine()
MessageBox.Show(data)
MessageBox.Show(data.GetType.ToString)
End Sub
我希望能夠利用該字符串和運行,我想子程序,基於數據是否爲「O」或「C」。但我不能夠做到這一點所有..我不能得到這個工作(這個問題是一些與選擇-case語句):
Private Sub SerialPort1_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim data As String = SerialPort1.ReadLine()
Select Case data
Case "O"
open()
Case "C"
close()
End Select
End Sub
我不理解爲什麼簡單的字符串比較不起作用。感謝您的幫助。
檢查「數據」是否包含多個單個字符。如果它有一個尾隨空白或一個不可打印的字符,當你將它顯示在你的測試用例的'MessageBox'中時,你不會注意到它。 – Blackwood
好的。我沒有想到要那樣做。我在這個Sub的結尾加了一個停止符號,並觀看了當地人。它具有「O」&vbCr數據。我必須瞭解vbCr現在的含義,但是我對代碼做了這些,現在它可以工作。 – Sloan
私人小組SerialPort1_DataReceived(發送者爲對象,例如作爲IO.Ports.SerialDataReceivedEventArgs)處理SerialPort1.DataReceived 昏暗數據作爲字符串= SerialPort1.ReadLine() 選擇案例數據 案例 「O」 &VBCR 打開() 案「 C「&vbCr close() End Select End Sub – Sloan