110,571
社区成员
发帖
与我相关
我的任务
分享
SerialPort comPort;
comPort = new SerialPort(cmbPort.Text, baudRate, tempParity, dataBits, stopBit);
comPort.DataReceived += new SerialDataReceivedEventHandler(comPort_DataReceived);
/// <summary>
/// 串口接收
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
if (ClosingPort)
return;
byte[] readBuffer = new byte[comPort.ReadBufferSize + 1];
int strLength = comPort.Read(readBuffer, 0, readBuffer.Length);
recCount += strLength;
string msg = "";
msg += recEncode.GetString(readBuffer, 0, strLength);
if (rdoHex.Checked)
msg = BaseHelper.ConvertToHex(msg, recEncode);
if (ckNext.Checked)
msg += "\r\n";
if (ckPauseRec.Checked)//暂停接收
return;
this.Invoke(new MethodInvoker(delegate
{
if (!ckSave.Checked)
txtRec.Text += msg;
tsblRecCount.Text = recCount.ToString();
}));
if (ckSave.Checked)
{
FileStream fs = new FileStream(saveFileName, FileMode.Append);
fs.Write(readBuffer, 0, strLength);
fs.Flush();
fs.Close();
}
}