我正在为摩托罗拉 MC9190 RFID 手持阅读器开发一个应用程序。
我需要在 UHF RFID 标签中读取和写入人类可读的信息。所以我决定用 ASCII 字符写信息。
在做一些研究时,我发现可以在 RFID 标签内存中写入 ASCII 字符,但它支持的字符较少。我不会介意,直到它少于 10 个字符。
参考:
http://blog.atlasrfidstore.com/types-of-memory-in-gen-2-uhf-rfid-tags
现在,我有点困惑如何直接在阅读器中读写 ASCII 字符。
这是用十六进制字符编写的代码。
private void writeButton_Click(object sender, EventArgs e)
{
string dataToWrite="ABCDEF9876";
Symbol.RFID3.TagAccess.WriteAccessParams m_WriteParams;
m_WriteParams.AccessPassword = 0;
m_WriteParams.MemoryBank = MEMORY_BANK.MEMORY_BANK_USER;
m_WriteParams.ByteOffset = 0;
m_WriteParams.WriteDataLength = 6;
byte[] writeData = new byte[m_WriteParams.WriteDataLength];
for (int index = 0; index < m_WriteParams.WriteDataLength; index += 2)
{
writeData[index] = byte.Parse(dataToWrite.Substring(index * 2, 2),
System.Globalization.NumberStyles.HexNumber);
writeData[index + 1] = byte.Parse(dataToWrite.Substring((index + 1) * 2, 2),
System.Globalization.NumberStyles.HexNumber);
}
m_WriteParams.WriteData = writeData;
string m_SelectedTagID = "0123456789ABCDEF"; //for example
RunWriteOperation(m_SelectedTagID,m_WriteParams);
}
void RunWriteOperation(string m_SelectedTagID,Symbol.RFID3.TagAccess.WriteAccessParams m_WriteParams)
{
if (m_SelectedTagID != String.Empty)
{
m_ReaderAPI.Actions.TagAccess.WriteWait(m_SelectedTagID,m_WriteParams, null);
}
}
如果我想用 ASCII 写,我猜它应该被编码为 ASCII 字节。所以不是for循环,如果我替换下面的代码,会写成功吗?
string dataToWrite="HELLOWORLD";
byte[] writeData = ASCIIEncoding.ASCII.GetBytes(dataToWrite);
由于我没有阅读器,所以我现在无法测试。
如果成功,在读取标签时,如何将阅读器配置为解码为 ASCII 字符并显示它,还是需要以编程方式转换?
由于我是 RFID 技术的新手,我不确定我是否正确地完成了研究。如果我错了,请纠正我。