杨格门锁 YGSLockSDK V3.3酒管软件接口_99v

简介: 链接:https://pan.baidu.com/s/1HP7FEWdA7sTmHzW1OTbGfg 密码:om1f   LockSDK 智能门锁管理系统开发包说明文档 请仔细阅读下面的每一条说明, 这样对接就能事半功倍  !!!!!!!!!!   一、重要说明 本接口支持各种开发语言, 包括:C#、VC、Delphi7、Delphi2000、PB9.0、PB10、VB.net、VB6.0等(每种语言一个文件夹),请选择自己常用的语言的演示程序(Demo)进行测试和开发。

链接:https://pan.baidu.com/s/1HP7FEWdA7sTmHzW1OTbGfg 密码:om1f

 

LockSDK 智能门锁管理系统开发包说明文档

请仔细阅读下面的每一条说明, 这样对接就能事半功倍  !!!!!!!!!!

 

一、重要说明

  1. 本接口支持各种开发语言, 包括:C#、VC、Delphi7、Delphi2000、PB9.0、PB10、VB.net、VB6.0等(每种语言一个文件夹),请选择自己常用的语言的演示程序(Demo)进行测试和开发。

 

  1. 接口文件为LockSDK.dll,  而这个接口又会调用底层各种动态库. 酒管软件对接时, 对接到LockSDK.dll上就可以了.

 

  1. 请把LockReg.exe放入发布包, 会自动处理注册, 读取授权卡等操作.

 

  1. Demo:测试的时候,请打开任何一种语言的文件夹,找到LockSDK_Demo.exe, 双击运行→选择RF57(T5557卡)或者RF50(Mifare卡)门锁类型,点击“配置SDK”按钮,然后就可以进行发卡测试了。一般建议如下图进行设置。

 

 

l  新卡顶替旧卡:同一个客房, 入住时间(checkin_time)靠后的宾客卡会使之前的宾客卡失效。例如一张宾客卡的入住时间是12:00,本来可以开门的,但是另外一张的入住时间为12:05的宾客卡刷卡开门后,之前的宾客卡就不能再开门了。 所以如果要允许多张宾客卡同时能开一个房间, 则其入住时间必须相同,或者后发的卡片设置不顶替前卡标志。

如果用几个软件(例如Demo, 酒管软件, 门锁管理软件)交替发卡,因为入住时间不同,很可能只有入住时间靠后的那张宾客卡能开门。在门锁上刷一次授权卡或者校时卡,则被顶替掉的宾客卡就又可以使用了。 碰到问题时,请查看一下几张宾客卡的入住时间是否一致。

l  允许开反锁:要设置允许开反锁标志,宾客卡才能在打了反锁的时候开锁。

l  检查入住时间:为了防止门锁时间不太精确而导致宾客卡不能开门,所以默认情况下是不检查宾客卡的入住时间的。如果启用,则对门锁的时钟精度要求比较高,需要经常对门锁校时。制卡时,入住时间总是会被强制设为电脑当前时间.

 

  1. 门锁号的格式: 1.2.8203,  如果是套间房, 则后面再加一个字母,  例如: 1.2.8203.A。注意, 在早期DLock 管理软件中, 门锁号的格式类似这样: 102 或者 20105A 或者 A0203 等;如果早期的DLock软件没有门锁号,那么请直接输入房号(门锁管理软件有门锁号的,必须输入门锁号);具体请查看门锁管理软件的"客房设置->房间信息"窗口!!!

 

  1. 因为门锁时钟是有误差的, 请把预离时间往后推30分钟.  例如如果预离时间为第二天12:00, 那么最好把预离时间设为12:30。

 

  1. 入住时间和预离时间的格式:  2012-01-01 12:30:00 , 请务必按此格式输入, 必须跟电脑的日期格式设置无关(可以调整一下电脑的日期格式, 然后发卡试试看)

 

  1. 必须用在门锁管理系统里面能正常发卡的发卡器,  否则就算能发卡, 发出来的卡片也不一定能开门(可能因为授权卡信息不正确)!!!这种情况下, 可以尝试关闭软件,然后把授权卡放在发卡器上,再打开软件, 这样授权卡信息会被自动读取。

 

  1. 如果发的宾客卡不能开门, 可以用门锁管理软件查看卡片信息,  看看跟门锁管理系统发出来的卡片有什么不同(特别注意门锁号和入住时间,以及是否顶替前卡)。

 

  1. 制卡记录保存在cardRecord.ini, 其中remark=new表示新卡;remark=copy表示复制卡。也可以用随带的小工具查询制卡记录(注意把RMCRecords.exe和语言包Languages(RMC)放到PMS所在目录才能查询)。

 

  1. 门锁常见错误提示(把卡片放到门锁上刷一下, 然后马上拿开, 听响几声)

 

