读写器SDK函数说明win7(C#).doc_第1页
读写器SDK函数说明win7(C#).doc_第2页
读写器SDK函数说明win7(C#).doc_第3页
读写器SDK函数说明win7(C#).doc_第4页
读写器SDK函数说明win7(C#).doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

读写器SDK函数说明(C#)动态库文件名: RfidApiLib.dll1.函数1-1. 读写器管理函数TcpConnectReader函数描述public int TcpConnectReader(string ip, int port)功能在局域网模式下连接读写器设备参数参数参数意义、范围ip读写器网口地址,是一个IP地址的地址的字符串格式的有效表示形式,必须和被连接的电脑处于同一个网段( 默认:192.168.1.200)port设备端口号(范围165535)返回值返回值:0为成功,非0为失败。应用实例If(TcpConnectReader (192.168.1.200,100) = 0) MessageBox(成功);Else MessageBox(失败);OpenCommPort函数描述public int OpenCommPort(string strPort, int nBoud)功能初始化设备端口连接和配置READER波特率等参数参数参数参数意义、范围strPort通讯串口号(COM1、COM2、COM3)nBoud串口波特率(9600、19200、38400、57600、115200)返回值返回值:0为成功,非0为失败。应用实例If(OpenCommPort (“COM1”,9600) = 0) MessageBox(成功);Else MessageBox(失败);TcpCloseConnect 函数描述 public int TcpCloseConnect()功能关闭设备端口,断开与设备的连接参数无返回值返回值:0为成功,非0为失败。应用实例If(TcpCloseConnect () = 0) MessageBox(成功);Else MessageBox(失败);CloseCommPort函数描述 public void CloseCommPort()功能关闭设备端口,断开与设备的连接参数无返回值返回值:0为成功,非0为失败。应用实例If(CloseCommPort () = 0) MessageBox(成功);Else MessageBox(失败);SetBaudRate函数描述 public int SetBaudRate(int nBaudRate,)功能设置读写器的波特率参数参数参数意义、范围nBaudRate串口通讯特定的波特率,分别为9600、19200、38400、57600和115200返回值返回值:0为成功,非0为失败。应用实例If(SetBaudRate(115200)=0) MessageBox(成功);Else MessageBox(失败);ResetReader函数描述public int ResetReader()功能读写器复位参数无返回值返回值:0为成功,非0为失败。应用实例If(ResetReader() = 0) MessageBox(成功);Else MessageBox(失败);GetFirmwareVersion函数描述public int GetFirmwareVersion(ref byte v1, ref byte v2)功能查询读写器固件版本号参数参数参数意义、范围v1固件版本的高字节v2固件版本的低字节返回值返回值:0为成功,非0为失败。应用实例If(GetFirmwareVersion(v1,v2) = 0) MessageBox(成功);Else MessageBox(失败);SetRf函数描述public int SetRf(byte power, byte freq_type)功能设置读写器的功率和频率参数参数参数参数意义、范围power功率值,取值为030,对应030dBm.freq_type频率类型,取0时为国标(920M925M),取1时为美标(902M928M),其它为特殊机型(如868M)返回值返回值:0为成功,非0为失败。应用实例If(SetRf(power, freq_type) = 0) MessageBox(成功);Else MessageBox(失败);GetRf函数描述public int GetRf(ref byte power, ref byte freq_type)功能设置读写器当前功率和频率参数参数参数参数意义、范围power功率值,取值为030,对应030dBm.freq_type频率类型,取0时为国标(920M925M),取1时为美标(902M928M),其它为特殊机型(如868M)返回值返回值:0为成功,非0为失败。应用实例If(GetRf(ref power, ref freq_type) = 0) MessageBox(成功);Else MessageBox(失败);SetAnt函数描述public int SetAnt(byte byAntennaL, byte byAntennaH)功能设置读写器天线号的开放状态参数参数参数意义、范围byAntennaL天线号,取值为04,对应最多4个天线端口byAntennaH读写器地址,供固定式读写器组RS485网络使用,默认为0XFF(手持机与模块为无效参数)。返回值返回值:0为成功,非0为失败。应用实例If(SetAnt (ant,byReaderAddr) = 0) MessageBox(成功);Else MessageBox(失败);GetAnt函数描述public int GetAnt(ref byte byAntenna)功能查询读写器当前处于开放状态的天线号参数参数参数意义、范围byAntenna天线号,取值为04,对应最多4个天线端口返回值返回值:0为成功,非0为失败。应用实例If(GetAnt (ref ant) = 0) MessageBox(成功);Else MessageBox(失败);SetGPIO_Out函数描述public int SetGPIO_Out (byte level)功能设置读写器输出端口的高低电平参数参数参数意义、范围level本参数按位操作对应每一个IO端口,0为低电平(继电器放开),1为高电平(继电器闭合)例如:设置1、3端口为高电平,2、4端口为低电平对应参数为二进制0000 0101,即十六进制 0x05设置1、2、3、4全部高电平对应参数为二进制0000 1111,即十六进制 0x0F返回值返回值:0为成功,非0为失败。应用实例If(SetOutPort(1) = 0) MessageBox(成功);Else MessageBox(失败);GetTcpParameter函数描述public int GetTcpParameter(ref string strIP, ref string strMark, ref string strGate, ref int nTcpPort)功能查询读写器TCP网络通讯端口的IP地址、子网掩码、缺省网关、TCP端口号参数。参数参数参数意义、范围strIP读写器网口地址,是一个IP地址的地址的字符串格式的有效表示形式,必须和被连接的电脑处于同一个网段( 默认:192.168.1.200)strMark子网掩码地址,是一个子网掩码的字符串格式的有效表示形式strGate网关地址,是一个网关的字符串格式的有效表示形式nTcpPort设备端口号(范围165535)返回值返回值:0为成功,非0为失败。应用实例If(GetTcpParameter (ref strIP ,ref strMark ,ref strGate,ref nTcpPort) = 0) MessageBox(“成功”);Else MessageBox(“失败”);SetTcpParameter函数描述public int SetTcpParameter(string strIP, string strMark, string strGate, int nTcpPort)功能设置读写器TCP网络通讯端口的IP地址、子网掩码、缺省网关、TCP端口号参数。参数参数参数意义、范围strIP读写器网口地址,是一个IP地址的地址的字符串格式的有效表示形式,必须和被连接的电脑处于同一个网段( 默认:192.168.1.200)strMark子网掩码地址,是一个子网掩码的字符串格式的有效表示形式strGate网关地址,是一个网关的字符串格式的有效表示形式nTcpPort设备端口号(范围165535)返回值返回值:0为成功,非0为失败。应用实例If(SetNetSetting(strIP , strMark , strGate, nTcpPort) = 0) MessageBox(成功);else MessageBox(失败);1-2.ISO18000-6B标签操作函数IsoMultiTagIdentify函数描述public int IsoMultiTagIdentify(ref byte, tag_buf, ref byte tag_cnt)功能ISO18000-6B多标签识别。参数参数参数意义、范围tag_buf识别到的数据(包括标签数据,天线号等)tag_cnt标签数量返回值返回值:0为成功,非0为失败。应用实例if(IsoMultiTagIdentify(ref tag_buf,ref tag_cnt) = 0) MessagBox(“成功”);else MessagBox(“失败”);IsoReadWithID函数描述public int IsoReadWithID(byte byTagID, byte byAddress, ref byte byLabelData, ref byte byAntenna)功能读取指定ID号的标签数据,每次读取指定地址开始的8字节数据参数参数参数意义、范围byTagID指定标签的TIDbyAddress读取起始地址byLabelData读取的标签数据byAntenna天线号返回值返回值:0为成功,非0为失败。应用实例if(IsoReadWithID(byTagID, byAddress, ref byLabelData, ref byAntenna) = 0) MessagBox(“成功”);else MessagBox(“失败”);IsoWriteWithID函数描述public int IsoWriteWithID(byte byTagID, byte byAddress, byte byValue)功能向指定ID号的标签中写入数据参数参数参数意义、范围byTagID指定标签的TIDbyAddress写入数据的起始地址byValue写入标签的数据返回值返回值:0为成功,非0为失败。应用实例if(IsoWriteWithID(byTagID, byAddress, byValue) = 0)MessageBox(“成功”);else MessageBox(“失败”);IsoRead函数描述public int IsoRead(byte addr, ref byte value)功能向6B标签中写入数据参数参数参数意义、范围addr读取的起始地址value读取到的数据返回值返回值:0为成功,非0为失败。应用实例if(IsoRead (addr, value) = 0)MessageBox(“成功”);else MessageBox(“失败”);IsoWrite函数描述public int IsoWrite(byte addr, byte value)功能向6B标签中写入数据参数参数参数意义、范围addr写入数据的起始地址value写入到标签的数据返回值返回值:0为成功,非0为失败。应用实例if(IsoWrite (addr, value) = 0)MessageBox(“成功”);else MessageBox(“失败”);IsoLock函数描述public int IsoLock(byte addr)功能对指定的6B标签地址进行琐定,一旦琐定,该地址不能被解锁参数参数参数意义、范围addr要锁定的地址返回值返回值:0为成功,非0为失败。应用实例if(IsoLock (addr) = 0)MessageBox(“成功”);elseMessageBox(“失败”);1-3. EPC GEN2 标签操作函数EpcMultiTagIdentify函数描述public int EpcMultiTagIdentify(ref byte, tag_buf, ref byte tag_cnt, ref byte tag_flag)功能EPC GEN2 多标签识别参数参数参数意义、范围tag_buf识别到的数据(包括标签数据,天线号等)tag_cnt标签数量tag_flag状态标识,0是读取成功,1是读取失败返回值返回值:0为成功,非0为失败。应用实例if(Gen2MultiTagIdentify(ref tag_buf, ref tag_cnt, ref tag_flag) = 0) MessagBox(“成功”);else MessagBox(“失败”);EpcRead函数描述public int EpcRead(byte membank, byte wordptr, byte wordcnt, ref byte value)功能从指定地址开始连续读取指定长度的数据参数参数参数意义、范围membank读取区域,销毁密码和访问密码区为0,EPC编码区为1,USER区为3区wordptr起始地址wordcnt读取数据的长度,单位为字value读取到的标签数据返回值返回值:0为成功,非0为失败。应用实例if(Gen2Read (membank, wordptr, wordcnt, ref value) = 0)MessageBox(“成功”);elseMessageBox(“失败”);EpcWrite函数描述public int EpcWrite(byte membank, byte wordptr, ushort value)功能从指定地址开始连续写入指定的数据,一次只能写一个字参数参数参数意义、范围membank读取区域,销毁密码和访问密码区为0,EPC编码区为1,USER区为3区wordptr起始地址value写入标签的数据返回值返回值:0为成功,非0为失败。应用实例if(EpcWrite (membank, wordptr, value) = 0)MessageBox(“成功”);elseMessageBox(“失败”);Gen2SecLock函数描述public int Gen2SecLock(uint AccPassWord, byte Membank, byte Level)功能EPC GEN2标签加锁,使EPC标签只有提供正确密码才能安全写入参数参数参数意义、范围AccPassWord标签密码区数据Membank锁写的区域,0为保留区,1为EPC,2为TID,3为用户区Level安全锁级别(锁定等级,0为不锁定,1为永久不锁定,2为安全锁定,3为全锁定。)返回值返回值:0为成功,非0为失败。应用实例if(Gen2SecLock(AccPassWord, Membank, Level) = 0)MessageBox(“成功”);elseMessageBox(“失败”);EpcLockTag函数描述public int EpcLockTag(byte MemBank)功能EPC GEN2标签加锁,使EPC标签只有提供正确密码才能安全写入参数参数参数意义、范围MembankbyMemBank 锁写的区域,0为保留区,1为EPC,2为TID,3为用户区返回值返回值:0为成功,非0为失败。应用实例if(EpcLockTag (MemBank) = 0)MessageBox(“成功”);elseMessageBox(“失败”);EpcInitEpc函数描述public int EpcInitEpc(byte bit_cnt)功能初始化标签的EPC编码区长度,默认初始化为96位(6个字),并赋值为全0参数参数参数意义、范围bit_cnt初始化数据长度返回值返回值:0为成功,非0为失败。应用实例if(EpcInitEpc (bit_cnt) = 0)MessageBox(“成功”);elseMessageBox(“失败”);Gen2SecWrite函数描述public int Gen2SecWrite(uint AccPassWord, byte Membank, byte WordAddr, ushort Value)功能EPC GEN2标签数据安全写参数参数参数意义、范围AccPassWord标签密码区数据MembankbyMemBank 锁写的区域,0为保留区,1为EPC,2为TID,3为用户区WordAddr安全写的起始地址Value需要安全写入的数据返回值返回值:0为成功,非0为失败。应用实例if(Gen2SecWrite(AccPassWord, Membank, WordAddr, Value) = 0)MessageBox(“成功”);elseMessageBox(“失败”);Gen2SecRead函数描述public int Gen2SecRead(uint AccPassWord, byte Membank, byte WordAddr, byte WordCnt, ref byte value)功能EPC GEN2标签数据安全读参数参数参数意义、范围AccPassWord标签密码区数据MembankbyMemBank 锁写的区域,0为保留区,1为EPC,2为TID,3为用户区WordAddr安全读的起始地址WordCnt安全读取数据的长度value读取到的标签数据返回值返回值:0为成功,非0为失败。应用实例if(Gen2SecRead(AccPassWord, Membank, WordAddr, WordCnt, ref value) = 0)MessageBox(“成功”);elseMessageBox(“失败”);Gen2SetAccPwd函数描述public int Gen2SetAccPwd(uint AccPassWord)功能EPC GEN2标签访问密码设置参数参数参数意义、范围AccPassWord要设定的密码区数据返回值返回值:0为成功,非0为失败。应用实例if(Gen2SecRead(AccPassWord) = 0)MessageBox(“成功”);elseMessageBox(“失败”);Gen2KillTag函数描述public int Gen2KillTag(uint AccPassWord)功能EPC GEN2标签销毁参数参数参数意义、范围AccPassWord标签销毁区密码数据返回值返回值:0为成功,非0为失败。应用实例if(Gen2KillTag (AccPassWord) = 0)MessageBox(“成功”);elseMessageBox(“失败”);1-4.SO18000-6B标签数据处理函数ClearIdBuf函数描述public int ClearIdBuf()public int ResetReader()功能清空读写器标签数据缓存区,在每次多标签识别前可使用参数无返回值返回值:0为成功,非0为失败。应用实例if(ClearIdBuf () = 0)MessageBox(“成功”);elseMessageBox(“失败”);2.源程序样例2-1建立工程2-2添加动态库RfidApiLib.dll引用到工程项目中。(如图所示)添加了动态库RfidApiLib.dll引用到工程项目并创建对象后,就可以直接调用dll里面的库函数了。2-3调用库函数实现相应的功能读写器基本设置与管理流程图如下:NY调用OpenCommPort ()或TcpConnectReader()方法读写器是否连接成功?运行程序调用SetAnt ()方法进行天线设置调用SetTcpParameter ()方法进行网口通讯参数设置调用SetRf ()方法设置功率退出程序选择连接读写器的通讯模式调用GetFirmwareVersion ()方法查询固件版本调用CloseCommPort ()或TcpCloseConnect方法关闭连接ISO18000-6B标签操作流程图如下:向指定ID的标签写数据是否成功?连接读写器并进行基本设置调用IsoMultiTagIdentify() ()方法开始识别6B标签是否循环读取标签?NY调用IsoWriteWithID ()向指定ID的标签写数据运行程序调用IsoReadWithID()读取指定ID号的标签数据退出程序YN调用CloseCommPort ()或TcpCloseConnect方法关闭连接EPC GEN2 标签操作流程图如下:向当前标签写数据是否成功?连接读写器并进行基本设置是否循环读取标签?NY调用EpcWrite()向当前6C标签写数据运行程序调用EpcRead ()读取指定地址和长度的标签数据退出程序YN调用EpcMultiTagIdentify () 方法开始识别6C标签调用CloseCommPort ()或TcpCloseConnect方法关闭连接(1). 调用OpenCommPort ()方法连接读写器。 int status; byte v1 = 0; byte v2 = 0; string s = ; status = Api.OpenCommPort(cCommPort.SelectedItem.ToString(),Convert.ToInt32(cBaudrate.Text); if (status != 0) lInfo.Items.Add(Open Comm Port Failed! ); return; status = Api.GetFirmwareVersion(ref v1,ref v2); if (status != 0) lInfo.Items.Add(Can not connect with the reader! ); Api.CloseCommPort(); return; lInfo.Items.Add(Connect the reader success! ); s = string.Format(The readers firmware version is:V0:d2.1:d2, v1, v2); s = s + ; lInfo.Items.Add(s);/ 新增设置波特率功能,可提高多标签识别速度status = Reader1.SetBaudRate(byte)cBaudrate.SelectedIndex);if (status != 0) lInfo.Items.Add(Set baudrate failed!); Reader1.CloseCommPort(); return;lInfo.Items.Add(Set baudrate success!);(2). 调用SetRf ()方法设置功率。 byte pwr = 0; byte freq = 0; int status; pwr = (byte)(tRfPwr.Value); freq = (byte)(cRfFreq.SelectedIndex); status = Api.SetRf(pwr, freq); if (status != 0) lInfo.Items.Add(Set Rf settings failed! ); return; lInfo.Items.Add(Set Rf settings success! );(3). 调用SetAnt ()方法进行天线设置。 byte ant_sel = 0; byte antH = 0; int status; if (ant1.Checked) ant_sel |= 0x01; if (ant2.Checked) ant_sel |= 0x02; if (ant3.Checked) ant_sel |= 0x04; if (ant4.Checked) ant_sel |= 0x08; status = Api.SetAnt(ant_sel, antH); if (status != 0) lInfo.Items.Add(Set ant failed! ); return; lInfo.Items.Add(Set ant success! );(4). 调用SetTcpParameter ()方法进行网口通讯参数设置。int status=0; string strIp=; string strMark = ; string strGate = ; int nTcpPort =0; try strIp = txtNetIP.Text; strMark = txtSubNet.Text; strGate = txtDefaultGate.Text; nTcpPort = int.Parse(txtTcpPort.Text); catch (Exception) lInfo.Items.Add(Please input all the parameter ! ); return; status=Api.SetTcpParameter(strIp,strMark, strGate, nTcpPort); if (status != 0) lInfo.Items.Add(Setting the TcpParameter Fail,please try again. ); return; lInfo.Items.Add(Setting the TcpParameter successful. );(5). 调用IsoMultiTagIdentify() ()方法开始识别6B标签。int status; int i,j; byte, IsoBuf = new byte100,14; byte tag_cnt = 0; string s = ; string s1 = ; status = Api.IsoMultiTagIdentify(ref IsoBuf, ref tag_cnt); if (tag_cnt 0) for (i = 0; i tag_cnt; i+) s1 = string.Format(NO.0:D:, TagCnt); s1 += string.Format(ANT0:D, IsoBufi, 1 + 1); for (j = 2; j 1000) lInfo.Items.Clear(); lInfo.Items.Add(s1); TagCnt+; (6). 调用IsoReadWithID()读取指定ID号的标签数据。 int addr; int len; int i = 0; int status = 0; byte byAntenna = 0; byte TagID = new byte16; byte value = new byte32; string s = The data is:; string s1 = ; try addr = int.Parse(tIsoAddr.Text); len = int.Parse(tIsoCnt.Text); catch (Exception) lInfo.Items.Add(Please input ByteAddr and ByteCnt ); return; string hexValues = txtTagID.Text; string hexValuesSplit = hexValues.Split( ); try foreach (String hex in hexValuesSplit) int x = Convert.ToInt32(hex, 16); TagIDi+ = (byte)x; catch (Exception) lInfo.Items.Add(Please input Tag ID need

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论