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>
|
||
}
|
||
}
|