2008年4月15日火曜日

VC#2005/2008 シリアルポートを使用する

VC#2005/2008 シリアルポートを使用する

ボタン1を押すと、listBox1に全ポート名、listBox2に使用可能なポート名を表示します。

[ツールボックス]->[コンポーネント]->[SerialPort]を貼り付けて、以下のソースを使用します。
//------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports; // シリアルポート

namespace at3200
{
public partial class Form1 : Form
{
SerialPort port; // シリアルポート宣言

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear(); // リスト1初期化
foreach (string name in SerialPort.GetPortNames())
{
listBox1.Items.Add(name); // ポート名を追加する
}

listBox2.Items.Clear(); // リスト2初期化
for (int ii = 0; ii < listBox1.Items.Count; ii++)
{
string name = ""; // ポート名初期化
try
{
name = listBox1.Items[ii].ToString(); // ポート名取得
port = new SerialPort(name);
port.Open(); // ポートオープン
}
catch (System.Exception err)
{
System.Console.WriteLine(err.Message);
name = ""; // ポート名消す
}
finally
{
port.Close(); // ポートクローズ
if (name.CompareTo("") != 0)
{
listBox2.Items.Add(name); // ポート名追加
}
}
}
}
}
}
//------------------------------------------------------------

0 件のコメント: