using EC.App.Core; using EC.App.ThatBLL.Onvif.Impl; using Furion.DataValidation; using Microsoft.AspNetCore.Mvc; using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; namespace OnvifWebServer.Controllers.Onvif { /// /// Onvif 移动参数控制 /// [Route("onvif/[controller]")] [ApiDescriptionSettings("Onvif")] public class PTZController : ApiController { private readonly IPTZBLL _ptzBLL; /// /// /// /// public PTZController(IPTZBLL ptzBLL) { this._ptzBLL = ptzBLL; } #region Operate /// /// 是否连接 /// /// /// [HttpGet] public bool IsConnected( [Required][DataValidation(ValidationTypes.IPv4)] string ip) { bool ret = _ptzBLL.IsConnected(ip); return ret; } #endregion Operate #region Move /// /// 绝对移动 /// /// IP地址 /// 水平方向移动绝对点 /// 垂直方向移动绝对点 /// 变焦绝对点 /// [HttpGet] public async Task AbsoluteMove( [DataValidation(ValidationTypes.IPv4)] string ip, [Required] float pan, [Required] float tilt, [Required] float zoom) { bool ret = await _ptzBLL.AbsoluteMove(ip, pan, tilt, zoom); return ret; } /// /// 绝对移动 /// /// IP地址 /// 水平方向移动绝对点 /// 垂直方向移动绝对点 /// 变焦绝对点 [HttpGet] public async Task RelativeMove( [DataValidation(ValidationTypes.IPv4)] string ip, [Required] float pan, [Required] float tilt, [Required] float zoom) { bool ret = await _ptzBLL.RelativeMove(ip, pan, tilt, zoom); return ret; } /// /// 持续移动 /// /// IP地址 /// 水平方向移动绝对点 /// 垂直方向移动绝对点 /// 变焦绝对点 [HttpGet] public async Task ContinuousMove( [DataValidation(ValidationTypes.IPv4)] string ip, [Required] float pan, [Required] float tilt, [Required] float zoom) { bool ret = await _ptzBLL.ContinuousMove(ip, pan, tilt, zoom); return ret; } /// /// 停止移动 /// /// IP地址 [HttpGet] public async Task StopMove( [Required][DataValidation(ValidationTypes.IPv4)] string ip) { bool ret = await _ptzBLL.StopMove(ip); return ret; } #endregion Move } }