- 締切済み
mscommの受信バッファ異常について
VB6に関する質問です。 以前VB6で制御していた検査設備があり(10年前ほど) 急遽それを動作させることになったのですが、QRリーダ(RS232C信号をcomportで通信) で読み取りを行うと、一度目はうまくいくのですが、 2度目以降は、前回の読み取り対象のQRコードないようが表示される問題が生じて困っています。 プログラムの流れとしては 1.timerでデジタル入出力を監視 2.入力信号が来たらQRリーダに読み取り命令 3.Oncommイベントが発生 4.受信内容をラベルに表示 というものです。 mscommのオブジェクトを新しく作りなおしたり、 リーダを変更したりしましたが、効果がありません。 詳しい方、原因の推測とその対処方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- samtomsan
- ベストアンサー率55% (1060/1897)
忘れてました。 > 4.受信内容をラベルに表示 新しいデータを表示する度にラベルをrefreshしていますか。
- samtomsan
- ベストアンサー率55% (1060/1897)
> 1.timerでデジタル入出力を監視 > 3.Oncommイベントが発生 1だとタイマーを使ったポーリング方式、3だと割り込みを使ったイベント ドリブン方式の様に読み取れ、方式が混在しているような感じですが。 MSComm1.Inputを使った場合、バッファは読み出し後にクリアされますから > 2度目以降は、前回の読み取り対象のQRコードないようが表示される問題 読み出しではなく表示の処理に間違いがある可能性がありますね。 あるいはバッファからの読み出しは別な特殊な方法を取られているのでしょうか。 下記などを参考にしてみてください。 http://support.microsoft.com/kb/411403/ja http://www.picfun.com/serial04.html
- t-aka
- ベストアンサー率36% (114/314)
ソフトに何らかの誤りがあると思われます。 OnCommイベントの記述の中に 「MsComm1.Input」 という記述があるはずです。 この一行により、受信バッファの内容を取り出すことが出来ます。 ここで指定されている変数の内容 たとえば、以下のような記述の場合receiveBufの中身は、 実行後どのようになっているでしょうか。 receiveBuf = MsComm1.Input ここが、読み取った内容と一致しているのであれば ラベルに表示させるまでの処理に不具合があると推測できます。 一方常に同じであるならば、まったく違った原因が考えられます。 (ちょっと思いつかないですが・・・)