Visual Studioを起動し、[ファイル(F)]から[新規作成(N)]-[プロジェクト(P)]を選択します。
[新しいプロジェクトの作成]ダイアログボックスのテンプレートから、[C#]の [Windows フォーム アプリ]を選択し、[次へ(N)]ボタンをクリックします。
[新しいプロジェクトを構成します]ダイアログボックスから、作成するプロジェクトの名前と保存場所を指定し、[次へ(N)]ボタンをクリックします。
[追加情報]ダイアログボックスから、[.NET 8.0(長期的なサポート)]を選択し、[作成(C)]ボタンをクリックすると、プロジェクトが作成されます。
※上記は、Microsoft Visual Studio Professional 2022 (64ビット)の内容です。バージョンにより項目名やコマンド等が異なる場合があります。
シリアル通信を、Visual C#で行う場合、SerialPortクラスを利用する方法があります。
参考:[SerialPortクラス] (外部リンクであるため、予告なくリンクが変更されることがございます)
https://learn.microsoft.com/en-us/dotnet/api/system.io.ports.serialport
Visual C#デフォルト設定では、.NET8のSystem.IO.Portsオブジェクトがプロジェクトに組み込まれていません。
このため、明示的に外部クラスを組み込みます。
Visual Studioのメニューバーから[プロジェクト(P)]を選択し、プルダウンメニューから[NuGet
パッケージの管理(N)...]を選択します。
[NuGetパッケージ マネージャー]から[参照]タブを選択し、参照ボックスに"System.IO.Ports"と入力します。
検索の結果、最上段に表示されるMicrosoft提供の"System.IO.Ports: Provides classes for
controlling serial ports."を選んでインストールします。
Visual Studioの[ソリューション エクスプローラーー]ウィンドウ内のツリービューで、[依存関係/パッケージ]の中に、インストールしたモジュールの有無が確認できます。
上記は、Microsoft Visual Studio Professional
2022 (64ビット)の内容です。バージョンにより項目名やコマンド等が異なる場合があります。
あらかじめご了承願います。
Visual C#でSerialPortクラスを使用するには、System.IO.Ports名前空間をプロジェクト内で使えるようにすることが必要です。
Usingステートメントを利用して、System.IO.Portsパッケージの利用を宣言します。
また、new 宣言を使い、System.IO.Ports.SerialPortのインスタンスを作成例を示します。
詳細はサンプルプログラムのソースコードを参照してください。
プログラム例:
using System.IO.Ports; // Namespace for System.IO.Ports
namespace SerialPort
{
public partial class Form1 : Form
{
・・・・
System.IO.Ports.SerialPort serialPort1 = new System.IO.Ports.SerialPort();
//このサンプルがロードされたときの初期設定はここで行う
private void Form1_Load(object sender, EventArgs e)
{
・・・・
serialPort1.BaudRate = 9600; //ボーレート設定(Setting Baudrate.)
serialPort1.DataBits = 8; //データビット設定(Setting Databits.)
serialPort1.StopBits = StopBits.One; //ストップビット設定(Setting Stopbits.)
serialPort1.Parity = Parity.None; //パリティ設定(Setting Paritybits.)
・・・・
}
・・・・
}
}
System.IO.Ports.SerialPort serialPort1 = new System.IO.Ports.SerialPort(); で宣言したserialPort1は、以下のような記述でSerialPortクラスのイベントの処理ができます。
まずは、serialPort1.DataReceived
+= new SerialDataReceivedEventHandler(serialPort1_DataReceived);
で、serialPort1のDataReceivedイベントを利用する宣言します。
そして、serialPort1_DataReceived()に、必要なイベント処理プログラムを追記します。
詳細はサンプルプログラムのソースコードを参照してください。
プログラム例:
using System.IO.Ports; // Namespace for System.IO.Ports
namespace SerialPort
{
public partial class Form1 : Form
{
System.IO.Ports.SerialPort serialPort1 = new System.IO.Ports.SerialPort();
//このサンプルがロードされたときの初期設定はここで行う
private void Form1_Load(object sender, EventArgs e)
{
serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
・・・・
}
'受信したとき起動するメンバ
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
・・・・
}
}
}
一般的に、Visual Studio設定「構成マネージャー」ウィンドウ内の「アクティブ ソリューション プラットフォーム(P)」項目で、"Any CPU"を指定してビルドしたEXEアプリケーションは、64ビットOS環境でも、32ビットOS環境でも実行することができます。
しかしながら、.NET8フレームワーク対応のEXEアプリケーションを開発する場合は、ターゲットOSを意識する必要があります。
詳細は、FAQ「.NET 8以降の.NETの実行環境」を参照してください。