| | |
| | | import com.ard.device.component.sdk.common.ResolutionEnum; |
| | | import com.ard.device.component.sdk.common.SdkErrorCodeEnum; |
| | | import com.ard.device.component.sdk.common.osSelect; |
| | | import com.ard.device.component.sdk.dh.lib.NetSDKLib; |
| | | import com.ard.device.component.sdk.event.LoginEvent; |
| | | import com.ard.device.component.sdk.hik.lib.ExceptionCallBack; |
| | | import com.ard.device.component.sdk.hik.lib.HCNetSDK; |
| | |
| | | eventPublisher.publishEvent(loginEvent); |
| | | log.warn("设备[{}:{}]登录失败: {}({})", camera.getIp(), camera.getPort(), |
| | | SdkErrorCodeEnum.getDescByCode(errorCode), errorCode); |
| | | return; |
| | | } |
| | | log.info("Login Success 【 {}:{} 】", camera.getIp(), camera.getPort()); |
| | | |
| | | GlobalVariable.loginMap.put(camera.getId(), loginId); |
| | | GlobalVariable.hikLoginMap.put(loginId, camera); |
| | | camera.setLoginId((long) loginId); |
| | | camera.setState("1"); |
| | |
| | | * 注销 |
| | | */ |
| | | @Override |
| | | public void logout(String cameraId) { |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | | return; |
| | | } |
| | | Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); |
| | | boolean b = hCNetSDK.NET_DVR_Logout(userId); |
| | | if (b) { |
| | | GlobalVariable.loginMap.remove(cameraId); |
| | | } |
| | | public void logout(ArdCamera ardCamera) { |
| | | |
| | | hCNetSDK.NET_DVR_Logout(ardCamera.getLoginId().intValue()); |
| | | } |
| | | |
| | | @Override |
| | | public boolean isOnLine(CameraCmd cmd) { |
| | | public boolean isOnLine(ArdCamera ardCamera) { |
| | | try { |
| | | String cameraId = cmd.getCameraId(); |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | | return false; |
| | | } |
| | | Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); |
| | | return hCNetSDK.NET_DVR_RemoteControl(userId, NET_DVR_CHECK_USER_STATUS, null, 0); |
| | | return hCNetSDK.NET_DVR_RemoteControl(ardCamera.getLoginId().intValue(), NET_DVR_CHECK_USER_STATUS, null, 0); |
| | | } catch (Exception ex) { |
| | | log.error("检测在线异常:{}", ex.getMessage()); |
| | | return false; |
| | |
| | | * |
| | | */ |
| | | @Override |
| | | public VideoCompressionCfg getVideoCompressionCfg(CameraCmd cmd) { |
| | | String cameraId = cmd.getCameraId(); |
| | | Integer chanNo = cmd.getChanNo(); |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | | return null; |
| | | } |
| | | Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); |
| | | |
| | | public VideoCompressionCfg getVideoCompressionCfg(ArdCamera ardCamera) { |
| | | Integer chanNo = ardCamera.getChanNo(); |
| | | int userId = ardCamera.getLoginId().intValue(); |
| | | HCNetSDK.NET_DVR_COMPRESSIONCFG_V30 compressionCfg = new HCNetSDK.NET_DVR_COMPRESSIONCFG_V30(); |
| | | compressionCfg.write(); |
| | | Pointer point = compressionCfg.getPointer(); |
| | | IntByReference ibrBytesReturned = new IntByReference(0); |
| | | |
| | | boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_COMPRESSCFG_V30, chanNo, point, |
| | | compressionCfg.size(), ibrBytesReturned); |
| | | if (bool) { |
| | |
| | | channel.setName(channelName); |
| | | channel.setChanNo(chanNo); |
| | | //获取视频编码 |
| | | CameraCmd cameraCmd = new CameraCmd(camera.getId(), chanNo); |
| | | VideoCompressionCfg videoCompressionCfg = getVideoCompressionCfg(cameraCmd); |
| | | camera.setChanNo(chanNo); |
| | | VideoCompressionCfg videoCompressionCfg = getVideoCompressionCfg(camera); |
| | | if (StringUtils.isNotNull(videoCompressionCfg)) { |
| | | channel.setVideoCode(videoCompressionCfg.getVideoEncType()); |
| | | } |