#**服务运行的环境**
##一、运行需要的基本环境库
    在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推送到关联的数据看板;
    推送的图片包含了 两种:一种是识别到的,另一种是识别不到的陌生人;