Name Last Update
..
.mvn Loading commit data...
libs Loading commit data...
log Loading commit data...
src Loading commit data...
.gitignore Loading commit data...
ReadMe.md Loading commit data...
mvnw Loading commit data...
mvnw.cmd Loading commit data...
pom.xml Loading commit data...

ReadMe.md

#服务运行的环境 ##一、运行需要的基本环境库 在C盘放了一个lib文件夹,里面放了服务运行的基础库,每台有海康服务的服务器上都有这个文件;

##二、服务运行的核心库 和人脸机直接通信的服务功能全在CMSServer类里面,run方法是服务在运行的时候,会自动执行注册服务、图片服务、报警服务的初始化, 分别对应initCMS()、initSS()、initAlarm(),里面的方法不用做修改; CMS(注册服务):设备注册该服务的IP和端口,在FRegisterCallBack注册回调接口中接收注册信息,并响应报警服务器和图片服务器的ip和端口; HCEHomeSS(图片服务):createImgPath()方法生成图片服务路径,生成后可以下发给人脸机使用; initAlarm(报警服务):EHomeMsgCallBack回调方法会监听设备的各种报警信息,目前主要是对人脸识别成功做了记录,其余的方法可以参考PDF文件或者AlarmUtil类;

##三、下发人员信息流程 CMSServer方法封装了下发的方法,只需要调用就行,xml的字段和格式不需要去改变; 直接调用createImgPath() 方法,里面执行了人脸图片路径生成和下发对应卡号的操作;

##四、下发人脸和权限的API接口 由于之前图片传的是本地的绝对路径,所以在100服务器上部署了一个接口服务,对应的接口控制器为UserControl, UserControl内部有逻辑处理,如果人脸机注册在100服务器上,就会直接对人脸机做下发人脸、报警信息处理等操作, 如果没有注册在100服务器上,内部会调用api接口访问253上的接口,253上的服务会对注册的人脸机做响应操作,调用的 控制器对应FileControl,这些控制器都在这同一个服务中; 下发权限:默认会发全天的权限;

##五、部署到不同服务器中需要注意什么? 唯一要注意的就是修改CMSServer服务中的ip_cloud值,改成对应服务的公网ip;

##六、UserControl的主要接口方法 sendPermiss():下发权限,这个是在最新的人脸一体机和教师点名中使用方式上会用到,注册上来的人脸机设备id会以ytj开头,注意如果出现人脸和权限都下发了的情况还是提示没有权限,那就再发一遍权限,有些机型需要先发人脸再发权限; sendUsersAndPermiss():教师点名中用到了这个方法; sendToKB():人脸抓拍机会把抓到的人脸信息推送到数据看板,这个用来做测试用; sendCardAndImg1():单个下发人脸的接口 sendFaces():下发学校下所有人脸给指定设备; sendErrorFaces():下发失败的人脸; sendFaceNotExits():下发学校下还没有下发的人脸给指定设备; sendFaceToDevices():下发单个用户给指定设备 deleteCard():删除人脸

##七、配置信息修改 application.yaml,该文件下包含了数据库配置、注册中心、数据库文件映射等信息,端口号、服务名也都是在这里修改;

##八、无感考勤 无感考勤主要在CMSServer服务中,在PSS_Storage_Callback回调接口中处理抓拍到的图片, 这里会回调人脸机抓拍到的任何图片,要怎么区分是人脸机抓拍的还是抓拍机抓拍的图片呢? 目前对接的情况来看,抓拍机抓拍到的图片名字是很长的一串,里面包含了设备编号、日期等, 目前是判断是否包含日志的标识符T来判断是抓拍机抓拍的图片; 然后在sendToKB()方法中去百度人脸库比较对应学校下的人脸信息,比对出来之后通过MQ推送到关联的数据看板; 推送的图片包含了 两种:一种是识别到的,另一种是识别不到的陌生人;