1短声: 时间错误

2短声: 打了反锁

3短声: 楼栋、楼层、门锁号不对

4短声: 卡片被挂失了

5短声: 卡片密码错误

6短声: 客户码错误

7短声: 没有刷设置卡引导(门锁里已有房号)

 

 

二、返回值说明

enum ERROR_TYPE

{

    OPR_OK              =    1,      // 操作成功

    NO_CARD                  =   -1,     // 没检测到卡片

    NO_RW_MACHINE  =   -2,     // 没检测到读卡器

    INVALID_CARD         =   -3,     // 无效卡

    CARD_TYPE_ERROR         =   -4,     // 卡类型错误

    RDWR_ERROR          =   -5,     // 读写错误

    PORT_NOT_OPEN    =   -6,     // 端口未打开

    END_OF_DATA_CARD    =   -7,     // 数据卡结束

    INVALID_PARAMETER   =   -8,     // 无效参数

    INVALID_OPR           =   -9,     // 无效操作

    OTHER_ERROR                  =   -10,    // 其它错误

    PORT_IN_USED        =   -11,    // 端口已被占用

    COMM_ERROR                  =   -12,    // 通讯错误   

    ERR_CLIENT          =   -20,    // 客户码错误   

    ERR_NOT_REGISTERED  =   -29,    // 未注册

    ERR_NO_CLIENT_DATA  =   -30,     // 无授权卡信息

    ERR_ROOMS_CNT_OVER  =   -31,    // 房数超出了可用扇区

};

 

 

三、接口函数说明

 

/*=============================================================================

函数名:                        TP_Configuration

;

功 能:动态库初始化配置, 完成门锁类型选择/发卡器连接等

输  入:lock_type -- 门锁类型(也就是使用的卡片类型): 4-RF57门锁; 5-RF50门锁

输  出: 无

返回值:错误类型

=============================================================================*/

int __stdcall TP_Configuration(int lock_type);

 

 

/*=============================================================================

函数名:                        TP_MakeGuestCardEx

;

功 能:制作宾客卡

输  入:room_no         --  门锁号:     字符串, 例如 "1.2.8102"等

        checkin_time    --  入住时间:  预留. 制卡时入住时间被强制为当前时间!!!

        checkout_time   --  预离时间:  年月日时分秒, 字符串格式 "YYYY-MM-DD hh:mm:ss"

        iflags          --  宾客卡选项, 一般置0. iflags的各种赋值解释如下:

                                 1:  表示允许开反锁

                                 8:  表示复制卡, 不顶替前卡(可以跟之前发的卡片一起用, 允许一个房间发多张卡片)

                                 32: 表示一次性开门, 开门后失效

                                 128: 表示检测卡片的入住时间(如果卡片入住时间 > 门锁当前时间, 则不能开门, 不建议用这个选项)

                                 上述各属性值可以相加进行组合.

                                 如果iflags ==0, 表示会顶替前卡,刷卡后之前的卡片失效; 不是一次性开门卡; 不检测卡片的入住时间

    

输  出: card_snr        -- 卡号:        字符串, 至少预分配20字节

例  子1: room_no="1.2.8102", SDateTime="", EDateTime="2008-06-07 12:00:00"

        iFlags=8  !!!!!!!!(复制卡)

 

返回值:错误类型

说明:   Room要输入 门锁号!!  其格式视门锁管理软件而定, 请查看门锁管理软件的"客房设置"界面. 如果门锁管理软件中没有门锁号,

        则请输入房号.

=============================================================================*/

