private void GetSerialData()
{
if(mySerialPort.ReadByte()==2)//找到帧头,本来想用0X02,
{
byte[] D_Buffer=new byte[9];
mySerialPort.Read(D_Buffer,0,D_Buffer.Length);
byte[] myData=new byte[7];
int ID=D_Buffer[0]; //数据包标识
//如果通过校验和,则将缓冲区数据取出存入相应数据数组中。
if(Check(D_Buffer,D_Buffer[8])==true);
{
switch(ID)
{
case 1:
for(i=1;i<=7;i++)
myData1[i-1]=D_Buffer[i];
break;
case 2:
for(i=1;i<=7;i++)
myData2[i-1]=D_Buffer[i];
break;
case 3:
for(i=1;i<=7;i++)
myData3[i-1]=D_Buffer[i];
break;
}
}
}
}
//校验函数
private bool Check(byte d_Buffer,byte checkSum)
{
byte sum=0;
for (i=1;i<=7;i++)
{
sum+=d_Buffer[i];
}
if(sum==checkSum)//说明校验和通过,返回true。
return true;
else return false;//说明校验和不通过,返回false;
}请问:这种思路有疏漏,或者,有更优的解决方案吗?