| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- using MvvmScaffoldFrame48.Model.StorageModel.Configs;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace MvvmScaffoldFrame48.DLL.ConfigTools
- {
- public class ConfigService
- {
- #region 属性
- /// <summary>
- /// 单例
- /// </summary>
- private static ConfigService instance = new ConfigService();
- public static ConfigService Instance => instance;
- /// <summary>
- /// 相机进程参数
- /// </summary>
- private List<CameraProcessConfigModel> _camerasConfig;
- public List<CameraProcessConfigModel> CamerasProcessConfig => _camerasConfig;
- #endregion
- #region 公共事件
- /// <summary>
- /// 加载参数
- /// </summary>
- /// <returns></returns>
- public bool LoadAsync()
- {
- bool result = false;
- if (!Directory.Exists(".\\Config\\"))
- {
- Directory.CreateDirectory(".\\Config\\");
- return result;
- }
- GetCameraProcessConfig();
- LoadConfigEvent?.Invoke(this, EventArgs.Empty);
- result = true;
- return result;
- }
- /// <summary>
- /// 保存参数
- /// </summary>
- public void SaveAsync()
- {
- if (!Directory.Exists(".\\Config\\"))
- {
- Directory.CreateDirectory(".\\Config\\");
- }
- SaveCameraProcessConfig();
- }
- #endregion
- #region 回调事件
- /// <summary>
- /// 加载参数的回调方法
- /// </summary>
- public event EventHandler LoadConfigEvent;
- /// <summary>
- /// 保存参数的回调方法
- /// </summary>
- public event EventHandler SaveConfigEvent;
- #endregion
- #region 私有事件
- private ConfigService() { }
- /// <summary>
- /// 读取相机线程参数
- /// </summary>
- private void GetCameraProcessConfig()
- {
- if (File.Exists(".\\Config\\CameraProcessConfig.xml"))
- {
- _camerasConfig = XMLReadWrite.DeserializeFromXml<List<CameraProcessConfigModel>>(".\\Config\\CameraProcessConfig.xml");
- }
- else
- {
- //测试用代码,此处应为创建空配置,后续由图形界面控制新建配置
- _camerasConfig = new List<CameraProcessConfigModel>()
- {
- CreateCameraConfiguration(0, "ProcessingAlgorithm_CCDShuLi"),
- };
- }
- }
- /// <summary>
- /// 保存相机线程参数
- /// </summary>
- private void SaveCameraProcessConfig()
- {
- XMLReadWrite.SerializeToXml(_camerasConfig, ".\\Config\\CameraProcessConfig.xml");
- }
- /// <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;
- }
- #endregion
- }
- }
|