通信



.NETの標準にはシリアル通信が無いようですが(!?)、CommBaseと言う準オフィシャルなシリアル通信クラスがあるので、これを使います。


1.入手方法

Visual Studio .NETのヘルプで"CommBase"を検索すると出てきます。英語です。(^^;;;
素直に、ファイルをダウンロードします。

Download the code for this article: NetSerialComm.exe (89KB)

ファイルは自己解凍型のZipファイルで、"NetSerialComm"というフォルダを作成します。
中には、"CommBase.dll"等のライブラリと、サンプルプログラム"BaseTerm"が入っています。


2.BaseTermを組み立てる

サンプルプログラム"BaseTerm"は、プロジェクトになっていないので、まずはこれを組み立ててみます。

1)普通に新しいプロジェクトで、Windowsアプリケーションを開きます。
2)Form1.csが作成されています。ここで、一旦、Visual Studioを終了します。
3)プロジェクトの保存されているフォルダに"BaseTermSource"内のファイルを全て上書き保存します。
4)再びプロジェクトを開き、ファイル→開く→ファイルから先ほどコピーしたファイルを全て開きます。
5)開いたファイルを一つ一つタブを開きながら、ファイル→"~"をプロジェクトに移動で、プロジェクトに登録していきます。
6)不必要なForm1.csをソリューションエクスプローラから、選択、削除します。
7)ソリューションエクスプローラから、参照設定を右クリックで、参照の追加で、"CommBase.dll"を追加して、終了です。


3.BaseTermを実行

Visual Studio上で、実行してエラーが出なければ、プロジェクト化が完了です。
ターミナルソフトとして、接続テストを行ってみて下さい。
ちなみに、キューは待ち行列のこと、イミディエートは即時の意味。


4.サンプルプログラムの説明

1)ファイルの説明
 5つのファイルの内、"BaseTerm.cs"がプログラム本体、"~Form.cs"の3つがフォーム、あとは、"AssemblyInfo.cs"です。

2)CommBaseの説明
 CommBaseには、"CommBase"と"CommLine"の2つの基底クラスがあります。

The first library class, CommBase, makes no assumptions about data formatting and provides facilities for opening and closing the communications port, sending and receiving bytes of data, and interacting with the control inputs and outputs.

The second library class, CommLine, inherits from CommBase and makes two assumptions: that the coding of the bytes sent and received is ASCII and that a reserved ASCII control code will mark the termination of variable-length lines of data, enabling transmission and reception of strings. Of course, this model is extensible; you could write alternative versions of CommLine for Unicode communications, for example.



© Rakuten Group, Inc.
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: