1.实体协议
public class RfidPacket
{
public Int16 BinNumber { get; set; }
public float BoxWeight { get; set; }
public byte BoxType { get; set; }
public string BatchNo32 { get; set; } //32 length
}
2.实体转换字节数组发送
public static byte[] ConvertTo(RfidPacket packet)
{
List<byte> byteSource = new List<byte>();
by));
by));
by);
by(32, '0')));
return by();
}
3.接收字节数据转换实体
public static RfidPacket ConvertFrom(byte[] sourceBytes)
{
return new RfidPacket()
{
BinNumber = Bi(0).Take(2).ToArray(), 0),
BoxWeight = Bi(2).Take(4).ToArray(), 0),
BoxType = sourceBytes[6],
BatchNo32 = Encoding.ASCII.GetString(7).Take(32).ToArray()).TrimStart('0')
};
}
4.C#数据类型字节占用
byte -> Sy (字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255)
sbyte -> Sy (带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127)
Char -> Sy (字符型,占有两个字节,表示 1 个 Unicode 字符)
short -> Sy (短整型,占 2 字节,表示 16 位整数,范围 -32,768 ~ 32,767)
ushort -> Sy (无符号短整型,占 2 字节,表示 16 位正整数,范围 0 ~ 65,535)
uint -> Sy (无符号整型,占 4 字节,表示 32 位正整数,范围 0 ~ 4,294,967,295)
int -> Sy (整型,占 4 字节,表示 32 位整数,范围 -2,147,483,648 到 ,147,483,647)
float -> Sy (单精度浮点型,占 4 个字节)
ulong -> Sy (无符号长整型,占 8 字节,表示 64 位正整数,范围 0 ~ 大约 10 的20 次方)
long -> Sy (长整型,占 8 字节,表示 64 位整数,范围大约 -(10 的 19) 次方 到 10 的 19 次方)
Double -> Sy (双精度浮点型,占8 个字节)