串口编程,数据丢失了??
我发现到了
//\n分隔一下
String[] dataStr = serialTxt.Split('\n');
分隔之后把大部分数据是完整的正确的,但是有时候确部完整.
70个中会有1,2个不完整的数据,我又不想抛弃这部分数据.
我在想是不是我读取数据的时候有问题啊.拉掉了一些数据呢?
大家帮我看看.
================
while (comSurf)
{
if (this.spCOM.IsOpen)
{
byte[] readBuffer = new byte[spCOM.ReadBufferSize];
try
{
//读取数据字节
int count = spCOM.Read(readBuffer, 0, readBuffer.Length);
//累加,怕之前数据读取没完整,不完整的数据留着和后面的追加在一起.
SerialIn += System.Text.Encoding.ASCII.GetString(readBuffer, 0, count);
//转移数据
String serialTxt = "";
//读取正确数据到txt中.
serialTxt = SerialIn.Substring(SerialIn.IndexOf("\r\n") + 1, SerialIn.LastIndexOf("\r\n") - SerialIn.IndexOf("\r\n"));
//正确的数据拿走之后有时候会剩下几个字符.这几个字符要留着与后面的对接成完整数据.
SerialIn = SerialIn.Substring(SerialIn.LastIndexOf("\r\n") + 1);
//\n分隔一下
String[] dataStr = serialTxt.Split('\n');
//具体处理数据.
foreach (String foo in dataStr)
{
//做数据处理.
}
//后面的都是关闭括号了.