Psion Teklogix提供的SDK使得使用753x手持设备进行RFID标签的读写变得简单。本文旨在提供一个易于使用的示例,帮助用户快速上手设备。此外,还包含了一个名为PDAFarsiLib的库,用于在设备上正确显示波斯(Farsi)语言文本。更多关于语言库的信息,可以参考Mohamed Abdel-Monem的文章。同时,也可以从制造商那里获得非常全面的技术支持。
要使用Psion Teklogix提供的SDK与设备进行交互,至少需要满足以下前提条件:
安装RfidDeviceManager.cab会在设备上放置所需的库,以便.NET应用程序使用提供的SDK。
使用.NETPtxRfidNet.dll SDK库来对设备进行编程。(注意:如上所述的前提条件步骤中,RfidDeviceManager.cab应该安装在设备上,并且设备上应该存在PtxRfid.dll库。)要使用Psion Teklogix 753x设备读取或写入标签,必须构建一个DeviceInterface实例并选择适当的读取器。
在智能设备项目中,创建一个DeviceInterface类的实例,并使用它来在设备上找到读取器:
DeviceInterface DevInt = new DeviceInterface();
ReaderId[] _readers = DevInt.CreateReader(readerId);
使用上述读取器(_readers)来读取/写入并使用设备。
标签ID以十六进制格式表示,长度应为24个字符。要写入像“absdefg0123456789”这样的十六进制数字,应该将其写入一个长度为12字节的数组,每个字节包含一个四位的十六进制数字。例如:
byte[] bUID = new byte[12];
for (int i = 0, j = 0; i < UID.Length; i = i + 2, j++)
{
bUID[j] = byte.Parse(UID.Substring(i, 2), System.Globalization.NumberStyles.HexNumber);
}
构建一个EpcClass1Gen2标签,并将它的UID设置为上面构建的字节数组:
Tag rfidTag = new Tag(TagType.EpcClass1Gen2);
rfidTag.Uid = new TagUid(bUID, 96);
使用选定读取器的WriteUid API将UID写入标签:
WriteTagUidParams param = new WriteTagUidParams();
_reader.WriteUid(param, rfidTag);
处理AsynchronousDataDelegate事件以读取设备前方的RFID标签。
ReadTagParams t = new ReadTagParams(ReadModes.Triggered, 2000);
_reader.StartAsynchronousRead(t);
_reader.AsynchronousDataEvent += new AsynchronousDataDelegate(reader_AsynchronousDataEvent);
void reader_AsynchronousDataEvent(object source, AsynchronousDataEventArgs e)
{
if (e.tagData.Format == TagDataFormats.UnparsedRaw)
{
foreach (Tag id in e.tagData.TagList)
{
string tagUidStr = "";
foreach (byte tagUid in id.Uid.Data)
{
tagUidStr += string.Format("{0:x2}", tagUid);
}
if (getListBoxItem(lstFoundTags, tagUidStr) < 0)
{
setListBoxItem(lstFoundTags, tagUidStr);
_readCount++;
}
}
}
}