|
|
@@ -4,8 +4,7 @@ using MvvmScaffoldFrame48.DLL.CameraTools;
|
|
|
using MvvmScaffoldFrame48.DLL.ConfigTools;
|
|
|
using MvvmScaffoldFrame48.Model.ResultModel;
|
|
|
using MvvmScaffoldFrame48.Model.StorageModel.ImageAlgorithm.ShuLI;
|
|
|
-using MvvmScaffoldFrame48.Model.StorageModel.ProcessingConfig;
|
|
|
-using MvvmScaffoldFrame48.Model.StorageModel.SystemConfig;
|
|
|
+using MvvmScaffoldFrame48.Model.StorageModel.Configs;
|
|
|
using System;
|
|
|
using System.Collections.Concurrent;
|
|
|
using System.Collections.Generic;
|
|
|
@@ -26,10 +25,9 @@ namespace MvvmScaffoldFrame48.DLL.ThreadManager
|
|
|
private readonly CameraGroup[] _cameraGroups = new CameraGroup[1];
|
|
|
// 通信线程
|
|
|
private readonly CommunicationThread _communicationThread;
|
|
|
- // 相机配置参数
|
|
|
- private List<CameraProcessConfigModel> _cameraConfigurations;
|
|
|
|
|
|
private static ThreadManager _instance = new ThreadManager();
|
|
|
+ private ConfigService configService = ConfigService.Instance;
|
|
|
#endregion
|
|
|
|
|
|
#region 构造函数
|
|
|
@@ -39,7 +37,7 @@ namespace MvvmScaffoldFrame48.DLL.ThreadManager
|
|
|
private ThreadManager()
|
|
|
{
|
|
|
// 加载相机配置
|
|
|
- LoadCameraConfigurations();
|
|
|
+ configService.LoadAsync();
|
|
|
|
|
|
// 获取相机列表
|
|
|
HikVision.GetCameraList(out List<IDeviceInfo> cameraInfoList);
|
|
|
@@ -48,7 +46,7 @@ namespace MvvmScaffoldFrame48.DLL.ThreadManager
|
|
|
for (int i = 0; i < _cameraGroups.Count(); i++)
|
|
|
{
|
|
|
// 加载对应相机位的配置参数
|
|
|
- var CheckConfig = _cameraConfigurations.Where(c => c.CameraId == i);
|
|
|
+ var CheckConfig = configService.CamerasProcessConfig.Where(c => c.CameraId == i);
|
|
|
if(CheckConfig.Count() == 0)
|
|
|
{
|
|
|
_cameraGroups[i] = null;
|
|
|
@@ -104,7 +102,7 @@ namespace MvvmScaffoldFrame48.DLL.ThreadManager
|
|
|
return;
|
|
|
}
|
|
|
// 更新配置
|
|
|
- var config = _cameraConfigurations.FirstOrDefault(c => c.CameraId == cameraId);
|
|
|
+ var config = configService.CamerasProcessConfig.FirstOrDefault(c => c.CameraId == cameraId);
|
|
|
if (config != null)
|
|
|
{
|
|
|
config.ProcessingAlgorithmName = algorithmName;
|
|
|
@@ -197,39 +195,6 @@ namespace MvvmScaffoldFrame48.DLL.ThreadManager
|
|
|
return cameraId >= 0 && cameraId < _cameraGroups.Count() && _cameraGroups[cameraId].IsRunning;
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 为每个相机创建配置
|
|
|
- /// </summary>
|
|
|
- private CameraProcessConfigModel CreateCameraConfiguration(int cameraId,string ProcessingAlgorithm)
|
|
|
- {
|
|
|
- var config = new CameraProcessConfigModel
|
|
|
- {
|
|
|
- CameraId = cameraId,
|
|
|
- CameraSN = "K53474176",
|
|
|
- IsEnabled = true
|
|
|
- };
|
|
|
-
|
|
|
- switch (ProcessingAlgorithm)
|
|
|
- {
|
|
|
- case "ProcessingAlgorithm":
|
|
|
- config.ProcessingAlgorithmName = "ProcessingAlgorithm";
|
|
|
- config.AlgorithmParameters = XMLReadWrite.SerializeToString(new ProcessingAlgorithmConfigModel()
|
|
|
- {
|
|
|
- Threshold = 0.5,
|
|
|
- MinArea = 100,
|
|
|
- EnableFiltering = true,
|
|
|
- FilterType = "FilterType"
|
|
|
- });
|
|
|
- break;
|
|
|
- case "ProcessingAlgorithm_CCDShuLi":
|
|
|
- config.ProcessingAlgorithmName = "ProcessingAlgorithm_CCDShuLi";
|
|
|
- config.AlgorithmParameters = XMLReadWrite.SerializeToString(new ShuLiConfigClassModel());
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- return config;
|
|
|
- }
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 动态更新相机算法参数
|
|
|
/// </summary>
|
|
|
@@ -248,39 +213,6 @@ namespace MvvmScaffoldFrame48.DLL.ThreadManager
|
|
|
#endregion
|
|
|
|
|
|
#region 私有方法
|
|
|
- /// <summary>
|
|
|
- /// 加载相机配置
|
|
|
- /// </summary>
|
|
|
- private void LoadCameraConfigurations()
|
|
|
- {
|
|
|
- // 这里可以从XML文件、数据库或其他配置源加载配置
|
|
|
- if (!Directory.Exists(".\\Config\\"))
|
|
|
- {
|
|
|
- Directory.CreateDirectory(".\\Config\\");
|
|
|
- }
|
|
|
- if (File.Exists(".\\Config\\CameraConfig.xml"))
|
|
|
- {
|
|
|
- _cameraConfigurations = XMLReadWrite.DeserializeFromXml<List<CameraProcessConfigModel>>(".\\Config\\CameraConfig.xml");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //测试用代码,此处应为创建空配置,后续由图形界面控制新建配置
|
|
|
- _cameraConfigurations = new List<CameraProcessConfigModel>()
|
|
|
- {
|
|
|
- CreateCameraConfiguration(0, "ProcessingAlgorithm_CCDShuLi"),
|
|
|
- };
|
|
|
- }
|
|
|
- //SaveCameraConfigurations();
|
|
|
- }
|
|
|
-
|
|
|
- private void SaveCameraConfigurations()
|
|
|
- {
|
|
|
- if (!Directory.Exists(".\\Config\\"))
|
|
|
- {
|
|
|
- Directory.CreateDirectory(".\\Config\\");
|
|
|
- }
|
|
|
- XMLReadWrite.SerializeToXml(_cameraConfigurations, ".\\Config\\CameraConfig.xml");
|
|
|
- }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 处理相机处理结果
|