os:windows7
環境:delph6
delphiのComPortLibraryを使用し、定期的にバイナリデータを受信するようなものを作っています。
メッセージ送信まではサンプルを参考にし問題ないのですが、
定期的に受信するような仕組みはどのように作ればよいでしょうか。
バイナリデータの受信はReadを使用?定期的な受信はイベントを検知してでしょうか。
簡単なサンプル等があると助かります。
Delphiでシリアル通信を行う方法はいくつかあるのですが
ComPortLibraryは使ったことが無い上、資料が少ないですね。
しかしシリアル通信ライブラリの使い方はおよそ同じと思われます。
受信処理の仕方は「受信イベント」が用意されているはずですので
それを利用します。
注意点としては
受信処理は受信イベント内で行う
ひとつのまとまったパケットが必ず1度に受信されるわけではないので前提で処理する
ぐらいでしょうか?
該当ライブラリを使ったことが無いので直接的なサンプルはかけませんが
文字で書くとこんな感じです。
イベント開始
通知された受信バイト数分ループ
1バイト受信
開始コードの場合
受信バッファを空に
終了コードの場合
受信処理実行
それ以外の場合
受信バッファに追加
ループ終了
イベント終了
ツイート | ![]() |