(九)各个模块的配置参数的读取与写入
目前的执行逻辑:

入口文件开启主窗体
-->主窗体实例化时,加载完毕执行loaded事件
-->通过ioc拿到主区域,拿到登录模块(按需加载的)
-->执行登录的业务逻辑
-->登录完成后执行登录成功事件回调函数
-->加载主界面或者加载初始化界面(看硬件是否初始化完成)
-->初始化界面是依赖于配置模块的
-->所以先加载配置模块
-->配置模块有2个标注ExposedService需要注册到容器并实例化
-
SystemConfigManager 系统配置管理者:作用是整个系统所有配置参数的读写业务,为provider服务,provider再传递给各个模块
初始化:读文件
![image]()
-
SystemConfigProvider 系统配置提供者,作用是将系统配置参数传给不同的模块,用接口实现数据通讯
初始化:拿到配置参数
![image]()
-->加载初始化模块,有ExposedService标注的类
- HardwareLifetimeManager拿到系统配置管理者
-->初始化模块的页面加载
-->初始化硬件
-->导航到主界面
-->主模块依赖与菜单栏和图像模块
-->菜单栏和图像模块是先加载的
1. 配置接口编写
-
相机配置提供者
![image]()
-
探测器配置提供者
![image]()
share模块
-
软件配置提供者
![image]()
-
软件参数类
![image]()
-
share模块:位于软件硬件模块交接,可以直接引用
![image]()
-
系统配置类接口就是继承了这些所有的配置接口
![image]()
2. 系统配置实现
- 配置模块的引用添加
![image]()
- core层config写的是底层读写实现
- share层config写的是软件参数的封装以及参数的总提供者
config模块
- SystemConfigModel用于存放读到的文件数据
- SystemConfigManager用来做读写的操作
- SystemConfigProvider用来做通讯,比如读到的数据初始化到软硬件参数配置中
- 初始化模块中 HardwareLifetimeManager,在硬件加载时,用SystemConfigProvider拿到读到的数据
![image]()
jsonhelper中的修改
添加保存文件: File.WriteAllText(fileName, content);

3. 配置页面编写和逻辑实现

viewmodel层













浙公网安备 33010602011771号