MF-50N非接触式IC卡读写函数(5)

2019-04-10 09:52

参 数:int icdev:设备描述符

unsigned char *_Status:返回读写器版本号 返 回:成功则返回 0 例:int st;

unsigned char *version;

st=rf_get_status(icdev,version);

(26)int rf_reset(int icdev,unsigned int _Msec); 功 能:射频读写模块复位 参 数:int icdev设备描述符

unsigned int _Msec:复位时间,0~500毫秒有效 返 回:成功则返回 0

例:rf_reset(icdev,60);

(27)int rf_HL_initval(int icdev,unsigned char _Mode,unsigned char _SecNr,

unsigned long _Value,unsigned char *_Snr); 功 能:高级初始化值

参 数:int icdev:设备描述符

unsigned char _Mode :寻卡模式

Mode=0: IDLE模式,一次只操作一张卡 1:ALL模式,一次可操作多张卡 2:只对给定序列号的卡操作 unsigned char _SecNr:扇区号(0~15) unsigned long _Value:初始值

unsigned char *_Snr :卡的序列号的地址 返 回:成功则返回 0

例:st=rf_HL_initval(icdev,1,1000L,&Snr);

注:高级函数为几个低级函数的组合,对卡操作之前不必使用rf_card()函数。

(28)int rf_HL_decrement(int icdev,unsigned char _Mode,unsigned char _SecNr,

unsigned long _Value,unsigned long _Snr,

unsigned long *_NValue,unsigned long *_NSnr); 功 能:高级减值操作

参 数:int icdev:设备描述符

unsigned char _Mode:寻卡模式,同HL_initval(); unsigned char _SecNr:扇区号(0~15) unsigned long _Value:要减的值 unsigned long _Snr:卡的序列号

unsigned long *_NValue:减后的值的地址 unsigned long *_NSnr:返回卡的序列号地址 返 回:成功则返回 0

例:int st;

st=rf_HL_decrement(icdev,0,1,10,Snr,&Nvalue,&NSnr);

/*将扇区1的值减少10*/ (29)int rf_HL_increment(int icdev,unsigned char _Mode,unsigned char _SecNr,

unsigned long _Value,unsigned long _Snr,

unsigned long *_NValue,unsigned long *_NSnr); 功 能:高级增值函数

参 数:int icdev:设备描述符

unsigned char _Mode:寻卡模式,同HL_initval(); unsigned char _SecNr:扇区号(0~15) unsigned long _Value:要加的值 unsigned long _Snr:卡的序列号

unsigned long *_NValue:加后的值的地址 unsigned long *_NSnr:返回卡的序列号地址 返 回:成功则返回 0

例:int st;

st=rf_HL_increment(icdev,0,1,value,Snr,&Nvalue,&NSnr);

/*将扇区1的值加10*/ (30)int rf_HL_write(int icdev,unsigned char _Mode,unsigned char _Adr, unsigned long *_Snr,unsigned char *_Data); 功 能:高级写数据

参 数:int icdev:设备描述符

unsigned char _Mode:寻卡模式

Mode=0: IDLE模式,一次只操作一张卡 1:ALL模式,一次可操作多张卡 2:只对给定序列号的卡操作 unsigned char _Adr:块地址(1~63) unsigned long *_Snr:卡的序列号地址 unsigned long *_Date:写入的数据 返 回:成功则返回 0

例:st=rf_HL_write(icdev,0,3,&Snr,data);

(31)int rf_HL_read(int icdev,unsigned char _Mode,unsigned char _Adr, unsigned long _Snr,unsigned char *_Data,unsigned char *_NSnr);

功 能:高级读数据

参 数:int icdev:设备描述符

unsigned char _Mode:寻卡模式,同HL_write(); unsigned char _Adr:块地址(0~63) unsigned long _Snr:卡的序列号 unsigned long *_Date:读出的数据

unsigned char *_NSnr:返回卡的序列号地址

返 回:成功则返回 0

例:st=r_HL_read(icdev,0,3,Snr,data,&NSnr);

(32)int rf_initval_ml(int icdev ,unsigned int _Value); 功 能:初始化值,仅适用于ML卡

参 数:int icdev:rf_init()返回的设备描述符 unsigned int _Value:初始值 返 回:成功则返回 0 例:int st

st=rf_initval(icdev, 1000); /*将电子钱包的值初始化为1000*/

(33)int rf_decrement_ml(int icdev,unsigned int _Value); 功 能:减值操作,仅适用于ML卡

