链接: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; 只要我能控制一個國家的貨幣發行,我不在乎誰制定法律。金錢一旦作響,壞話隨之戛然而止。

杨格门锁 YGSLockSDK V3.3酒管软件接口_99v相关推荐

  1. 进行回转体挠度方面的动态模拟RotorInsa.v3.4.2有限元软件

    RotorInsa.v3.4.2有限元软件,进行回转体挠度方面的动态模拟 RAMINT.RAM.ADVANSE.V5.1.Multilanguage 2D / 3D 有限元分析设计 RAMINT RA ...

  2. 软件接口数据一致性机制

    软件互联互通的普及导致软件之间的调用越来越多,但两套软件不在同一个事务中控制,极易导致二者数据不一致的情况. 可采用以下机制,保证软件接口数据一致性 1.调用方访问服务器,如果在一定时间内(设定的超时 ...

  3. 硬件软件接口 (RISC-V) Chapter 2

    计算机组成与设计-硬件软件接口 Chapter2 指令集 RISC-V简介 RISC-V基本语法 计算机硬件的操作数 指令格式 逻辑运算 32个寄存器 指令集 The words of a compu ...

  4. 通达信软件接口是什么?能看得到五档报价吗?

    一般的看盘软件,无论是手机版还是电脑版只能看到买卖五档数据,那么通达信软件接口也能看的到五档报价,接下来小编就用一个表格给大家展示一下通达信软件接口获取五档报价说明! 签名 void GetQuote ...

  5. 计算机组成与设计 硬件/软件接口 Risc-v 版

    第一章 计算机抽象及相关技术 1.1 引言 1.1.1 传统的计算机应用分类及其特点 个人计算机(Personal Computer, PC) 通用,各种软件;受成本.性能权衡 服务器(Sever C ...

  6. 《计算机组成与设计:硬件、软件接口》阅读笔记

    分享一些初次阅读时的记录,本文原是导图,我直接粘在了这 可读性一般,需要导图的朋友可以私,希望可以帮到大家快速搭起这本书的知识结构. 计算机组成与设计:硬件.软件接口####计算机概要与技术**引言* ...

  7. 计算机组成与设计硬件/软件接口 (MIPS版)

    买了一本<计算机组成与设计硬件/软件接口(MIPS版)>,非科班出身的我,从事计算机行业已经8年了,却对计算机的基础什么也不专业.有点惭愧,因为对时间的流逝而感到遗憾!行了,但有言说,多无 ...

  8. 图书推荐|计算机组成与设计(原书第5版) 硬件软件接口 RISC-V

    计算机组成与设计(原书第5版)  硬件软件接口 RISC-V 这本书是引进过来的,本系列图书广受盛誉,有两位"图灵奖"得主撰写,书的权威性及细致性不言而喻,两位作者的履历也是让我们 ...

  9. 通达信软件接口如何更新股票价格指数?

    股票价格是股票市场信息的重要组成部分,股票价格是股票价格的一个重要指标. 通达信软件接口除了可以完成股票价格指数以外,还包括股票的股票代码和简称,股票的开盘价和开盘指数,收盘价和收盘价,股票的每日最高 ...

  10. Labelmx条码软件接口版调用例程

    <Label mx通用条码标签设计系统>是一款简单易用的专业条码标签设计系统.集画图设计.条码生成.标签制作.批量打印于一体. 恒佑科技为满足其它管理软件.进销存等软件调用label mx ...

最新文章

  1. java类加载是什么意思_java 类加载机制有什么用
  2. mysql数据库 web asp.net,使用基于asp.net web的应用程序的mysql数据库
  3. python 报错 TypeError: type ‘types.GenericAlias‘ is not an acceptable base type
  4. linux内核线程socket,从Linux源码看Socket(TCP)的accept
  5. web学习2--理解MVC及快速入门
  6. ftp script for DOS
  7. 说说PMO 的工作思路
  8. html中居中的三种方式
  9. 《上海悠悠接口自动化平台》-2.extract 提取结果与validate 校验结果
  10. 02325《计算机系统结构》自考复习重点目录
  11. 【Android】【MTK】MTK系统启动流程
  12. 可行性研究报告怎么写?
  13. 大一上:计算机导论复习(每章分值、常考题型以及部分章节课后习题答案【网上没有,老师自己做的】)
  14. [C++]判断齐次坐标系中三点是否共线(三个向量是否共面)
  15. kali 插上耳机没声音
  16. flask 视频流直播
  17. 湍流的特点是什么?雷诺数的物理阐释?
  18. 爬取上市公司财务数据
  19. LintCode算法入门:
  20. 【BLE】TLSR8258开发记录之3--8258内部Flash划分

热门文章

  1. 【转】onAttachedToWindow()在整个Activity生命周期的位置及使用
  2. MongoDb 聚合报错
  3. 方法、hadoop源码之JobQueueTaskScheduler-by小雨
  4. 中文问题-Mobile-UrlEncode
  5. mybatis 中collection中需要 open close separator
  6. UVA11021 Tribles
  7. 《mysql必知必会》学习_第八章_20180730_欢
  8. Audiophobia(Floyd算法)
  9. android:模拟水波效果的自己定义View
  10. Python 【第十章】 Django路由