[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
| |
デリゲートについて(VB2005)
12
:
こじら
:2009/04/24(金) 21:20:01
今晩は。 有難うございます。分かりやすい例でイメージがつかめました。
所で、話戻ってしまうのかもしれないのですが、RS232CでREADする際の
事で教えて頂きたいのです。先の質問のように複数のボタンでRS232Cにコマンド
を乗せPICを操作し、それに対する値を各コマンドボタンに対するTextBoxに
表示させたいと考えているのですが、デリゲートが理解できてないから
と考えてましたが、それだけではなくSerialPort1_DataReceived のイベント
も考えなくてはならないのではと思ってます。 というのも
Sub ボタン1_click
コマンド1送信 → (PIC実行)
(PIC) → コマンド受信1byte
TextBox1へ表示
end
sub ボタン2_click
コマンド2送信 → (PIC実行)
(PIC) → コマンド受信2byte
TextBox2へ表示
end
sub ボタン3_click
コマンド3送信 → (PIC実行)
(PIC) → コマンド受信(任意
TextBox3へ表示
end
sub SerialPort1_DataReceived
受信処理
end
とした時、 受信は SerialPort1_DataReceived の1箇所で処理され、
受信した値はどのボタンによるものか分からず該当Textboxへの表示指定が
不明になるような気がしてます。
このような時はどのようにすればよいのでしょうか? SerialPort1_DataReceived
処理内で どこからのREAD命令制御なのかを判断させる グローバルな変数
を使う感じになるのでしょうか?
あと、コマンドによっては数バイト受信することもあるのですが、SerialPort1_DataReceived
は1byte毎に処理をしているようで、例えは AAh,5Ah,33hと3byte受信して
strIn += inByte(i).ToString + ","としても これを表記すると 33h,1byte
のみとなっています。
連続取得する事って出来ないのでしょうか? SerialPort1.BytesToRead - 1
で数byteとれるような気がしたのですが。 PICの問題でしょうか?
13
:
igoten
:2009/04/25(土) 13:43:23
>グローバルな変数を使う感じになるのでしょうか?
そういうことですね。
結局送られてくるデータを貯めておいて、更新の度にSelect Case
等で判断する方法が一番簡単かなと思います。
「RS-232C Hex表示モニタの作成 」
http://www.geocities.jp/hatanero/rs232c5.html
を参考にして考えられたらいかがでしょうか。
このプログラムではメインスレッドにあるテキストボックスに
表示させていますが、メインスレッドの中のグローバルな変数に
保持させる様にします。
14
:
<削除>
:<削除>
<削除>
15
:
<削除>
:<削除>
<削除>
16
:
<削除>
:<削除>
<削除>
17
:
<削除>
:<削除>
<削除>
18
:
<削除>
:<削除>
<削除>
19
:
<削除>
:<削除>
<削除>
20
:
<削除>
:<削除>
<削除>
21
:
<削除>
:<削除>
<削除>
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板