arduino => C# の受信をやるとき。
ArduinoとC#でのシリアル通信
Invokeとdelegate
この辺を参考に作っていたんだけど。
動かない!!!!
色々調べると、受信バッファにはデータがたまっているけどイベントが発生していないことが判明。
Invokeとかの問題以前だった。
で、結局、何が悪かったのかというと。
- VisualStduioのIDEでserialPortコンポーネント貼り付けただけじゃだめ。
- 受信イベントをメンバ関数に紐付けてやる必要があった。
こんなこと書いてあるHPひとつも無かった(笑
どうやるかっていうと。
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Console.WriteLine("reved!");
}
こんなイベント受信メソッド書いたとします。
動作は「何か受信したら "reved!" という文字をコンソールに吐き出す」というもの。
これはテンプレ通り。
そうしたら
こんな風にプロパティウインドウから稲妻マーク押して、イベント一覧出す。
そして serialPort1_DataReceived を書いてやらなきゃいけない。
これでイベント発生がメンバ関数に紐づきました。VB6とかで慣れていた自分には盲点でした。
いやはや・・
見付けるきっかけになったのは以下の3つ
- わからん→フテ寝→頭すっきり
- 皆様からの支援で自信がついた
- Visual C# 2005 のシリアル通信機能を使ってみる
睡眠と支援大事だなあ。
.
0 件のコメント:
コメントを投稿