| | |
| | | log.error("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败:" + getErrorCodePrint()); |
| | | return AjaxResult.warn(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); |
| | | } |
| | | if (GlobalVariable.loginMap.containsKey(camera.getId())) { |
| | | GlobalVariable.loginMap.remove(camera.getId()); |
| | | } |
| | | //删除管理通道 |
| | | ardChannelService.deleteArdChannelByDeviceId(camera.getId()); |
| | | // if (GlobalVariable.loginMap.containsKey(camera.getId())) { |
| | | // GlobalVariable.loginMap.remove(camera.getId()); |
| | | // } |
| | | camera.setState("1"); |
| | | camera.setChanNum(m_stDeviceInfo.byChanNum); |
| | | camera.setStartDChan(1); |
| | | camera.setLoginId((int) loginId.longValue()); |
| | | ardCamerasService.updateArdCameras(camera); |
| | | GlobalVariable.loginMap.put(camera.getId(), loginId); |
| | | |
| | | //获取最新通道 |
| | | for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) { |
| | | ArdChannel channel = new ArdChannel(); |
| | | NetSDKLib.AV_CFG_ChannelName av_cfg_channelName = new NetSDKLib.AV_CFG_ChannelName(); |
| | | boolean b = ConfigModule.GetNewDevConfig(loginId, i - 1, CFG_CMD_CHANNELTITLE, av_cfg_channelName); |
| | | if (b) { |
| | | String chanName = ""; |
| | | try { |
| | | chanName = new String(av_cfg_channelName.szName, "GBK").trim(); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | channel.setName(chanName.equals("") ? "通道" + i : chanName); |
| | | } |
| | | channel.setDeviceId(camera.getId()); |
| | | channel.setChanNo(i); |
| | | ardChannelService.insertArdChannel(channel); |
| | | List<ArdChannel> ardChannelList = getChannels(camera); |
| | | if (ardChannelList.size() > 0) { |
| | | camera.setChanNum(ardChannelList.size()); |
| | | ardCamerasService.updateArdCameras(camera); |
| | | //配置到流媒体 |
| | | addVtdu(camera); |
| | | } |
| | | //配置到流媒体 |
| | | addVtdu(camera); |
| | | //创建引导队列 |
| | | createGuideQueue(camera); |
| | | return AjaxResult.success("设备登录成功"); |
| | |
| | | log.error("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败:" + getErrorCodePrint()); |
| | | return AjaxResult.warn(getErrorCodePrint()); |
| | | } |
| | | if (GlobalVariable.loginMap.containsKey(camera.getId())) { |
| | | GlobalVariable.loginMap.remove(camera.getId()); |
| | | } |
| | | //删除管理通道 |
| | | ardChannelService.deleteArdChannelByDeviceId(camera.getId()); |
| | | // if (GlobalVariable.loginMap.containsKey(camera.getId())) { |
| | | // GlobalVariable.loginMap.remove(camera.getId()); |
| | | // } |
| | | camera.setState("1"); |
| | | camera.setChanNum(m_stDeviceInfo.byChanNum); |
| | | camera.setStartDChan(1); |
| | |
| | | GlobalVariable.loginMap.put(camera.getId(), loginId); |
| | | |
| | | //获取最新通道 |
| | | for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) { |
| | | ArdChannel channel = new ArdChannel(); |
| | | NetSDKLib.AV_CFG_ChannelName av_cfg_channelName = new NetSDKLib.AV_CFG_ChannelName(); |
| | | boolean b = ConfigModule.GetNewDevConfig(loginId, i-1, CFG_CMD_CHANNELTITLE, av_cfg_channelName); |
| | | if (!b) { |
| | | log.error("获取配置失败,请稍后重试" + getErrorCodePrint()); |
| | | // return AjaxResult.warn(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); |
| | | } |
| | | String chanName = ""; |
| | | try { |
| | | chanName = new String(av_cfg_channelName.szName, "GBK").trim(); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | channel.setName(chanName.equals("") ? "通道" + i : chanName); |
| | | |
| | | channel.setDeviceId(camera.getId()); |
| | | channel.setChanNo(i); |
| | | ardChannelService.insertArdChannel(channel); |
| | | List<ArdChannel> ardChannelList = getChannels(camera); |
| | | if (ardChannelList.size() > 0) { |
| | | camera.setChanNum(ardChannelList.size()); |
| | | ardCamerasService.updateArdCameras(camera); |
| | | //配置到流媒体 |
| | | addVtdu(camera); |
| | | } |
| | | //配置到流媒体 |
| | | addVtdu(camera); |
| | | //创建引导队列 |
| | | createGuideQueue(camera); |
| | | return AjaxResult.success("登录成功"); |
| | |
| | | |
| | | //创建引导队列 |
| | | private void createGuideQueue(ArdCameras 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); |
| | | //启动队列处理器 |
| | | queueHandler.process(camera.getId()); |
| | | if (camera.getGdtype().equals("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()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //获取通道 |
| | | public List<ArdChannel> getChannels(ArdCameras camera) { |
| | | ardChannelService.deleteArdChannelByDeviceId(camera.getId()); |
| | | LLong loginId = new LLong(camera.getLoginId()); |
| | | List<ArdChannel> ardChannelList = new ArrayList<>(); |
| | | for (int i = 1; i < camera.getChanNum() + 1; i++) { |
| | | ArdChannel channel = new ArdChannel(); |
| | | NetSDKLib.AV_CFG_ChannelName av_cfg_channelName = new NetSDKLib.AV_CFG_ChannelName(); |
| | | boolean b = ConfigModule.GetNewDevConfig(loginId, i - 1, CFG_CMD_CHANNELTITLE, av_cfg_channelName); |
| | | if (!b) { |
| | | log.error("获取配置失败,请稍后重试" + getErrorCodePrint()); |
| | | // return AjaxResult.warn(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); |
| | | } |
| | | String chanName = ""; |
| | | try { |
| | | chanName = new String(av_cfg_channelName.szName, "GBK").trim(); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | channel.setName(chanName.equals("") ? "通道" + i : chanName); |
| | | channel.setDeviceId(camera.getId()); |
| | | channel.setChanNo(i); |
| | | if (camera.getGdtype().equals("2")) { |
| | | //NVR过滤不在线的通道 |
| | | if (!ConfigModule.queryCameraState(loginId, camera.getChanNum(), i)) { |
| | | continue; |
| | | } |
| | | } |
| | | ardChannelList.add(channel); |
| | | ardChannelService.insertArdChannel(channel); |
| | | } |
| | | return ardChannelList; |
| | | } |
| | | |
| | | /** |
| | |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public List<ArdChannel> getIPChannelInfo(ArdCameras camera) { |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 引导目标位置 |