参 数:int icdev:rf_init()返回的设备描述符 unsigned int _Value:要减少的值 返 回:成功则返回 0 例:int st;

st=rf_decrement(icdev, 10); /*将钱包的值减少10*/ (34)int rf_readval_ml(int icdev ,unsigned int *_Value); 功 能:读值,仅适用于ML卡

参 数:int icdev:rf_init()返回的设备描述符 unsigned int *_Value:指向读出值的地址 返 回:成功则返回 0 例:int st

unsigned int value;

st=rf_readval_ml(icdev, &value); /*读出钱包的值*/

3.6 Windows 32位动态库

(1)HANDLE rf_init(__int16 port,long baud); 功 能:初始化串口

参 数:__int16 port:通讯口号(0~3)

long baud:通讯波特率(9600~115200) 返 回:成功则返回设备描述符(≥0) 例:HANDLE icdev;

icdev=rf_init(1,115200); /*初始化com2口以波特率115200*/

(2)__int16 rf_exit(HANDLE icdev); 功 能:关闭串口

参 数:HANDLE icdev:rf_init()返回的设备描述符 返 回:成功返回 0 例:rf_exit(icdev);

(3)__int16 rf_card(HANDLE icdev,unsigned char _Mode,unsigned long *_Snr);

功 能:寻卡,能返回在工作区域内某张卡的序列号 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:寻卡模式

Mode=0: IDLE模式,一次操作一张卡 Mode=1: ALL模式,一次操作多张卡 unsigned long *_Snr: 返回卡的序列号地址 返 回:成功则返回 0 例:__int16 st;

unsigned long snr;

st=rf_card(icdev,IDLE,&snr);

注:如果设为IDLE模式,则在对卡操作完成后,须执行rf_halt()指令中止对卡的操作。

这样,只有该卡离开并重新进入操作区时,读写器才能对它再次操作。 (4)__int16 rf_authentication(HANDLE icdev ,unsigned char _Mode, unsigned char _SecNr); 功 能:验证某一扇区密码

参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:验证密码的方式 取值如下:

0 — 用KEYSET0和KEYA验证 1 — 用KEYSET1和KEYA验证 2 — 用KEYSET2和KEYA验证 4 — 用KEYSET0和KEYB验证 5 — 用KEYSET1和KEYB验证 6 — 用KEYSET2和KEYB验证

unsigned char _SecNr:要验证密码的扇区号(0~15) 返 回:成功则返回 0 例:__int16 st;

st=rf_authentication(icdev,0,0);

注:每张卡上有A密码和B密码,可根据实际需要确定是否使用B密码,这由卡的存取

控制位来决定。此外,读写器中可以存放三套密码,可用rf_load_key()分别装

入,只有装入后才能使用验证密码函数验证。

(5)__int16 rf_halt(HANDLE icdev); 功 能:中止卡操作

参 数:HANDLE icdev:rf_init()返回的设备描述符 返 回:成功则返回 0 例:__int16 st;

st=rf_halt(icdev);

注:使用rf_card()函数时,如果模式选择为 0则在对卡进行读写操作完毕后,

必须执行rf_halt(),且只能当该卡离开并再次进入操作区域时,读写器

才能够再次操作它。

(6)__int16 rf_read(HANDLE icdev,usigned char _Adr,unsigned char *_Data); 功 能:读数据,一次必须读一个块

参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(0~63) unsigned char *_Data:读出数据 返 回:成功则返回0 例:__int16 st;

static unsigned char data[16] st=rf_read(icdev,0,data);

(7)__int16 rf_read_hex(HANDLE icdev,usigned char _Adr,unsigned char *_Data);

功 能:以十六进制读数据,一次必须读一个块

参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(0~63) unsigned char *_Data:读出数据 返 回:成功则返回0 例:__int16 st;

static unsigned char data[32]

st=rf_read_hex(icdev,0,data); /*读出数据格式如rf_write_hex*/

(8)__int16 rf_write(HANDLE icdev,unsigned char _Adr,unsigned char *_Data);

功 能:写数据, 一次必须写一个块

参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(1~63)

unsigned char *_Data:写入数据,块长度为16 B 返 回:成功则返回 0 例:__int16 st;

static unsigned char data[16] /* 给data赋值*/

st=rf_write(icdev,1,data); /*写入块1*/

(9)__int16 rf_write_hex(HANDLE icdev,unsigned char _Adr,unsigned char *_Data);

功 能:以十六进制写数据, 一次必须写一个块

参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(1~63)


MF-50N非接触式IC卡读写函数(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:业余篮球队训练计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: