Example #1
0
 /// <summary>
 /// 打开串口
 /// </summary>
 public bool Open()
 {
     if (null == _port)
     {
         _port = new GodSerialPort(this._portName, 115200, Parity.Odd, 8, StopBits.One, Handshake.None);
         _port.UseDataReceived(true, (sp, bytes) =>
         {
             StringBuilder sb = new StringBuilder();
             foreach (var b in bytes)
             {
                 sb.Append($"{b:X2} ");
             }
             Console.WriteLine($"recv data:{sb.ToString()}");
             //如果接受到数据,就提交给接口处理
             _dataRecv = bytes;
             _dataRecvPort?.DealData(bytes);
         });
     }
     if (_port.IsOpen)
     {
         return(true);
     }
     //打开串口,并进行监听
     return(_port.Open());
 }
Example #2
0
        /// <summary>
        /// 打开串口
        /// </summary>
        public bool Open()
        {
            if (null == _port)
            {
                _port = new GodSerialPort(this._portName, this._rate, Parity.Even, 7, StopBits.One, Handshake.None);
                _port.UseDataReceived(true, (sp, bytes) =>
                {
                    StringBuilder sb = new StringBuilder();
                    foreach (var b in bytes)
                    {
                        sb.Append($"{b:X2} ");
                    }
                    Console.WriteLine($"recv data from plc:{sb.ToString()}");
                    //如果接受到数据,就提交给接口处理
                    if (_dataRecv == null)
                    {
                        _dataRecv = bytes;
                    }
                    else
                    {
                        _dataRecv = _dataRecv.Concat(bytes).ToArray();
                        Console.Write($"拼接后数据:");
                        CommandFactory.PrintBytes(_dataRecv);
                    }

                    _dataRecvPort?.DealData(bytes);
                });
            }
            if (_port.IsOpen)
            {
                return(true);
            }
            //打开串口,并进行监听
            return(_port.Open());
        }