/// <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()); }
/// <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()); }