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()); } } }