151 lines
5.3 KiB
C#
151 lines
5.3 KiB
C#
![]() |
using Microsoft.AspNetCore.Mvc;
|
|||
|
using System;
|
|||
|
using System.Text;
|
|||
|
using System.Text.RegularExpressions;
|
|||
|
using VideoSurveillanceAdapter;
|
|||
|
using Yunda.ISAS.DataMonitoringServer.DataAnalysis;
|
|||
|
using Yunda.ISAS.DataMonitoringServer.DataCenter;
|
|||
|
using YunDa.ISAS.DataTransferObject;
|
|||
|
using YunDa.ISAS.DataTransferObject.EquipmentLiveData;
|
|||
|
using YunDa.ISAS.DataTransferObject.VideoSurveillance.VideoDevDto;
|
|||
|
|
|||
|
namespace Yunda.ISAS.DataMonitoringServer.WebApi.Controllers
|
|||
|
{
|
|||
|
[Route("isas/api/dataMonitoringService/presetPoint/[action]")]
|
|||
|
public class PresetPointController
|
|||
|
{
|
|||
|
|
|||
|
private readonly CameraDataCenter _cameraDataCenter;
|
|||
|
public PresetPointController(/*CameraDataCenter cameraDataCenter*/)
|
|||
|
{
|
|||
|
_cameraDataCenter = WebApiServer._cameraDataCenter;
|
|||
|
}
|
|||
|
|
|||
|
public string Index()
|
|||
|
{
|
|||
|
return "Hello DataMonitoringService!";
|
|||
|
}
|
|||
|
[HttpPost]
|
|||
|
public RequestEasyResult PresetGoto([FromBody] VideoDevOutput input, [FromQuery] int presetNo, int channelNo)
|
|||
|
{
|
|||
|
RequestEasyResult requestEasyResult = new RequestEasyResult();
|
|||
|
try
|
|||
|
{
|
|||
|
var videoPlayer = GetVideoPlayer(input);
|
|||
|
if (videoPlayer != null)
|
|||
|
{
|
|||
|
var res = videoPlayer.GotoPreset(presetNo, channelNo);
|
|||
|
|
|||
|
if (res)
|
|||
|
{
|
|||
|
requestEasyResult.Flag = res;
|
|||
|
requestEasyResult.Message = "预置位调用成功";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
requestEasyResult.Flag = res;
|
|||
|
requestEasyResult.Message = "预置位调用失败";
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
requestEasyResult.Message = $"{videoPlayer.CameraConfigure.Name}登陆失败";
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
requestEasyResult.Message = ex.Message;
|
|||
|
MonitoringEventBus.LogHandler(ex.Message, "异常信息");
|
|||
|
}
|
|||
|
return requestEasyResult;
|
|||
|
|
|||
|
}
|
|||
|
[HttpPost]
|
|||
|
public RequestEasyResult PresetSet([FromBody] VideoDevOutput input, [FromQuery] int presetNo, int channelNo, string presetName)
|
|||
|
{
|
|||
|
RequestEasyResult requestEasyResult = new RequestEasyResult();
|
|||
|
try
|
|||
|
{
|
|||
|
var videoPlayer = GetVideoPlayer(input);
|
|||
|
if (videoPlayer != null)
|
|||
|
{
|
|||
|
byte[] byName = Encoding.GetEncoding("GB2312").GetBytes(presetName);
|
|||
|
if (byName.Length > 32)
|
|||
|
{
|
|||
|
requestEasyResult.Flag = false;
|
|||
|
requestEasyResult.Message = "名字太长";
|
|||
|
|
|||
|
}
|
|||
|
var reg = "[ \\[ \\] \\^ \\-_ *×――(^)$% ~!/@#$…&%¥—+=<>《》|!!???::•`·、。,;,.;\"‘’“”-]";
|
|||
|
var match = Regex.Match(presetName, reg);
|
|||
|
if (match.Success)
|
|||
|
{
|
|||
|
requestEasyResult.Flag = false;
|
|||
|
requestEasyResult.Message = "名字中包含特殊字符";
|
|||
|
}
|
|||
|
var res = videoPlayer.SetPreset(presetNo, channelNo, presetName);
|
|||
|
if (res)
|
|||
|
{
|
|||
|
requestEasyResult.Flag = res;
|
|||
|
requestEasyResult.Message = "预置位设置成功";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
requestEasyResult.Flag = res;
|
|||
|
requestEasyResult.Message = "预置位设置失败";
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
requestEasyResult.Message = $"{videoPlayer.CameraConfigure.Name}登陆失败";
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
requestEasyResult.Message = ex.Message;
|
|||
|
MonitoringEventBus.LogHandler(ex.Message, "异常信息");
|
|||
|
}
|
|||
|
|
|||
|
return requestEasyResult;
|
|||
|
|
|||
|
}
|
|||
|
private VideoPlayer GetVideoPlayer(VideoDevOutput input)
|
|||
|
{
|
|||
|
VideoPlayer videoPlayer = new VideoPlayer();
|
|||
|
videoPlayer.CameraConfigure = new CameraConfigure
|
|||
|
{
|
|||
|
ID = input.Id.ToString(),
|
|||
|
Name = input.DevName,
|
|||
|
Ip = input.IP,
|
|||
|
Port = (int)input.Port,
|
|||
|
UserName = input.DevUserName,
|
|||
|
Password = input.DevPassword,
|
|||
|
IsRecordVideo = false,
|
|||
|
CameraBrand = CameraBrand.Hik,
|
|||
|
};
|
|||
|
var player = _cameraDataCenter.FindCamera(videoPlayer);
|
|||
|
if (player == null)
|
|||
|
{
|
|||
|
var isloginSuccess = videoPlayer.LoginCamera();
|
|||
|
if (isloginSuccess)
|
|||
|
{
|
|||
|
_cameraDataCenter.CameraCollection.Add(videoPlayer);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
MonitoringEventBus.LogHandler($"{videoPlayer.CameraConfigure.Name}登陆失败", "异常信息");
|
|||
|
return null;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
videoPlayer = player;
|
|||
|
}
|
|||
|
return videoPlayer;
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
}
|
|||
|
}
|