| | |
| | | package com.ard.device.component.sdk.hik.service.impl; |
| | | |
| | | import com.ard.common.core.domain.AjaxResult; |
| | | import com.ard.common.utils.StringUtils; |
| | | import com.ard.device.camera.domain.ArdCamera; |
| | | import com.ard.device.camera.service.IArdCameraService; |
| | | import com.ard.device.channel.domain.ArdChannel; |
| | | import com.ard.device.camera.domain.CameraCmd; |
| | | import com.ard.device.channel.domain.VideoCompressionCfg; |
| | | import com.ard.device.channel.service.IArdChannelService; |
| | | import com.ard.device.component.sdk.common.GlobalVariable; |
| | | import com.ard.device.component.sdk.common.ResolutionEnum; |
| | | import com.ard.device.component.sdk.common.SdkErrorCodeEnum; |
| | |
| | | * 登录 |
| | | */ |
| | | @Override |
| | | public AjaxResult login(ArdCamera camera) { |
| | | public void login(ArdCamera camera) { |
| | | try { |
| | | String m_sDeviceIP = camera.getIp(); |
| | | String m_sUsername = camera.getUsername(); |
| | |
| | | eventPublisher.publishEvent(loginEvent); |
| | | log.warn("设备[{}:{}]登录失败: {}({})", camera.getIp(), camera.getPort(), |
| | | SdkErrorCodeEnum.getDescByCode(errorCode), errorCode); |
| | | return AjaxResult.warn("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败: " + SdkErrorCodeEnum.getDescByCode(errorCode) + "(" + errorCode + ")"); |
| | | } |
| | | log.debug("Login Success 【 {}:{} 】", camera.getIp(), camera.getPort()); |
| | | log.info("Login Success 【 {}:{} 】", camera.getIp(), camera.getPort()); |
| | | |
| | | GlobalVariable.loginMap.put(camera.getId(), loginId); |
| | | GlobalVariable.hikLoginMap.put(loginId, camera); |
| | |
| | | camera.setState("1"); |
| | | int chanNum = m_strDeviceInfo.struDeviceV30.byChanNum; |
| | | int startChan = m_strDeviceInfo.struDeviceV30.byStartDChan + 1; |
| | | if (camera.getType().equals("2")) { |
| | | if ("2".equals(camera.getType())) { |
| | | chanNum = m_strDeviceInfo.struDeviceV30.byIPChanNum; |
| | | startChan = m_strDeviceInfo.struDeviceV30.byStartDChan; |
| | | } |
| | |
| | | } |
| | | LoginEvent loginEvent = new LoginEvent(camera); |
| | | eventPublisher.publishEvent(loginEvent); |
| | | return AjaxResult.success("设备登录成功"); |
| | | } catch (Exception ex) { |
| | | log.error("注册设备异常", ex); |
| | | return AjaxResult.error("注册设备异常" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | |
| | | * 注销 |
| | | */ |
| | | @Override |
| | | public boolean logout(String cameraId) { |
| | | public void logout(String cameraId) { |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | | return false; |
| | | return; |
| | | } |
| | | Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); |
| | | boolean b = hCNetSDK.NET_DVR_Logout(userId); |
| | | if (b) { |
| | | GlobalVariable.loginMap.remove(cameraId); |
| | | } |
| | | return b; |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | //分辨率 |
| | | String resolution = |
| | | ResolutionEnum.fromCode(compressionCfg.struNormHighRecordPara.byResolution).getResolution(); |
| | | Objects.requireNonNull(ResolutionEnum.fromCode(compressionCfg.struNormHighRecordPara.byResolution)).getResolution(); |
| | | //帧率 |
| | | String nFrameRate; |
| | | switch (compressionCfg.struNormHighRecordPara.dwVideoFrameRate) { |
| | |
| | | /** |
| | | * 获取通道 |
| | | */ |
| | | @Override |
| | | public List<ArdChannel> getChannels(ArdCamera camera) { |
| | | //获取通道 |
| | | List<ArdChannel> channelList = new ArrayList<>(); |
| | |
| | | channel.setVideoCode(videoCompressionCfg.getVideoEncType()); |
| | | } |
| | | //NVR过滤离线通道 |
| | | if (camera.getType().equals("3") || camera.getType().equals("2")) { |
| | | if ("3".equals(camera.getType()) || "2".equals(camera.getType())) { |
| | | if (ipParaCfg.struStreamMode[iChanNo].uGetStream.struChanInfo.byEnable != 1) { |
| | | continue; |
| | | } |
| | |
| | | return false; |
| | | } |
| | | |
| | | System.out.println("✅ 尝试加载动态库: " + strDllPath); |
| | | System.out.println("⏳ 正在加载 HCNetSDK: " + strDllPath); |
| | | hCNetSDK = Native.loadLibrary(strDllPath, HCNetSDK.class); |
| | | System.out.println("✅ SDK 加载成功!"); |
| | | } catch (Exception ex) { |
| | | System.err.println("❌ SDK 加载失败: " + strDllPath + "\n异常信息: " + ex.getMessage()); |
| | | ex.printStackTrace(); |
| | | return false; |
| | | } |
| | | } |