こんにちは、VBはじめたての初心者です。MSCommコマンドを利用して
こんにちは、VBはじめたての初心者です。MSCommコマンドを利用してマイコンと
通信するプログラムを作成中なのですが、わからないことがあるので質問させていただきます。
public aub form_load()
MSComm1.CommPort = 3 'ポート番号設定
MSComm1.Settings = "115200,N,8,1" '設定
MSComm1.PortOpen = True 'ポートオープン
MSComm1.Handshaking = comNone 'フロー制御無し
MSComm1.RTSEnable = False 'RTS制御無し
MSComm1.RThreshold = 1 '1バイト受信毎にOnCommイベント発生
Dim txBuffer As String
End sub
'テキストに表示した受信文字列を変数に格納、さらに必要な文字列だけ抽出する
Private Sub botan_Click()
txBuffer = Text2.Text
x = InStr(1, txBuffer, "e" & vbCrLf, 1)
txBuffer = Mid(txBuffer, x + 3, (Len(txBuffer) - (x + 2)))
Text1.Text = txBuffer 'txBufferの内容確認用
End Sub
Private Sub cmdr_Click()
Text2.Text = ""
MSComm1.Output = "r a0 s 00 j ff" & Chr(13) 'マイコンのデータを読み込むコマンド
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Buffer = MSComm1.Input
Text2.Text = Text2.Text & Buffer
・
・
・
End Select
End Sub
おおざっぱですがこのようなプログラムをつくりました。
目的は受信された文字列(テキストに表示)を変数に格納、さらに必要な文字列だけ抽出する
ことなのですが、このプログラムだとデータを読み込むコマンドを送るボタンとそのデータを
変数に格納して必要な部分を抽出するボタンを二回押さなければならず面倒なので、botan_Click()
の中の命令をそのままcmdr_Click()に入れたのですが、そうするとエラーが出てしまいます。
いろいろと試したのですがどうやらtxBufferの中に受信データが入ってくれないみたいです。
原因は何か。何かいい方法がないかアドバイスいただけたら幸いです。
やりたいことは、一回のボタンクリックで変数に受信データのほしいとこだけを格納させることです。
よろしくお願いします。
お礼
解決しました おあっしゃるとうりInBufferCountプロパティが「0」のままでした これを「1」にしたところ無事に動作するようになりました