51,396
社区成员




//组包函数,前面加长度,后面加校验码
/// <summary>
/// 组包函数,前面加长度,后面加校验码
/// </summary>
/// <param name="bufSend">传入的指令及</param>
/// <returns>返回组包</returns>
private byte[] PackSendPage(byte[] bufSend)
{
string strLen=bufSend.Length.ToString("000");
byte[] bufTmp=new byte[bufSend.Length ];
byte[] bufPack=new byte[bufSend.Length+5];
byte CheckMac=0;
byte[] bufLen=Encoding.ASCII.GetBytes(strLen);
Array.Copy(bufLen,0,bufPack,0,3);
CheckMac=Convert.ToByte(CheckMac ^ (bufPack[0]));
CheckMac=Convert.ToByte(CheckMac ^ (bufPack[1]));
CheckMac=Convert.ToByte(CheckMac ^ (bufPack[2]));
for(int i=0; i<bufSend.Length; i++)
CheckMac=Convert.ToByte(CheckMac ^ bufSend[i]);
Array.Copy(bufSend,0,bufPack,3,bufSend.Length);
byte[] buf1=new byte[1];
buf1[0]=CheckMac;
byte[] buf2=AsciiBcd.dat_bcdtoasc(buf1,buf1.Length);
Array.Copy(buf2,0,bufPack,3+bufSend.Length,buf2.Length);
return bufPack;
}