110,567
社区成员
发帖
与我相关
我的任务
分享
private void SerialPortReadCallBack(IAsyncResult ar)
{
SPortState state = (SPortState)ar.AsyncState;
if ((state.sp == null) || (!state.sp.IsOpen))
return;
int numberOfBytesRead;
// int numberOfBytesRead2;
Stream mas = state.sp.BaseStream;
// string sss2 = state.sp.ReadExisting();
numberOfBytesRead = mas.EndRead(ar);
//string sss = state.sp.ReadExisting();
//state.totalBytesRead += numberOfBytesRead;
if (numberOfBytesRead > 0)
{
string data = string.Empty;
//string data2 = state.sp.ReadLine();
// byte[] dd = new byte[numberOfBytesRead];
//Array.Copy(state.buffer, 0, dd, 0, numberOfBytesRead);
data = String.Concat(data, Encoding.ASCII.GetString(state.buffer, 0, numberOfBytesRead));
this.richTextBox1.SelectionColor = Color.Green;
richTextBox1.AppendText("\r\n报文" + state.sp.PortName + ":" + data);
//richTextBox1.AppendText("\r\n报文" + state.sp.PortName + ":" + sss);
mas.BeginRead(state.buffer, 0, SPortState.BufferSize,
new AsyncCallback(SerialPortReadCallBack), state);
}
}
_SerPort.ReceivedBytesThreshold = 24;