SharpCAT/Serial.cs

89 lines
2.5 KiB
C#
Raw Normal View History

2019-03-06 15:41:51 +01:00
using System;
using System.IO.Ports;
using System.Threading;
namespace SharpCAT
{
public class Serial
{
private SerialPort _serialPort;
public string[] PortNames { get => SerialPort.GetPortNames(); }
public static int[] BaudRates { get; } = new int[] { 1200, 4800, 9600, 19200, 38400 };
public static int[] DataBits { get; } = new int[] { 7, 8 };
public enum Parity
{
Even = System.IO.Ports.Parity.Even,
Mark = System.IO.Ports.Parity.Mark,
None = System.IO.Ports.Parity.None,
Odd = System.IO.Ports.Parity.Odd,
Space = System.IO.Ports.Parity.Space
}
public enum StopBits
{
None = System.IO.Ports.StopBits.None,
One = System.IO.Ports.StopBits.One,
OnePointFive = System.IO.Ports.StopBits.OnePointFive,
Two = System.IO.Ports.StopBits.Two
}
public enum Handshake
{
None = System.IO.Ports.Handshake.None,
RequestToSend = System.IO.Ports.Handshake.RequestToSend,
RequestToSendXOnXOff = System.IO.Ports.Handshake.RequestToSendXOnXOff,
XOnXOff = System.IO.Ports.Handshake.XOnXOff
}
public Serial(string portname, int baudrate, Parity parity, StopBits bits, Handshake handshake)
{
_serialPort = new SerialPort
{
ReadTimeout = 500,
WriteTimeout = 500,
PortName = portname,
BaudRate = baudrate,
Parity = (System.IO.Ports.Parity)parity,
StopBits = (System.IO.Ports.StopBits)bits,
Handshake = (System.IO.Ports.Handshake)handshake
};
_serialPort.DataReceived += new SerialDataReceivedEventHandler(SerialDataReceived);
_serialPort.ErrorReceived += new SerialErrorReceivedEventHandler(SerialErrorReceived);
}
private void SerialErrorReceived(object sender, SerialErrorReceivedEventArgs e)
{
}
private void SerialDataReceived(object sender, SerialDataReceivedEventArgs e)
{
}
public void Read()
{
try
{
string message = _serialPort.ReadLine();
//Console.WriteLine(message);
}
catch (TimeoutException) { }
}
public void GetRXStatus()
{
}
public void GetFreqAndMode()
{
}
}
}