int __stdcall TP_MakeGuestCardEx(char *card_snr, char *room_no, char *checkin_time,char *checkout_time, int iflags);

 

/*=============================================================================

函数名:                        TP_ReadGuestCardEx

;

功 能:读宾客卡信息

输  入:无。

输  出: card_snr        --  卡号:       字符串, 至少预分配20字节

        room_no         --  房号:       字符串, 至少预分配20字节

        checkin_time    --  入住时间:  年月日时分秒, 字符串格式 "YYYY-MM-DD hh:mm:ss", 至少预分配30字节

        checkout_time   --  预离时间:  年月日时分秒, 字符串格式 "YYYY-MM-DD hh:mm:ss", 至少预分配30字节

        iFlags          --  卡片标志字节

返回值:错误类型

=============================================================================*/

int __stdcall     TP_ReadGuestCardEx(char *card_snr,char *room_no, char *checkin_time, char *checkout_time, int *iFlags);

 

 

/*=============================================================================

函数名:                        TP_CancelCard

;

功 能:注销卡片/卡片回收

输  入: 无

输  出:

输  出: card_snr    -- 卡号: 字符串, 至少预分配20字节

返回值:错误类型

=============================================================================*/

int __stdcall TP_CancelCard(char *card_snr);

 

/*=============================================================================

函数名:                        TP_GetCardSnr

;

功 能:读取卡号(卡片的唯一的序列号)

输  入: 无

输  出: card_snr    --  卡号: 字符串, 至少预分配20字节

返回值:错误类型

=============================================================================*/

int __stdcall TP_GetCardSnr(char *card_snr);

 

 

 

////////////////////// 以下函数供酒管软件进行会员卡管理 ///////////////////////

/*=============================================================================

函数名:                TP_M1Active

功 能:卡片激活(读取卡号)

参 数:无

输  出: card_snr -- 卡号, 4字节(字符串表示为8个字符)

返回值:错误类型

描 述:卡片激活

=============================================================================*/

int __stdcall TP_M1Active(char *card_snr);

 

/*=============================================================================

函数名:                TP_M1AuthKey

功 能:验证卡片密钥

参 数:keyA:            密钥, 六字节, 卡片的默认密钥是 "ffffffffffff"

                   sector_no: 扇区号, 1~40

返回值:错误类型

描 述:验证卡片的相应扇区的密钥, 验证过后才可以读写

例   子:keyA = "ffffffffffff",  sector_no = 3

=============================================================================*/

int __stdcall TP_M1AuthKey(char *keyA, UINT sector_no);

 

/*=============================================================================

函数名:                TP_M1SetKeyA

功 能:修改密钥A

参 数:NewKeyA:         新密钥A, 六字节, 用字符串表示(12个字符)

                   sector_no:        扇区号

返回值:错误类型

描 述:修改卡片密钥A, 注意要先用AuthKey验证原密钥. 注意函数调用顺序:

        TP_M1Active  →  TP_M1AuthKey  →  TP_M1SetKeyA

例   子:newKeyA = "ffffffffffff",  sector_no = 3       

=============================================================================*/

int __stdcall TP_M1SetKeyA(char *newKeyA, UINT sector_no);

 

/*=============================================================================

函数名:                TP_M1WriteBlock

功 能:写数据

参 数:block_no: 块号(一般是扇区号*4 + 扇区内块号)

                   data:         要写入的16字节数据, 用字符串表示(32个字符,只能是0~9和A~F,  a~f )

返回值:错误类型

描 述:写一块数据. 必须先用TP_M1AuthKey验证密钥

; 例如, 扇区9可以读写的块号包括: 9x4  9x4+1  9x4+2,  即: 36  37  38块.  注意函数调用顺序:

        TP_M1Active  →  TP_M1AuthKey  →  TP_M1WriteBlock

例   子:block_no = 3x4 = 12,  data = "112233445566778899AABBCCDDEEFF"        

=============================================================================*/

