明华读写器API接口函数说明

  • 格式:pdf
  • 大小:1.06 MB
  • 文档页数:62

下载文档原格式

  / 62
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

错误
2.1.12. 射频头控制
函数原型: int32_t STDCALL mwDevRFControl(HANDLE icdev, uint8_t mode);
注:对于 AT24c 系列卡片没有密码,所以不需要进行(2)操作。而对于 SLE4442 卡等卡片,读数据不需要验证密码,所以只读操作时也可以不进行(2)操作。
有关调用各种函数库的具体方法,请参考 明华澳汉读卡器例程目录下的使用范 例。
2. API 介绍
2.1. 设备操作函数
2.1.1. 获取插入的 USB 设备列表
Date 日期
2014.10.01 2014.10.29
Revision Version 修订 版本 1.0 1.1
Sec No. 修改 章节
1/3
2
Change Description 修改描述
文档创建 增加 API 说明
Author 作者
yujie.wang xiaofeng.chen
第 2 页 共 62 页
字节的存储空间
返回结果:
>=0
正确
<0
错误
2.1.6. 读取备注信息
函数原型:int32_t STDCALL mwDevGetRemark(HANDLE icdev, int8_t *strRemark);
函数说明:获取备注信息
参数说明:
序号 参数
参数说明
1
Icdev[IN]
通讯设备句柄
2
strRemark[OUT] 以'\0'为结尾的 ANSI 字符串。请最少预留 17 字节
2.1.8. 指示灯控制
函数原型:int32_t STDCALL mwDevLed(HANDLE icdev, uint8_t led1, uint8_t led2, uint8_t led3, uint8_t led4);
函数说明:指示灯控制,最多支持4个指示灯
参数说明:
序号 参数
参数说明
1
icdev[IN]
深圳市明华澳汉电子科技有限公司
地址: 广东省深圳市福田区上步工业区 202 栋 569 室 电话: 0755-83361926 传真: +86-755-83361036 邮编: 518028 网址: www.mwcard.com
第 1 页 共 62 页
深圳市明华澳汉电子科技有限公司
Revision Record 修订记录
*handle);
函数说明:打开读写器
参数说明:
序号 参数
参数说明
1
Port[IN]
1. "COM1","COM2",......"COM256"(串口读写器);
2
Paras[IN]
2."USB","USB1","USB2",......"USB10"(USB 接口读写 器,"USB"后面跟的是顺序号) 1.当操作串口读卡器时,该参数为波特率(); 波特率有效值为:
示例 2: 2. 电脑上只有一个明华读卡器 HANDLE icdev = -1; int32_t st = mwDevOpen("USB", "", &icdev); if(st < 0){//请查看错误代码} else{//操作成功}
示例 3:
3. 打开指定的 USB 读卡器 int32_t st = 0; UsbDevices devList; st = mwDevGetUsbList(&devList); if(st > 0) { HANDLE icdev = -1; int32_t st = mwDevOpen("USB", devList.usb1, &icdev);
函数说明:写自定义数据区
参数说明:
序号 参数
1
Icdev[IN]
2
offset[IN]
参数说明 通讯设备句柄 起始地址
第 11 页 共 62 页
深圳市明华澳汉电子科技有限公司
3
4 返回结果:
>=0
length[IN] data[IN]
正确
数据长度 数据存储区
<0
错误
2.1.11. 设置数据传输模式
的存储空间
返回结果:
>=0
正确
<0
错误
第 9 页 共 62 页
深圳市明华澳汉电子科技有限公司
2.1.7. 蜂鸣器控制
函数原型:int32_t STDCALL mwDevBeep(HANDLE icdev, uint8_t beepTimes, uint8_t interval,
uint8_t time);
//打开第一个设备 if(st < 0){//请查看错误代码} else{//操作成功} } else { //没有找到设备 }
第 7 页 共 62 页
深圳市明华澳汉电子科技有限公司
示例 4:
4. 根据顺序号打开 USB 设备,请注意:必须保证已插入指定数量的设备,否则 会失败
HANDLE icdev = -1; int32_t st = mwDevOpen("USB2", "", &icdev); if(st < 0){//请查看错误代码} else{//操作成功}
第 6 页 共 62 页
深圳市明华澳汉电子科技有限公司
"9600", "19200","38400" ,"57600","115200"
2.当通过序号打开 USB 设备时,该参数为空
3
Handle[OUT] 通讯设备句柄
返回结果: <0
>=0
错误 正确
事例说明: 示例 1:
1. 打开串口 2 上的读写器,波特率为 115200 HANDLE icdev = -1; int32_t st = mwDevOpen("COM2", "115200", &icdev); if(st < 0){//请查看错误代码} else{//操作成功}
函数原型:int32_t STDCALL mwDevSetTransferMode(HANDLE icdev, uint32_t mode);
函数说明:设置数据传输模式
参数说明:
序号 参数
参数说明
1
Icdev[INT]
通讯设备句柄
2
Mode[OUT]
0, 明文传输
Hale Waihona Puke Baidu
1, 密文传输
返回结果:
>=0
正确
<0
函数原型:int32_t STDCALL mwDevGetUsbList(UsbDevices *list)
函数说明:获取插入的USB设备列表
参数说明:
序号 参数
参数说明
1
List
USB 设备列表
返回结果:
<0
错误
>=0 正确
2.1.2. 打开读写器
函数原型:int32_t STDCALL mwDevOpen(const int8_t *port, const int8_t *paras, HANDLE
函数说明:蜂鸣器控制
参数说明:
序号 参数
参数说明
1
Icdev[IN]
通讯设备句柄
2
beepTimes[IN] 蜂鸣次数
3
interval[IN]
蜂鸣间隔 每 100ms 一个单位
4 返回结果:
>=0
time[IN] 正确
蜂鸣时间 每 100ms 一个单位
<0
错误
示例说明: 要蜂鸣 3 次,每次间隔 100ms,蜂鸣时间 200ms mw_dev_beep(devNo,3,1,2); Output: 无 Return: >=0 正确;<0 错误 Others:
2.1.3. 关闭读写器
函数原型:int32_t STDCALL mwDevClose(HANDLE icdev);
函数说明:关闭读卡器
参数说明:
序号 参数
参数说明
1
Icdev[IN] 通讯设备句柄
返回结果: >=0
正确
<0
错误
2.1.4. 获取读写器硬件版本信息
函数原型: int32_t STDCALL mwDevGetHardwareVer(HANDLE icdev, int8_t *strHardwareVer);
通讯设备句柄
2
led1[IN]
指示灯 1 控制信息
3
led2[IN]
指示灯 2 控制信息
4
led3[IN]
指示灯 3 控制信息
5
led4[IN]
示灯 4 控制信息
取值如下:
第 10 页 共 62 页
深圳市明华澳汉电子科技有限公司
返回结果: >=0
正确
0X00 0X01 0X10 0X11
保持现状 关闭 打开 以 1 秒的间隔交互闪烁
深圳市明华澳汉电子科技有限公司
明华澳汉 IC 卡读写器 API 手册
Prepared by 拟制 Reviewed by 评审人 Approved by 批准
(guotao.shen)申国涛 (guotao.shen)申国涛
Date 日期 Date 日期 Date 日期
2014-9-20 2014-10-29 yyyy-mm-dd
通讯设备句柄
2
offset[IN]
起始地址
3
length[IN]
数据长度
4 返回结果:
>=0
data[OUT] 正确
数据存储区
<0
错误
2.1.10. 写自定义数据区
函数原型: int32_t STDCALL mwDevWriteConfig(HANDLE icdev, uint32_t offset, uint32_t length, const uint8_t data[]);
函数原型:int32_t STDCALL mwDevGetSerialNumber(HANDLE icdev, int8_t *strSerialNumber);
函数说明:获取产品序列号
参数说明:
序号 参数
参数说明
1
Icdev[IN]
通讯设备句柄
2
strSerialNumber[OUT] 以'\0'为结尾的 ANSI 字符串。请最少预留 17
的读、 写操作必须重复上述(2)过程。 (4)对某张卡操作完成后,应用 mw_mifare_closeCard 函数结束对该卡的操作。 2、接触式卡片: (1)调用 mwSelectMemoryCard 函数,通知读卡器要操作的存储卡类型。
第 5 页 共 62 页
深圳市明华澳汉电子科技有限公司
(2)调用相关卡片验证密码函数对卡片进行验证。 (3)调用相关卡片读写函数对卡片进行读写操作。
1.3. 读写器操作流程
函数调用应遵循如下规则: 1、 程序开始,首先要调用 mwDevOpen 函数打开读写器(USB 设备先扫描设备),建立 读写器与 PC 之间的连接。 2、 调用设备函数对设备进行操作/调用卡片操作函数对卡片进行操作。 3、 程序正常退出或因错误退出之前,要用 mwDevClose 函数关闭读写器,断开读写器与 PC 之间的连接;
函数说明:获取硬件版本信息
参数说明:
序号 参数
参数说明
1
Icdev[IN]
通讯设备句柄
2
strHardwareVer[OUT] 以'\0'为结尾的 ANSI 字符串。请最少预留 51
字节的存储空间
返回结果:
>=0
正确
<0
错误
第 8 页 共 62 页
深圳市明华澳汉电子科技有限公司
2.1.5. 获取产品序列号
1.2. 本手册适用读写器型号
本手册适用读写器型号 R6 系列读写器 F1 系列读写器 X5 系列读写器
备注 串口或 USB 口通信,支持 TypeA 标准的 mifare 卡及 CPU 卡,外加 PSam 卡座
串口或 USB 口通信,支持 TypeA 标准的 mifare 卡及 CPU 卡
串口或 USB 口通信,支持 TypeA 标准的 mifare 卡、CPU 卡,带有密码 键盘、液晶显示器、磁条卡刷卡器及 Psam 卡座或身份证读写器
卡片操作流程: 1、非接触式卡片:
(1)调用 mwOpenCard 函数,或连续调用 mwRequest、mwAnticoll、mwSelect 三个函数,成 功可返回卡的序列号,并且卡片进入激活状态。
(2)调用 mwMifareAuth 函数验证卡片的密码,一次只能验证一个扇区。 (3)对已验证过的扇区可进行读、写、初始化值、加值、减值等功能操作。对 其它扇区
<0
错误
2.1.9. 读自定义数据区
函数原型:int32_t STDCALL mwDevReadConfig(HANDLE icdev, uint32_t offset, uint32_t length,
uint8_t data[]);
函数说明:读自定义数据区
参数说明:
序号 参数
参数说明
1
Icdev[IN]
深圳市明华澳汉电子科技有限公司
MIFARE S50 /S70 操作流程
第 3 页 共 62 页
深圳市明华澳汉电子科技有限公司
密码键盘操作流程
第 4 页 共 62 页
深圳市明华澳汉电子科技有限公司
1. 概述
1.1. 文档介绍
本手册描述了明华新一代非接触式 IC 卡读写器(MWRP协议)的使用及应用程序 接口函数(API)说明。 所有接口函数均可工作于Windows XP 、Windows7(32位及 64位)、Windows8(32位及64位)等操作系统上。