データを送信する
(2016/12/03 0:35:38 created.)
System.IO.Ports.SerialPort クラスでデータを送信するときは Write() メソッドなどを使用します。
Program.cs
namespace Tips_Serial
{
using System;
using System.IO.Ports;
using System.Text;
class Program
{
static void Main(string[] args)
{
using (var serial = new SerialPort()
{
PortName = "COM11",
BaudRate = 9600,
DataBits = 8,
Parity = Parity.None,
StopBits = StopBits.One,
DtrEnable = false,
RtsEnable = false,
ReadBufferSize = 256,
WriteBufferSize = 256,
Encoding = Encoding.GetEncoding("Shift_JIS"),
})
{
try
{
// 受信イベントを購読する
serial.DataReceived += OnReceived;
// ポートオープン
serial.Open();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
Console.WriteLine("{0} ポートを" + (serial.IsOpen ? "開きました。" : "開けませんでした。"), serial.PortName);
}
Console.ReadKey();
}
}
/// <summary>
/// データ受信イベントハンドラ
/// </summary>
/// <param name="sender">イベント発行元</param>
/// <param name="e">イベント引数</param>
private static void OnReceived(object sender, SerialDataReceivedEventArgs e)
{
var serial = sender as SerialPort;
var data = serial.ReadExisting();
Console.WriteLine(data);
// データ送信
serial.Write(data.ToUpper());
}
}
}
上記の例では、受信したデータを元に、英字をすべて大文字にしたデータを Write() メソッドで送信しています。
Tweet