//全局
SerialPort portSMQ = new SerialPort();
//扫描监听 (窗体load事件里面)
portSMQ.DataReceived += new SerialDataReceivedEventHandler(portSMQ_DataReceived);
#region [接收扫描数据]
void portSMQ_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
if (!portSMQ.IsOpen)
{
MessageBox.Show("扫描枪未开启!", "温馨提示");
return;
}
if (portSMQ.BytesToRead > 0)
{
string str911 = string.Empty;
System.Threading.Thread.Sleep(100);
int i = portSMQ.BytesToRead;
byte[] buffer = new byte[i];
portSMQ.Read(buffer, 0, i);
//---------------------------------------------------------------------------------------
byte[] byteArray = buffer;
str911 = Encoding.ASCII.GetString(byteArray, 0, byteArray.Length).Replace("?", "").Replace
("\\", "").Replace("r", "").Replace("n", "");
//---------------------------------------------------------------------------------------
SetValue(txtBarcode, str911);
}
}
#endregion
#region [扫描枪串口连接]
private void openPort()
{
//string portSMQ_name = IniInfo.ReadIni("TagParam", "portSMQ", Application.StartupPath + "\\Config.ini");
//string portSMQ_botelv = IniInfo.ReadIni("TagParam", "btlSMQ", Application.StartupPath + "\\Config.ini");
string portSMQ_name ="COM1";
string portSMQ_botelv ="9600";
portSMQ.Close();
if (!string.IsNullOrEmpty(portSMQ_name) && !string.IsNullOrEmpty(portSMQ_botelv))
{
portSMQ.PortName = portSMQ_name;//串口名
portSMQ.BaudRate = Int32.Parse(portSMQ_botelv);//波特率
portSMQ.DataBits = 8;
portSMQ.StopBits = (StopBits)1;
portSMQ.Parity = Parity.None;
portSMQ.Open();//打开串口
}
else
{
MessageBox.Show("连接失败,请检查...");
}
}
#endregion