c#中编码与数据类型的转换
Encoding:字节编码类
Convert:基本数据类型转换成类
BitConverter:字节数组转换
(一)读写标签的使用。
1.ReadTag函数
语法:ReadTag(IntPtr hCom,byte memBank,byte address,byte length,byte[] data,byte readerAddr)
功能说明:读取标签内容,通常在主从模式使用。可以读取EPC的四个区。
返回值:成功时返回true,失败时返回false。
参数:
hCom:串口句柄。
memBank:要读取的区域(保留区0x00;EPC区0x01;TID0x02,用户区0x03)
address:要读区域中的地址,范围0-7。
length:要读取的长度,1-8
data:接收数据的变量地址。
readerAddr:读取地址,一台主机接多台读头时使用,接单台读头时置为0。
2.IdentitySingleTag函数
语法:IdentitySingleTag(IntPtr hCom,byte[] tagld,byte[] antennaNo,byte readerAddr)
功能说明:识别单个标签,通常在主从模式下使用。只能读取EPC区的标签ID号。
返回值:成功时返回true,失败时返回false。
参数:
hCom:串口句柄。
tagld:接收标签ID的数组地址(输出参数),长度12。
antennaNo:接收天线号的变量地址(输出参数)。不需要时置为NULL。
readerAddr:读头地址,一台主机接多台读头时使用,接单台读头时置为0。
//接收标签ID的数组地址(输出参数),长度为12
byte[] tagID = new byte[12];
//接收天线号的变量地址(输出参数)。不需要时置为NULL。
byte[] antennaNo = new byte[1];
if (EPCSDKHelper.IdentifySingleTag(_handle, tagID, antennaNo, 0))
{
//拼接字符串
this.lstSingleTagInfo.Items.Add(string.Format("当前模式:主从模式;接收标签ID:{0};接收天线号:{1};", ConvertHelper.ByteArrayToHexString(tagID), ConvertHelper.ByteArrayToHexString(antennaNo)));
//设置显示最后一行
this.lstSingleTagInfo.SetSelected(this.lstSingleTagInfo.Items.Count - 1, true);
}
写:
3.WriteTagSingLeWord函数:
语法:WriteTagSingLeWord(intPtr hCom,byte memBank,byte address,byte data1,byte data2,byte readerAddr)
功能说明:向标签写入1个字的内容。
参数:
hCom:串口句柄。
memBank:要写的区域。
address:要写区域中的地址,范围0-7(memBank为EPC区时,0、1不可取)
data1:要写入内容的第1个字节。
data2:要写入内容的第2个字节。
readerAddr:读头地址,一台主机接多台读头时使用,接单台读头时置为0。
4.FastWriteTagID函数:
语法:FastWriteTagID(intPtr hCom,int bytesNum,byte[] bytes,byte readerAddr)
功能说明:快写EPC区ID号(标签号码)。
参数:
hCom:串口句柄。
bytesNum:要写入内容的字节数,必须为2、4、6、8、10或12。
bytes:要写入的内容。
readerAddr:读头地址,一台主机接多台读头时使用,接单台读头时置为0。
//获取数据
byte[] bytData = Encoding.Default.GetBytes(txtFastWriteTagIDContent.Text);
if ((bytData.Length % 2) != 0)
{
MessageBox.Show("请输入4、8、12、16、20、24位16进制!", "QQ492384481");
return;
}
//写入TID
if (EPCSDKHelper.FastWriteTagID(_handle, bytData.Length, bytData, 0))
{
MessageBox.Show("快写成功", "QQ492384481");
}
else
{
MessageBox.Show("快写失败", "QQ492384481");
}
5.FastWriteTag函数:
语法:FastWriteTag(intPtr hCom,byte memBank,byte address,byte wordCount,byte data,byte readerAddr)
功能说明:快写标签。可以写保留区、EPC区和数据区。
参数:
hCom:串口句柄。
memBank:要写的区域。
address:要写区域中的地址。
wordCount:要写入内容的长度。
data:要写入的内容。
readerAddr:读头地址,一台主机接多台读头时使用,接单台读头时置为0。
byte[] bytContent = Encoding.Default.GetBytes(this.txtPwd.Text);
//快写
if (EPCSDKHelper.FastWriteTag(_handle, 0x00, 2, 2, bytContent, 0))
this.lblMsg.Text = "密码设置成功";
else
this.lblMsg.Text = "密码设置失败";