求教超高频RFID读写器读写电子标签?

求教超高频RFID读写器读写电子标签?,第1张

ReadData_G2 ():G2读取数据命令

功能描述:

这个命令读取标签的整个或部分保留区、EPC存储器、TID存储器或用户存储器中的数据。从指定的地址开始读,以字为单位。

应用:

long  WINAPI ReadData_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned charEnum,unsigned char Mem, unsigned char WordPtr, unsigned char Num,unsigned char* Password,unsigned char MaskMem,unsigned char *MaskAdr, unsigned char MaskLen,unsigned char*MaskData, unsigned char * Data ,unsigned char * errorcode,longFrmHandle)

参数:

ComAdr:输入变量,读写器地址。

EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号。

Enum:在(0x00~0x0F)范围内表示EPC号长度,以字为单位。EPC的长度在15个字以内。此时不掩码。ENum为0xFF时掩码。如果为其它值将返回参数错误信息。

Mem:输入变量,一个字节。选择要读取的存储区。

0x00: 保留区;

0x01:EPC存储器;

0x02:TID存储器;

0x03:用户存储器。

其他值保留。若命令中出现了其它值,将返回参数出错的消息。

WordPtr:输入变量,一个字节。指定要读取的字起始地址。0x00 表示从第一个字(第一个16位存储体)开始读,0x01表示从第2个字开始读,依次类推。

Num:输入变量,一个字节。要读取的字的个数。不能设置为0x00,将返回参数错误信息。Num不能超过120,即最多读取120个字。若Num设置为0或者超过了120,将返回参数出错的消息。

Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。

MaskMem:输入变量,一个字节,掩码区。0x01:EPC存储区;0x02:TID存储区;0x03:用户存储区。

MaskAdr:输入数组,2个字节,掩码的起始位地址(单位:Bits)。范围0~16383。

MaskLen:一个字节,掩码的位长度(单位:Bits)。

MaskData:输入数组,掩码数据。MaskData数据字节长度是MaskLen/8。如果MaskLen不是8的整数倍,则MaskData数据字节长度为[MaskLen/8]取整再加1。不够的在低位补0

Data:指向输出数组变量(输出的是每字节都转化为字符的数据),是从标签中读取的数据。

Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。

FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以 *** 作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。

返回:

如果该函数调用成功,返回一个零值,读到的数据在Data中。

否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。

3.2.3) WriteData_G2():G2写命令

功能描述:

这个命令可以一次性往保留内存、EPC存储器、TID存储器或用户存储器中写入若干个字。

应用:

long  WINAPI WriteData_G2(unsigned char *ComAdr, unsigned char * EPC, unsigned charWnum, unsigned char Enum,unsigned char Mem, unsigned char WordPtr,unsigned char*Writedata,unsigned char * Password, unsigned char MaskMem,unsignedchar*MaskAdr,unsigned char MaskLen,unsigned char * MaskData,unsigned char *errorcode,long FrmHandle)

参数:

ComAdr:输入变量,读写器地址。

EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号。

Wnum:输入变量,待写入的字个数,一个字为2个字节。这里字的个数必须和实际待写入的数据个数相等。

Enum:在(0x00~0x0F)范围内表示EPC号长度,以字为单位。EPC的长度在15个字以内。此时不掩码。ENum为0xFF时掩码。如果为其它值将返回参数错误信息。

Mem:输入变量,一个字节。选择要读取的存储区。

0x00: 保留区;

0x01:EPC存储器;

0x02:TID存储器;

0x03:用户存储器。

其他值保留。若命令中出现了其它值,将返回参数出错的消息。

WordPtr:输入变量,一个字节。指定要写入的字起始地址。指定要写入数据的起始地址。如果写的是EPC区,则会忽略这个起始地址。EPC区总是规定从EPC区0x02地址(EPC号的第一个字节)开始写。

Writedata:指向输入数组变量(输入的是每字节都转化为字符的数据)。待写入的字。这是要写入到存储区的数据。比如,WordPtr等于0x02,则输出变量Data中第一个字(从左边起)写在Mem指定的存储区的地址0x02中,第二个字写在0x03中,依次类推。

Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。

MaskMem:输入变量,一个字节,掩码区。0x01:EPC存储区;0x02:TID存储区;0x03:用户存储区。

MaskAdr:输入数组,2个字节,掩码的起始位地址(单位:Bits)。范围0~16383。

MaskLen:一个字节,掩码的位长度(单位:Bits)。

MaskData:输入数组,掩码数据。MaskData数据字节长度是MaskLen/8。如果MaskLen不是8的整数倍,则MaskData数据字节长度为[MaskLen/8]取整再加1。不够的在低位补0

Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。

FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以 *** 作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。

返回:

如果该函数调用成功,返回一个零值,完全写入。

否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。

以上是需要dll支持的

数据块写 *** 作

选择标签(图3-1中1),选择存储区(图3-1中2,只有EPC区和用户区可以写入数据),填写起始地址和读取长度(图3-1中3),注: 起始地址:0x00 表示从第一个字(相应存储区第一个16位)开始读,0x01表示从第2个字开始读,依次类推。读长度:要读取的字的个数。不能为0x00,不能超过120,即最多读取120个字。若设置为0或者超过了120,将返回参数出错的消息。访问密码:从左到右为从高位到低位,2字的访问密码的最高位在第一字,如果电子标签没有设置访问密码,则访问密码部分可以为任意值,但不能缺失。填写需要写入的数据(图3-1中4),点击写(图3-1中5),左下角看到“写数据”按钮执行成功,点击“读”按钮则右边框中显示读取到的数据(图3-1中6 ),点击“清除显示”即可清空数据显示区内容。

图3-1

你是想问如何通过读写器获取标签的epc还是tid,一般读写器读出来的都是epc,不过由于读写器厂商的不同 *** 作程序也不同,一般来说通过读写器自带程序读取标签得到的一串16进制码就是epc。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11149177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存