Visual C++でシリアル通信

森下功啓製作所 ONLINE

Microsoft社が無料で配布しているVisual Studio 2010 ,Visual C++を使って、シリアル通信を行うための備忘録です。


Visual C++でシリアル通信を行うクラス

使用言語:Visual C++ 2010 pro
開発環境:Windows 7 pro (64bit)

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の通信ケーブルを終端で送信端子と受信端子を短絡させていましたので、送り出したデータを自分自身が受信していることが分かります。

サンプルコード
図 サンプルコード
コメントの一部の日本語が変ですがスルーしてくださいw。

実行結果
図 実行結果

参考文献

なし
inserted by FC2 system