[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
| |
RS232Cで計測器との通信のシーケンスについて
1
:
H8
:2009/10/12(月) 18:09:07
はじめて質問させて頂きます。VC#2005でシリアル通信をしています。
SerialPortクラスを使用しています。
Write()でコマンドを送信後、DataReceivedイベントで、
受信処理をするところは理解できました。
Write()送信後、計測器側からの受信の内容を確認してから、
次のWrite()をしようとしています。
ただ、現状ですと、Write()を実施後、受信イベントが発生するのを
確認できずに、次のWrite()にいってしまいます。
この場合、1回目のWrite()後、受信イベント発生待ちというのは
何かありますでしょうか?
もしよろしければ、ご教授のほどお願い致します。
PC 計測器
(1) Write --------->
(2) Read
(3) <--------- Write
(4) DataReceived
(Read で受信確認)
・ここで、受信を確認できずに、(5)のWriteにいって
しまう。
(5) Write ----------->
2
:
H8
:2009/10/12(月) 20:03:53
自己途中スレです。
SerialPortのDataReceivedイベントを使うと別スレッドでウィンドウが
固まる事はなさそうですが…。
受信イベントで次のシーケンスを判断するという形になる訳ですよね。
従って、DataReceivedイベント内が、swithなり、if/elseで、シーケンスを
進めていくという形式になる!?。
と、なるとデバイス側とのシーケンスがわかりにくくなりそうです。
SerialPortのDataReceiveを使うのでなく、自分で別スレッドを起こして
その中で、通信シーケンスを書いたほうが、わかりやすいですね。
そこで、Write()後、デバイス側からの受信イベントを待つ方法を
調査してみます。(Win32でいうところのWaitFor...があればいいですが。)
もし、ご存知の方がおられましたら、ご教授のほどお願い致します。
3
:
igoten
:2009/10/20(火) 14:53:51
すみません、投稿を見逃してしまいました。
まだ解決出来ていないなら、アドバイスします。
>ただ、現状ですと、Write()を実施後、受信イベントが発生するのを
>確認できずに、次のWrite()にいってしまいます。
Write時にフラグを立てて、測定器からの受信が完了したら、
フラグを下げて、フラグが下がっていたら、
次の送信要求を出すようにしたら良いと思うのですが。
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板