【vfp精品源码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了vfp精品源码-【精品】WS-R-C系列读写器二次开发说明 V4.01 - 网络与通信的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
WS-R-C 系列读写器二次开发说明 版本 V4.01最近更新日期 2011 年 10 月 20 日适用型号 WS-R-C 系列 Mifare 读写器WS-R-C 系列读写器性能参数 1.适用于符合 MIFARE 标准的非接触卡 2.支持 MIFARE 标准 3.工作频率 13.56MHZ 4.设备接口:RS232(USB 取电,RS232 串口通讯) USB-COM(需安装 USB 转串口驱动,虚拟串口), USB-HID(人体工学设备,直接 USB 通讯,即插即用) 5.通讯方式:串口,USB 6.通讯参数:波特率 57600 bit/s,8 位数据位,1 位停止位,无校验 7.最大读卡距离 100mm 8.控制蜂鸣器鸣响 9.外型尺寸:120mm×98mm×29mm10.颜色:黑色11.提供的二次开发平台和丰富的应用范例读写器开发套件包括: 读写器,USB 通讯线,开发光盘开发光盘目录WS-R-C 系列读写器二次开发说明 X.doc 说明
文档,必看测试工具 . 标准函数测试工具动态库. 读写器访问动态库文件动态库C Builder. Borland C Builder 6 专用 lib 文件头文件动态库Windows dll. Windows 平台其他开发语言使用的 dll 文件演示
源码BCB6. Borland C Builder 6 演示
源码,接口文件为 WSR.h演示
源码Delphi7.
Delphi7 演示
源码,接口文件为 WSR.pas演示
源码Java.
Java 演示
源码演示
源码VB6. VB6 演示
源码,接口文件为 WSR.bas演示
源码VC6. VC6 演示
源码,接口文件为 WSR.h演示
源码VFP6.
VFP6 演示
源码演示
源码PB9. Power Builder 9 演示
源码演示源码VS2005 C. C Visual Studio.NET 2005演示
源码,接口文件为 WSR.cs演示
源码VS2005
VB. Basic.NetVisual Studio.NET 2005演示
源码,接口文件为 WSR.vb演示
源码VS2008 VC. VC Visual Studio.NET 2008演示
源码,接口文件为 WSR.h演示
源码易语言. 易语言演示
源码USB 驱动USB 转串口驱动 341 默认安 USB 驱动,支持以下操作
系统:装此驱动. 支持 Windows 98/XP/2000/Vista/7USB 驱动USB 转串口驱动 232. USB 驱动,此为特殊驱动,除非事先说明,否则不要安装此驱动动态库文件包含:WSR.dllWSR.lib 库文件, VCBCB 需要WSR.h API 函数头文件,VCBCB 需要注意:1.动态库支持 VC/VB/BCB/Delphi/Visual Foxpro/Power Builder/易语言/Visual Studio 2003/2005/2008/2010 等开发工具环境。
2.以下只列出函数在 VC 开发环境下的描述( 表示 VC 开发环境下的函数声明),其它开发环境的函数描述 在对应的演示
源码中可以找到; 3.在参数说明中in表示传入参数,out表示传出参数; 4.一台
计算机只能连接 1 台 USB-HID M1设备,不能同时连接多台 USB-HID M1设备。
-1- Windows 平台开发篇一、开发基本流程API 函数一般调用顺序1.打开串口 打开串口 ws_openPort 获取串口句柄 ws_getPort2.设备访问 点名获取设备信息 ws_callDevice ws_callDevice1 蜂鸣 ws_beep3.卡操作 卡号操作 读取卡号 ws_getCardNo_DWORD ws_getCardNo_Double ws_getCardNo_String 设置卡序列号的顺序 ws_set_cardno_seq 密码操作 以 char 字符组方式操作 装载密码 ws_loadKey 修改密码 ws_changeKey 修改密码 A ws_changeKeyA 修改密码 B ws_changeKeyB 以 Hex 字符串方式操作 装载密码 ws_loadKey_Hex 修改密码 ws_changeKey_Hex 修改密码 A ws_changeKeyA_Hex 修改密码 B ws_changeKeyB_Hex 值操作 初始化值 ws_initValue 读值 ws_readValue 增值 ws_incValue 减值 ws_decValue 读写卡操作 以 char 字符组方式操作 读块数据 ws_readBlock 连续读数据 ws_readData -2- 写块数据 ws_writeBlock 连续写数据 ws_writeData 以 Hex 字符串方式操作 读块数据 ws_readBlock_Hex 连续读数据 ws_readData_Hex 写块数据 ws_writeBlock_Hex 连续写数据 ws_writeData_Hex 显示屏操作 显示文本 ws_displayText 清空显示 ws_clearText4.辅助函数 Hex 字符串转换为 Char 字符串 ws_strHexToChar Char 字符串转换为 Hex 字符串 ws_charToStrHex 计算扇区密码区对应的物理块号 Ws_getKeyBlock 计算扇区块号对应的物理块号 ws _getBlock 动态库版本信息 ws_getDLLInfo5.关闭串口 关闭串口 ws_closePort -3-基本事务流程图说明:1.流程图中【意外事件】主要是指函数调用失败的情况,一般当函数返回值小于 0 即为失败;2.事务从开始到结束是一气呵成的,有些
软件开发人员,在打开应用
程序界面的时候【打开串口】,关闭界面的时候【关闭串口】,这种做法在非实时操作读写器的应用中是不正确的。
正确的做法就是在需要进行操作卡事务的时候【打开串口】,完成一系列读写卡操作后,马上【关闭串口】,整个过程十分短暂,一般在两秒钟内完成;3.以上流程不是强制性的标准流程,根据实际开发事务的需要,可以
设计出自己的流程。
-4-二、函数原型说明1.串口控制类打开串口 ws_openPort int ws_openPort int Port 参 数: Port in 串口号(范围:1-255);访问 HID 设备时,此处传入 0 返回值: gt0 成功 lt0 失败关闭串口 ws_closePort int ws_closePort int Port 参 数: Port in 串口号(范围:1-255);访问 HID 设备时,此处传入 0 返回值: gt0 成功 lt0 失败2.设备控制类点名获取设备信息 ws_callDevice int ws_callDevice int Port 参 数: Port in 串口号 返回值: gt0 成功 lt0 失败 ws_callDevice1ws_callDevice int ws_callDevice1 int Portchar Modelint CPUTypedouble Version 参 数: Port in 串口号 Model out设备型号 CPUType outCPU 类型 Version out设备版本 返回值: gt0 成功 lt0 失败蜂鸣 ws_beep int ws_beep int Port 参 数: Port in 串口号 返回值: gt0 成功 lt0 失败 -5-3.卡操作类卡号操作 卡号即M1卡本身的序列号,这是卡本身固化的信息。
卡号的获取无需进行密码装载和验证即可获得。
读取卡号 ws_getCardNo_DWORD int ws_getCardNo_DWORD int PortDWORD CardNo 参 数: Port in 串口号 CardNo out 以无符号整型数传出卡号 返回值: gt0 成功 lt0 失败 ws_getCardNo_Double int ws_getCardNo_Double int Portdouble CardNo 参 数: Port in 串口号 CardNo out 以双精度浮点数传出卡号 返回值: gt0 成功 lt0 失败 ws_getCardNo_String int ws_getCardNo_String int Portchar CardNo 参 数: Port in 串口号 CardNo out 以字符串传出卡号,注意卡号最大长度为 10 返回值: gt0 成功 lt0 失败设置卡序列号的顺序 ws_set_cardno_seq Void ws_set_cardno_seq int Portint seq 参 数: Port in 串口号 seq in 顺序标志:0-默认顺序 1-按字节反转卡号 返回值: gt0 成功 lt0 失败 -6-密码操作以 char 字符组方式操作装载密码 ws_loadKey int ws_loadKey int Portchar Keyint KeyType 参 数: Port in 串口号 Key in 传入密码,长度 6 字节 KeyType in 密码类型 0 表示 A 密码默认 1 表示 B 密码 返回值: gt0 成功 lt0 失败修改密码 ws_changeKey int ws_changeKeyA int Portint Sector char NewKeyAchar NewACchar NewKeyB 参 数: Port in 串口号 Sector in 扇区号,范围 0-15 NewKeyA in 新密码 A,长度 6 字节 NewKeyAC in 新存取控制字,长度 4 字节 NewKeyB in 新密码 B,长度 6 字节 返回值: gt0 成功 lt0 失败以 hex 字符串方式操作装载密码 ws_loadKey_Hex int ws_loadKey_Hex int Portchar Keyint KeyType 参 数: Port in 串口号 Key in 传入密码,长度 12 个字符 KeyType in 密码类型 0 表示 A 密码默认 1 表示 B 密码 返回值: gt0 成功 lt0 失败修改密码 ws_changeKey_Hex int ws_changeKeyA_Hex int Portint Sector char NewKeyAchar NewACchar NewKeyB 参 数: Port in 串口号 Sector in 扇区号,S50 卡范围 0-15,S70 卡范围 0-39 NewKeyA in 新密码 A,长度 12 个字符 NewKeyAC in 新存取控制字,长度 8 个字符 NewKeyB in 新密码 B,长度 12 个字符 返回值: gt0 成功 lt0 失败 -7-值操作 M1 卡可以自身指令对指定块进行值操作,无需了解具体细节,简化开发的复杂性。
第一次对卡进行值操作时,首先要初始化初值 ws_initValue,然后才能进行读值ws_readValue、增值ws_incValue、减值ws_decValue的操作。
初始化值 ws_initValue Void ws_initValue int Portint Blockunsigned long Value 参 数: Port in 串口号 Block in 物理块号 Value in 初值 返回值: gt0 成功 lt0 失败读值 ws_readValue Void ws_readValue int Portint Blockunsigned long Value 参 数: Port in 串口号 Block in 物理块号 Value out 读出的值 返回值: gt0 成功 lt0 失败增值 ws_incValue Void ws_incValue int Portint Blockunsigned long Value 参 数: Port in 串口号 Block in 物理块号 Value in 增加的值 返回值: gt0 成功 lt0 失败减值 ws_decValue Void ws_decValue int Portint Blockunsigned long Value 参 数: Port in 串口号 Block in 物理块号 Value in 减去的值 返回值: gt0 成功 lt0 失败 -8-读写卡操作以 char 字符组方式操作读块数据 ws_readBlock int ws_readBlock int Portint Blockchar Data 参 数: Port in 串口号 Block in 要读取的块号,S50 卡范围 0-63,S70 卡范围 0-255 Data out 读出的数据,长度 16 字节 返回值: gt0 成功 lt0 失败连续读数据 ws_readData int ws_readData int Portint Blockchar Dataint Len 参 数: Port in 串口号 Block in 要读取的块号,S50 卡范围 0-63,S70 卡范围 0-255 Data out 读出的数据,长度由 Len 决定 Len in 读取字节数 返回值: gt0 成功 lt0 失败写块数据 ws_writeBlock int ws_writeBlock int Portint Blockchar Data 参 数: Port in 串口号 Block in 要写入的块号,S50 卡范围 0-63,S70 卡范围 0-255 Data in 要写入的数据,长度 16 字节 返回值: gt0 成功 lt0 失败连续写数据 ws_writeData int ws_writeData int Portint Blockchar Dataint Len 参 数: Port in 串口号 Block in 要写入的块号,S50 卡范围 0-63,S70 卡范围 0-255 Data in 要写入的数据,长度由 Len 决定 Len in 写入字节数 返回值: gt0 成功 lt0 失败 -9-显示屏操作显示文本 ws_displayText Void ws_initValue int Portint LineNoint Lengthchar Text 参 数: Port in 串口号 LineNo in 行号,行号为 1、2,共 2 行 Length in 文本长度,最长为 15 个字符 Text in 文本 返回值: gt0 成功 lt0 失败清空显示 ws_clearText Void ws_initValue int Portint LineNo 参 数: Port in 串口号 LineNo in 行号,行号为 1、2,共 2 行 返回值: gt0 成功 lt0 失败 - 10 -以 Hex 字符串方式操作读块数据 ws_readBlock_Hex int ws_readBlock_Hex int Portint Blockchar Data 参 数: Port in 串口号 Block in 要读取的块号,S50 卡范围 0-63,S70 卡范围 0-255 Data out 读出的数据,长度 32 字节 返回值: gt0 成功 lt0 失败连续读数据 ws_readData_Hex int ws_readData_Hex int Portint Blockchar Dataint Len 参 数: Port in 串口号 Block in 要读取的块号,S50 卡范围 0-63,S70 卡范围 0-255 Data out 读出的数据,长度由 Len 决定 Len in 读取字节数 返回值: gt0 成功 lt0 失败写块数据 ws_writeBlock_Hex int ws_writeBlock_Hex int Portint Blockchar Data 参 数: Port in 串口号 Block in 要写入的块号,S50 卡范围 0-63,S70 卡范围 0-255 Data in 要写入的数据,长度 32 字节 返回值: gt0 成功 lt0 失败连续写数据 ws_writeData_Hex int ws_writeData_Hex int Portint Blockchar Dataint Len 参 数: Port in 串口号 Block in 要写入的块号,S50 卡范围 0-63,S70 卡范围 0-255 Data in 要写入的数据,长度由 Len 决定 Len in 写入字节数 返回值: gt0 成功 lt0 失败 - 11 -4.辅助函数类Hex 字符串转换为 Char 字符串 ws_strHexToChar int ws_strHexToChar char StrHexValueint Lenchar CharValue 参 数: StrHexValue in Hex 字符串 Len in StrHexValue 长度 CharHex out Char 字符串,长度为 StrHexValue 的一半 返回值: gt0 成功 lt0 失败Char 字符串转换为 Hex 字符串 ws_charToStrHex int ws_charToStrHex char CharValueint Lenchar StrHexValue 参 数: CharHex in Char 字符串 Len in CharHex 长度 StrHexValue out Hex 字符串,长度为 CharHex 一倍 返回值: gt0 成功 lt0 失败计算扇区密码区对应的物理块号 ws_getKeyBlock int ws_getKeyBlock int Sector 参 数: Sector in 扇区号,S50 卡范围 0-15,S70 卡范围 0-39 返回值: gt0 成功,返回值为物理块号 lt0 失败计算扇区块号对应的物理块号 ws_getBlock int ws_getBlock int Sectorint SectorBlock 参 数: Sector in 扇区号,S50 卡范围 0-15,S70 卡范围 0-39 SectorBlock in 扇区块号 S50 卡范围 0-3,S70 卡范围 0-15 返回值: gt0 成功,返回值为物理块号 lt0 失败动态库版本信息 ws_getDLLInfo int ws_getDLLInfo double Versiondouble BuildDate 参 数: Version out动态库版本号 BuildDate out动态库最后生成日期 返回值: gt0 成功 lt0 失败 - 12 -三、函数返回码说明 返回码 说明 十进制(十六进制) gt0 操作成功 -1 参数值不正确 -10 0x0A 仅修改密码装载密码失败 -11 0x0B 仅修改密码读数据失败 -12 0x0C 仅修改密码写数据失败 -1000x64 写串口失败 -1010x65 读串口失败 -1020x66 接收的数据无效 -2260xE2 卡不存在/卡坏 -2270xE3 防冲撞错误 -2280xE4 锁定卡出错 -2290xE5 传密钥出错 -2300xE6 密码验证出错 -2310xE7 读块数据出错 -2320xE8 写块数据出错 -2330xEA 复位 RC500 失败 -2340xEB 钱包值调入缓冲区出错 -2350xEC 保存缓冲区值中的钱包值出错 -2360xED 增值出错 -2380xEF 减值出错 -2400xF0 块值格式不对 -2410xF1 块值不够减 -2420xF2 值溢出 - 13 - WinCE 平台开发篇一、版本介绍V3.1 版 开发光盘目录WS-R-C 系列读写器二次开发说明.doc 说明
文档,必看测试工具 . 标准函数测试工具动态库. 读写器访问动态库文件演示
源码VS2005.C. C Visual Studio.
NET 2005演示
源码,接口文件为 WSR.cs演示
源码VS2005.VB. Basic.NetVisual Studio.NET 2005演示
源码,接口文件为 WSR.vb演示
源码VS2005.VC. VC Visual Studio.NET 2008演示
源码,接口文件为 WSRCE.hV3.5 版 开发光盘目录 (分 ARM 和 x86 两个版本)WS-R-C 系列读写器二次开发说明.doc 说明文.