package com.fzzy.igds.camera.impl;
|
|
import com.fzzy.igds.camera.AbstractApiCameraService;
|
import com.fzzy.igds.camera.data.ApiCameraData;
|
import com.fzzy.igds.camera.data.ApiCameraResp;
|
import com.fzzy.igds.constant.CameraPtzType;
|
import com.ld.onvif.OnvifService;
|
import com.ld.onvif.data.OnvifResult;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
|
/**
|
* ONVIF播放接口实现,只负责实现PTZ接口
|
*/
|
@Component
|
public class ApiPtzOnvifService extends AbstractApiCameraService {
|
|
@Resource
|
private OnvifService onvifService;
|
|
@Override
|
public String getType() {
|
return CameraPtzType.PTZ_TYPE_FZZY_ONVIF.getCode();
|
}
|
|
@Override
|
public ApiCameraResp ptzMedia(ApiCameraData apiData) {
|
|
if (StringUtils.isEmpty(apiData.getIp())
|
|| null == apiData.getWebPort()
|
|| StringUtils.isEmpty(apiData.getLoginId())
|
|| StringUtils.isEmpty(apiData.getPwd())) {
|
|
return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "参数不全,不支持云台控制");
|
}
|
try {
|
OnvifResult result = onvifService.ptz(apiData.getIp(),
|
apiData.getWebPort(),
|
apiData.getLoginId(),
|
apiData.getPwd(),
|
apiData.getCommand(), 0.5);
|
|
String code = result.get("code") + "";
|
if ("0".equals(code) || "200".equals(code)) {
|
code = ApiCameraResp.CODE_SUCCESS;
|
}else {
|
code = ApiCameraResp.CODE_ERROR;
|
}
|
return new ApiCameraResp(code, (String) result.get("msg"));
|
} catch (Exception e) {
|
return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "后端执行异常" + e.getMessage());
|
}
|
}
|
|
@Override
|
public ApiCameraResp ptzPreset(ApiCameraData apiData) {
|
try {
|
if (StringUtils.isEmpty(apiData.getIp()) || null == apiData.getWebPort()
|
|| StringUtils.isEmpty(apiData.getLoginId())
|
|| StringUtils.isEmpty(apiData.getPwd())) {
|
return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "没有获取到当前摄像机信息,不支持云台控制");
|
}
|
|
OnvifResult result = onvifService.preset(apiData.getIp(), apiData.getWebPort(),
|
apiData.getLoginId(), apiData.getPwd(), apiData.getPreset());
|
|
|
String code = result.get("code") + "";
|
if ("0".equals(code) || "200".equals(code)) {
|
code = ApiCameraResp.CODE_SUCCESS;
|
}else {
|
code = ApiCameraResp.CODE_ERROR;
|
}
|
|
return new ApiCameraResp(code, (String) result.get("msg"));
|
|
} catch (Exception e) {
|
return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "后端执行异常" + e.getMessage());
|
}
|
}
|
}
|