私が仕事で使うプログラム言語の1つとして、VisualBasic(.netじゃないやつ)があったりしますが、そのおまけOCX、早い話が使うとプログラムが割と楽になる(←すごく、ではないのがミソ)ツール、の1つとして、シリアル通信用のMSCommコントロールというのがあるのです。
見た目はこんなのです。これだけ見せられてもさっぱり意味不明なこと間違いなし。 シリアル通信っていうのは、今ではほとんどご家庭で使う機会がないかとも思いますが、一番判りやすいものとしては、昔はよくモデムやらターミナルアダプタとPCをつなぐのに使っていたと思います。
双方向通信、つまりはPCからデータを送信することもあるけれど、場合によってはつないだ機械からPCへとデータが戻ってくることもあるわけです。 で、最近、仕事で初めて使う機械がこの接続形式(家庭でこそ今時は他のモノに置き換わってしまっていますが、産業的にはまだまだ現役だったりする接続形式なのです)だったので、結構プログラムに悩んでいました。問い合わせ(送信)の結果(受信)が上手にえられなかったのです。 散々悩んだ後で、1つ気が付いたことがあって、今後再びシリアル通信を使うプログラムなんかやらされた日のために、覚書変わりに書いておこうと思ったのです。 VBというのは開発ツールとしてはとても便利なもので、ステップ実行(書いたコードを1行ずつ、値を確認しながら実行できるのです)ができるのですが、この値の確認が曲者で。 MSCommは受信した結果をInputプロパティに保持しているのですが、この内容は読んだ後消えてしまうのです。冷静に考えてみたら当たり前だったのですが、ステップ実行で値を確認=InputプロパティをRead→本当に使いたい時には内容が既に消えている、という初歩も初歩なことで躓いてしまってました。 単純に考えるとInputプロパティの内容を別変数に保持した後に、その変数の中身を確認すればよかったのですが、多分今度また、シリアル通信系のプログラムを作るときに、きっと同じことをしでかす予感です。 ほえほえ。 PR
Powered by 忍者ブログ
Design by まめの
Copyright © [ webrover.log ] All Rights Reserved. http://quammo.blog.shinobi.jp/ |
∴ カレンダー
∴ 月別アーカイブ
∴ カテゴリー
∴ 最新コメント
∴ 最新トラックバック
∴ アクセス解析
∴ 忍者アナライズ