private SerialPort _serialPort = null;
string _qrCode = string.Empty;
private void InitQrIOPort()
{
try
{
_serialPort = new SerialPort();
//设置参数
_serialPort.PortName = "COM2";
_serialPort.BaudRate = 9600;
_serialPort.DataBits = 8;
_serialPort.StopBits = StopBits.One;
_serialPort.Parity = Parity.None;
_serialPort.ReadTimeout = 3000;
_serialPort.WriteTimeout = 3000;
_serialPort.DataReceived += new
SerialDataReceivedEventHandler(CommDataReceived);
_serialPort.ReceivedBytesThreshold = 1;
_serialPort.Open();
}
catch (Exception ex)
{
_syncContext.Post(ShowErrTip, "初始化串口失败");
LogHelper.logger.Error(ex);
}
}
public void CommDataReceived(Object sender, SerialDataReceivedEventArgs e)
{
try
{
if (!IsOrderedSign && !IsSearchInfo) return;
lock (_qrCode)
{
_qrCode += _serialPort.ReadExisting();
}
}
catch (Exception ex)
{
LogHelper.logger.Error(ex);
}
}
private void timer_QrCode_Tick(object sender, EventArgs e)
{
try
{
lock (_qrCode)
{
if ( !_qrCode.EndsWith("\r")) return;
_qrCode = _qrCode.TrimEnd('\r');
//使用_qrCode
_qrCode = string.Empty;
}
}
catch (Exception ex)
{
LogHelper.logger.Error(ex);
}
}