发卡机读写器接口函数Word文档格式.docx
《发卡机读写器接口函数Word文档格式.docx》由会员分享,可在线阅读,更多相关《发卡机读写器接口函数Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
三.门禁考勤卡用函数
1.intInit_Access_UserCard()
2.intInit_Access_UserCard_UsePassword()
3.intRST_Access_UserCard()
4.intQuery_Access_Card()
四.发卡器(读写器)操作函数
1.intGet_Version()
2.intrf_beep()
3.intrf_disp()
4.intget_time()
5.intset_time()
6.intdisp_mode()
7.intcontr_mode()
8.intset_bright()
9.intwrite_eeprom()
10.intread_eeprom()
五.射频卡读写函数
1.intrf_request()
2.intrf_anticoll()
3.intrf_select()
4.intrf_authentication()
5.intrf_halt()
6.intrf_read()
7.intrf_read_hex()
8.intrf_write()
9.intrf_write_hex()
10.intrf_load_key()
11.intrf_card()
12.intrf_card_2()
六.错误代码
七.发卡流程
一、系统用函数
1:
HANDLEOpenComm(intCommPort)
功能:
打开串口
参数:
intCommPort:
串口标志
取值如下:
0—Com1,1—Com2…
返回:
大于0为串口设备号,小于0表示打开串口错误。
2:
intCloseComm(HANDLEicdev)
关闭串口
HANDLEicdev:
OpenComm()返回的设备号
成功则返回0
3:
intCheck_Reader(HANDLEicdev)
测试发卡器
成功则返回0,小于0见错误代码
4:
intInit_SysCard(HANDLEicdev,LPCSTRUserPassword,intSysType,intMJSector,
intMJCardType,intXFSector,LPSTRCommPassword)
初始化系统卡
LPCSTRUserPassword:
用户密码(8位ASCII字符),
注:
此密码用户必须记住,用于日后系统维护
intSysType:
系统类别,1为门禁,2为售饭
intMJSector:
门禁用户卡使用扇区。
intMJCardType:
门禁使用卡类别,1为mifare1card,0为mifarelightcard
LPSTRCommPassword:
返回此系统的通讯密码,八位数字字符,此密码用于
通讯握手中,只要用此系统卡初始化的机子,必须
用此密码才能通讯成功
注意:
当初始化系统卡成功时,在调用此过程的执行文件的当前目录中会生一个
LICENCE.DAS的文件,以后的发卡和通讯函数均要用到此文件,用户需把
此文件备份,不能丢失。
此文件不能修改。
5:
intInit_SysCard_N(HANDLEicdev,LPCSTRUserPassword,intSysType,intMJSector,
intMJCardType,intXFSector,char*AuthorFileName,LPSTRCommPassword)
char*AuthorFileName:
授权文件名,该文件必须以”das”作为扩展名,可以包括路径名称,最多30个字符
通讯握手函数中,只要用此系统卡初始化的机子,必须
当初始化系统卡成功时,会生一个授权文件,该文件名称和路径由参数AuthorFileName决定,缺省情况下生成在当前目录中。
以后的发卡和通讯函数均要用到该文件,用户需把此文件备份,不能丢失。
6:
intLoad_Author(char*filename);
装入系统文件
char*filename:
系统文件全名(包括路径和名称),如果初始化系统卡时生成的授权文档不是缺省名称(licence.das),或不在缺省目录下(当前目录)时需要用此函数装入系统,以便所有的发卡和通讯函数能够正确找到该文件。
调用此函数时,装入的系统文件和LICENCE.DAS文件一样使用.
二、消费卡用函数:
intInit_Pos_UserCard(HANDLEicdev,intSerno,LPCSTRCardno,intUserType,
intWaitTime,unsignedlong*CardSerno)
初始化消费用户卡
intSerno:
用户卡流水号,不可重复(1——100000)
LPCSTRCardno:
用户卡号(十位ASCII字符)
intUserType:
用户卡类型(1--8)
intWaitTime:
等卡时间,单位为ms
unsignedlong*CardSerno:
返回用户卡固有ID号
intInit_Pos_UserCard_N(HANDLEicdev,intSerno,LPCSTRCardno,intUserType,
intValue,intUseCount,intWaitTime,
unsignedlong*CardSerno)
补发消费用户卡
intValue:
金额数值,为实际金额*100。
例:
实际金额为123.35,Value=12335
intUseCount:
该卡的消费次数
intWRT_Pos_UserCard_AddCount(HANDLEicdev,intValue,unsignedlongCardSerno,intWaitTime)
用户卡写值(不增加使用次数)
intValue:
需要写入的金额,为实际金额*100
unsignedlongCardSerno:
需要写值的用户卡固有ID号
intWaitTime:
4:
intWRT_Pos_UserCard(HANDLEicdev,intValue,unsignedlongCardSerno,intWaitTime)
用户卡写值(使用次数增加1)
intInit_Pos_OPTCard(HANDLEicdev,intOpt_Num,intWaitTime,
unsignedlong*CardSerno)
初始化消费机操作员卡
intOpt_Num:
操作员编号,(1–255)
返回操作员卡固有ID号
成功则返回0,小于0见错误代码
6:
intQuery_Pos_Card(HANDLEicdev,LPINTCardType,LPINTOpt_Num,LPINTSerno,
LPSTRCardno,unsgindlong*CardSerno,LPINTValue,
LPINTCount,LPINTUserType,intWaitTime)
消费机使用卡查询
LPINTCardType:
返回卡类型(0–用户卡,1–操作员卡,2–系统卡)
LPINTOpt_Num:
返回操作员卡号
LPINTSerno:
返回用户卡流水号
LPSTRCardno:
返回用户卡卡编号
返回用户卡固有ID号
LPINTValue:
返回用户卡内金额,为实际金额*100
LPINTCount:
返回用户卡消费次数
LPINTUserType:
返回用户类型
成功则为0,小于0见错误代码
7:
intQuery_Pos_UserCard(HANDLEicdev,LPINTSerno,LPSTRCardno,LPINT
UserType,unsignedlong*CardSerno,LPINT
ChkSum1,LPINTValue1,LPINTLastPay1,LPINT
Count1,LPINTChkSum2,LPINTValue2,LPINTLastPay2,
LPINTCount2,intWaitTime)
消费机用户卡块查询
LPINTChkSum1:
返回用户卡使用块的校验状态,0为正确,1为错误。
LPINTValue1:
返回用户卡使用块的金额,为实际金额*100
LPINTLastPay1:
返回用户卡使用块的余额,为实际余额*100
LPINTCount1:
返回用户卡使用块的消费次数
LPINTChkSum2:
返回用户卡备份块的校验状态,0为正确,1为错误。
LPINTValue2:
返回用户卡备份块的金额,为实际金额*100
LPINTLastPay2:
返回用户卡备份块的余额,为实际余额*100
LPINTCount2:
返回用户卡备份块的消费次数
8:
intRST_Pos_UserCard(HANDLEicdev,unsignedlongCardSerno,intWaitTime)
回收消费机用户卡
intCardSerno:
要回收的用户卡固有ID号
9:
intRST_Pos_OPTCard(HANDLEicdev,unsignedlongCardSerno,intWaitTime)
回收消费机操作员卡
要回收的操作员卡固有ID号
10:
intChange_Pos_UserType(HANDLEicdev,intUserType)
更改消费机用户卡类型
要更改的用户卡类型
三、门禁考勤卡用函数:
intInit_Access_UserCard(HANDLEicdev,intSerno,intCardno,intUserType,
初始化门禁考勤用户卡
用户卡流水号,不可重复(1——10000)
intCardno:
用户卡号(最多为10位数字)
用户卡类型
2:
intInit_Access_UserCard_UsePassword(HANDLEicdev,unsignedlongCardSerno,
intWaitTime)
初始化用户密码(在用户忘记密码或错码计数为0时使用)
3:
intRST_Access_UserCard(HANDLEicdev,unsignedlongCardSerno,intWaitTime)
回收门禁考勤机用户卡
intQuery_Access_Card(HANDLEicdev,LPINTCardType,LPINTSerno,
LPINTCardNO,unsignedlong*CardSerno,intUserType,
功能:
门禁考勤机使用卡查询
返回卡类型(0–用户卡,2–系统卡)
LPINTCardno:
返回用户卡固有ID号
LPINTUserType:
四、发卡器(读写器)操作函数
1.intrf_beep(HANDLEicdev,unsignedshort_Msec)
蜂鸣
unsignedshort_Msec:
蜂鸣时间的长短,单位是10毫秒
2.intrf_disp(HANDLEicdev,__int16len,unsignedchar*digit)
使读写器的数码管显示数字(仅显示4位数字)
__int16:
显示模式,其值为1-4,表示在第几位数字后加一小数点
unsignedchar*digit :
显示数据
3.intrf_disp8(HANDLEicdev,__int16len,unsignedchar*digit)
使读写器的数码管显示数字(显示8位,仅适用于新版读卡器)
显示数据长度,其值为8
4.intrf_g_t_hex(HANDLEicdev,unsignedchar*time)
功能:
读出读写器中存储的时间和日期的值(仅适用于新版读卡器)
参数:
unsignedchar*time:
存放所读出数据的值,长度为14.YYWWMMDDHHMNSS
分别表示年、周、月、日、时、分、秒。
返回:
5.intrf_s_t_hex(HANDLEicdev,unsignedchar*time)
设置读写器中所存储的日期和时间的值(仅适用于新版读卡器)
日期和时间的值格式见设置函数。
6.intrf_disp_m(HANDLEicdev,unsignedcharmode)
设置读写器显示时间还是显示日期(读写器控制,仅适用于新版读卡器)
unsignedcharmode:
显示内容的类型
0 表示显示日期
1 表示显示时间
注:
调用此函数前必须先调用函数rf_ctl_m将显示设为由计算机控制
7.intrf_ctl_m(HANDLEicdev,unsignedcharmode)
设置显示管的控制方式(计算机控制或读写器控制,仅适用于新版读卡器)
0 表示由计算机控制
1 表示有读写器控制
8.intrf_bright(HANDLEicdev,unsignedcharbright)
设置显示管的亮度(仅适用于新版读卡器)
unsignedcharbright:
亮度值其范围在0到15之间
五、射频卡读写函数
1.intRf_Request(HANDLEicdev,unsignedchar_Mode,unsigned__int16*TagType)
2.intRf_Anticoll(HANDLEicdev,unsignedchar_Bcnt,unsignedlong*_Snr)
3.intRf_Select(HANDLEicdev,unsignedlong_Snr,unsignedchar*_Size)
4.intRf_Authentication(HANDLEicdev,unsignedchar_Mode,unsignedchar_SecNr)
5.intRf_Halt(HANDLEicdev)
6.intRf_Read(HANDLEicdev,unsignedchar_Adr,unsignedchar*_Data)
7.intRf_Read_Hex(HANDLEicdev,unsignedchar_Adr,char*_Data)
8.intRf_Write(HANDLEicdev,unsignedchar_Adr,unsig