Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
シリアルポート通信
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=21786#CommentId58961
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
hori
 (社会人)
投稿日時
2015/4/13 12:56:29
VB2010Exにて、自分の店で使うアプリを趣味半分で作っているのですが
先日シリアルポートで電話番号を通知してくれる機械を買いました。
わからないのでメーカーに問い合わせたら
個別の案件には答えられないと、けんもほろろでしたのでここにおずがり致します。
その機械にはテスト送信の機能があって
通信仕様は
規格:仮想COMポート (僕の環境では "COM3" で間違いないはずです)
同期方式:非同期
通信速度:9600bps
ビット長:7
パリティ:偶数
ストップビット:1
で、テスト送信されるデータは、STX(02H)+21キャラクタ+ETX(03H)、とのことです。
↓
(これはアスキー文字列であり、VBの ReadLine() で読み込む時に
TextBox に表示可能な文字に自動変換されるものと認識していますが
それで間違いないでしょうか?)
そこで、Form に Button を貼り付け以下のようなコードを書きました。
(書いたと言ってもMSフォーラムのコピペですが・・・)
=====================================
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Dim returnStr As String = ""
Dim port As SerialPort = New SerialPort("COM3", 9600, Parity.Even, 7, StopBits.One)
port.Open()
port.ReadTimeout = 10000
Try
Do
Dim Incoming As String = port.ReadLine()
If Incoming Is Nothing Then
Exit Do
Else
returnStr &= Incoming & vbCrLf
End If
Loop
Catch ex As TimeoutException
returnStr = "Error: Serial Port read timed out."
Finally
If port IsNot Nothing Then port.Close()
End Try
MsgBox(returnStr)
End Sub
==============================================
これを実行し、ボタンを押してタイムアウトまでの間に
件の機械をテスト送信させるのですが
"Error: Serial Port read timed out."が表示されます。
コードがおかしいとすればどこがおかしいのでしょうか?
コードに問題がなければ機械側の問題ということでしょうか?
ご教示よろしくお願いいたします。