ComHelper

作者: psmyfish | 来源:发表于2019-06-03 17:43 被阅读0次
    public class COMHelper
        {
            private static readonly SerialPort comPort = new SerialPort();
    
            private static string portName;
    
            private static bool isCOMOpen = false;
    
            public COMHelper()
            {
            }
    
            public void SendToCOM(int eventTrigger)
            {
                string toSendString = "01 E1 01 00 ";
                toSendString += eventTrigger.ToString("X2");
                byte[] b = HexStringToByteArray(toSendString);
                sendData(b);
            }
    
            public static void SerialPortInit()
            {
                var ports = SerialPort.GetPortNames();
                if (ports.Length == 0) return;
                else
                    portName = ports[0];
                if (isCOMOpen == false)
                {
                    try
                    {
                        comPort.PortName = portName;
                        comPort.BaudRate = 115200;
                        comPort.Parity = Parity.None;
                        comPort.StopBits = StopBits.One;
                        comPort.DataBits = 8;
                        comPort.Handshake = Handshake.None;
                        comPort.RtsEnable = false;
                        comPort.Open();
                        isCOMOpen = true;
                    }
                    catch
                    {
                        // ignored
                    }
                }
                else
                {
                    return;
                }
            }
    
            public static void SerialPortClose()
            {
                isCOMOpen = false;
                comPort.Close();
            }
    
            private byte[] HexStringToByteArray(string s)
            {//16进制字符串转化为字节数组
                s = s.Replace(" ", "");
                byte[] buffer = new byte[s.Length / 2];
                for (int i = 0; i < s.Length; i += 2)
                    buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
                return buffer;
            }
    
            private bool sendData(byte[] sendBuffer)
            {
                if (isCOMOpen == false)
                {
                    return false;
                }
                try
                {
                    comPort.Write(sendBuffer, 0, sendBuffer.Length);
                    comPort.DiscardOutBuffer();
                    return true;
                }
                catch
                {
                    return false;
                }
            }
        }
    

    相关文章

      网友评论

          本文标题:ComHelper

          本文链接:https://www.haomeiwen.com/subject/vnhhxctx.html