データを送信する
(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