UHFREADER06.DLL动态连接库
使用手册V1.6
11.
操作系统:
12.
函数详单:
12.1)通用函数:
22.2)EPCC1-G2
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
函数:
32.3)18000-6B 协议函数:
43.
函数的描述:
43.1)通用函数:
43.1.1) AutoOpenComPort():自动连接串口
53.1.2) OpenComPort():连接到指定串口
63.1.3) CloseComPort():关闭串口连接
63.1.4) CloseSpecComPort():关闭指定串口
73.1.5)GetReaderInformation():获得读写器的信息
73.1.6) WriteComAdr():写入读写器地址
83.1.7) WriteScanTime():设置询查命令最大响应时间
83.1.8) SetPowerDbm ():设置读写器功率
93.1.9) Writedfre ():设置读写器工作频率
93.1.10) Writebaud ():设置串口波特率
103.1.11) SetWGParameter():设置韦根参数
103.1.12) SetWorkMode():设置工作模式
113.1.13) GetWorkModeParameter ():读取工作模式参数
113.1.14) ReadActiveModeData ():读取主动模式数据-
123.1.15) OpenNetPort():连接网口
123.1.16) CloseNetPort():关闭网口
133.2) EPCC1-G2 协议函数:
133.2.1) Inventory_G2 ():G2询查命令
133.2.2) ReadCard_G2 ():G2读取数据命令
143.2.3) WriteCard_G2 ():G2写命令
163.2.4) EraseCard_G2 ():G2块擦除命令
173.2.5) SetCardProtect_G2 ():G2设定存储区读写保护状态命令
183.2.6) DestroyCard_G2 ():G2销毁标签命令
193.2.7) WriteEPC_G2 ():G2写EPC号命令
193.2.8) SetReadProtect_G2 ():G2单张读保护设置命令
203.2.9) SetMultiReadProtect_G2 ():G2多张读保护设置命令
213.2.10) RemoveReadProtect_G2 ():G2解锁读保护命令
213.2.11) CheckReadProtected_G2 ():G2测试标签是否被读保护命令
223.2.12) SetEASAlarm_G2 ():G2 EAS报警设置命令
223.2.13) CheckEASAlarm_G2 ():G2 EAS报警探测命令
233.2.14) LockUserBlock_G2 ():G2 user区块锁命令(永久锁定)
243.2.15) WriteBlock_G2 ():G2块写命令
253.3) 18000-6B 协议函数:
253.3.1) Inventory_6B ():6B寻查命令(单张)
253.3.2) Inventory2_6B ():6B按条件寻查电子标签命令
263.3.3) ReadCard_6B ():6B读数据命令
273.3.4) WriteCard_6B ():6B写数据命令
273.3.5) CheckLock_6B ():6B锁定检测命令
283.3.6) LockByte_6B ():6B锁定命令
294.
其他返回值定义
315.
错误代码定义
上位机应用程序通过UHFREADER06.DLL操作EPCC1-G2、18000-6B格式电子标签读写器。
1. 操作系统:
WINDOWS 2000/XP
2. 函数详单:
UHFREADER06.DLL包括了如下的操作函数:
2.1)通用函数:
1)long WINAPI AutoOpenComPort(long Port, unsigned char *ComAdr, unsigned char Baud ,long FrmHandle);
2)long WINAPI OpenComPort(long Port, unsigned char *ComAdr, unsigned char Baud,long FrmHandle);
3)long WINAPI CloseComPort(void);
4)long WINAPI CloseSpecComPort(long FrmHandle);
5)long WINAPI GetReaderInformation(unsigned char *ComAdr, unsigned char *VersionInfo, unsigned char *ReaderType, unsigned char *TrType,unsigned char * dmaxfre , unsigned char *dminfre, unsigned char *powerdBm,unsigned char *ScanTime, long FrmHandle);
6)long WINAPI WriteComAdr(unsigned char *ComAdr, unsigned char *ComAdrData, long FrmHandle);
7)long
WINAPI WriteScanTime(unsigned char *ComAdr, unsigned char *ScanTime, long FrmHandle);
8)long WINAPI SetPowerDbm (unsigned char *ComAdr, unsigned char powerDbm, long FrmHandle);
9)long WINAPI Writedfre (unsigned char *ComAdr, unsigned char * dmaxfre, unsigned char * dminfre,long FrmHandle);
10)long WINAPI Writebaud (unsigned char *ComAdr, unsigned char * baud, long FrmHandle);
11)long WINAPI SetWGParameter(unsigned char *ComAdr, unsigned char Wg_mode,unsigned char Wg_Data_Inteval,unsigned char Wg_Pulse_Width, unsigned char Wg_Pulse_Inteval,long FrmHandle);
12)long WINAPI SetWorkMode(unsigned char *ComAdr, unsigned char * Parameter, long FrmHandle);
13)long WINAPI GetWorkModeParameter (unsigned char *ComAdr, unsigned char * Parameter, long FrmHandle);
14)long WINAPI ReadActiveModeData (unsigned char *ActiveModeData, unsigned char * Datalength, long FrmHandle);
15)long WINAPI OpenNetPort (int Port, LPSTR IPaddr, ,unsigned char *ComAdr, long FrmHandle);
16)long WINAPI CloseNetPort (long FrmHandle);
2.2)EPCC1-G2 协议函数:
1)long WINAPI Inventory_G2 (unsigned char *ComAdr, unsigned char AdrTID, unsigned char LenTID,unsigned char TIDFlag, unsigned char * EPClenandEPC, long * Totallen, long *CardNum,long FrmHandle);
2)long WINAPI ReadCard_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Mem, unsigned char * WordPtr, unsigned char * Num, unsigned char * Password , unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag, unsigned char * Data , unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
3)long WINAPI WriteCard_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Mem, unsigned char * WordPtr, unsigned char * Writedatalen, unsigned char *Writedata,unsigned char * Password, unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag, long WrittenDataNum, unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
4)long WINAPI EraseCard_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Mem, unsigned char * WordPtr, unsigned char * Num, unsigned char * Password, unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag, unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
5)long WINAPI SetCardProtect_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * select, unsigned char * setprotect, unsigned char * Password, unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag, unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
6)long WINAPI DestroyCard_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Password, unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag, unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
7)long WINAPI WriteEPC_G2 (unsigned char *ComAdr, unsigned char * Password, unsigned char * WriteEPC, unsigned char * WriteEPClen, unsigned char * errorcode,long FrmHandle);
8)long WINAPI SetReadProtect_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Password, unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag, unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
9)long WINAPI SetMultiReadProtect_G2 (unsigned char *ComAdr, unsigned char * Password, unsigned char * errorcode,long FrmHandle);
10)long WINAPI RemoveReadProtect_G2 (unsigned char *ComAdr, unsigned char * Password, unsigned char * errorcode,long FrmHandle);
11)long WINAPI CheckReadProtected_G2 (unsigned char *ComAdr, unsigned char *readpro,unsigned char * errorcode,long FrmHandle);
12)long WINAPI SetEASAlarm_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Password, unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag,unsigned char * EAS, unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
13)long WINAPI CheckEASAlarm_G2 (unsigned char *ComAdr, unsigned char * errorcode,long FrmHandle);
14)long WINAPI LockUserBlock_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Password, unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag, unsigned char * BlockNum,unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
15)long WINAPI WriteBlock_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Mem, unsigned char * WordPtr, unsigned char * Writedatalen, unsigned char *Writedata,unsigned char * Password, unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag, long WrittenDataNum, unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
2.3)18000-6B 协议函数:
1)long WINAPI Inventory_6B (unsigned char *ComAdr, unsigned char * ID_6B ,long FrmHandle);
2)long WINAPI Inventory2_6B (unsigned char *ComAdr, unsigned char * Condition , unsigned char * StartAddress, unsigned char * mask , unsigned char * ConditionContent,unsigned char * ID_6B , long * Cardnum,long FrmHandle);
3)long WINAPI ReadCard_6B (unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * StartAddress, unsigned char * Num, unsigned char * Data, unsigned char * errorcode, long FrmHandle);
4)long WINAPI WriteCard_6B (unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * StartAddress, unsigned char * Writedata, unsigned char * Writedatalen, unsigned char * writtenbyte, unsigned char * errorcode, long FrmHandle);
5)long WINAPI LockByte _6B (unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * Address, unsigned char * errorcode, long FrmHandle);
6)long WINAPI CheckLock_6B (unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * Address, unsigned char * ReLockState,unsigned char * errorcode, long FrmHandle);
3. 函数的描述:
3.1)通用函数:
3.1.1) AutoOpenComPort():自动连接串口
功能描述:
该函数用于自动识别与读写器连接的串口并且执行初始化操作,然后通过连接串口和读写器以创建通信连接。数据传输协议是19200 bps,8位数据,1停止位,没有奇偶校验位。
在调用其它函数之前,您必须先连接串口和读写器。
应用:
long WINAPI AutoOpenComPort(long Port, unsigned char *ComAdr, unsigned char Baud ,long FrmHandle);
参数:
Port:输出变量,COM1—COM10与读写器连接的串口号。
ComAdr:输入/输出变量,远距离读写器的地址。以广播地址(0xFF)调用此函数,函数将检测各个端口,并将检测到的连接有读写器的端口以及该端口上读写器的实际地址回写到指针Port和ComAdr所指变量中;以其它地址调用此函数,将在各个端口检测是否连接了具有指定ComAdr地址的读写器,并将检测到的端口号回写到指针Port所指变量中。
Baud:输入变量,用该值设置或更改串口通讯控件的波特率。
baudrate
实际波特率
0
9600bps
1
19200 bps
2
38400 bps
4
56000 bps
5
57600 bps
6
115200 bps
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1.
COM1-COM10的含义如下:
#define COM1 0
#define COM2 1
#define COM3 2
#define COM4 3
#define COM5 4
#define COM6 5
#define COM7 6
#define COM8 7
#define COM9 8
#define COM10 9
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.2) OpenComPort():连接到指定串口
功能描述:
该函数用于指定串口初始化,并通过连接串口和读写器以创建通信连接。数据传输协议是57600bps,8位数据,1位停止位,没有奇偶校验位。
在调用其它函数之前,您必须先连接串口和读写器。
应用:
long WINAPI OpenComPort(long Port, unsigned char *ComAdr, unsigned char Baud,long FrmHandle);
参数:
Port:输入变量,COM1—COM10常数。
ComAdr:输入/输出变量,远距离读写器的地址。以广播地址(0xFF)调用此函数,函数将检测指定端口,并将检测到的连接在此端口上的读写器的实际地址回写到指针ComAdr所指变量中;以其它地址调用此函数,将检测指定端口上是否连接了具有指定ComAdr地址的读写器。
Baud:输入变量,用该值设置或更改串口通讯控件的波特率。
baudrate
实际波特率
0
9600bps
1
19200 bps
2
38400 bps
4
56000 bps
5
57600 bps
6
115200 bps
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1.
COM1-COM9的定义如下:
#define COM1 1
#define COM2 2
#define COM3 3
#define COM4 4
#define COM5 5
#define COM6 6
#define COM7 7
#define COM8 8
#define COM9 9
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.3) CloseComPort():关闭串口连接
功能描述:
该函数用于撤销串口和读写器的连接并释放相应资源。在一些开发环境里,串口资源必须在离开该程序前被释放,否则可能会造成系统不稳定。
应用:
long WINAPI CloseComPort(void);
参数:无
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.4) CloseSpecComPort():关闭指定串口
功能描述:
该函数用于关闭指定串口。
应用:
long WINAPI CloseSpecComPort(long FrmHandle);
参数:
FrmHandle:输入变量,COM1—COM9常数。
COM1-COM9的定义如下:
#define COM1 1
#define COM2 2
#define COM3 3
#define COM4 4
#define COM5 5
#define COM6 6
#define COM7 7
#define COM8 8
#define COM9 9
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.5)GetReaderInformation():获得读写器的信息
功能描述:
执行该命令后,将获得读写器的信息,这其中包括读写器地址(ComAdr)和读写器软件版本(VersionInfo)的信息等多项信息。
应用:
long WINAPI GetReaderInformation(unsigned char *ComAdr, unsigned char *VersionInfo, unsigned char *ReaderType, unsigned char *TrType,unsigned char * dmaxfre , unsigned char *dminfre, unsigned char *powerdBm,unsigned char *ScanTime, long FrmHandle);
参数:
ComAdr:输入/输出变量,远距离读写器的地址。以广播地址(0xFF)调用此函数,ComAdr将返回读写器的实际地址,以其它地址调用此函数,将由ComAdr地址指定的读写器执行此函数命令。
VersionInfo:指向输出数组变量(输出的是每字节都转化为字符的数据),远距离读写器版本信息,长度2个字节。第1个字节为版本号,第2个字节为子版本号。
ReaderType:输出变量,读写器类型代码,0x06代
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
UHFREADER06。
TrType:指向输出数组变量(输出的是每字节都转化为字符的数据),读写器协议支持信息,长度2个字节,具体定义请参见用户手册。(bit1为1表示支持18000-6c协议,其它位保留。Bit0为1表示18000-6B协议。)
Dmaxfre:输出变量,当前读写器使用的最高频率。
Dminfre:输出变量,当前读写器使用的最低频率。实际频率计算公式为:Fs = 902.6 + N x 0.4 (MHz) 其中N∈[0, 62]。N代表dmaxfre或dminfre。
PowerdBm: 输出变量,读写器的输出功率。范围是20到30,当PowerdBm为0x00时,表示读写器的输出功率未知。
ScanTime:输出变量,读写器询查命令最大响应时间。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1.
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.6) WriteComAdr():写入读写器地址
功能描述:
执行该命令后,读写器将会把读写器地址改为用户给定的值,并把这个值写入EEPROM保存。出厂时默认值是0x00。允许用户的修改范围是0x00~0xfe。当用户写入的值是0xff时,读写器将会自动恢复成默认值0x00。
应用:
long WINAPI WriteComAdr(unsigned char *ComAdr, unsigned char *ComAdrData, long FrmHandle);
参数:
ComAdr : 输入变量,原先的读写器地址
ComAdrData:输入变量,一个字节,待写入的读写器地址
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1.
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.7) WriteScanTime():设置询查命令最大响应时间
功能描述:
询查命令的最大响应时间范围是3~255*100ms,默认值为10*100ms。
应用:
long
WINAPI WriteScanTime(unsigned char *ComAdr, unsigned char *ScanTime, long FrmHandle);
参数:
ComAdr : 输入变量,读写器地址
ScanTime:输入变量,一个字节,询查命令响应时间
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1.
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.8) SetPowerDbm ():设置读写器功率
功能描述:
本命令用来设置读写器功率。
应用:
long WINAPI SetPowerDbm (unsigned char *ComAdr, unsigned char powerDbm, long FrmHandle);
参数:
ComAdr : 输入变量,读写器地址
Powerdbm:输入变量,一个字节。读写器的输出功率。取值范围是20~30。30约为1瓦的输出功率。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1.
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.9) Writedfre ():设置读写器工作频率
功能描述:
此命令设置读写器工作地上限频率,下限频率。上限频率必须大于或等于下限频率。
应用:
long WINAPI Writedfre (unsigned char *ComAdr, unsigned char * dmaxfre, unsigned char * dminfre,long FrmHandle);
参数:
ComAdr : 输入变量,读写器地址
dmaxfre: 输入变量,一个字节。读写器工作的最大频率。取值范围是0~62。
dminfre: 输入变量,一个字节。读写器工作的最小频率。取值范围是0~62MinFre必须小于等于MaxFre。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.10) Writebaud ():设置串口波特率
功能描述:
此命令用来更改读写器的串口波特率。
应用:
long WINAPI Writebaud (unsigned char *ComAdr, unsigned char * baud, long FrmHandle);
参数:
ComAdr : 输入变量,读写器地址
baud: 输入变量,一个字节。读写器上电后,波特率默认为57600。Baud的范围是0 ~ 6。其它值保留。其对应的波特率为:
baudrate
实际波特率
0
9600bps
1
19200 bps
2
38400 bps
4
56000 bps
5
57600 bps
6
115200 bps
其中虽然读写器支持 baudrate 3实际波特率43000,但在DLL中的ApdComPort控件不支持波特率43000。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.11) SetWGParameter():设置韦根参数
功能描述:
此命令用来设置韦根参数。
应用:
long WINAPI SetWGParameter(unsigned char *ComAdr, unsigned char Wg_mode,unsigned char Wg_Data_Inteval,unsigned char Wg_Pulse_Width, unsigned char Wg_Pulse_Inteval,long FrmHandle);
参数:
ComAdr : 输入变量,读写器地址
Wg_mode: 输入变量,一个字节。
Bit0:韦根26,34选择位。Bit0=0时,选择韦根26,Bit0=1时选择韦根34.
Bit1:Bit1=0时韦根输出高字节在前,Bit1=1时,韦根输出低字节在前。其他位保留,默认为0.
Wg_Data_Inteval:输出数据间隔时间(0~255)*100ms,默认为30.
Wg_Pulse_Width:数据脉冲宽度(1~255)*100us,默认值为10.
Wg_Pulse_Inteval:数据脉冲间隔(1~ 55)*100us,默认值为15.
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.12) SetWorkMode():设置工作模式
功能描述:
此命令用来设置工作模式参数。
应用:
long WINAPI SetWorkMode(unsigned char *ComAdr, unsigned char * Parameter, long FrmHandle);
参数:
ComAdr : 输入变量,读写器地址
Parameter: 指向输入数组变量,6个字节。从第一个字节至第六个分别为:
Read_Mode:工作模式选择,Bit0:=1进入主动模式;Bit0:=0退出主动模式。
其它位保留,默认为0。只有Bit0=1时以下参数才有效。
Mode_State: Bit0:协议选择位。Bit0=0时读写器支持18000-6C协议;Bit0=1时,读写器支持18000-6B。Bit1:输出方式选择位。Bit1=0时韦根输出,Bit1=1时RS232/RS485输出。
Mem_Inven:当读写器工作在18000-6C协议时才有效,选择要读取的存储区或询查标签。0x00:保留区;0x01:EPC存储区;0x02:TID存储区;0x03:用户存储区;0x04:询查标签。其它值保留。
First_Adr:指定要读取的子起始地址。0x00表示从第一个子开始读,0x01表示从第2个字开始,以此类推。
Word_Num:要读取的字的个数,RS232输出方式下才有效,范围在0x01~0x32间。
Reserved:保留,默认为0x00。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.13) GetWorkModeParameter ():读取工作模式参数
功能描述:
此命令用来读取工作模式参数。
应用:
long WINAPI GetWorkModeParameter (unsigned char *ComAdr, unsigned char * Parameter, long FrmHandle);
参数:
ComAdr : 输入变量,读写器地址
Parameter: 指向输出数组变量,10个字节。从第一个字节至第十个分别为:Wg_mode,Wg_Data_Inteval,Wg_Pulse_Width,Wg_Pulse_Inteval,Read_Mode,Mode_State,Mem_Inven,First_Adr,Word_Num,Reserved。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义
3.1.14) ReadActiveModeData ():读取主动模式数据-
功能描述:
此命令用来读取主动模式下读写器发送数据。
应用:
long WINAPI ReadActiveModeData (unsigned char *ActiveModeData, unsigned char * Datalength, long FrmHandle);
参数:
ActiveModeData: 指向输出数组变量,读取主动模式下读写器发送数据,大小为Datalength个字节。
Datalength:输出变量,ActiveModeData的字节大小。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.15) OpenNetPort():连接网口
功能描述:
该函数用于打开与读写器连接的网口,然后通过连接网口和读写器以创建通信连接。
在调用其它函数之前,您必须先连接网口和读写器。
应用:
long WINAPI OpenNetPort(long Port , LPTSTR IPaddr, unsigned char *ComAdr,long * FrmHandle);
参数:
Port:输入变量,范围在1024到65535间,读写器的TCP端口号。
IPaddr:输入变量,读写器的TCP的IP地址。
ComAdr:输入/输出变量,远距离读写器的地址。以广播地址(0xFF)调用此函数,函数将检测端口,并将检测到的连接有读写器的读写器地址返回到ComAdr所指变量中;以其它地址调用此函数,将在TCP端口检测是否连接了具有指定ComAdr地址的读写器。
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1.
返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.16) CloseNetPort():关闭网口
功能描述:
该函数用于撤销网口和读写器的连接并释放相应资源。在一些开发环境里,网口资源必须在离开该程序前被释放,否则可能会造成系统不稳定。
应用:
long WINAPI CloseNetPort(long FrmHandle);
参数:
FrmHandle:输入变量,与读写器连接网口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器
3.2) EPCC1-G2 协议函数:
3.2.1) Inventory_G2 ():G2询查命令
功能描述:
询查命令的作用是检查有效范围内是否有符合协议的电子标签存在。
应用:
long WINAPI Inventory_G2 (unsigned char *ComAdr, unsigned char AdrTID, unsigned char LenTID,unsigned char TIDFlag,unsigned char *EPClenandEPC, long * Totallen, long *CardNum,long FrmHandle);
参数:
ComAdr:输入变量,读写器地址。
AdrTID:输入变量,询查TID区的起始字地址。
LenTID:输入变量,询查TID区的数据字数。LenTID取值为0~15。
TIDFlag:输入变量,
TIDFlag=1:表示询查TID区;
TIDFlag=1:表示询查EPC;
EPClenandEPC:指向输出数组变量(输出的是每字节都转化为字符的数据)。是读到的电子标签的EPC数据,是一张标签的EPC长度+一张标签的EPC号,依此累加。每个电子标签EPC号高字在前,每一个字的最高位在前。
Totallen:输出变量,EPClenandEPC的字节数。
CardNum:输出变量,电子标签的张数。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。
返回:
如果该函数调用成功,返回值:
0x01
询查时间结束前返回
0x02
询查时间结束使得询查退出
0x03
如果读到的标签数量无法在一条消息内传送完,将分多次发送。如果Status为0x0D,则表示这条数据结束后,还有数据。
0x04
还有电子标签未读取,电子标签数量太多,MCU存储不了
返回其他值,请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.2) ReadCard_G2 ():G2读取数据命令
功能描述:
这个命令读取标签的整个或部分保留区、EPC存储器、TID存储器或用户存储器中的数据。从指定的地址开始读,以字为单位。
应用:
long WINAPI ReadCard_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Mem, unsigned char * WordPtr, unsigned char * Num, unsigned char * Password , unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag, unsigned char * Data , unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
参数:
ComAdr:输入变量,读写器地址。
EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号
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的前两个字节放置访问密码的高字。
maskadr:输入变量,EPC掩模起始字节地址。
maskLen:输入变量,掩模字节数。
maskFlag:输入变量,掩模使能标记。
maskFlag =1:掩模使能;
maskFlag =0:掩模禁止;
Data:指向输出数组变量(输出的是每字节都转化为字符的数据),是从标签中读取的数据。
EPClength:输入变量,一个字节。EPC号的字节长度。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。
返回:
如果该函数调用成功,返回一个零值,读到的数据在Data中。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.3) WriteCard_G2 ():G2写命令
功能描述:
这个命令可以一次性往保留内存、EPC存储器、TID存储器或用户存储器中写入若干个字。
应用:
long WINAPI WriteCard_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Mem, unsigned char * WordPtr, unsigned char * Writedatalen, unsigned char * Writedata, unsigned char * Password, unsigned char maskadr, unsigned char maskLen, unsigned char maskFlag,long WrittenDataNum, unsigned char * EPClength, unsigned char * errorcode,long FrmHandle);
参数:
ComAdr:输入变量,读写器地址。
EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号。
Mem:输入变量,一个字节。选择要读取的存储区。
0x00: 保留区;
0x01:EPC存储器;
0x02:TID存储器;
0x03:用户存储器。
其他值保留。若命令中出现了其它值,将返回参数出错的消息。
WordPtr:输入变量,一个字节。指定要写入的字起始地址。指定要写入数据的起始地址。如果写的是EPC区,则会忽略这个起始地址。EPC区总是规定从EPC区0x02地址(EPC号的第一个字节)开始写。
Writedatalen:输入变量,一个字节。待写入的字节数(长度必须为偶数字节数)。Writedatalen必须大于0,这里字节数必须和实际待写入的数据个数相等。否则将会返回参数错误的消息。
Writedata:指向输入数组变量(输入的是每字节都转化为字符的数据)。待写入的字。这是要写入到存储区的数据。比如,WordPtr等于0x02,则输出变量Data中第一个字(从左边起)写在Mem指定的存储区的地址0x02中,第二个字写在0x03中,依次类推