110,552
社区成员
发帖
与我相关
我的任务
分享
public class MyPort
{
/// <summary>
/// 设置串口参数
/// </summary>
/// <returns></returns>
public static void SetPortParameter(SerialPort port)
{
try
{
port.PortName = Common.ReadXml(Names.COM, true);
port.BaudRate = Convert.ToInt32(Common.ReadXml(Names.BAUDRATE,true));
port.DataBits = Convert.ToInt32(Common.ReadXml(Names.DATABITS, true));
port.Parity = ConvertParity(Common.ReadXml(Names.PARITY, true));
port.StopBits = ConvertStopBits(Common.ReadXml(Names.STOPBITS, true));
port.ReadBufferSize = 1024;
port.WriteBufferSize = 512;
port.ReceivedBytesThreshold = 1;
}
catch
{
Common.WriteLog("串口初始化出现异常,配置有问题");
}
}
/// <summary>
/// 打开串口
/// </summary>
/// <returns></returns>
public static bool OpenPort(SerialPort port)
{
try
{
if (!port.IsOpen)
{
port.Open();
}
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 转换为奇偶校验
/// </summary>
/// <param name="parity"></param>
/// <returns></returns>
public static Parity ConvertParity(string parity)
{
switch (parity)
{
case "None":
return Parity.None;
case "Odd":
return Parity.Odd;
case "Even":
return Parity.Even;
case "Mark":
return Parity.Mark;
case "Space":
return Parity.Space;
default:
return Parity.None;
}
}
/// <summary>
/// 停止位
/// </summary>
/// <param name="stopbits"></param>
/// <returns></returns>
public static StopBits ConvertStopBits(string stopbits)
{
switch (stopbits)
{
case "1":
return StopBits.One;
case "1.5":
return StopBits.OnePointFive;
case "2":
return StopBits.Two;
default:
return StopBits.One;
}
}
/// <summary>
/// 计算机仪表发送信息
/// </summary>
/// <param name="sendByteDate">信息内容</param>
/// <param name="port">串口对象</param>
/// <returns></returns>
public static bool SendCommand(byte[] sendByteDate,SerialPort port)
{
try
{
port.Write(sendByteDate, 0, sendByteDate.Length);
Thread.Sleep(20);
return true;
}
catch
{
Common.WriteLog("向仪表发送信息时发生错误");
return false;
}
}