|
分類:[VB6 以前]
お世話になってます。
下記のようなPCのUSB(仮想COM)ポートにつないだUSBマイコンと通信
するプログラムを作りました。
ボタンを押すと通信を開始するのですが、通信完了まではおよそ3秒程度かかります。
その通信中(送信中)に万が一接続が外れたと仮定して通信中にポート
からUSBコネクタを引き抜くとVBがフリーズします。
ステップイン実行で行い、cmdw_Click()内のFor文内をステップイン動作中に
USBを引き抜くとOnComm()イベントに飛び(引き抜かなければForループが終
わるまでOnCommイベントには飛ばない)comEventTxFullに引っかかり、
End Selectの後MSComm1.Outputの部分で8021:アプリケーション定義またはオブジェクト定義のエラーと表示されれます。
そのエラーを無視してステップイン実行を続けると、For文内のMSComm1.Outputの
部分に再度差し掛かった時点でフリーズします。
このフリーズの原因は何か
また、フリーズをうまく回避して送信を中断する方法はないのかをお聞きしたいです
よろしくおねがいします。
'受信イベント発生(受信バッファ1バイト以上)
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
data = data + MSComm1.InBufferCount
Buffer = MSComm1.Input
txBuffer = txBuffer & Buffer
Text2.Text = txBuffer
Case・・・
・
・
Case comEventTxFull
MsgBox "送信バッファがいっぱい", vbCritical
・
・
End Select
End Sub
'テキストデーターeeprom書き込みコマンド
Private Sub cmdw_Click()
dim x as integer
x=0
For c = 1 To 32
MSComm1.Output = x & Chr(13) 'データを書き込むコマンド
x=x+10
Next c
end sub
|