これは非常にシンプルであるべきだと私は考えていますが、私の脳はなぜ機能していないのかを突き止めました。私はArduinoを使ってシリアルポートに "O"と "C"を送ります。私は "O"が送られるときにsubを実行したい、そして "C"が送られるときにもう一つのsubを実行したい。私は、「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
私はその文字列を取ることができると私は望んでいたサブルーチンを実行することが期待しましたdata = "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
単純な文字列の比較は機能しません。何か助けてくれてありがとう。
'data'が複数の文字で構成されているかどうかを確認してください。末尾の空白や印字不能な文字がある場合は、テストケースの 'MessageBox'に表示する際に気付かないでしょう。 – Blackwood
私はそれをするとは思わなかった。私はこのSubの最後に停止を追加し、地元の人を見ました。データには "O"&vbCrがありました。私は&vbCrが現在何を意味するのかを知る必要がありますが、私はこれを私のコードに行いました。 – Sloan
ます。Private Sub SerialPort1_DataReceived(オブジェクトとして送信者、IO.Ports.SerialDataReceivedEventArgsとして、e)は文字列= SerialPort1.ReadLine() のSelect Caseデータ ケース "O" としてSerialPort1.DataReceived 点心データを処理&vbCr オープン() ケース」 C "&vbCr close() End Select End Sub – Sloan