| | |
| | | //添加到流媒体 |
| | | addVtdu(camera); |
| | | //创建引导队列 |
| | | if(camera.getCamAlarmGuideEnable()==1) { |
| | | if (camera.getCamAlarmGuideEnable() == 1) { |
| | | if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) { |
| | | Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); |
| | | PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator); |
| | |
| | | * @创建时间 2023/1/17 16:36 |
| | | * @修改人和其它信息 注意俯仰角度负值需要加上360得到的正值进行设置 |
| | | */ |
| | | @Override |
| | | public boolean setPtz(CameraCmd cmd) { |
| | | |
| | | public boolean setPtz1(CameraCmd cmd) { |
| | | String cameraId = cmd.getCameraId(); |
| | | Integer channelNum = cmd.getChanNo(); |
| | | Map<String, Double> ptz = cmd.getPtzMap(); |
| | |
| | | boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size()); |
| | | if (!bool) { |
| | | int code = hCNetSDK.NET_DVR_GetLastError(); |
| | | log.error("设置ptz失败,请稍后重试" + code); |
| | | log.error("设置PTZ参数失败,请稍后重试:" + code); |
| | | } |
| | | return bool; |
| | | } catch (Exception ex) { |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @描述 设置高精度ptz信息 |
| | | * @参数 [userId, channelNum] |
| | | * @返回值 boolean |
| | | * @创建人 刘苏义 |
| | | * @创建时间 2023/1/17 16:36 |
| | | * @修改人和其它信息 注意俯仰角度负值向下负值 |
| | | */ |
| | | @Override |
| | | public boolean setPtz(CameraCmd cmd) { |
| | | try { |
| | | String cameraId = cmd.getCameraId(); |
| | | Integer chanNo = cmd.getChanNo(); |
| | | Map<String, Double> ptz = cmd.getPtzMap(); |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | | return false; |
| | | } |
| | | Integer lUserID = (Integer) GlobalVariable.loginMap.get(cameraId); |
| | | IntByReference pchannel = new IntByReference(chanNo); |
| | | Pointer pChannelNum = pchannel.getPointer(); |
| | | |
| | | HCNetSDK.NET_DVR_STD_CONFIG lpConfigParam6697 = new HCNetSDK.NET_DVR_STD_CONFIG(); |
| | | HCNetSDK.NET_DVR_PTZABSOLUTEEX_CFG lpPTZAbsoluteEX_cfgInfo = new HCNetSDK.NET_DVR_PTZABSOLUTEEX_CFG(); |
| | | lpConfigParam6697.lpCondBuffer = pChannelNum; |
| | | lpConfigParam6697.dwCondSize = 4; |
| | | HCNetSDK.BYTE_ARRAY m_szStatusBuf = new HCNetSDK.BYTE_ARRAY(4096 * 4); |
| | | lpConfigParam6697.lpStatusBuffer = m_szStatusBuf.getPointer(); |
| | | lpConfigParam6697.dwStatusSize = 4096 * 4; |
| | | lpPTZAbsoluteEX_cfgInfo.dwSize = lpPTZAbsoluteEX_cfgInfo.size(); |
| | | lpPTZAbsoluteEX_cfgInfo.struPTZCtrl.fPan = new Double(ptz.get("p")).floatValue(); |
| | | float t = new Double(ptz.get("t")).floatValue(); |
| | | float t1 = t > 300 ? (t - 360) : t; |
| | | BigDecimal bigDecimal = new BigDecimal(t1); |
| | | float t2 = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue(); |
| | | lpPTZAbsoluteEX_cfgInfo.struPTZCtrl.fTilt = t2; |
| | | lpPTZAbsoluteEX_cfgInfo.struPTZCtrl.fZoom = new Double(ptz.get("z")).floatValue(); |
| | | lpPTZAbsoluteEX_cfgInfo.struPTZCtrl.dwFocus = 399; |
| | | lpPTZAbsoluteEX_cfgInfo.dwFocalLen = 1250; |
| | | lpPTZAbsoluteEX_cfgInfo.fHorizontalSpeed = (float) 10; |
| | | lpPTZAbsoluteEX_cfgInfo.fVerticalSpeed = (float) 10; |
| | | lpPTZAbsoluteEX_cfgInfo.byZoomType = 0; |
| | | lpPTZAbsoluteEX_cfgInfo.write(); |
| | | lpConfigParam6697.lpInBuffer = lpPTZAbsoluteEX_cfgInfo.getPointer(); |
| | | lpConfigParam6697.dwInSize = lpPTZAbsoluteEX_cfgInfo.dwSize; |
| | | lpConfigParam6697.write(); |
| | | boolean bool = hCNetSDK.NET_DVR_SetSTDConfig(lUserID, NET_DVR_SET_PTZABSOLUTEEX, lpConfigParam6697); |
| | | if (!bool) { |
| | | int code = hCNetSDK.NET_DVR_GetLastError(); |
| | | log.error("设置高精度PTZ参数失败,请稍后重试:" + code); |
| | | } |
| | | return bool; |
| | | |
| | | }catch (Exception ex) |
| | | { |
| | | log.error("设置高精度PTZ参数异常",ex); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public boolean guideTargetPosition(CameraCmd cmd) { |
| | | String cameraId = cmd.getCameraId(); |