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

2019-04-10 09:52

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

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

例:st=rf_HL_initval(icdev,0,3,100L,&Snr);

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

(28)__int16 rf_HL_decrement(HANDLE icdev,unsigned char _Mode,

unsigned char _SecNr,unsigned long _Value, unsigned long _Snr,unsigned long *_NValue, unsigned long *_NSnr); 功 能:高级减值函数

参 数:HANDLE icdev:rf_init()返回的设备描述符

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

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

例:st=rf_HL_decrement(icdev,0,2,1,Snr,&Nvalue,&NSnr);

(29)__int16 rf_HL_increment(HANDLE icdev,unsigned char _Mode, unsigned char _SecNr,unsigned long _Value, unsigned long _Snr,unsigned long *_NValue, unsigned long *_NSnr); 功 能:高级增值函数

参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:寻卡模式,同HL_initval(); unsigned char _SecNr:扇区号(0~15) unsigned long _Value:要加的值 unsigned long _Snr:卡的序列号

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

例:st=rf_HL_increment(icdev,0,2,1,Snr,&Nvalue,&NSnr);

(30)__int16 rf_HL_write(HANDLE icdev,unsigned char _Mode,unsigned char _Adr,

unsigned long *_Snr,unsigned char *_Data); 功 能:高级写数据

参 数:HANDLE icdev:rf_init()返回的设备描述符

unsigned char _Mode:寻卡模式,为0、1或2

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

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

(31)__int16 rf_HL_read(HANDLE icdev,unsigned char _Mode,unsigned char _Adr,

unsigned long _Snr,unsigned char *_Data, unsigned long *_NSnr); 功 能:高级读数据

参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:同HL?_write(); unsigned char _Adr:块地址(0~63) unsigned long _Snr:卡的序列号 unsigned char *_Data:读出的数据

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

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

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

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

例:__int16 st;

st=rf_initval(icdev,1000); /*将ML卡钱包赋初值1000*/ (33)__int16 rf_decrment_ml(HANDLE icdev, unsigned int _Value); 功 能:减值操作,仅适用于ML卡

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

例:__int16 st;

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

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

例:__int16 st;

unsigned int value;

st=rf_readval?_ml(icdev,&value); /*读出钱包的值*/ 3.7 FoxPro For Dos 库函数 (1) rf_init(_Com,_Baud); 功 能:初始化串口

参 数:_Com:通讯串口(0~3)

_Baud:通讯波特率,9600~115200 返 回:成功则返回设备描述符(≥0) 例:icdev=rf_init(1,115200); (2) rf_exit(icdev); 功 能:关闭串口

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

(3)rf_card(icdev,_Mode,_Snr);

功 能:寻卡,能返回在工作区域内某张卡的序列号 参 数:icdev:rf_init()返回的设备描述符 _Mode:整数,寻卡模式,为IDLE或ALL Mode=0: IDLE模式,一次只操作一张卡 Mode=1:ALL模式,一次可操作多张卡

有关_Mode的说明请参阅rf_halt()函数说明 _Snr:字符串,卡的序列号 返 回:成功则返回卡的序列号,为整数 例:snr=rf_card(icdev,0,Snr);

(4)rf_auth(icdev,_Mode,_SecNr) 功 能:验证某一扇区密码

参 数:icdev:rf_init()返回的设备描述符 _Mode:整数,决定验证密码的方式 取值如下:

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

_SecNr:整数,为要验证密码的扇区号(0~63) 返 回:成功则返回 0

例:/* 用A密码和 0套密码去验证扇区0 */ st=rf_pass(icdev,0,0);

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

由卡的存取

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

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

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

参 数:icdev:rf_init()返回的设备描述符 返 回:成功则返回 0

例:st=rf_halt(icdev);

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

执行rf_halt()中止对卡的操作。只有该卡离开并再次进入操作区域时,读写器才能

够再次操作它。

(6)rf_read( icdev,_Adr);

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

参 数:icdev:rf_init()返回的设备描述符 _Adr:整数,为块地址(0~63)

返 回:成功则返回所读数据的第一个字符为'0',否则请参考错误值; 从第二个字符开始16个字节为该块的数据

例:/* 读块0中的数据并将数据存放在变量value中 */ value=rf_read(icdev,0);

(7)rf_rd_hex(icdev,_Adr);

功 能:以十六进制读数据,一次必须读一个块 参 数:icdev:rf_init()返回的设备描述符 _Adr:整数,为块地址(0~63)

返 回:成功则返回所读数据的第一个字符为'0',否则请参考错误值; 从第二个字符开始32个字节为该块用16进制表示的数据 例:/* 读块0中的数据并将数据存放在变量value中 */ value=rf_rd_hex(icdev,0);

(8)rf_write(icdev,_Adr,_Data); 功 能:写数据, 一次必须写一个块

参 数:icdev:rf_init()返回的设备描述符 _Adr:整数,为块地址(1~63) _Data:字符串,存放要写的数据 返 回:成功则返回 0

例:/* 将存放在字符串data中的数据写到块1中 */ st=rf_write(icdev,1,data)

(9)rf_wr_hex(icdev,_Adr,_Data)

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

参 数:icdev: rf_init()返回的设备描述符 _Adr: 整数,为块地址(1~63) _Data: 字符串,指向存放要写数据的地址,存放16个用16进制表示的字符,

长度为32B 。 返 回:成功则返回 0

例: st=rf_wr_hex(icdev,1, \(10)rf_inc_val(icdev,_Adr,_Value); 功 能:块增值

参 数:icdev: rf_init()返回的设备描述符 _Adr:整数,为所增值的地址(1~63)

_Value:整数,为要增加的值(长度为4字节) 返 回:成功则返回 0;

例:/* 块1增加数值value; */ st=rf_inc_val(icdev,1,value);

(11)rf_dec_val(icdev,_Adr,_Value); 功 能:块减值

参 数:icdev: rf_init()返回的设备描述符 _Adr:整数,为块地址(1~63)

_Value:整数,为要减少的值(长度为4字节) 返 回:成功则返回 0

例:/* 块1减去数值value */

st=rf_dec_val(icdev,1,value);

(12)rf_ini_val(icdev,_Adr,_Value); 功 能:初始化块值

参 数:icdev: rf_init()返回的设备描述符 _Adr:整数,为块地址(1~63)

_Value:整数,为初始值(长度为4字节) 返 回:成功则返回 0

例:/* 将块1的值初始化为value */ st=rf_ini_val(icdev,1,value);

注:作为数值处理的块,是以特殊格式存贮的,所以必须用初始化值函数初始化,

初始化之后方可进行读、减、加的处理。 (13)rf_rd_val(icdev,_Adr); 功 能:读块值

参 数:icdev: rf_init()返回的设备描述符 _Adr:整数,为块地址(1~63) 返 回:读出值(整数)

例: st= rf_readval(icdev,1);


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

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

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

马上注册会员

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