ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月28日(日) 06:03

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 2 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2006年1月20日(金) 09:33 
シリアル通信を実現しようとしていて、現在データ送信は完成しました。
しかし、データ受信方法が分かりません。
データはいつやってくるのかが分からないので、
「データ受信したら割り込み(イベント?)ルーチンに入る」という方法がいいかなあ、と考えています。
そこで、ActiveBasicにおいて、
「データ受信したら割り込み(イベント?)ルーチンに入る」方法を教えてください。
もし他に方法があれば教えてください。

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


通報する
ページトップ
   
投稿記事Posted: 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ワードとして、
受信用の文字列バッファに格納していきます。
受信バッファはリングバッファにしておいて、メインスレッドは任意の
タイミングで、新しいワードを受信していれば、順次読み出して処理しています。
受信バッファは、クリティカルセッションとかセマフォとか使わないといけない気もしつつ、不勉強なため放置してますが、、、、、

参考になれば幸いです。


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 2 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Google [Bot] & ゲスト[15人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean