From e5c23c26ef6f693c8f0b443d7cb426908708ee4a Mon Sep 17 00:00:00 2001 From: huangxianguo Date: Tue, 10 Sep 2024 19:44:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=B3=BB=E7=BB=9F=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=B8=8B=E5=8F=91=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataExporter/ConfigService.cs | 10 +- .../DataExporter/Model/SystemParamsDTO.cs | 16 +- .../DataExporter/SystemParamsService.cs | 242 +++++++----------- MasstransferExporter/Program.cs | 5 +- .../Mqtt/Client/MqttClient.cs | 3 +- 5 files changed, 114 insertions(+), 162 deletions(-) diff --git a/MasstransferExporter/DataExporter/ConfigService.cs b/MasstransferExporter/DataExporter/ConfigService.cs index 92b0438..4136a1c 100644 --- a/MasstransferExporter/DataExporter/ConfigService.cs +++ b/MasstransferExporter/DataExporter/ConfigService.cs @@ -35,12 +35,16 @@ public class ConfigService : Instant switch (type) { case "SYSTEM": - SystemParamsService.HandleSystemParamsIssuedEvent(data); + var systemParamsDto = JsonUtil.FromJson(data.Param.ToString()); + if (systemParamsDto != null) + { + SystemParamsService.HandleSystemParamsIssuedEvent(systemParamsDto); + } + break; case "FORMULA": { - var param = data.Param; - var formulaDto = JsonUtil.FromJson(param.ToString()); + var formulaDto = JsonUtil.FromJson(data.Param.ToString()); if (formulaDto != null) { formulaDto.Name = data.Name; diff --git a/MasstransferExporter/DataExporter/Model/SystemParamsDTO.cs b/MasstransferExporter/DataExporter/Model/SystemParamsDTO.cs index 900330d..c6677eb 100644 --- a/MasstransferExporter/DataExporter/Model/SystemParamsDTO.cs +++ b/MasstransferExporter/DataExporter/Model/SystemParamsDTO.cs @@ -5,19 +5,19 @@ /// public class SystemParamsDTO { - public CameraParams CameraParams { get; set; } + public CameraParams? CameraParams { get; set; } - public SystemParams SystemParams { get; set; } + public SystemParams? SystemParams { get; set; } - public LogParams LogParams { get; set; } + public LogParams? LogParams { get; set; } - public ScannerParams ScannerParams { get; set; } + public ScannerParams? ScannerParams { get; set; } - public CameraInternalParams WaferCameraInternalParams { get; set; } + public CameraInternalParams? WaferCameraInternalParams { get; set; } - public CameraInternalParams SubstrateCameraInternalParams { get; set; } + public CameraInternalParams? SubstrateCameraInternalParams { get; set; } - public MinioParams MinioParams { get; set; } + public MinioParams? MinioParams { get; set; } - public MqttParams MqttParams { get; set; } + public MqttParams? MqttParams { get; set; } } \ No newline at end of file diff --git a/MasstransferExporter/DataExporter/SystemParamsService.cs b/MasstransferExporter/DataExporter/SystemParamsService.cs index 7bdff9e..2cce4fd 100644 --- a/MasstransferExporter/DataExporter/SystemParamsService.cs +++ b/MasstransferExporter/DataExporter/SystemParamsService.cs @@ -1,5 +1,4 @@ using MasstransferCommon.Model.Constant; -using MasstransferCommon.Utils; using MasstransferCommunicate.Mqtt.Client; using MasstransferExporter.DataExporter.Model; using MasstransferInfrastructure.Database.Sqlite; @@ -19,175 +18,122 @@ public class SystemParamsService /// 处理下发的系统配置参数 /// /// - public static void HandleSystemParamsIssuedEvent(ConfigData data) + public static void HandleSystemParamsIssuedEvent(SystemParamsDTO dto) { - if (data.IsNullOrEmpty()) return; + if (dto.IsNullOrEmpty()) return; - var name = data.Name; - var param = data?.Param?.ToString(); - switch (name) + + if (dto?.CameraParams != null) { - case "相机配置": - var cameraParams = JsonUtil.FromJson(param); - if (cameraParams == null) break; - var cameraParamsFromDb = GetCameraParams(); - if (cameraParamsFromDb != null) - { - cameraParams.Id = cameraParamsFromDb.Id; - } + var cameraParams = dto.CameraParams; + var cameraParamsFromDb = GetCameraParams(); + if (cameraParamsFromDb != null) + { + cameraParams.Id = cameraParamsFromDb.Id; + } - Db.SaveOrUpdate(cameraParams); - break; - case "日志配置": - var logParams = JsonUtil.FromJson(param); - if (logParams == null) break; - var logParamsFromDb = GetLogParams(); - if (logParamsFromDb != null) - { - logParams.Id = logParamsFromDb.Id; - } - - Db.SaveOrUpdate(logParams); - break; - case "系统配置": - var systemParams = JsonUtil.FromJson(param); - if (systemParams == null) break; - var systemParamsFromDb = GetSystemParams(); - if (systemParamsFromDb != null) - { - systemParams.Id = systemParamsFromDb.Id; - } - - Db.SaveOrUpdate(systemParams); - break; - case "扫描器配置": - var scannerParams = JsonUtil.FromJson(param); - if (scannerParams == null) break; - var scannerParamsFromDb = GetScannerParams(); - if (scannerParamsFromDb != null) - { - scannerParams.Id = scannerParamsFromDb.Id; - } - - Db.SaveOrUpdate(scannerParams); - break; - case "MinIO配置": - var minioParams = JsonUtil.FromJson(param); - if (minioParams == null) break; - var minioParamsFromDb = GetMinioParams(); - if (minioParamsFromDb != null) - { - minioParams.Id = minioParamsFromDb.Id; - } - - Db.SaveOrUpdate(minioParams); - break; - case "MQTT配置": - var mqttParams = JsonUtil.FromJson(param); - if (mqttParams == null) break; - var mqttParamsFromDb = GetMqttConnectParams(); - if (mqttParamsFromDb != null) - { - mqttParams.Id = mqttParamsFromDb.Id; - } - - Db.SaveOrUpdate(mqttParams); - break; - case "基板拍照相机内参": - var waferCameraInternalParams = JsonUtil.FromJson(param); - if (waferCameraInternalParams == null) break; - var waferCameraInternalParamsFromDb = GetWaferParams(); - if (waferCameraInternalParamsFromDb != null) - { - waferCameraInternalParams.Id = waferCameraInternalParamsFromDb.Id; - } - - Db.SaveOrUpdate(waferCameraInternalParams); - break; - case "基板拍照相机外参": - var substrateCameraInternalParams = JsonUtil.FromJson(param); - if (substrateCameraInternalParams == null) break; - var substrateCameraInternalParamsFromDb = GetSubstrateParams(); - if (substrateCameraInternalParamsFromDb != null) - { - substrateCameraInternalParams.Id = substrateCameraInternalParamsFromDb.Id; - } - - Db.SaveOrUpdate(substrateCameraInternalParams); - break; + Db.SaveOrUpdate(cameraParams); } + + if (dto?.LogParams != null) + { + var logParams = dto.LogParams; + var logParamsFromDb = GetLogParams(); + if (logParamsFromDb != null) + { + logParams.Id = logParamsFromDb.Id; + } + + Db.SaveOrUpdate(logParams); + } + + if (dto?.MinioParams != null) + { + var minioParams = dto.MinioParams; + var minioParamsFromDb = GetMinioParams(); + if (minioParamsFromDb != null) + { + minioParams.Id = minioParamsFromDb.Id; + } + + Db.SaveOrUpdate(minioParams); + } + + if (dto?.MqttParams != null) + { + var mqttParams = dto.MqttParams; + var mqttParamsFromDb = GetMqttConnectParams(); + if (mqttParamsFromDb != null) + { + mqttParams.Id = mqttParamsFromDb.Id; + } + + Db.SaveOrUpdate(mqttParams); + } + + if (dto?.ScannerParams != null) + { + var scannerParams = dto.ScannerParams; + var scannerParamsFromDb = GetScannerParams(); + if (scannerParamsFromDb != null) + { + scannerParams.Id = scannerParamsFromDb.Id; + } + + Db.SaveOrUpdate(scannerParams); + } + + if (dto?.WaferCameraInternalParams != null) + { + var waferCameraInternalParams = dto.WaferCameraInternalParams; + var waferCameraInternalParamsFromDb = GetWaferParams(); + if (waferCameraInternalParamsFromDb != null) + { + waferCameraInternalParams.Id = waferCameraInternalParamsFromDb.Id; + } + + Db.SaveOrUpdate(waferCameraInternalParams); + } + + if (dto?.SubstrateCameraInternalParams == null) return; + + var substrateCameraInternalParams = dto.SubstrateCameraInternalParams; + var substrateCameraInternalParamsFromDb = GetSubstrateParams(); + if (substrateCameraInternalParamsFromDb != null) + { + substrateCameraInternalParams.Id = substrateCameraInternalParamsFromDb.Id; + } + + Db.SaveOrUpdate(substrateCameraInternalParams); } /// /// 系统参数上报 /// - public static async Task SystemParamsExporter() + public static async Task ExportSystemParams() { try { - var cameraParams = new ConfigData() + var dto = new SystemParamsDTO() { - Name = "相机配置", - Param = GetCameraParams(), - Type = "SYSTEM" + CameraParams = GetCameraParams(), + SubstrateCameraInternalParams = GetSubstrateParams(), + WaferCameraInternalParams = GetWaferParams(), + LogParams = GetLogParams(), + MinioParams = GetMinioParams(), + MqttParams = GetMqttConnectParams(), + ScannerParams = GetScannerParams(), + SystemParams = GetSystemParams(), }; - var substrateCameraInternalParams = new ConfigData() - { - Name = "基板拍照相机内参", - Param = GetSubstrateParams(), - Type = "SYSTEM" - }; - - var waferCameraInternalParams = new ConfigData() - { - Name = "芯片拍照相机内参", - Param = GetWaferParams(), - Type = "SYSTEM" - }; - var logParams = new ConfigData() - { - Name = "日志配置", - Param = GetLogParams(), - Type = "SYSTEM" - }; - - var systemParams = new ConfigData() + var systemParams = new ConfigData() { Name = "系统配置", - Param = GetSystemParams(), + Param = dto, Type = "SYSTEM" }; - var scannerParams = new ConfigData() - { - Name = "扫描器配置", - Param = GetScannerParams(), - Type = "SYSTEM" - }; - - var minioParams = new ConfigData() - { - Name = "MinIO配置", - Param = GetMinioParams(), - Type = "SYSTEM" - }; - - var mqttParams = new ConfigData() - { - Name = "MQTT配置", - Param = GetMqttConnectParams(), - Type = "SYSTEM" - }; - - await MessageQueueHelper.Publish(Topics.ReportConfigData, cameraParams); - await MessageQueueHelper.Publish(Topics.ReportConfigData, substrateCameraInternalParams); - await MessageQueueHelper.Publish(Topics.ReportConfigData, waferCameraInternalParams); - await MessageQueueHelper.Publish(Topics.ReportConfigData, logParams); await MessageQueueHelper.Publish(Topics.ReportConfigData, systemParams); - await MessageQueueHelper.Publish(Topics.ReportConfigData, scannerParams); - await MessageQueueHelper.Publish(Topics.ReportConfigData, minioParams); - await MessageQueueHelper.Publish(Topics.ReportConfigData, mqttParams); } catch (Exception e) { diff --git a/MasstransferExporter/Program.cs b/MasstransferExporter/Program.cs index b51ebfd..789edc5 100644 --- a/MasstransferExporter/Program.cs +++ b/MasstransferExporter/Program.cs @@ -2,6 +2,7 @@ using MasstransferCommon.Events; using MasstransferCommon.Scheduler; using MasstransferCommunicate.Mqtt.Client; +using MasstransferExporter.DataExporter; using MasstransferExporter.Init; using MasstransferExporter.StatExporter; using MasstransferInfrastructure.Database.Sqlite; @@ -38,8 +39,8 @@ class Program // 启动完成后,广播启动通知 EventBus.Publish(EventType.StartUp, true); - // DelayScheduler.Delay(async () => await SystemStatExporter.ExportSystemStat(), - // TimeSpan.FromSeconds(3)); + DelayScheduler.Delay(async () => await SystemParamsService.ExportSystemParams(), + TimeSpan.FromSeconds(3)); // 启动与主程序的通信 diff --git a/MasstransferInfrastructure/Mqtt/Client/MqttClient.cs b/MasstransferInfrastructure/Mqtt/Client/MqttClient.cs index cac79e4..df5a7c3 100644 --- a/MasstransferInfrastructure/Mqtt/Client/MqttClient.cs +++ b/MasstransferInfrastructure/Mqtt/Client/MqttClient.cs @@ -2,6 +2,7 @@ using MasstransferCommon.Utils; using MasstransferCommunicate.Mqtt.Model; using MasstransferInfrastructure.Mqtt.Model; +using Masuit.Tools; using MQTTnet; using MQTTnet.Client; using MQTTnet.Protocol; @@ -106,7 +107,7 @@ internal class MqttClient var payload = JsonUtil.ToJson(message); - Console.WriteLine(payload); + Console.WriteLine(message.ToJsonString()); var result = await _client.PublishAsync(new MqttApplicationMessageBuilder() .WithTopic(topic)