| | |
| | | |
| | | import com.ruoyi.alarm.global.domain.GuidePriorityQueue; |
| | | import com.ruoyi.alarm.global.domain.GuideTask; |
| | | import com.ruoyi.alarm.global.service.impl.QueueHandler; |
| | | import com.ruoyi.common.utils.file.FileUtils; |
| | | import com.ruoyi.common.utils.file.MimeTypeUtils; |
| | | import com.ruoyi.common.utils.spring.SpringUtils; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.device.camera.service.IArdCamerasService; |
| | | import com.ruoyi.device.camera.factory.CameraSDK; |
| | |
| | | private IArdChannelService ardChannelService; |
| | | @Resource |
| | | private IVtduService vtduService; |
| | | @Resource |
| | | private QueueHandler queueHandler; |
| | | |
| | | 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初始化失败"); |
| | |
| | | //同步登录 |
| | | int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); |
| | | if (lUserID < 0) { |
| | | log.debug("Login Failed [ " + camera.getIp() + ":" + camera.getPort() + " ],错误码:" + hCNetSDK.NET_DVR_GetLastError()); |
| | | log.debug("Login Failed 【 " + camera.getIp() + ":" + camera.getPort() + " 】,Error Code:" + hCNetSDK.NET_DVR_GetLastError()); |
| | | camera.setChanNum(0); |
| | | camera.setLoginId(-1); |
| | | camera.setState("0"); |
| | |
| | | return; |
| | | } |
| | | |
| | | log.debug("Login Success [ " + camera.getIp() + ":" + camera.getPort() + " ]"); |
| | | log.debug("Login Success 【 " + camera.getIp() + ":" + camera.getPort() + " 】"); |
| | | if (fExceptionCallBack == null) { |
| | | fExceptionCallBack = new ExceptionCallBack();//异常回调 |
| | | //设置异常回调函数(可在回调函数中获取设备上下线状态等) |
| | |
| | | //添加到流媒体 |
| | | addVtdu(camera); |
| | | //创建引导队列 |
| | | if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) { |
| | | Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); |
| | | PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator); |
| | | GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue); |
| | | if(camera.getCamAlarmGuideEnable()==1) { |
| | | if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) { |
| | | Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); |
| | | PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator); |
| | | GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue); |
| | | //启动队列处理器 |
| | | queueHandler.process(camera.getId()); |
| | | } |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("注册设备异常", ex); |