|
|
|
|
@ -3,6 +3,7 @@ package com.zhehekeji.web.lib.joyware;
|
|
|
|
|
import com.sun.jna.ptr.IntByReference;
|
|
|
|
|
import com.zhehekeji.common.util.PathUtil;
|
|
|
|
|
import com.zhehekeji.core.util.Assert;
|
|
|
|
|
import com.zhehekeji.web.entity.Camera;
|
|
|
|
|
import com.zhehekeji.web.lib.CameraConnMap;
|
|
|
|
|
import com.zhehekeji.web.lib.CameraControlModule;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
@ -25,240 +26,338 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* NVR界面上的通道号从1开始,SDK接口要的通道号从0开始,所以大于0时减一
|
|
|
|
|
*/
|
|
|
|
|
private int channel(int nChannelID) {
|
|
|
|
|
return nChannelID > 0 ? nChannelID - 1 : 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 向上
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
|
|
|
|
|
log.info("up start");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
|
|
|
|
|
lParam1, lParam2, 0, 0);
|
|
|
|
|
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlUpStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlUpEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
log.info("up end");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlUpEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 向下
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
|
|
|
|
|
log.info("down start");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
|
|
|
|
|
lParam1, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlDownStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlDownEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
log.info("down end");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlDownEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 向左
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
|
|
|
|
|
log.info("left start");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
|
|
|
|
|
lParam1, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlLeftStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlLeftEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
log.info("left end");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlLeftEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 向右
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlRightStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
|
|
|
|
|
log.info("right start");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
|
|
|
|
|
lParam1, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlRightStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlRightEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
log.info("right end");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlRightEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 向左上
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
|
|
|
|
|
log.info("up left start");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
|
|
|
|
|
lParam1, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlLeftUpStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
log.info("up left end");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlLeftUpEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 向右上
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
|
|
|
|
|
log.info("up right start");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
|
|
|
|
|
lParam1, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlRightUpStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
log.info("up right end");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlRightUpEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 向左下
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
|
|
|
|
|
log.info(" left down start");
|
|
|
|
|
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
|
|
|
|
|
lParam1, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlLeftDownStart error :{},cameraId:{}", ToolKits.getErrorCodePrint(),cameraId);
|
|
|
|
|
log.error("ptzControlLeftDownStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
log.info(" left down end");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlLeftDownEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 向右下
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
|
|
|
|
|
log.info(" right down start");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
|
|
|
|
|
lParam1, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlRightDownStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
log.info(" right down end");
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlRightDownEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 变倍+
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlZoomAddStart(Integer cameraId, int nChannelID, int lParam2) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_ADD_CONTROL,
|
|
|
|
|
0, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlZoomAddStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlZoomAddEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_ADD_CONTROL,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlZoomAddEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 变倍-
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlZoomDecStart(Integer cameraId, int nChannelID, int lParam2) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_DEC_CONTROL,
|
|
|
|
|
0, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlZoomDecStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlZoomDecEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_ZOOM_DEC_CONTROL,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlZoomDecEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 变焦+
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlFocusAddStart(Integer cameraId, int nChannelID, int lParam2) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_ADD_CONTROL,
|
|
|
|
|
0, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlFocusAddStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlFocusAddEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_ADD_CONTROL,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlFocusAddEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 变焦-
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlFocusDecStart(Integer cameraId, int nChannelID, int lParam2) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_DEC_CONTROL,
|
|
|
|
|
0, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlFocusDecStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlFocusDecEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_FOCUS_DEC_CONTROL,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlFocusDecEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 光圈+
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlIrisAddStart(Integer cameraId, int nChannelID, int lParam2) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_ADD_CONTROL,
|
|
|
|
|
0, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlIrisAddStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlIrisAddEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_ADD_CONTROL,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlIrisAddEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 光圈-
|
|
|
|
|
*/
|
|
|
|
|
public boolean ptzControlIrisDecStart(Integer cameraId, int nChannelID, int lParam2) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL,
|
|
|
|
|
0, lParam2, 0, 0);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlIrisDecStart error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean ptzControlIrisDecEnd(Integer cameraId, int nChannelID) {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
|
|
|
|
|
boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), channel(nChannelID),
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL,
|
|
|
|
|
0, 0, 0, 1);
|
|
|
|
|
if(!ok){
|
|
|
|
|
log.error("ptzControlIrisDecEnd error:{},cameraId:{},channel:{},loginId:{}", ToolKits.getErrorCodePrint(),cameraId,nChannelID,CameraConnMap.getConnId(cameraId));
|
|
|
|
|
}
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean pic(Integer cameraId,int channel, String realPath) {
|
|
|
|
|
NetSDKLib.SNAP_PARAMS stuSnapParams = new NetSDKLib.SNAP_PARAMS();
|
|
|
|
|
stuSnapParams.Channel = 0; // channel
|
|
|
|
|
stuSnapParams.Channel = channel(channel); // channel
|
|
|
|
|
stuSnapParams.mode = 0; // capture picture mode
|
|
|
|
|
stuSnapParams.Quality = 3; // picture quality
|
|
|
|
|
stuSnapParams.InterSnap = 0; // timer capture picture time interval
|
|
|
|
|
@ -272,6 +371,11 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) {
|
|
|
|
|
Camera camera = CameraConnMap.cameras.get(cameraId);
|
|
|
|
|
if(camera == null){
|
|
|
|
|
log.error("camera is null,cameraId:{}",cameraId);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PathUtil.checkDirc(path);
|
|
|
|
|
NetSDKLib.NET_TIME startTime = new NetSDKLib.NET_TIME();
|
|
|
|
|
@ -280,7 +384,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
|
|
|
|
|
endTime.setTime(end.getYear(), end.getMonthValue(), end.getDayOfMonth(), end.getHour(), end.getMinute(), end.getSecond());
|
|
|
|
|
|
|
|
|
|
NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE download_by_data_type = new NetSDKLib.NET_IN_DOWNLOAD_BY_DATA_TYPE();
|
|
|
|
|
download_by_data_type.nChannelID = 0;
|
|
|
|
|
download_by_data_type.nChannelID = camera.getChannel();
|
|
|
|
|
download_by_data_type.stStartTime = startTime;
|
|
|
|
|
download_by_data_type.stStopTime = endTime;
|
|
|
|
|
download_by_data_type.szSavedFileName = path;
|
|
|
|
|
@ -308,8 +412,13 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
|
|
|
|
|
* @param cameraId 球机ID,来获取登录句柄
|
|
|
|
|
*/
|
|
|
|
|
public void ptz(Integer ptzId, String name, Integer cameraId) {
|
|
|
|
|
Camera camera = CameraConnMap.cameras.get(cameraId);
|
|
|
|
|
if(camera == null){
|
|
|
|
|
log.error("camera is null,cameraId:{}",cameraId);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
int dwzCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_SET_CONTROL;
|
|
|
|
|
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwzCommand, 0, ptzId, 0, 0, ToolKits.GetGBKStringToPointer(name));
|
|
|
|
|
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), channel(camera.getChannel()), dwzCommand, 0, ptzId, 0, 0, ToolKits.GetGBKStringToPointer(name));
|
|
|
|
|
if (!ok) {
|
|
|
|
|
log.error("ptz error :{},cameraId:{}", ToolKits.getErrorCodePrint(),cameraId);
|
|
|
|
|
}
|
|
|
|
|
@ -323,9 +432,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
|
|
|
|
|
* @param cameraId
|
|
|
|
|
*/
|
|
|
|
|
public void toPtz(Integer ptzId, Integer cameraId) {
|
|
|
|
|
Camera camera = CameraConnMap.cameras.get(cameraId);
|
|
|
|
|
if(camera == null){
|
|
|
|
|
log.error("camera is null,cameraId:{}",cameraId);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
log.info("to ptz,ptzId:{},cameraId:{}",ptzId,cameraId);
|
|
|
|
|
int dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_MOVE_CONTROL;
|
|
|
|
|
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand, 0, ptzId, 0, 0, null);
|
|
|
|
|
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), channel(camera.getChannel()), dwPTZCommand, 0, ptzId, 0, 0, null);
|
|
|
|
|
if (!ok) {
|
|
|
|
|
log.error("toPtz error, cameraId:{},ptzId:{},errorCode:{}", cameraId, ptzId,ToolKits.getErrorCodePrint());
|
|
|
|
|
}
|
|
|
|
|
@ -337,6 +451,11 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
|
|
|
|
|
* @param cameraId
|
|
|
|
|
*/
|
|
|
|
|
public void toPtzSlow(Integer cameraId,Integer x) {
|
|
|
|
|
Camera camera = CameraConnMap.cameras.get(cameraId);
|
|
|
|
|
if(camera == null){
|
|
|
|
|
log.error("camera is null,cameraId:{}",cameraId);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
int dwPTZCommand = NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_MOVE_ABSOLUTELY;
|
|
|
|
|
NetSDKLib.PTZ_CONTROL_ABSOLUTELY absolutely = new NetSDKLib.PTZ_CONTROL_ABSOLUTELY();
|
|
|
|
|
|
|
|
|
|
@ -346,7 +465,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
|
|
|
|
|
absolutely.stuSpeed.fPositionY = 0.2f;
|
|
|
|
|
absolutely.write();
|
|
|
|
|
//absolutely.stuSpeed.fZoom = 0.5f;
|
|
|
|
|
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand,
|
|
|
|
|
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), channel(camera.getChannel()), dwPTZCommand,
|
|
|
|
|
0, 0, 0, 0, absolutely.getPointer());
|
|
|
|
|
if (!ok) {
|
|
|
|
|
|
|
|
|
|
@ -367,6 +486,72 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
|
|
|
|
|
return JoywareLoginModuleImpl.netsdk.CLIENT_SetupDeviceTime(CameraConnMap.getConnId(cameraId), netTime);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 诊断用:扫描设备所有通道,只发"停止"指令(无副作用)+查询云台位置,找出真正能控制的通道
|
|
|
|
|
* 结果直接打日志:channelScan,cameraId:...,configuredChannel:...,ch=x,stop=...,location=...
|
|
|
|
|
* 注意:这里用的是原始通道号,不做减一
|
|
|
|
|
*/
|
|
|
|
|
public void channelScan(Integer cameraId) {
|
|
|
|
|
NetSDKLib.LLong loginId = CameraConnMap.getConnId(cameraId);
|
|
|
|
|
if (loginId == null) {
|
|
|
|
|
log.error("channelScan,not login,cameraId:{}", cameraId);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Camera camera = CameraConnMap.cameras.get(cameraId);
|
|
|
|
|
Integer chanNum = CameraConnMap.chanNumMap.get(cameraId);
|
|
|
|
|
int max = (chanNum == null || chanNum <= 0) ? 32 : chanNum;
|
|
|
|
|
StringBuilder sb = new StringBuilder("\n");
|
|
|
|
|
for (int ch = 0; ch < max; ch++) {
|
|
|
|
|
boolean stopOk = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(loginId, ch,
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL, 0, 0, 0, 1);
|
|
|
|
|
int stopErr = JoywareLoginModuleImpl.netsdk.CLIENT_GetLastError();
|
|
|
|
|
|
|
|
|
|
NetSDKLib.NET_PTZ_LOCATION_INFO location = new NetSDKLib.NET_PTZ_LOCATION_INFO();
|
|
|
|
|
location.nChannelID = ch;
|
|
|
|
|
location.write();
|
|
|
|
|
IntByReference retLen = new IntByReference();
|
|
|
|
|
boolean locationOk = JoywareLoginModuleImpl.netsdk.CLIENT_QueryDevState(loginId,
|
|
|
|
|
NetSDKLib.NET_DEVSTATE_PTZ_LOCATION, location.getPointer(), location.size(), retLen, 1000);
|
|
|
|
|
int locationErr = JoywareLoginModuleImpl.netsdk.CLIENT_GetLastError();
|
|
|
|
|
location.read();
|
|
|
|
|
|
|
|
|
|
sb.append("ch=").append(ch)
|
|
|
|
|
.append(",stop=").append(stopOk).append("(err:").append(stopErr).append(")")
|
|
|
|
|
.append(",location=").append(locationOk).append("(err:").append(locationErr).append(")")
|
|
|
|
|
.append(",pan=").append(location.nPTZPan)
|
|
|
|
|
.append(",tilt=").append(location.nPTZTilt)
|
|
|
|
|
.append("\n");
|
|
|
|
|
}
|
|
|
|
|
log.warn("channelScan,cameraId:{},configuredChannel:{},ip:{},loginId:{},chanNum:{} {}",
|
|
|
|
|
cameraId, camera == null ? null : camera.getChannel(),
|
|
|
|
|
camera == null ? null : camera.getIp(), loginId, chanNum, sb);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 诊断用:指定通道试转一次(向上一下再停止),验证该通道到底能不能控云台,结果看日志 ptzTry
|
|
|
|
|
* 注意:这里用的是原始通道号,不做减一,传几就是几
|
|
|
|
|
*/
|
|
|
|
|
public void ptzTry(Integer cameraId, int channel) {
|
|
|
|
|
NetSDKLib.LLong loginId = CameraConnMap.getConnId(cameraId);
|
|
|
|
|
if (loginId == null) {
|
|
|
|
|
log.error("ptzTry,not login,cameraId:{}", cameraId);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
boolean start = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(loginId, channel,
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL, 0, 1, 0, 0);
|
|
|
|
|
int startErr = JoywareLoginModuleImpl.netsdk.CLIENT_GetLastError();
|
|
|
|
|
try {
|
|
|
|
|
Thread.sleep(500);
|
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
|
Thread.currentThread().interrupt();
|
|
|
|
|
}
|
|
|
|
|
boolean stop = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(loginId, channel,
|
|
|
|
|
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL, 0, 0, 0, 1);
|
|
|
|
|
int stopErr = JoywareLoginModuleImpl.netsdk.CLIENT_GetLastError();
|
|
|
|
|
log.warn("ptzTry,cameraId:{},channel:{},loginId:{},start:{}(err:{}),stop:{}(err:{})",
|
|
|
|
|
cameraId, channel, loginId, start, startErr, stop, stopErr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 旋转360度
|
|
|
|
|
* @param cameraId
|
|
|
|
|
|