シリアル通信をするには


みっく  2015-10-25 20:53:56  No: 47714

os:windows7
環境:delph6
delphiのComPortLibraryを使用し、定期的にバイナリデータを受信するようなものを作っています。
メッセージ送信まではサンプルを参考にし問題ないのですが、
定期的に受信するような仕組みはどのように作ればよいでしょうか。
バイナリデータの受信はReadを使用?定期的な受信はイベントを検知してでしょうか。
簡単なサンプル等があると助かります。


take  2015-10-27 19:01:32  No: 47715

Delphiでシリアル通信を行う方法はいくつかあるのですが
ComPortLibraryは使ったことが無い上、資料が少ないですね。

しかしシリアル通信ライブラリの使い方はおよそ同じと思われます。
受信処理の仕方は「受信イベント」が用意されているはずですので
それを利用します。

注意点としては
受信処理は受信イベント内で行う
ひとつのまとまったパケットが必ず1度に受信されるわけではないので前提で処理する
ぐらいでしょうか?

該当ライブラリを使ったことが無いので直接的なサンプルはかけませんが
文字で書くとこんな感じです。

イベント開始
  通知された受信バイト数分ループ
      1バイト受信
      開始コードの場合
          受信バッファを空に
      終了コードの場合
          受信処理実行
      それ以外の場合
          受信バッファに追加
  ループ終了
イベント終了


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加