RS232CでAPIのCreateFileとWriteFileとReadFileで重量計測機器よりデータを
読み取る処理をしていますが、読み取ることはできるのですが、
なぜか、ReadFileの読み込みバッファがクリアされていなく、
送信コマンドと同期がとれていません。クリアのAPI(PurgeComm)をかましても
クリアされません。事象としては最初の送信で何も受信できず、
2回目の送信で1回目の送信結果を受信する形になってしまいます。
なぜでしょうか?困りました。送信前にバッファをクリアして
送信後に、同期がとれたデータを受信できるようにできませんか?
このような事象があり、解決した人などいませんでしょうか?
よろしくお願いします。
これだけではどこがおかしいか判断するのは難しいですね。
ところで、MSCommなる優秀なコントロールが有るのに
使わない理由は何か有るのでしょうか。
とりあえず、一秒待つようにしてみるのがいいかと思いますよ。
TA側の反応を一秒待つのは重要です。
(よくわかっていませんけど)
SetCommTimeoutsでタイムアウトの設定はしていますか?
してなかったら、とりあえずしてみるとか・・・。
返り値とエラーコード(GetLastError の返り値。VBから使用する場合は、Err.LastDLLError を参照する)のチェックはきちんと行っていますか?
ツイート | ![]() |