From 9059935995c07b5b34e16cec116db288bcac988b Mon Sep 17 00:00:00 2001 From: fajiao <1519100073@qq.com> Date: Tue, 18 Oct 2022 15:25:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E8=AE=A1=E7=AE=97=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cis.Application/Core/Algo/MarkSearcherBase.cs | 2 +- .../Core/Center/CameraDataCenter.cs | 49 +++++++++++++++++-- .../Core/Service/MarkSearchService.cs | 23 ++++++++- 3 files changed, 67 insertions(+), 7 deletions(-) diff --git a/Cis.Application/Core/Algo/MarkSearcherBase.cs b/Cis.Application/Core/Algo/MarkSearcherBase.cs index 153b722..1ae6d5c 100644 --- a/Cis.Application/Core/Algo/MarkSearcherBase.cs +++ b/Cis.Application/Core/Algo/MarkSearcherBase.cs @@ -16,7 +16,7 @@ public abstract class MarkSearcherBase /// /// _markLabelInfoList 锁对象,写锁 /// - private static readonly object mliListLock = new(); + private static object mliListLock { get; } = new(); /// /// 需要计算的 markLabelInfo 列表 diff --git a/Cis.Application/Core/Center/CameraDataCenter.cs b/Cis.Application/Core/Center/CameraDataCenter.cs index 0f47010..5169d0f 100644 --- a/Cis.Application/Core/Center/CameraDataCenter.cs +++ b/Cis.Application/Core/Center/CameraDataCenter.cs @@ -35,7 +35,7 @@ public class CameraDataCenter /// /// _markSearcherDict 锁对象,写锁 /// - private static readonly ReaderWriterLockSlim msDictLock = new(); + private static ReaderWriterLockSlim msDictLock { get; } = new(); /// /// (cbCameraId, MarkSearcherBase) @@ -224,19 +224,58 @@ public class CameraDataCenter return markSearcher.AddMarkLabelCalcInfo(markLabelCalcInfo); } - public bool DeleteCameraMarkLabel(long cameraId, long marklabelId) + public bool DeleteCameraMarkLabel(long cameraId, long markLabelId) { if (!_markSearcherDict.ExistsKey(cameraId)) return false; MarkSearcherBase markSearcher = _markSearcherDict[cameraId]; - return markSearcher.DeleteMarkLabelCalcInfo(marklabelId); + return markSearcher.DeleteMarkLabelCalcInfo(markLabelId); } - public List GetMarkLabelCalcResults(long cameraId) + public List GetMarkLabelCalcResultList(long cameraId) { - return null; } + public async Task ActiveCameraAsync(long cameraId) + { + return await Task.Run(() => + { + return ActiveCamera(cameraId); + }); + } + + public async Task DeActiveCameraAsync(long cameraId) + { + return await Task.Run(() => + { + return DeActiveCamera(cameraId); + }); + } + + public async Task AddCameraMarkLabelAsync(long cameraId, long markLabelId) + { + return await Task.Run(() => + { + return AddCameraMarkLabel(cameraId, markLabelId); + }); + } + + public async Task DeleteCameraMarkLabelAsync(long cameraId, long markLabelId) + { + return await Task.Run(() => + { + return DeleteCameraMarkLabel(cameraId, markLabelId); + }); + } + + public async Task> GetMarkLabelCalcResultListAsync(long cameraId) + { + return await Task.Run(() => + { + return GetMarkLabelCalcResultList(cameraId); + }); + } + #endregion external call } \ No newline at end of file diff --git a/Cis.Application/Core/Service/MarkSearchService.cs b/Cis.Application/Core/Service/MarkSearchService.cs index 0432a26..ec6fd1c 100644 --- a/Cis.Application/Core/Service/MarkSearchService.cs +++ b/Cis.Application/Core/Service/MarkSearchService.cs @@ -16,7 +16,28 @@ public class MarkSearchService : IDynamicApiController, ITransient _cameraDataCenter = cameraDataCenter; } - public void ActivateCamera() + public async Task ActivateCamera(long cameraId) { + return await _cameraDataCenter.ActiveCameraAsync(cameraId); + } + + public async Task DeActiveCamera(long cameraId) + { + return await _cameraDataCenter.DeActiveCameraAsync(cameraId); + } + + public async Task AddCameraMarkLabel(long cameraId, long markLabelId) + { + return await _cameraDataCenter.AddCameraMarkLabelAsync(cameraId, markLabelId); + } + + public async Task DeleteCameraMarkLabel(long cameraId, long markLabelId) + { + return await _cameraDataCenter.DeleteCameraMarkLabelAsync(cameraId, markLabelId); + } + + public async Task> GetMarkLabelCalcResultList(long cameraId) + { + return await _cameraDataCenter.GetMarkLabelCalcResultListAsync(cameraId); } } \ No newline at end of file