# 中控 PUSH SDK DEMO
## 说明
这是从网络上找到的中控SDK PUSH说明书后编写的DEMO,用于门禁设备直接模拟HTTP请求,向服务端提报数据,同时服务端也可直接操作门禁设备。
支持的型号,据文档称支持 IFACE702 以及ICLOCK660,手里只有IFACE702,所以测试仅覆盖了IFACE702的部分功能。
## why Push SDK
1. 不受限与开发语言,不需要二次封装。 中控默认的Pull SDK我找到了C#和VB.net的,但是对于其他语言,并不友好。
2. HTTP协议,直接使用HTTP协议,对于以B/S架构的管理平台,可以直接使用,不需要在环境变量中引入一些奇怪的dll或者包,造成后期维护成本变高。
## 文档说明
文档包含SDK说明文档及设备配置文档,详见/zkacess/doc。
## 项目说明
本项目使用JDK8,spring boot2.4.1,Lombok,直接运行ZkacessApplication即可。
> 若运行不成功,请自行搜索Lombok的相关配置、使用说明。
## 实现功能说明
本项目依据“01.PUSHSDK通信协议V2.3-2013-02.pdf”,实现了如下功能:
1. 获取指定设备所有用户基本信息
2. 获取指定设备所有用户指纹模板
3. 获取指定设备所有用户人脸模板
4. 获取指定设备所有打卡记录
5. 拦截设备操作记录
6. 拦截设备打卡记录
7. 清理所有打卡记录
8. 实例化能找到的所有类
9. 人员基本信息下发
## 未实现功能
未实现功能主要是基本都是重复的内容,只需要照着SDK说明开发调试就可以了,单使用demo,一是模拟起来不方便,另外一个是需要真实的生物特征。
1. 人员指纹信息下发
2. 人脸模型下发
3. 人员基本信息删除
4. 人员指纹信息删除
5. 人脸信息删除
6. 消息ID的处理,现在的方式是下发后,不管成功与否,都会直接清掉命令,这里可以根据实际需求考虑异常消息的重发机制。
## 如何运行
首先确保开发PC与中控门禁设备网络互通,然后按照`/doc/02.IFACE702设备配置说明.docx`中对设备进行设置,确保设置的端口号和本项目的端口号相同,然后,运行`ZkacessApplication`,设备应该就开始向`AccessPushController`中开始发送请求了,可以把这个方法中的各个方法都打上断点,然后慢慢看就可以了。
## 关于DeviceManageController中的几个URL
DeviceManageController中定义了如下的方法:
- getAccessLog:请求所有打卡日志 (http://ip:port/device/log?sn={sn})
- getAllPersonInfo:请求所有人员信息(http://ip:port/device/person?sn={sn})
- clearAllAccessLog:清空所有打卡信息(http://ip:port/device/clearLog?sn={sn})
- addPersonTest:测试增加人员信息(http://ip:port/device/testAddPerson?sn={sn})
>sn号,可以在项目运行起来后,在日志中找到。
## 项目结构说明
- zkaccess : 项目目录
- constant :存放命令常量,后期可扩展
- CMD_LIST : 所有支持的命令,想要扩展的直接在这把新命令模板定义上就可以了。
- controller : 控制器
- AccessPushController: 机器上传的控制器,uri都是文档中定义的,里面包含了所有上传和下发的指令,连接上机具后,请先查看本类。
- DeviceManageController : 主要用来测试一些下发指令。
- entity :机器上回传的信息对应的实体
- AccessDeviceEntity:并没有什么实际用处,为门禁设备基本信息的实体。
- AccessLogEntity:打卡记录对应实体。
- CmdResult:设备返回对应实体,描述指令是否处理成功
- FaceEntity:脸部模型对应实体。
- FingerModelEntity:指纹模型对应实体。
- OperateLogEntity:管理员操作记录对应实体。
- PersonEntity:人员基本信息对应实体。
- UserPictureEntity:人员照片对应实体。
- service :测试使用的service
- DeviceManageService:测试指令下发的指令拼装工具类。
- store :临时存储,这个生产环境中并不需要
- DemoStore :包含一个设备列表(基本没用),消息队列(生产改为Redis)以及ID生成(控制在5位正整数以内)。
- util :机器上传信息的转换
MessageUtil: 消息转换类
## 文档
本文所有的文档都在/doc文件夹下。包含:
1. 01.PUSHSDK通信协议V2.3-2013-02.pdf
2. 02.IFACE702设备配置说明.docx
3. 03.传统-脱机通讯开发包(64bit Ver6.2.4.11).zip:C#的原生pull系列demo
## 遇到的坑
1. 机器使用的编码是GBK,所以注意发送的时候进行字节转换。具体转换在`AccessPushController`中的84行和123行。

TYYR1998
- 粉丝: 3
- 资源: 11
最新资源
- 人工智能前沿专题 – 大语言模型基础导论 DeepSeek核心技术简介.pdf
- 实用的DeepSeek提示词模板 .docx
- 基于springboot框架的Javaweb社区医院信息管理平台(完整源码+数据库sql文件+项目文档+Java项目编程实战+编程练手好项目).zip
- 深度解读DeepSeek:部署、使用、安全.pdf
- 高强螺栓计算详解及软件实现 VDI 2230 重在落地和应用,不是讲单说理论 ,高强螺栓计算详解与软件实现策略:基于VDI 2230标准的实践应用与落地操作指南,高强螺栓计算详解及软件实现:实践指南
- 使用DeepSeek赋能家庭教育.pdf
- 算力突围:DeepSeek搅动AI芯片格局.pdf
- 王炸-+Deepseek【小红书运营】高级指令.pdf
- 我们该如何看待DeepSeek.pdf
- 薪酬工作DeepSeek提示词.pdf
- 银行业DeepSeek大模型应用跟踪报告.pdf
- 详解DeepSeek核心技术.pdf
- 招聘工作DeepSeek提示词.pdf
- 组织发展DeepSeek提示词.pdf
- u7iccmab.dll
- 超全面的平面手性COMSOL 光学仿真,BIC 驱动的最大平面手性,包含能带,Q 因子,正入射斜入射琼斯矩阵透射谱,动量空间(k 空间)(布里渊区)偏振场分布,改变不对称因子CD变化图 下图是仿真文
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


