使用手册V2.5
1. 2.
操作系统: ...................................................................................................................................... 1 函数详单: ...................................................................................................................................... 1 2.1)通用函数: ................................................................................................................................. 1 2.2)EPCC1-G2 协议函数: ............................................................................................................ 2 2.3)18000-6B 协议函数: ............................................................................................................... 4 3. 函数的描述: .................................................................................................................................. 5 3.1)通用函数: ................................................................................................................................... 5 3.1.1) AutoOpenComPort():自动连接串口 .................................................................................... 5 3.1.2) OpenComPort():连接到指定串口 ..................................................................................... 6 3.1.3) CloseComPort():关闭串口连接 ............................................................................................ 7 3.1.4) CloseSpecComPort():关闭指定串口 ................................................................................. 7 3.1.5)GetReaderInformation():获得读写器的信息 ....................................................................... 7 3.1.6) WriteComAdr():写入读写器地址 ...................................................................................... 8 3.1.7) WriteScanTime():设置询查命令最大响应时间 ................................................................ 9 3.1.8) SetPowerDbm ():设置读写器功率 .................................................................................... 9 3.1.9) Writedfre ():设置读写器工作频率..................................................................................... 9 3.1.10) Writebaud ():设置串口波特率 ....................................................................................... 10
3.1.11) SetWGParameter():设置韦根参数 ............................................................................ 11 3.1.12) SetWorkMode():设置工作模式 .................................................................................. 11 3.1.13) GetWorkModeParameter ():读取工作模式参数 ....................................................... 12 3.1.14) ReadActiveModeData ():读取主动模式数据- ........................................................... 13 3.1.15) SetAccuracy():EAS检测精度测试 - ............................................................................ 13 3.1.16) SetOffsetTime ():设置Syris命令响应偏置时间 - ....................................................... 13 3.1.17) SetFhssMode ():设置读写器跳频模式 .......................................................................... 14 3.1.18) GetFhssMode ():获取读写器跳频模式 - ...................................................................... 14 3.1.19) SetTriggerTime ():获取读写器跳频模式 - ................................................................... 15 3.1.20) BuzzerAndLEDControl ():声光控制命令 - .................................................................. 15 3.1.21) SetRelay ():设置继电器动作 - ...................................................................................... 16 3.1.22) OpenNetPort():连接网口 .................................................................................................. 16 3.1.23) CloseNetPort():关闭网口 ............................................................................................... 17 3.2) EPCC1-G2 协议函数: ............................................................................................................... 17 3.2.1) Inventory_G2 ():G2询查命令 ......................................................................................... 17 3.2.2) ReadCard_G2 ():G2读取数据命令................................................................................. 18 3.2.3) WriteCard_G2 ():G2写命令 ............................................................................................ 19 3.2.4) EraseCard_G2 ():G2块擦除命令 ................................................................................... 20 3.2.5) SetCardProtect_G2 ():G2设定存储区读写保护状态命令 ............................................ 21 3.2.6) DestroyCard_G2 ():G2销毁卡片命令 ............................................................................ 22 3.2.7) WriteEPC_G2 ():G2写EPC号命令 ............................................................................... 23 3.2.8) SetReadProtect_G2 ():G2单张读保护设置命令 ......................................................... 23
1
3.2.9) SetMultiReadProtect_G2 ():G2单张读保护设置命令(不需卡号) ........................... 24 3.2.10) RemoveReadProtect_G2 ():G2解锁读保护命令 .......................................................... 25 3.2.11) CheckReadProtected_G2 ():G2测试卡片是否被读保护命令 ..................................... 25 3.2.12) SetEASAlarm_G2 ():G2 EAS报警设置命令 ................................................................ 26 3.2.13) CheckEASAlarm_G2 ():G2 EAS报警探测命令 .......................................................... 27 3.2.14) LockUserBlock_G2 ():G2 user区块锁命令(永久锁定) .......................................... 27 3.2.15) WriteBlock_G2 ():G2块写命令 ..................................................................................... 28 3.3) 18000-6B 协议函数: ............................................................................................................... 29 3.3.1) Inventory_6B ():6B寻查命令(单张) ............................................................................... 29 3.3.2) Inventory2_6B ():6B按条件寻查电子标签命令 ............................................................ 30 3.3.3) ReadCard_6B ():6B读数据命令 ..................................................................................... 30 3.3.4) WriteCard_6B ():6B写数据命令 .................................................................................... 31 3.3.5) CheckLock_6B ():6B锁定检测命令 ................................................................................ 32 3.3.6) LockByte_6B ():6B锁定命令 .......................................................................................... 32 4. 其他返回值定义 ............................................................................................................................ 33 5. 错误代码定义 ................................................................................................................................ 34
2
UHFReader18CSharp.DLL动态连接库使用手册V2.5
上位机应用程序通过UHFReader18CSharp.DLL操作EPCC1-G2、18000-6B格式电子标签读写器。
1. 操作系统:
WINDOWS 2000/XP
2. 函数详单:
UHFReader18CSharp.DLL包括了如下的操作函数:
2.1)通用函数:
1)Function int StaticClassReaderB.AutoOpenComPort(int* Port,unsigned char * ComAdr, unsigned char * Baud ,int* FrmHandle);
2)Function int StaticClassReaderB.OpenComPort(int Port, unsigned char *ComAdr, unsigned char * Baud,int* FrmHandle);
3)Function int StaticClassReaderB.CloseComPort(void);
4) Function int StaticClassReaderB.WINAPI CloseSpecComPort(int FrmHandle);
5)Function int StaticClassReaderB.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, int FrmHandle);
6) Function int StaticClassReaderB.WriteComAdr(unsigned char *ComAdr, unsigned char *ComAdrData, int FrmHandle);
7)Function int StaticClassReaderB.WriteScanTime(unsigned char *ComAdr, unsigned char *ScanTime, int FrmHandle);
8)Function int StaticClassReaderB.SetPowerDbm (unsigned char *ComAdr, unsigned char * powerDbm, int FrmHandle);
9)Function int StaticClassReaderB.Writedfre (unsigned char *ComAdr, unsigned char * dmaxfre, unsigned char * dminfre,int FrmHandle);
10)Function int StaticClassReaderB.Writebaud (unsigned char *ComAdr, unsigned char * baud, int FrmHandle);
11) Function int StaticClassReaderB.SetWGParameter(unsigned char *ComAdr, unsigned char Wg_mode,unsigned char Wg_Data_Inteval,unsigned char Wg_Pulse_Width, unsigned char Wg_Pulse_Inteval,int FrmHandle);
1
UHFReader18CSharp.DLL动态连接库使用手册V2.5
12)Function int StaticClassReaderB.SetWorkMode(unsigned char *ComAdr, unsigned char * Parameter, int FrmHandle);
13)Function int StaticClassReaderB.GetWorkModeParameter(unsigned char *ComAdr, unsigned char * Parameter, int FrmHandle);
14)Function int StaticClassReaderB.ReadActiveModeData(unsigned char *ActiveModeData, unsigned char * Datalength, int FrmHandle);
15) Function int StaticClassReaderB.SetAccuracy(unsigned char * ComAdr, unsigned char Accuracy , long FrmHandle);
16) Function int StaticClassReaderB.SetOffsetTime(unsigned char * ComAdr, unsigned char OffsetTime, long FrmHandle);
17) Function int StaticClassReaderB.SetFhssMode(unsigned char * ComAdr, unsigned char FhssMode, long FrmHandle);
18) Function int StaticClassReaderB.GetFhssMode(unsigned char * ComAdr, unsigned char *FhssMode, long FrmHandle);
19) Function int StaticClassReaderB.SetTriggerTime(unsigned char * ComAdr, unsigned char *TriggerTime, long FrmHandle);
20) Function int StaticClassReaderB.BuzzerAndLEDControl(unsigned char * ComAdr, unsigned char AvtiveTime, unsigned char SilentTime, unsigned char Times, int FrmHandle);
21) Function int StaticClassReaderB.SetRelay(unsigned char * ComAdr, unsigned char RelayStatue, long FrmHandle);
22) Function int StaticClassReaderB.OpenNetPort (int Port, LPSTR IPaddr, ,unsigned char *ComAdr, int FrmHandle);
23) Function int StaticClassReaderB.CloseNetPort (int FrmHandle);
2.2)EPCC1-G2 协议函数:
1)Function int StaticClassReaderB. Inventory_G2 (unsigned char *ComAdr, unsigned char AdrTID,unsigned char LenTID,unsigned char TIDFlag,unsigned char * EPClenandEPC, int * Totallen, int *CardNum,int FrmHandle);
2)Function int StaticClassReaderB. 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
2
UHFReader18CSharp.DLL动态连接库使用手册V2.5
char maskFlag,unsigned char * Data , unsigned char * EPClength, unsigned char * errorcode,int FrmHandle);
3)Function int StaticClassReaderB.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, int WrittenDataNum, unsigned char * EPClength, unsigned char * errorcode,int FrmHandle);
4)Function int StaticClassReaderB.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,int FrmHandle);
5)Function int StaticClassReaderB.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,int FrmHandle);
6)Function int StaticClassReaderB.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,int FrmHandle);
7)Function int StaticClassReaderB. WriteEPC_G2 (unsigned char *ComAdr, unsigned char * Password, unsigned char * WriteEPC, unsigned char * WriteEPClen, unsigned char * errorcode,int FrmHandle);
8)Function int StaticClassReaderB.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,int FrmHandle);
9)Function int StaticClassReaderB.SetMultiReadProtect_G2 (unsigned char *ComAdr, unsigned char * Password, unsigned char * errorcode,int FrmHandle);
10)Function int StaticClassReaderB.RemoveReadProtect_G2(unsigned char * ComAdr , unsigned char * Password, unsigned char * errorcode,int FrmHandle);
11)Function int StaticClassReaderB.CheckReadProtected_G2(unsigned char * ComAdr, unsigned char *readpro,unsigned char * errorcode,int FrmHandle);
3
UHFReader18CSharp.DLL动态连接库使用手册V2.5
12)Function int StaticClassReaderB.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,int FrmHandle);
13)Function int StaticClassReaderB.CheckEASAlarm_G2(unsigned char *ComAdr, unsigned char * errorcode,int FrmHandle);
14)Function int StaticClassReaderB.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,int FrmHandle);
15)Function int StaticClassReaderB. 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, int WrittenDataNum, unsigned char * EPClength, unsigned char * errorcode,int FrmHandle);
2.3)18000-6B 协议函数:
1)Function int StaticClassReaderB.Inventory_6B(unsigned char *ComAdr, unsigned char * ID_6B ,int FrmHandle);
2)Function int StaticClassReaderB.Inventory2_6B(unsigned char *ComAdr, unsigned char * Condition , unsigned char * StartAddress, unsigned char * mask , unsigned char * ConditionContent,unsigned char * ID_6B , int * Cardnum,int FrmHandle);
3)Function int StaticClassReaderB. ReadCard_6B(unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * StartAddress, unsigned char * Num, unsigned char * Data, unsigned char * errorcode, int FrmHandle);
4)Function int StaticClassReaderB.WriteCard_6B (unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * StartAddress, unsigned char * Writedata, unsigned char * Writedatalen, unsigned char * writtenbyte, unsigned char * errorcode, int FrmHandle);
5)Function int StaticClassReaderB.LockByte _6B (unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * Address, unsigned char * errorcode, int FrmHandle);
6)Function int StaticClassReaderB. CheckLock_6B(unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * Address, unsigned char * ReLockState,unsigned char * errorcode, int FrmHandle);
4
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3. 函数的描述:
3.1)通用函数:
3.1.1) AutoOpenComPort():自动连接串口
功能描述:
该函数用于自动识别与读写器连接的串口并且执行初始化操作,然后通过连接串口和读写器以创建通信连接。数据传输协议是57600 bps,8位数据,1停止位,没有奇偶校验位。
在调用其它函数之前,您必须先连接串口和读写器。 应用:
Function int StaticClassReaderB.AutoOpenComPort(int* Port, unsigned char *ComAdr, unsigned char * Baud ,int* FrmHandle); 参数:
Port:输出变量,COM1—COM12与读写器连接的串口号。
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-COM12的含义如下: #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 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
5
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.1.2) OpenComPort():连接到指定串口
功能描述:
该函数用于指定串口初始化,并通过连接串口和读写器以创建通信连接。数据传输协议是57600bps,8位数据,1位停止位,没有奇偶校验位。 在调用其它函数之前,您必须先连接串口和读写器。 应用:
Function int StaticClassReaderB.OpenComPort(int Port, unsigned char *ComAdr, unsigned char * Baud,int FrmHandle); 参数:
Port:输入变量,COM1—COM12常数。
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-COM12的定义如下: #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 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
6
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.1.3) CloseComPort():关闭串口连接
功能描述:
该函数用于撤销串口和读写器的连接并释放相应资源。在一些开发环境里,串口资源必须在离开该程序前被释放,否则可能会造成系统不稳定。 应用:
Function int StaticClassReaderB.CloseComPort(void); 参数:无 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.4) CloseSpecComPort():关闭指定串口
功能描述:
该函数用于关闭指定串口。 应用:
Function int StaticClassReaderB.CloseSpecComPort(int FrmHandle); 参数:
FrmHandle:输入变量,COM1—COM12常数。 COM1-COM12的定义如下: #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)的信息等多项信息。 应用:
Function int StaticClassReaderB.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, int FrmHandle); 参数:
ComAdr:输入/输出变量,远距离读写器的地址。以广播地址(0xFF)
7
UHFReader18CSharp.DLL动态连接库使用手册V2.5
调用此函数,ComAdr将返回读写器的实际地址,以其它地址调用此函数,将由ComAdr地址指定的读写器执行此函数命令。
VersionInfo:指向输出数组变量(输出的是每字节都转化为字符的数据),远距离读写器版本信息,长度2个字节。第1个字节为版本号,第2个字节为子版本号。
ReaderType:输出变量,读写器类型代码,0x61代表UHFReader18。 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: 输出变量,读写器的输出功率。范围是0到18,当PowerdBm为0x00时,表示读写器的输出功率未知。
ScanTime:输出变量,读写器询查命令最大响应时间。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1. 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.6) WriteComAdr():写入读写器地址
功能描述:
执行该命令后,读写器将会把读写器地址改为用户给定的值,并把这个值写入EEPROM保存。出厂时默认值是0x00。允许用户的修改范围是0x00~0xfe。当用户写入的值是0xff时,读写器将会自动恢复成默认值0x00。 应用:
Function int StaticClassReaderB.WriteComAdr(unsigned char *ComAdr, unsigned char *ComAdrData, int FrmHandle); 参数:
ComAdr : 输入变量,原先的读写器地址
ComAdrData:输入变量,一个字节,待写入的读写器地址
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1. 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
8
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.1.7) WriteScanTime():设置询查命令最大响应时间
功能描述:
询查命令的最大响应时间范围是3~255*100ms,默认值为30*100ms。 应用:
Function int StaticClassReaderB.WriteScanTime(unsigned char *ComAdr, unsigned char *ScanTime, int FrmHandle); 参数:
ComAdr : 输入变量,读写器地址
ScanTime:输入变量,一个字节,询查命令响应时间
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1. 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.8) SetPowerDbm ():设置读写器功率
功能描述:
本命令用来设置读写器功率。 应用:
Function int StaticClassReaderB. SetPowerDbm (unsigned char *ComAdr, unsigned char * powerDbm, int FrmHandle);
参数:
ComAdr : 输入变量,读写器地址 Powerdbm:输入变量,一个字节。读写器的输出功率。取值范围是0~18。 FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1. 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.9) Writedfre ():设置读写器工作频率
功能描述:
此命令设置读写器工作地上限频率,下限频率。上限频率必须大于或等于下限频率。 应用:
Function int StaticClassReaderB.Writedfre (unsigned char *ComAdr, unsigned char * dmaxfre, unsigned char * dminfre,int FrmHandle); 参数:
ComAdr : 输入变量,读写器地址
dmaxfre: 输入变量,一个字节。读写器工作的最大频率。取值范围是0~62。
9
UHFReader18CSharp.DLL动态连接库使用手册V2.5
dminfre: 输入变量,一个字节。读写器工作的最小频率。取值范围是0~62MinFre必须小于等于MaxFre。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.10) Writebaud ():设置串口波特率
功能描述:
此命令用来更改读写器的串口波特率。 应用:
Function int StaticClassReaderB.Writebaud (unsigned char *ComAdr, unsigned char * baud, int 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。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
10
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.1.11) SetWGParameter():设置韦根参数
功能描述:
此命令用来设置韦根参数。 应用:
Function int StaticClassReaderB.SetWGParameter(unsigned char *ComAdr, unsigned char Wg_mode,unsigned char Wg_Data_Inteval,unsigned char Wg_Pulse_Width, unsigned char Wg_Pulse_Inteval,int 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():设置工作模式
功能描述:
此命令用来设置工作模式参数。 应用:
Function int StaticClassReaderB.SetWorkMode(unsigned char *ComAdr, unsigned char * Parameter, int FrmHandle); 参数:
ComAdr : 输入变量,读写器地址
Parameter: 指向输入数组变量,6个字节。从第一个字节至第六个分别为:
Read_Mode: 工作模式选择,Bit1Bit0=0:应答模式;Bit1Bit0=1:主动模式; Bit1Bit0=2:触发模式(低电平有效);Bit1Bit0=3:触发模式(高电平有效)。 其它位保留,默认为0。只有时Bit1Bit0不等于0时以下参数才有效。
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:多张查询;0x05:单张查询;0x06 :EAS检测。其他值保留,若命令中出现了其它值,将返回参数出错的消息。
First_Adr:指定要读取的起始地址。18000-6C协议中:0x00 表示从第
11
UHFReader18CSharp.DLL动态连接库使用手册V2.5
一个字(第一个16位存储区)开始读,0x01表示从第2个字开始读,依次类推;18000-6B中:0x00 表示从第一个字节开始读,0x01表示从第2个字节开始读,依次类推。
Word_Num:要读取的字的个数,RS232输出方式下才有效。不能设置为0x00,否则将返回参数错误信息。Word_Num不能超过32,若Word_Num设置为0或者超过了32,将返回参数出错的消息。
Tag_Time:主动模式下单张标签操作(读保留区、EPC区、TID区、用户区,单张查询)间隔时间(0~255)*1s,对同一张标签在间隔时间内只操作一次。默认值为零,即对标签操作不用等待时间。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.1.13) GetWorkModeParameter ():读取工作模式参数
功能描述:
此命令用来读取工作模式参数。 应用:
Function int StaticClassReaderB.GetWorkModeParameter(unsigned char* ComAdr, unsigned char * Parameter, int FrmHandle); 参数:
ComAdr : 输入变量,读写器地址
Parameter: 指向输出数组变量,11个字节。从第一个字节至第十一个分别为:Wg_mode,Wg_Data_Inteval,Wg_Pulse_Width,Wg_Pulse_Inteval,Read_mode,Mode_state,Mem_Inven,First_Adr,Word_Num,Tag_Time,Accuracy。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义
12
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.1.14) ReadActiveModeData ():读取主动模式数据-
功能描述:
此命令用来读取主动模式下读写器发送数据。 应用:
Function int StaticClassReaderB.ReadActiveModeData(unsigned char* ActiveModeData, unsigned char * Datalength, int FrmHandle); 参数:
ActiveModeData: 指向输出数组变量,读取主动模式下读写器发送数据,大小为Datalength个字节。
Datalength:输出变量,ActiveModeData的字节大小。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义
3.1.15) SetAccuracy():EAS检测精度测试 -
功能描述:
该命令用于设置主动模式下EAS检测精度。 应用:
Function int StaticClassReaderB.SetAccuracy(unsigned char * ComAdr, unsigned char Accuracy , long FrmHandle); 参数:
ComAdr : 输入变量,读写器地址.
Accuracy:输入变量,范围为0~8,数值越大精度越高。默认值为8。 FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义
3.1.16) SetOffsetTime ():设置Syris命令响应偏置时间 -
功能描述:
该命令用于设置Syris485模式下的Syris命令响应偏置时间。 应用:
Function int StaticClassReaderB.SetOffsetTime(unsigned char * ComAdr, unsigned char OffsetTime, long FrmHandle); 参数:
ComAdr : 输入变量,读写器地址.
OffsetTime:输入变量,Syris485命令响应偏置时间(0~100)*1ms,默认值为0。
13
UHFReader18CSharp.DLL动态连接库使用手册V2.5
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义
3.1.17) SetFhssMode ():设置读写器跳频模式
功能描述:
该命令用于设置读写器的跳频模式。 应用:
Function int StaticClassReaderB.SetFhssMode(unsigned char * ComAdr, unsigned char FhssMode, long FrmHandle); 参数:
ComAdr : 输入变量,读写器地址.
FhssMode:输入变量,Bit0=0时为随机跳频模式,Bit=1时为自适应跳频模式,默认值为0。Bit1~Bit7:保留,默认值为0。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义
3.1.18) GetFhssMode ():获取读写器跳频模式 -
功能描述:
该命令用于获取读写器的跳频模式。 应用:
Function int StaticClassReaderB.GetFhssMode (unsigned char * ComAdr, unsigned char *FhssMode, long FrmHandle); 参数:
ComAdr : 输入变量,读写器地址.
FhssMode:输出变量,Bit0=0时为随机跳频模式,Bit0=1时为自适应跳频模式。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义
14
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.1.19) SetTriggerTime ():获取读写器跳频模式 -
功能描述:
该命令用于设置触发模式下触发有效时间。 应用:
Function int StaticClassReaderB.SetTriggerTime(unsigned char * ComAdr, unsigned char * TriggerTime, long FrmHandle); 参数:
ComAdr : 输入变量,读写器地址.
TriggerTime:输入/输出变量,触发有效时间(0~254)*1s,默认值为0,当设置成255时,为获取当前触发有效时间。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义
3.1.20) BuzzerAndLEDControl ():声光控制命令 -
功能描述:
该命令用来控制LED灯和蜂鸣器按一定规律闪烁和鸣叫。 应用:
Function int StaticClassReaderB.BuzzerAndLEDControl(unsigned char * ComAdr, unsigned char AvtiveTime, unsigned char SilentTime, unsigned char Times, int FrmHandle); 参数:
ComAdr : 输入变量,读写器地址.
AvtiveTime:输入变量,LED灯亮和蜂鸣器鸣叫时间(ActiveT*50ms),默认值为零。0<=ActiveT<=255,当设置成255时,为获取当前触发有效时间。
SilentTime: 输入变量,LED灯和蜂鸣器静默时间(SilentT *50ms),默认值为零。0<= SilentT <=255。
Times: 输入变量,LED灯亮和蜂鸣器鸣叫次数(0<=Times<=255) 默认值为零.
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义
15
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.1.21) SetRelay ():设置继电器动作 -
功能描述:
该命令用于设置继电器。 应用:
Function int StaticClassReaderB. SetRelay (unsigned char * ComAdr, unsigned char RelayStatue,int FrmHandle); 参数:
ComAdr : 输入变量,读写器地址.
RelayStatue:输入变量,bit0和bit1有效,每一位对应一个继电器,为1时继电器吸合,为0时继电器释放。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义
3.1.22) OpenNetPort():连接网口
功能描述:
该函数用于打开与读写器连接的网口,然后通过连接网口和读写器以创建通信连接。
在调用其它函数之前,您必须先连接网口和读写器。 应用:
Function int StaticClassReaderB.OpenNetPort(long Port , LPTSTR IPaddr, unsigned char *ComAdr,int * FrmHandle); 参数:
Port:输入变量,范围在1024到65535间,读写器的TCP端口号。 IPaddr:输入变量,读写器的TCP的IP地址。
ComAdr:输入/输出变量,远距离读写器的地址。以广播地址(0xFF)调用此函数,函数将检测端口,并将检测到的连接有读写器的读写器地址返回到ComAdr所指变量中;以其它地址调用此函数,将在TCP端口检测是否连接了具有指定ComAdr地址的读写器。
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1. 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
16
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.1.23) CloseNetPort():关闭网口
功能描述:
该函数用于撤销网口和读写器的连接并释放相应资源。在一些开发环境里,网口资源必须在离开该程序前被释放,否则可能会造成系统不稳定。 应用:
Function int StaticClassReaderB.CloseNetPort(long FrmHandle); 参数:
FrmHandle:输入变量,与读写器连接网口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器.
3.2) EPCC1-G2 协议函数:
3.2.1) Inventory_G2 ():G2询查命令
功能描述:
询查命令的作用是检查有效范围内是否有符合协议的电子标签存在。 应用:
Function int StaticClassReaderB.Inventory_G2(unsigned char *ComAdr, unsigned char AdrTID,unsigned char LenTID,unsigned char TIDFlag,unsigned char *EPClenandEPC, int * Totallen, int *CardNum,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
AdrTID:输入变量,询查TID的起始地址。 LenTID:输入变量,询查TID的字数。 TIDFlag:输入变量,询查TID的标志。 TIDFlag=1:询查TID。 TIDFlag=0:询查EPC。
EPClenandEPC:指向输出数组变量(输出的是每字节都转化为字符的数据)。是读到的电子标签的EPC数据,是一张标签的EPC长度+一张标签的EPC号,依此累加。每个电子标签EPC号高字在前,每一个字的最高位在前。
Totallen:输出变量,EPClenandEPC的字节数。 CardNum:输出变量,电子标签的张数。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回值: 0x01 询查时间结束前返回
0x02 询查时间结束使得询查退出
0x03 如果读到的标签数量无法在一条消息内传送完,将分多次发送。 0x04 还有电子标签未读取,电子标签数量太多,MCU存储不了 返回其他值,请查看其他返回值定义,返回的错误代码请查看错误代码定义。
17
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.2.2) ReadCard_G2 ():G2读取数据命令
功能描述:
这个命令读取标签的整个或部分保留区、EPC存储器、TID存储器或用户存储器中的数据。从指定的地址开始读,以字为单位。 应用:
Function int StaticClassReaderB.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,int 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中。
18
UHFReader18CSharp.DLL动态连接库使用手册V2.5
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.3) WriteCard_G2 ():G2写命令
功能描述:
这个命令可以一次性往保留内存、EPC存储器、TID存储器或用户存储器中写入若干个字。 应用:
Function int StaticClassReaderB.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, int WrittenDataNum, unsigned char * EPClength, unsigned char * errorcode,int 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中,依次类推。
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
maskadr:输入变量,EPC掩模起始字节地址。 maskLen:输入变量,掩模字节数。 maskFlag:输入变量,掩模使能标记。 maskFlag =1:掩模使能; maskFlag =0:掩模禁止;
WrittenDataNum:输出变量,已经写入的字的个数。(以字为单位) EPClength:输入变量,一个字节。EPC号的字节长度。
19
UHFReader18CSharp.DLL动态连接库使用手册V2.5
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,完全写入。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.4) EraseCard_G2 ():G2块擦除命令
功能描述:
此命令可以擦除标签的保留内存、EPC存储器、TID存储器或用户存储器的若干字。 应用:
Function int StaticClassReaderB.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,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号。
Mem:输入变量,一个字节。选择要读取的存储区。 0x00: 保留区;
0x01:EPC存储器; 0x02:TID存储器; 0x03:用户存储器。
其他值保留。若命令中出现了其它值,将返回参数出错的消息。
WordPtr:输入变量,一个字节。指定要擦除的字起始地址0x00 表示从第一个字(第一个16位存储体)开始擦除,0x01表示从第2个字开始擦除,依次类推。当擦除EPC区时,WordPtr必须大于等于0x02,若小于0x02,则返回参数错误消息。
Num:输入变量,一个字节。指定要擦除的字的个数。从WordPtr指定的地址开始擦除,擦除Num指定个数的字。若Num为0x00,则返回参数错误信息。
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
maskadr:输入变量,EPC掩模起始字节地址。 maskLen:输入变量,掩模字节数。 maskFlag:输入变量,掩模使能标记。 maskFlag =1:掩模使能;
20
UHFReader18CSharp.DLL动态连接库使用手册V2.5
maskFlag =0:掩模禁止;
EPClength:输入变量,一个字节。EPC号的字节长度。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,擦除成功。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.5) SetCardProtect_G2 ():G2设定存储区读写保护状态命令
功能描述:
这个命令可以设定保留区为可读写、永远可读写、带密码可读写、永远可读写,可以分别设定EPC存储器、TID存储器和用户存储器为可写、永远可写、带密码可写、永远不可写。EPC存储器、TID存储器或用户存储器是永远可读的。 应用:
Function int StaticClassReaderB. 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,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号。
Select: 输入变量,一个字节。
0x00时,控制Kill密码读写保护设定。 0x01时,控制访问密码读写保护设定。 0x02时,控制EPC存储器读写保护设定。 0x03时,控制TID存储器读写保护设定。 0x04时,控制用户存储器读写保护设定。
其它值保留,若出读写器接收到了其他值,将返回参数出错的消息。
Setprotect:输入变量,一个字节。
当Select为0x00或0x01,SetProtect值代表的意义如下:
0x00:设置为可读写 0x01:设置为永远可读写 0x02:设置为带密码可读写 0x03:设置为永远不可读写
当Select为0x02、0x03、0x04时,SetProtect值代表的意义如下:
0x00:设置为可写
0x01:设置为永远可写 0x02:设置为带密码可写
21
UHFReader18CSharp.DLL动态连接库使用手册V2.5
0x03:设置为永远不可写
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
maskadr:输入变量,EPC掩模起始字节地址。 maskLen:输入变量,掩模字节数。 maskFlag:输入变量,掩模使能标记。
maskFlag =1:掩模使能; maskFlag =0:掩模禁止;
EPClength:输入变量,一个字节。EPC号的字节长度。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,设置成功。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.6) DestroyCard_G2 ():G2销毁卡片命令
功能描述:
这个命令用来销毁标签。标签销毁后,永远不会再处理读写器的命令。 应用:
Function int StaticClassReaderB.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,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号。
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
maskadr:输入变量,EPC掩模起始字节地址。 maskLen:输入变量,掩模字节数。 maskFlag:输入变量,掩模使能标记。 maskFlag =1:掩模使能; maskFlag =0:掩模禁止;
EPClength:输入变量,一个字节。EPC号的字节长度。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
22
UHFReader18CSharp.DLL动态连接库使用手册V2.5
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。
返回:
如果该函数调用成功,返回一个零值,销毁成功。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.7) WriteEPC_G2 ():G2写EPC号命令
功能描述:
这个命令向电子标签写入EPC号。写入的时候,天线有效范围内只能有一张电子标签。 应用:
Function int StaticClassReaderB.WriteEPC_G2 (unsigned char *ComAdr, unsigned char * Password, unsigned char * WriteEPC, unsigned char * WriteEPClen, unsigned char * errorcode,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
WriteEPC:指向输入数组变量(输入的是每字节都转化为字符的数据),对电子标签写入的EPC号(覆盖原EPC号)。
WriteEPClen:输入变量,一个字节。WriteEPC的字节长度。范围2~30字节,必须为偶数字节长度,即2、4、6…30。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,写入成功。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.8) SetReadProtect_G2 ():G2单张读保护设置命令
功能描述:
这个命令根据电子标签的EPC号,对标签设置读保护,使得电子标签不能被任何命令读写,对标签进行询查操作,也无法得到电子标签的EPC号。仅对NXP的UCODE EPC G2X标签有效。 应用:
Function int StaticClassReaderB.SetReadProtect_G2 (unsigned char *ComAdr, unsigned char * EPC, unsigned char * Password, unsigned char maskadr,
23
UHFReader18CSharp.DLL动态连接库使用手册V2.5
unsigned char maskLen, unsigned char maskFlag, unsigned char * EPClength, unsigned char * errorcode,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号。
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
maskadr:输入变量,EPC掩模起始字节地址。 maskLen:输入变量,掩模字节数。 maskFlag:输入变量,掩模使能标记。
maskFlag =1:掩模使能; maskFlag =0:掩模禁止;
EPClength:输入变量,一个字节。EPC号的字节长度。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,读保护设置成功。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.9) SetMultiReadProtect_G2 ():G2单张读保护设置命令(不需卡号)
功能描述:
这个命令可以为有效范围内的电子标签设定读保护。这个命令与前面一个命令的区别是,当有效范围内存在多张卡的时候,无法知道这个命令操作的是哪一张电子标签 (随机操作天线范围内某一张标签)。如果要对多张标签进行操作,则标签的访问密码最好是相同的。仅对NXP的UCODE EPC G2X标签有效。 应用:
Function int StaticClassReaderB.SetMultiReadProtect_G2(unsigned char *ComAdr, unsigned char * Password, unsigned char * errorcode,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序
24
UHFReader18CSharp.DLL动态连接库使用手册V2.5
通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,多张读保护设置成功。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.10) RemoveReadProtect_G2 ():G2解锁读保护命令
功能描述:
这个命令用来给设置了读保护的卡片解锁。用这个命令时,天线有效范围内只能放置一张要被解锁的电子标签。仅对NXP的UCODE EPC G2X标签有效。 应用:
Function int StaticClassReaderB.RemoveReadProtect_G2 (unsigned char *ComAdr, unsigned char * Password, unsigned char * errorcode,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,解锁读保护成功。说明: 对于不支持读保护设定的标签,认为没有被解锁。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.11) CheckReadProtected_G2 ():G2测试卡片是否被读保护命令
功能描述:
这个命令不能测试卡片是否支持读保护锁定,只能测试卡片是否被读保护锁定。对于不支持读保护锁定的电子标签,一致认为没有被锁定。 这个命令只能对单张电子标签进行操作,确保天线有效范围内只存在一张电子标签。仅对NXP的UCODE EPC G2X标签有效。 应用:
Function int StaticClassReaderB.CheckReadProtected_G2 (unsigned char *ComAdr, unsigned char *Readpro ,unsigned char * errorcode,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
Readpro:输出变量,一个字节。Readpro 为00,电子标签没有被设置为读保护。Readpro 为01,电子标签被设置读保护。说明:对于不支持读
25
UHFReader18CSharp.DLL动态连接库使用手册V2.5
保护设定的标签,认为没有被设置读保护。
Errorcode:输出变量,一个字节,保留。
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.12) SetEASAlarm_G2 ():G2 EAS报警设置命令
功能描述:
对电子标签的EAS状态位进行设置或复位。仅对NXP的UCODE EPC G2标签有效。 应用:
Function int StaticClassReaderB.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,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号。
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
maskadr:输入变量,EPC掩模起始字节地址。 maskLen:输入变量,掩模字节数。 maskFlag:输入变量,掩模使能标记。
maskFlag =1:掩模使能; maskFlag =0:掩模禁止;
EAS: 输入变量,1个字节。bit0位为0,表示设置为关闭EAS报警;为1,表示设置为打开EAS报警。bit1 – bit7 位默认为0,保留。
EPClength:输入变量,一个字节。EPC号的字节长度。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,EAS报警设置成功。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
26
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.2.13) CheckEASAlarm_G2 ():G2 EAS报警探测命令
功能描述:
该命令检测电子标签的EAS报警。仅对NXP的UCODE EPC G2标签有效。 应用:
Function int StaticClassReaderB. CheckEASAlarm_G2 (unsigned char *ComAdr, unsigned char * errorcode,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
Errorcode:输出变量,一个字节,保留。
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
EAS报警,返回零值。
无EAS报警,返回值为0xFB。
否则,返回其他值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.14) LockUserBlock_G2 ():G2 user区块锁命令(永久锁定)
功能描述:
这个命令每次永久锁定user区中的32bits数据,锁定后,这32bits数据只能读,不能被再次写,也不能被擦除。仅对UCODE EPC G2电子标签有效。 应用:
Function int StaticClassReaderB. 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,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号。
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
maskadr:输入变量,EPC掩模起始字节地址。 maskLen:输入变量,掩模字节数。 maskFlag:输入变量,掩模使能标记。 maskFlag =1:掩模使能; maskFlag =0:掩模禁止;
BlockNum:输入变量,一个字节,要锁定的字地址。一次会锁定2个字:
当BlockNum为0或1 永久锁定 数据块(字地址) 0和1 当BlockNum为2或3 永久锁定 数据块(字地址) 2和3
27
UHFReader18CSharp.DLL动态连接库使用手册V2.5
当BlockNum为4或5 永久锁定 数据块(字地址) 4和5 当BlockNum为6或7 永久锁定 数据块(字地址) 6和7 当BlockNum为8或9 永久锁定 数据块(字地址) 8和9 当BlockNum为10或11 永久锁定 数据块(字地址) 10和11 当BlockNum为12或13 永久锁定 数据块(字地址) 12和13 EPClength:输入变量,一个字节。EPC号的字节长度。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输出变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,锁定成功。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.2.15) WriteBlock_G2 ():G2块写命令
功能描述:
这个命令可以一次性往保留内存、EPC存储器、TID存储器或用户存储器中写入若干个字。 应用:
Function int StaticClassReaderB.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, int WrittenDataNum, unsigned char * EPClength, unsigned char * errorcode,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
EPC:指向输入数组变量(输入的是每字节都转化为字符的数据)。是电子标签的EPC号。
Mem:输入变量,一个字节。选择要读取的存储区。 0x00: 保留区;
0x01:EPC存储器; 0x02:TID存储器; 0x03:用户存储器。
其他值保留。若命令中出现了其它值,将返回参数出错的消息。
WordPtr:输入变量,一个字节。指定要写入的字起始地址。指定要写入数据的起始地址。如果写的是EPC区,则会忽略这个起始地址。EPC区总是规定从EPC区0x02地址(EPC号的第一个字节)开始写。
Writedatalen:输入变量,一个字节。待写入的字节数(长度必须为偶数字节数)。Writedatalen必须大于0,这里字节数必须和实际待写入的数据个数相等。否则将会返回参数错误的消息。
Writedata:指向输入数组变量(输入的是每字节都转化为字符的数据)。待写入的字。这是要写入到存储区的数据。比如,WordPtr等于0x02,则输
28
UHFReader18CSharp.DLL动态连接库使用手册V2.5
出变量Data中第一个字(从左边起)写在Mem指定的存储区的地址0x02中,第二个字写在0x03中,依次类推。
Password:指向输入数组变量(输入的是每字节都转化为字符的数据),四个字节,这四个字节是访问密码。32位的访问密码的最高位在PassWord的第一字节(从左往右)的最高位,访问密码最低位在PassWord第四字节的最低位,PassWord的前两个字节放置访问密码的高字。
maskadr:输入变量,EPC掩模起始字节地址。 maskLen:输入变量,掩模字节数。 maskFlag:输入变量,掩模使能标记。 maskFlag =1:掩模使能; maskFlag =0:掩模禁止;
WrittenDataNum:输出变量,已经写入的字的个数。(以字为单位) EPClength:输入变量,一个字节。EPC号的字节长度。
Errorcode:输出变量,一个字节,读写器返回响应状态为0xFC时,返回错误代码。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,完全写入。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.3) 18000-6B 协议函数:
3.3.1) Inventory_6B ():6B寻查命令(单张)
功能描述:
本命令只能询查单张电子标签。如果多张标签同时处于天线有效范围内,可能无法询查到电子标签。 应用:
Function int StaticClassReaderB.Inventory_6B(unsigned char *ComAdr, unsigned char * ID_6B ,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
ID_6B:指向输出数组变量(输出的是每字节都转化为字符的数据),8个字节。是电子标签的ID号。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回零值,查找了一张卡。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
29
UHFReader18CSharp.DLL动态连接库使用手册V2.5
3.3.2) Inventory2_6B ():6B按条件寻查电子标签命令
功能描述:
本命令按照给定的条件询查电子标签。
应用:
Function int StaticClassReaderB.Inventory2_6B(unsigned char *ComAdr, unsigned char * Condition , unsigned char * StartAddress, unsigned char * mask , unsigned char * ConditionContent ,unsigned char * ID_6B , int * Cardnum,int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
Condition:输入变量,选择卡片的要求。 0x00: 等于条件; 0x01: 不等于条件; 0x02: 大于条件;0x03: 小于条件。
StartAddress:输入变量,用于比较的标签起始地址。
Mask:输入变量,掩码,一个字节。用来指定要比较的数据。Mask的每一位对应ConditionContent的一个字节。Mask的最高位对应(bit7)对应ConditionContent的最左边的一个字节。Mask的最低位对应(bit0)对应ConditionContent的最右边一字节。Mask相应位为1,表示要把该位在ConditionContent中对应的字节与标签中对应的字节进行比较;为0则不比较。
ConditionContent:指向输入数组变量(输入的是每字节都转化为字符的数据),八个字节。用于比较的条件,即用来比较的数据。
ID_6B:指向输出数组变量(输出的是每字节都转化为字符的数据)。多张电子标签ID,每个ID号八个字节。
Cardnum:输出变量,电子标签数量,范围为0 – 31。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回值: 0x15 询查时间结束前返回
0x16 询查时间结束使得询查退出
0x17 如果读到的标签数量无法在一条消息内传送完,将分多次发送。 0x18 还有电子标签未读取,电子标签数量太多,MCU存储不了 返回其他值,请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.3.3) ReadCard_6B ():6B读数据命令
功能描述:
该命令用来从电子标签的某个指定地址开始读若干个字节。 应用:
Function int StaticClassReaderB.ReadCard_6B(unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * StartAddress, unsigned char * Num, unsigned char * Data, unsigned char * errorcode, int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
ID_6B:指向输入数组变量(输入的是每字节都转化为字符的数据)。
30
UHFReader18CSharp.DLL动态连接库使用手册V2.5
要读数据的电子标签的ID,八个字节。
StartAddress:输入变量,一个字节。读数据的起始地址。地址范围为0 ~ 223。如果地址超出223,将返回参数错误信息。
Num:输入变量,一个字节,要读的数据字节数。 Num的范围是 1 ~ 32。如果StartAddress +Num大于224、或是Num超出32、或Num为0,读写器将返回参数错误信息。
Data:指向输出数组变量(输出的是每字节都转化为字符的数据)。是读到的数据内容。
Errorcode:输出变量,一个字节,保留。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,读数据成功。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.3.4) WriteCard_6B ():6B写数据命令
功能描述:
该命令向指定的电子标签写入若干个字节。 应用:
Function int StaticClassReaderB. WriteCard_6B (unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * StartAddress, unsigned char * Writedata, unsigned char * Writedatalen, unsigned char * writtenbyte, unsigned char * errorcode, int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
ID_6B:指向输入数组变量(输入的是每字节都转化为字符的数据)。要写数据的电子标签的ID,八个字节。
StartAddress:输入变量,一个字节。读数据的起始地址。地址范围为8 ~ 223。如果地址超出范围,将返回参数错误信息。
Writedata:指向输入数组变量(输入的是每字节都转化为字符的数据)。要写入的数据。长度限定在32个字节以内,超过32或Address加wdta的长度大于224,读写器将返回参数错误信息。Writedata高字节写在电子标签的低地址。
Writedatalen:输入变量,一个字节。写入数据的字节数。
Writtenbyte:输出变量,一个字节。写成功的字节数。写入的部分从
命令中的Writedata的高字节算起。
Errorcode:输出变量,保留,
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,写数据成功。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码
31
UHFReader18CSharp.DLL动态连接库使用手册V2.5
定义。
3.3.5) CheckLock_6B ():6B锁定检测命令
功能描述:
该命令用来检测指定的字节是否锁定。 应用:
Function int StaticClassReaderB.CheckLock_6B(unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * Address, unsigned char * ReLockState,unsigned char * errorcode, int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
ID_6B:指向输入数组变量(输入的是每字节都转化为字符的数据)。要被检测锁定的电子标签的ID,八个字节。
Address:输入变量,一个字节。要检测是否被锁定的字节的地址。地址范围为0~ 223。如果地址超出范围,将返回参数错误信息。
ReLockState:输出变量,一个字节。ReLockState 为0x00,未被锁定。ReLockState 为0x01,已经锁定,不能再次锁定。
Errorcode:输出变量,一个字节,保留。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值。
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
3.3.6) LockByte_6B ():6B锁定命令
功能描述:
该命令锁定指定的字节。 应用:
Function int StaticClassReaderB.LockByte_6B(unsigned char *ComAdr, unsigned char * ID_6B , unsigned char * Address, unsigned char * errorcode, int FrmHandle); 参数:
ComAdr:输入变量,读写器地址。
ID_6B:指向输入数组变量(输入的是每字节都转化为字符的数据)。要被锁定的电子标签的ID,八个字节。
Address:输入变量,一个字节。要锁定的字节地址。范围:8 ~ 223。超过这个范围将返回参数错误信息。
Errorcode:输出变量,一个字节,保留。
FrmHandle:输入变量,返回与读写器连接端口对应的句柄,应用程序通过该句柄可以操作连接在相应端口的读写器。如果打开不成功,返回的句柄值为-1。 返回:
如果该函数调用成功,返回一个零值,该字节未被锁定。
32
UHFReader18CSharp.DLL动态连接库使用手册V2.5
否则,返回非零值请查看其他返回值定义,返回的错误代码请查看错误代码定义。
4. 其他返回值定义
#define InventoryReturnEarly_G2 0x01 询查时间结束前返回 #define InventoryTimeOut_G2 0x02 指定的询查时间溢出
#define InventoryMoreData_G2 0x03 本条消息之后,还有消息 #define ReadermoduleMCUFull_G2 0x04 读写模块存储空间已满 #define AccessPasswordError 0x05 访问密码错误 #define DestroyPasswordError 0x09 #define DestroyPasswordCannotZero 0x0a #define TagNotSupportCMD 0x0b #define AccessPasswordCannotZero 0x0c #define TagProtectedCannotSetAgain 0x0d #define TagNoProtectedDonotNeedUnlock 0x0e #define ByteLockedWriteFail 0x10 #define CannotLock #define LockedCannotLockAgain #define ParameterSaveFailCanUseBeforeNoPower
#define CannotAdjust #define InventoryReturnEarly_6B #define InventoryTimeOut_6B #define InventoryMoreData_6B #define ReadermoduleMCUFull_6B #define NotSupportCMDOrAccessPasswordCannotZero
#define CMDExecuteErr 0xF9 #define GetTagPoorCommunicationCannotOperation
#define NoTagOperation #define TagReturnErrorCode #define CMDLengthWrong #define IllegalCMD #define ParameterError
#define CommunicationErr 0x30 #define RetCRCErr #define销毁密码错误
销毁密码不能为全0 电子标签不支持该命令
对该命令,访问密码不能为0 电子标签已经被设置了读保
护,不能再次设置
电子标签没有被设置读保护,
不需要解锁
有字节空间被锁定,写入失败 0x11 不能锁定
0x12 已经锁定,不能再次锁定 0x13 参数保存失败,但设置的值在
读写模块断电前有效
0x14 无法调整
0x15 询查时间结束前返回 0x16 指定的询查时间溢出
0x17 本条消息之后,还有消息 0x18 读写模块存储空间已满 0x19 电子不支持该命令或者访问
密码不能为0
命令执行出错 0xFA 有电子标签,但通信不畅,无
法操作
0xFB 无电子标签可操作 0xFC 电子标签返回错误代码 0xFD 命令长度错误 0xFE 不合法的命令 0xFF 参数错误 通讯错误 0x31 CRC校验错误 RetDataErr 0x32 返回数据长度有错误
33
UHFReader18CSharp.DLL动态连接库使用手册V2.5
0x33 通讯繁忙,设备正在执行
其他指令
#define ExecuteCmdBusy 0x34 繁忙,指令正在执行 #define ComPortOpened 0x35 端口已打开 #define ComPortClose 0x36 端口已关闭 #define InvalidHandle 0x37 无效句柄 #define InvalidPort 0x38 无效端口 #define CommunicationBusy
#define RecmdErr
5. 错误代码定义
#define OtherError #define MemoryOutPcNotSupport
#define MemoryLocked #define NoPower #define NotSpecialError
0XEE返回指令错误 0x00 其它错误,全部捕捉未被其
它代码覆盖的错误
0x03 存储器超限或不被支持的PC
值,规定存储位置不存在或 标签不支持PC值 0x04 存储器锁定,存储位置锁定
或永久锁定,且不可写入
0x0b 电源不足,标签电源不足,
无法执行存储写入操作
0x0f 非特定错误,标签不支持特
定错误代码
34
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务