###したいこと#######################################################
VB.netのserialport(com)通信を使って、マイコンと通信し、マイコンからの受信データをIF文を使って、判定したいと思っています。
###発生している問題##################################################
受信データが最初の一文字目とその後の文字が途切れ途切れで受信しているため、if文でうまく判定できません。不一致ばかり(elseのみ) ちなみに一文字であれば、判定できます(then)。
###教えてほしいこと##################################################
途切れ途切れに受信しているデータを10文字程度一つの変数に格納できて、If文で判定できるソースコードを教えてください。
また、serialport1.ReadLine()の受信方法もあるようですが、簡単であれば、そちらの
ソースコードも教えて頂ければと思います。(初心者のため、受信部分を全文お願いします)
以上、よろしくお願いします。
###該当のソースコード#################################################
'****** 受信********************************************
Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
'シリアルポートをオープンしていない場合、処理を行わない.
If SerialPort1.IsOpen = False Then
Return
End If
'エラー処理
Try
SetText(SerialPort1.ReadExisting())
Catch ex As Exception
btnClose_Click(Me, e)
End Try
End Sub
Private Sub SetText(ByVal [text] As String) If txtDataReceived.InvokeRequired Then Dim d As New SetTextCallback(AddressOf SetText) Invoke(d, New Object() {[text]})
'追加した判定文 受信データにより、TextBox1の背景色を変える!
'一文字の判定では、問題ないが、二文字以上になると一致しない
If text = "abcdefghjj" Then
TextBox1.BackColor = Color.Blue
Else
TextBox1.BackColor = Color.Red
End If
Else txtDataReceived.AppendText(text) End If End Sub
###試したこと#########################################################
初心者でよくわからず、あまり試していません(途方にくれている)
###補足情報(言語/FW/ツール等のバージョンなど)
ツールはVisual Stasio 2017 の VB.netにネットで見つけた通信ソフトを張り付けて、
検討してみました。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/06 23:31
2017/12/07 01:38