| | |
| | | package com.ruoyi.device.dhsdk.service.impl; |
| | | |
| | | import com.ruoyi.common.annotation.SdkOperate;
|
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.device.camera.domain.ArdCameras; |
| | | import com.ruoyi.device.camera.domain.CameraCmd; |
| | |
| | | import java.text.DecimalFormat; |
| | | import java.util.*; |
| | | |
| | | import static com.ruoyi.device.dhsdk.lib.NetSDKLib.NET_DEVSTATE_ONLINE;
|
| | | import static com.ruoyi.device.dhsdk.lib.NetSDKLib.NET_DEVSTATE_PTZ_LOCATION; |
| | | import static com.ruoyi.device.dhsdk.lib.ToolKits.getErrorCodePrint; |
| | | import static com.ruoyi.device.hiksdk.sdk.HCNetSDK.NET_DVR_CHECK_USER_STATUS; |
| | | import static com.ruoyi.device.hiksdk.sdk.HCNetSDK.*;
|
| | | |
| | | /** |
| | | * @ClassName DhSdkServiceImpl |
| | |
| | | return false; |
| | | } |
| | | LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); |
| | | |
| | | |
| | | NetSDKLib.NET_WORKSTATE dh_ptz_location_info = new NetSDKLib.NET_WORKSTATE();
|
| | | boolean b = ConfigModule.queryDevState(loginId, NET_DEVSTATE_ONLINE, dh_ptz_location_info);
|
| | | if (!b) {
|
| | | return false;
|
| | | }
|
| | | } catch (Exception ex) { |
| | | log.error("检测在线异常:" + ex.getMessage()); |
| | | return false; |
| | | } |
| | | |
| | | return false; |
| | | return true;
|
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | return ptzMap; |
| | | } |
| | | /**
|
| | | * @描述 设置ptz信息
|
| | | * @参数 [userId, channelNum]
|
| | | * @返回值 boolean
|
| | | * @创建人 刘苏义
|
| | | * @创建时间 2023/1/17 16:36
|
| | | * @修改人和其它信息 注意俯仰角度负值需要加上360得到的正值进行设置
|
| | | */
|
| | | @Override
|
| | | @SdkOperate
|
| | | public boolean setPtz(CameraCmd cmd) {
|
| | | String cameraId = cmd.getCameraId();
|
| | | Integer chanNo = cmd.getChanNo();
|
| | | Map<String, Double> ptz = cmd.getPtzMap();
|
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) {
|
| | | return false;
|
| | | }
|
| | | LLong loginId = (LLong)GlobalVariable.loginMap.get(cameraId);
|
| | | try {
|
| | | int p = (int)(ptz.get("p") * 10);
|
| | | int t = (int)(ptz.get("t") * 10);
|
| | | int z = ptz.get("z").intValue();
|
| | | boolean bool = LoginModule.netsdk.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_EXACTGOTO, p, t, z, 0 );
|
| | | if (!bool) {
|
| | | log.error("控制失败,请稍后重试" + getErrorCodePrint());
|
| | | }
|
| | | return bool;
|
| | | } catch (Exception ex) {
|
| | | log.error(ex.getMessage());
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * @描述 设置零方位角
|
| | | * @参数 [userId, channelNum]
|
| | | * @返回值 boolean
|
| | | * @创建人 刘苏义
|
| | | * @创建时间 2023/1/17 16:36
|
| | | * @修改人和其它信息 注意俯仰角度负值需要加上360得到的正值进行设置
|
| | | */
|
| | | @Override
|
| | | @SdkOperate
|
| | | public boolean setZeroPtz(CameraCmd cmd) {
|
| | | String cameraId = cmd.getCameraId();
|
| | | Integer chanNo = cmd.getChanNo();
|
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) {
|
| | | return false;
|
| | | }
|
| | | LLong loginId = (LLong)GlobalVariable.loginMap.get(cameraId);
|
| | | boolean bool = NetSDKLib.NETSDK_INSTANCE.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RESETZERO, 0, 0, 0, 0);
|
| | | if (!bool) {
|
| | | log.error("控制失败,请稍后重试" + getErrorCodePrint());
|
| | | }
|
| | | return bool;
|
| | | }
|
| | |
|
| | |
|
| | | |
| | | // 设备断线回调: 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数 |
| | | private static class DisConnect implements NetSDKLib.fDisConnect { |