int __stdcall TP_M1WriteBlock(UINT block_no, char *data);

 

/*=============================================================================

函数名:                TP_M1ReadBlock

功 能:读数据

参 数:block_no: 块号(一般是扇区号*4 + 扇区内块号)

输  出: data:  16字节数据, 用字符串表示(32个字符)

返回值:错误类型

描 述:读取一块. 必须先用TP_M1AuthKey验证密钥.  注意函数调用顺序:

        TP_M1Active  →  TP_M1AuthKey  →  TP_M1ReadBlock

=============================================================================*/

int __stdcall TP_M1ReadBlock(UINT block_no, char *data);

 

 

关于M1卡的简单说明:

1. 卡片有16个扇区,编号从0~15;每个扇区可以设置独立的密码;

2. 每个扇区里面有4个块,编号从0~3, 只可以读写0~2块。 

3. 读卡和写卡时要用 "扇区号x4 + 扇区内块号", 扇区9可以读写的块号包括: 9x4  9x4+1  9x4+2,  即: 36  37  38块. 

4. 要避开门锁使用的扇区,门锁一般使用扇区1、扇区11、扇区15等, 具体可咨询门锁厂家;

 

网名:浩秦; 邮箱:root#landv.pw; 只要我能控制一個國家的貨幣發行,我不在乎誰制定法律。金錢一旦作響,壞話隨之戛然而止。
目录
相关文章
|
1月前
|
Linux 数据安全/隐私保护 Docker
HomeAssistant系统添加HACS插件商店与远程控制家中智能家居
HomeAssistant系统添加HACS插件商店与远程控制家中智能家居
|
4月前
|
存储 JSON 监控
公司对员工电脑监控软件中USB设备监测的代码实现
在现代企业环境中,为了确保信息安全和监控员工行为,一些公司使用电脑监控软件来追踪员工的活动。其中,USB设备监测是一项重要的功能,可以帮助公司检测和控制外部存储设备的使用。本文将介绍公司对员工电脑监控软件中USB设备监测的代码实现,并讨论如何将监控到的数据自动提交到指定网站。
206 0
|
4月前
|
监控 安全 芯片
智能卡接口芯片解决方案
一、基本概述 HCM8035是一款简洁且低成本的智能IC卡模拟接口芯片。内嵌升压模块,支持5V,3V,1.8V全电压读写。具有全面的安全保护机制,包括ESD保护,端口短路保护,电源上掉电保护。外围元件数目少,采用QFN32L封装。 今天开始介绍自己最近在调试和应用的产品,智能卡接口芯片,主要应用于一些需要智能卡的场合,通常处于控制器和卡端设备之间,起一个桥梁的作用。IC 银行卡支付、电子支付、银行卡、身份证、电视机支付、SIM卡接口等等。 二、引脚定义 三、典型应用电路 四、功能模块 供电模块 VDDP 为芯片供电电源(2.7~5V) 控制接口电源 VDD(INTF)所有控制端
63 0
|
C# 开发工具 C++
惠普打印机、扫描仪二次开发、支持状态获取
惠普打印机、扫描仪二次开发、支持状态获取
667 0
惠普打印机、扫描仪二次开发、支持状态获取
手机支持北斗系统,该怎么设置?
北斗系统主要提供了导航、定位和授时三大功能,以解决我们‘现在在哪里’和‘现在是什么时间’这两个基本问题。
1027 0
|
移动开发 自动驾驶 安全
从软件到硬件,看AliOS如何切入汽车的全链条
深耕四年后,AliOS取得什么成绩
649 0
|
Android开发 数据安全/隐私保护 芯片