シリアル通信時のデータ受信方法

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: シリアル通信時のデータ受信方法

Re: シリアル通信時のデータ受信方法

by ゲスト » 2006年2月05日(日) 15:01

もう見てないかも知れませんが、、、、、

受信用のタイマー、もしくはスレッドを作って、
その中で常時読み出しを行えばいいと思います。

コード: 全て選択


    Dim rChr As Byte
    Dim rLen As Long
    Dim dummy As Long

    While 1
        '1文字受信
        dummy = ReadFile(hComm, rChr, 1, VarPtr(rLen), ByVal 0)	
        If rLen > 0 Then  'なんか受信してれば 
         以下、文字読み出しの処理
                  ・
                  ・
                  ・
                  ・

      End If
        Wend
1文字づつ受信してますが、私が以前作ったソフトの都合ですので、
その辺は適当に。。。。

わたしもAB初心者なので、偉そうな事書けませんが、
参考までに私のソフトの流れを書くと、
特定の文字(ETX)を受信したら1ワードとして、
受信用の文字列バッファに格納していきます。
受信バッファはリングバッファにしておいて、メインスレッドは任意の
タイミングで、新しいワードを受信していれば、順次読み出して処理しています。
受信バッファは、クリティカルセッションとかセマフォとか使わないといけない気もしつつ、不勉強なため放置してますが、、、、、

参考になれば幸いです。

シリアル通信時のデータ受信方法

by goro » 2006年1月20日(金) 09:33

シリアル通信を実現しようとしていて、現在データ送信は完成しました。
しかし、データ受信方法が分かりません。
データはいつやってくるのかが分からないので、
「データ受信したら割り込み(イベント?)ルーチンに入る」という方法がいいかなあ、と考えています。
そこで、ActiveBasicにおいて、
「データ受信したら割り込み(イベント?)ルーチンに入る」方法を教えてください。
もし他に方法があれば教えてください。

すみませんがよろしくご教授お願いいたします。

ページトップ