| | |
| | | @Resource |
| | | private QueueHandler queueHandler; |
| | | |
| | | public Object _lock=new Object(); |
| | | public static HCNetSDK hCNetSDK = HCNetSDK.hCNetSDK; |
| | | private static HCNetSDK.FExceptionCallBack fExceptionCallBack;//异常回调 |
| | | |
| | |
| | | @Async("loginExecutor") |
| | | public void asyncLogin(ArdCameras camera) { |
| | | try { |
| | | Thread.sleep(100); |
| | | // 初始化 |
| | | if (!hCNetSDK.NET_DVR_Init()) { |
| | | log.error("SDK初始化失败"); |
| | |
| | | } |
| | | |
| | | log.debug("Login Success 【 " + camera.getIp() + ":" + camera.getPort() + " 】"); |
| | | if (fExceptionCallBack == null) { |
| | | fExceptionCallBack = new ExceptionCallBack();//异常回调 |
| | | //设置异常回调函数(可在回调函数中获取设备上下线状态等) |
| | | if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, null)) { |
| | | log.debug("Set fExceptionCallBack function fail"); |
| | | return; |
| | | } else { |
| | | log.debug("Set fExceptionCallBack function successfully!"); |
| | | synchronized (_lock) { |
| | | if (fExceptionCallBack == null) { |
| | | fExceptionCallBack = new ExceptionCallBack();//异常回调 |
| | | //设置异常回调函数(可在回调函数中获取设备上下线状态等) |
| | | if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, null)) { |
| | | log.debug("Set fExceptionCallBack function fail"); |
| | | return; |
| | | } else { |
| | | log.debug("Set fExceptionCallBack function successfully!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (GlobalVariable.loginMap.containsKey(camera.getId())) { |
| | | GlobalVariable.loginMap.remove(camera.getId()); |
| | | } |
| | |
| | | //添加到流媒体 |
| | | addVtdu(camera); |
| | | //创建引导队列 |
| | | createGuideQueue(camera); |
| | | } catch (Exception ex) { |
| | | log.error("注册设备异常", ex); |
| | | } |
| | | } |
| | | |
| | | //创建引导队列 |
| | | private void createGuideQueue(ArdCameras camera) { |
| | | if(camera.getCamAlarmGuideEnable()!=null) { |
| | | if (camera.getCamAlarmGuideEnable() == 1) { |
| | | if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) { |
| | | Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); |
| | |
| | | queueHandler.process(camera.getId()); |
| | | } |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("注册设备异常", ex); |
| | | } |
| | | } |
| | | |
| | | //添加到流媒体 |
| | | private void addVtdu(ArdCameras camera) { |
| | | try { |