Visual C++でシリアル通信 |
Microsoft社が無料で配布しているVisual Studio 2010 ,Visual C++を使って、シリアル通信を行うための備忘録です。
VC++から簡単にシリアル通信を実現するクラスが発見できませんでしたので作ってみました。
無保証ですのでご自由にお使いください。
対応しているのはCLR版のフォーム/コンソールアプリです。
Win32版には対応しておりませんのでご了承ください。
[2012/10/16 追記]
VC#やVBで作っても結果は同じでした。
ならばより組みやすいC#で作ればよかったなぁ。
リリース日 | プログラムパッケージ | 更新内容 |
2012/12/22 | MySerial_20121222.zip |
array<Byte>^型での入出力に対応させました。 これでバイナリ通信が可能になっています。 |
2012/7/23 | MySerial_20120723.zip |
コンストラクタで、内部変数のbuffを""で初期化するように改めました。 これで利用する側のプログラムが簡単になると思います。 |
2012/7/6 |
MySerial_20120706.zip
SerialTest4_20120706.zip |
クラスを定義したヘッダと定義ファイル、およびそれを使ったサンプルプログラムの初公開です。 作ってから思ったのですが、C#の方が分かり易いのでシリアル通信クラスライブラリをC#で作ってC++からはそれを利用すればよかったと思いました。。。 まぁ、C++の勉強にはなりましたけど。 |
まずは、ソリューションエクスプローラーからヘッダファイル(.h)と定義ファイル(.cpp)を登録して下さい。 その後、以下に示すサンプルコードにあるように#includeでインクルードして下さい。 クラスのコンストラクタにはCOM番号とボーレート(通信速度)を渡してあげます。 非staticクラスですので多数のCOMポートを開くことができます。 このコードをコンパイルして実行したのが下の画像です。 RS232Cの通信ケーブルを終端で送信端子と受信端子を短絡させていましたので、送り出したデータを自分自身が受信していることが分かります。