You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
4.5 KiB
136 lines
4.5 KiB
using Application.Models;
|
|
using IoTNode.DeviceServices.Onvif;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Swashbuckle.AspNetCore.Annotations;
|
|
using System;
|
|
|
|
namespace IoTNode.Controllers
|
|
{
|
|
[SwaggerTag("摄像头")]
|
|
public class OnvifController : BaseDeviceController
|
|
{
|
|
private readonly OnvifService _deviceService;
|
|
|
|
public OnvifController(IServiceProvider applicationServices, OnvifService deviceService) : base(applicationServices)
|
|
{
|
|
this._deviceService = deviceService;
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("主码流截屏")]
|
|
public ApiResponse MainScreenShot([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.MainScreenShot(number);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("子码流截屏")]
|
|
public ApiResponse SubScreenShot([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.SubScreenShot(number);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("上")]
|
|
public ApiResponse Up([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.Up(number, 0.5f);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("下")]
|
|
public ApiResponse Down([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.Down(number, 0.5f);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("左")]
|
|
public ApiResponse Left([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.Left(number, 0.5f);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("右")]
|
|
public ApiResponse Right([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.Right(number, 0.5f);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("大")]
|
|
public ApiResponse Zoomin([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.ZoomIn(number, 0.5f);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("小")]
|
|
public ApiResponse Zoomout([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.ZoomOut(number, 0.5f);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("停")]
|
|
public ApiResponse Stop([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.Stop(number);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("开始推流")]
|
|
public ApiResponse StartPush([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.SetPush(number, true);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("停止推流")]
|
|
public ApiResponse StopPush([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.SetPush(number, false);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("开始录制")]
|
|
public ApiResponse StartRecord([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.SetRecord(number, true);
|
|
});
|
|
}
|
|
|
|
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("停止录制")]
|
|
public ApiResponse StopRecord([SwaggerParameter("设备编号")]string number)
|
|
{
|
|
return this.AsyncAction(() =>
|
|
{
|
|
this._deviceService.SetRecord(number, false);
|
|
});
|
|
}
|
|
}
|
|
} |