void ReaData()
{
while (true)
{
//Thread.Sleep(3);
data = new byte[1024*3];
//data = new byte[1024*2];
int bytes = newclient.Receive(data);
if (bytes <= 0)
break;
string st = HexCon.ByteToString(data);
string t1 = DateTime.Now.ToString("yyyyMMddHHmmss-ffff");
string t2 = "00";
string t3 = "00";
string[] stringSplit = new string[] { "02 80 6E 01 B0 B5 00" };
//string tempData = HexCon.ByteToString(readbytes);
//sw.Write(tempData + "\r\n");
string tempData = st;
// sw.WriteLine(tempData);
string stringTemp = string.Empty;
string stringNext = string.Empty;
int index = tempData.IndexOf("00 00"); //获取有效字符串
if (index > 0)
{
tempData = tempData.Substring(0, index);
}
int exists = tempData.IndexOf("02 80 6E 01 B0 B5 00");
if (exists > 0)//如果有效字符串中有找到的报文头
{
string[] dataArry = tempData.Split(stringSplit, StringSplitOptions.None); //按报文头分割 for (int i = 0; i < dataArry.Length; i++)
{
string sp = dataArry[i].Trim();
if (sp.Length == 1094) //如果字符串长度等于去掉报文头后的1095个字符长度
{
stringTemp = "02 80 6E 01 B0 B5 00 " + sp; //最终一组有效字符串
}
else if (sp.Length < 1094)//如果字符串长度小于去掉报文头后的1095个字符长度则等待第二组数据并取第二组分割后数据的第一个字符串数组
{
//stringNext = "02 80 6E 01 B0 B5 00 " + sp;
if (stringNext != string.Empty)
{
stringTemp = stringNext + " " + sp;
stringNext = string.Empty;
}
} if (stringTemp != string.Empty && stringTemp.Length == 1115)
{
//t2 = DateTime.Now.ToString("yyyyMMddHHmmss-ffff");
//swt.WriteLine(t1 + "," + t2);
RealString = stringTemp;
int[] tmp = new int[181];
tmp = Sick.GetData(RealString);
PerScanData = Sick.GetXY(tmp, Sick.Left_Ang, Sick.Down_Ang, Sick.Sick_Height, Sick.left_Dis);
panel1.Invalidate();
//sw1.WriteLine(stringTemp);
}
} }
}
}
{
while (true)
{
//Thread.Sleep(3);
data = new byte[1024*3];
//data = new byte[1024*2];
int bytes = newclient.Receive(data);
if (bytes <= 0)
break;
string st = HexCon.ByteToString(data);
string t1 = DateTime.Now.ToString("yyyyMMddHHmmss-ffff");
string t2 = "00";
string t3 = "00";
string[] stringSplit = new string[] { "02 80 6E 01 B0 B5 00" };
//string tempData = HexCon.ByteToString(readbytes);
//sw.Write(tempData + "\r\n");
string tempData = st;
// sw.WriteLine(tempData);
string stringTemp = string.Empty;
string stringNext = string.Empty;
int index = tempData.IndexOf("00 00"); //获取有效字符串
if (index > 0)
{
tempData = tempData.Substring(0, index);
}
int exists = tempData.IndexOf("02 80 6E 01 B0 B5 00");
if (exists > 0)//如果有效字符串中有找到的报文头
{
string[] dataArry = tempData.Split(stringSplit, StringSplitOptions.None); //按报文头分割 for (int i = 0; i < dataArry.Length; i++)
{
string sp = dataArry[i].Trim();
if (sp.Length == 1094) //如果字符串长度等于去掉报文头后的1095个字符长度
{
stringTemp = "02 80 6E 01 B0 B5 00 " + sp; //最终一组有效字符串
}
else if (sp.Length < 1094)//如果字符串长度小于去掉报文头后的1095个字符长度则等待第二组数据并取第二组分割后数据的第一个字符串数组
{
//stringNext = "02 80 6E 01 B0 B5 00 " + sp;
if (stringNext != string.Empty)
{
stringTemp = stringNext + " " + sp;
stringNext = string.Empty;
}
} if (stringTemp != string.Empty && stringTemp.Length == 1115)
{
//t2 = DateTime.Now.ToString("yyyyMMddHHmmss-ffff");
//swt.WriteLine(t1 + "," + t2);
RealString = stringTemp;
int[] tmp = new int[181];
tmp = Sick.GetData(RealString);
PerScanData = Sick.GetXY(tmp, Sick.Left_Ang, Sick.Down_Ang, Sick.Sick_Height, Sick.left_Dis);
panel1.Invalidate();
//sw1.WriteLine(stringTemp);
}
} }
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货