Compare commits
No commits in common. "e5c23c26ef6f693c8f0b443d7cb426908708ee4a" and "6f99477de454482ee88172f217ad647c39dcf24f" have entirely different histories.
e5c23c26ef
...
6f99477de4
|
@ -1,21 +0,0 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net7.0</TargetFrameworks>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="JetBrains.Annotations" Version="2024.2.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.5.2" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.5.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\MasstransferCommon\MasstransferCommon.csproj" />
|
||||
<ProjectReference Include="..\MasstransferExporter\MasstransferExporter.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -1,21 +0,0 @@
|
|||
using System.IO;
|
||||
using JetBrains.Annotations;
|
||||
using MasstransferCommon.Utils;
|
||||
using MasstransferExporter.DataExporter.Model;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
namespace MasstransferCommon.Tests.Utils;
|
||||
|
||||
[TestClass]
|
||||
[TestSubject(typeof(JsonUtil))]
|
||||
public class JsonUtilTest
|
||||
{
|
||||
[TestMethod]
|
||||
public void Test()
|
||||
{
|
||||
var json = File.ReadAllText("C:\\Users\\huangxianguo\\Desktop\\formula.json");
|
||||
|
||||
var dto = JsonUtil.FromJson<FormulaDTO>(json);
|
||||
Assert.IsNotNull(dto);
|
||||
}
|
||||
}
|
|
@ -49,7 +49,6 @@ public class JsonUtil
|
|||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e);
|
||||
throw new ArgumentException($" 无效的json 字符串 {json} ");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MasstransferInfrastructure"
|
|||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MasstransferCommon", "MasstransferCommon\MasstransferCommon.csproj", "{66C6D73C-BADB-4E28-9C83-E701B019626D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MasstransferCommon.Tests", "MasstransferCommon.Tests\MasstransferCommon.Tests.csproj", "{DBEDC6E1-AEE6-47FA-A17A-2B412CE99C7C}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestProject1", "TestProject1\TestProject1.csproj", "{D26C3A44-62AF-4ACC-B454-51E1098C2C86}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
@ -26,9 +26,9 @@ Global
|
|||
{66C6D73C-BADB-4E28-9C83-E701B019626D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{66C6D73C-BADB-4E28-9C83-E701B019626D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{66C6D73C-BADB-4E28-9C83-E701B019626D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DBEDC6E1-AEE6-47FA-A17A-2B412CE99C7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DBEDC6E1-AEE6-47FA-A17A-2B412CE99C7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DBEDC6E1-AEE6-47FA-A17A-2B412CE99C7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DBEDC6E1-AEE6-47FA-A17A-2B412CE99C7C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D26C3A44-62AF-4ACC-B454-51E1098C2C86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D26C3A44-62AF-4ACC-B454-51E1098C2C86}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D26C3A44-62AF-4ACC-B454-51E1098C2C86}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D26C3A44-62AF-4ACC-B454-51E1098C2C86}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<s:String x:Key="/Default/Environment/UnitTesting/CreateUnitTestDialog/TestProjectMapping/=66C6D73C_002DBADB_002D4E28_002D9C83_002DE701B019626D/@EntryIndexedValue">MasstransferCommon.Tests</s:String>
|
||||
<s:String x:Key="/Default/Environment/UnitTesting/CreateUnitTestDialog/TestTemplateMapping/=MSTest/@EntryIndexedValue">d6790ab7-33c2-4425-b2c9-51480cd1a852</s:String>
|
||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=df21ed25_002D5064_002D4b51_002D96dd_002D1d6a1eb4ab6c/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="Test" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||
<TestAncestor>
|
||||
<TestId>MSTest::DBEDC6E1-AEE6-47FA-A17A-2B412CE99C7C::net7.0::MasstransferCommon.Tests.Utils.JsonUtilTest.Test</TestId>
|
||||
</TestAncestor>
|
||||
</SessionState></s:String></wpf:ResourceDictionary>
|
|
@ -1,8 +1,6 @@
|
|||
using MasstransferCommon.Atrributes;
|
||||
using MasstransferCommon.Events;
|
||||
using MasstransferCommon.Model.Constant;
|
||||
using MasstransferCommon.Utils;
|
||||
using MasstransferCommunicate.Mqtt.Client;
|
||||
using MasstransferExporter.DataExporter.Model;
|
||||
using Masuit.Tools;
|
||||
|
||||
|
@ -18,7 +16,7 @@ public class ConfigService : Instant
|
|||
/// </summary>
|
||||
private static async Task ListenConfigIssuedEvent(EventType type, bool start)
|
||||
{
|
||||
await MessageQueueHelper.Subscribe(Topics.DownloadConfigData, HandleConfigIssuedEvent);
|
||||
// await MessageQueueHelper.Subscribe(Topics.DownloadConfigData, HandleConfigIssuedEvent);
|
||||
}
|
||||
|
||||
|
||||
|
@ -27,7 +25,7 @@ public class ConfigService : Instant
|
|||
/// </summary>
|
||||
/// <param name="topic"></param>
|
||||
/// <param name="data"></param>
|
||||
private static void HandleConfigIssuedEvent(string topic, ConfigData<object> data)
|
||||
private static void HandleConfigIssuedEvent(string topic, ConfigData data)
|
||||
{
|
||||
if (data.IsNullOrEmpty()) return;
|
||||
|
||||
|
@ -35,21 +33,12 @@ public class ConfigService : Instant
|
|||
switch (type)
|
||||
{
|
||||
case "SYSTEM":
|
||||
var systemParamsDto = JsonUtil.FromJson<SystemParamsDTO>(data.Param.ToString());
|
||||
if (systemParamsDto != null)
|
||||
{
|
||||
SystemParamsService.HandleSystemParamsIssuedEvent(systemParamsDto);
|
||||
}
|
||||
|
||||
SystemParamsService.HandleSystemParamsIssuedEvent(data);
|
||||
break;
|
||||
case "FORMULA":
|
||||
{
|
||||
var formulaDto = JsonUtil.FromJson<FormulaDTO>(data.Param.ToString());
|
||||
if (formulaDto != null)
|
||||
{
|
||||
formulaDto.Name = data.Name;
|
||||
}
|
||||
|
||||
var param = data.Param;
|
||||
var formulaDto = JsonUtil.FromJson<FormulaDTO>(JsonUtil.ToJson(param));
|
||||
FormulaService.HandleFormulaIssuedEvent(formulaDto);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -263,7 +263,7 @@ public class FormulaService
|
|||
{
|
||||
var formulaDto = GetFormulaById(formula.Id);
|
||||
if (formulaDto == null) continue;
|
||||
var data = new ConfigData<FormulaDTO>()
|
||||
var data = new ConfigData()
|
||||
{
|
||||
Name = formulaDto.Name,
|
||||
Param = formulaDto,
|
||||
|
|
|
@ -5,11 +5,11 @@ namespace MasstransferExporter.DataExporter.Model;
|
|||
/// <summary>
|
||||
/// 配置数据
|
||||
/// </summary>
|
||||
public class ConfigData<T>
|
||||
public class ConfigData
|
||||
{
|
||||
[JsonProperty("name")] public string Name { get; set; }
|
||||
|
||||
[JsonProperty("type")] public string Type { get; set; }
|
||||
|
||||
[JsonProperty("param")] public T? Param { get; set; }
|
||||
[JsonProperty("param")] public object Param { get; set; }
|
||||
}
|
|
@ -5,19 +5,19 @@
|
|||
/// </summary>
|
||||
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; }
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
using MasstransferCommon.Model.Constant;
|
||||
using MasstransferCommon.Utils;
|
||||
using MasstransferCommunicate.Mqtt.Client;
|
||||
using MasstransferExporter.DataExporter.Model;
|
||||
using MasstransferInfrastructure.Database.Sqlite;
|
||||
|
@ -18,14 +19,17 @@ public class SystemParamsService
|
|||
/// 处理下发的系统配置参数
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
public static void HandleSystemParamsIssuedEvent(SystemParamsDTO dto)
|
||||
public static void HandleSystemParamsIssuedEvent(ConfigData data)
|
||||
{
|
||||
if (dto.IsNullOrEmpty()) return;
|
||||
if (data.IsNullOrEmpty()) return;
|
||||
|
||||
|
||||
if (dto?.CameraParams != null)
|
||||
var name = data.Name;
|
||||
var param = JsonUtil.ToJson(data.Param);
|
||||
switch (name)
|
||||
{
|
||||
var cameraParams = dto.CameraParams;
|
||||
case "相机配置":
|
||||
var cameraParams = JsonUtil.FromJson<CameraParams>(param);
|
||||
if (cameraParams == null) break;
|
||||
var cameraParamsFromDb = GetCameraParams();
|
||||
if (cameraParamsFromDb != null)
|
||||
{
|
||||
|
@ -33,11 +37,10 @@ public class SystemParamsService
|
|||
}
|
||||
|
||||
Db.SaveOrUpdate(cameraParams);
|
||||
}
|
||||
|
||||
if (dto?.LogParams != null)
|
||||
{
|
||||
var logParams = dto.LogParams;
|
||||
break;
|
||||
case "日志配置":
|
||||
var logParams = JsonUtil.FromJson<LogParams>(param);
|
||||
if (logParams == null) break;
|
||||
var logParamsFromDb = GetLogParams();
|
||||
if (logParamsFromDb != null)
|
||||
{
|
||||
|
@ -45,35 +48,21 @@ public class SystemParamsService
|
|||
}
|
||||
|
||||
Db.SaveOrUpdate(logParams);
|
||||
break;
|
||||
case "系统配置":
|
||||
var systemParams = JsonUtil.FromJson<SystemParams>(param);
|
||||
if (systemParams == null) break;
|
||||
var systemParamsFromDb = GetSystemParams();
|
||||
if (systemParamsFromDb != null)
|
||||
{
|
||||
systemParams.Id = systemParamsFromDb.Id;
|
||||
}
|
||||
|
||||
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;
|
||||
Db.SaveOrUpdate(systemParams);
|
||||
break;
|
||||
case "扫描器配置":
|
||||
var scannerParams = JsonUtil.FromJson<ScannerParams>(param);
|
||||
if (scannerParams == null) break;
|
||||
var scannerParamsFromDb = GetScannerParams();
|
||||
if (scannerParamsFromDb != null)
|
||||
{
|
||||
|
@ -81,11 +70,32 @@ public class SystemParamsService
|
|||
}
|
||||
|
||||
Db.SaveOrUpdate(scannerParams);
|
||||
break;
|
||||
case "MinIO配置":
|
||||
var minioParams = JsonUtil.FromJson<MinioParams>(param);
|
||||
if (minioParams == null) break;
|
||||
var minioParamsFromDb = GetMinioParams();
|
||||
if (minioParamsFromDb != null)
|
||||
{
|
||||
minioParams.Id = minioParamsFromDb.Id;
|
||||
}
|
||||
|
||||
if (dto?.WaferCameraInternalParams != null)
|
||||
Db.SaveOrUpdate(minioParams);
|
||||
break;
|
||||
case "MQTT配置":
|
||||
var mqttParams = JsonUtil.FromJson<MqttParams>(param);
|
||||
if (mqttParams == null) break;
|
||||
var mqttParamsFromDb = GetMqttConnectParams();
|
||||
if (mqttParamsFromDb != null)
|
||||
{
|
||||
var waferCameraInternalParams = dto.WaferCameraInternalParams;
|
||||
mqttParams.Id = mqttParamsFromDb.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(mqttParams);
|
||||
break;
|
||||
case "基板拍照相机内参":
|
||||
var waferCameraInternalParams = JsonUtil.FromJson<CameraInternalParams>(param);
|
||||
if (waferCameraInternalParams == null) break;
|
||||
var waferCameraInternalParamsFromDb = GetWaferParams();
|
||||
if (waferCameraInternalParamsFromDb != null)
|
||||
{
|
||||
|
@ -93,11 +103,10 @@ public class SystemParamsService
|
|||
}
|
||||
|
||||
Db.SaveOrUpdate(waferCameraInternalParams);
|
||||
}
|
||||
|
||||
if (dto?.SubstrateCameraInternalParams == null) return;
|
||||
|
||||
var substrateCameraInternalParams = dto.SubstrateCameraInternalParams;
|
||||
break;
|
||||
case "基板拍照相机外参":
|
||||
var substrateCameraInternalParams = JsonUtil.FromJson<CameraInternalParams>(param);
|
||||
if (substrateCameraInternalParams == null) break;
|
||||
var substrateCameraInternalParamsFromDb = GetSubstrateParams();
|
||||
if (substrateCameraInternalParamsFromDb != null)
|
||||
{
|
||||
|
@ -105,35 +114,80 @@ public class SystemParamsService
|
|||
}
|
||||
|
||||
Db.SaveOrUpdate(substrateCameraInternalParams);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 系统参数上报
|
||||
/// </summary>
|
||||
public static async Task ExportSystemParams()
|
||||
public static async Task SystemParamsExporter()
|
||||
{
|
||||
try
|
||||
{
|
||||
var dto = new SystemParamsDTO()
|
||||
var cameraParams = new ConfigData()
|
||||
{
|
||||
CameraParams = GetCameraParams(),
|
||||
SubstrateCameraInternalParams = GetSubstrateParams(),
|
||||
WaferCameraInternalParams = GetWaferParams(),
|
||||
LogParams = GetLogParams(),
|
||||
MinioParams = GetMinioParams(),
|
||||
MqttParams = GetMqttConnectParams(),
|
||||
ScannerParams = GetScannerParams(),
|
||||
SystemParams = GetSystemParams(),
|
||||
};
|
||||
|
||||
var systemParams = new ConfigData<SystemParamsDTO>()
|
||||
{
|
||||
Name = "系统配置",
|
||||
Param = dto,
|
||||
Name = "相机配置",
|
||||
Param = GetCameraParams(),
|
||||
Type = "SYSTEM"
|
||||
};
|
||||
|
||||
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()
|
||||
{
|
||||
Name = "系统配置",
|
||||
Param = GetSystemParams(),
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
using MasstransferCommon.Events;
|
||||
using MasstransferCommon.Scheduler;
|
||||
using MasstransferCommunicate.Mqtt.Client;
|
||||
using MasstransferExporter.DataExporter;
|
||||
using MasstransferExporter.Init;
|
||||
using MasstransferExporter.StatExporter;
|
||||
using MasstransferInfrastructure.Database.Sqlite;
|
||||
|
@ -39,8 +38,8 @@ class Program
|
|||
// 启动完成后,广播启动通知
|
||||
EventBus<bool>.Publish(EventType.StartUp, true);
|
||||
|
||||
DelayScheduler.Delay(async () => await SystemParamsService.ExportSystemParams(),
|
||||
TimeSpan.FromSeconds(3));
|
||||
// DelayScheduler.Delay(async () => await SystemStatExporter.ExportSystemStat(),
|
||||
// TimeSpan.FromSeconds(3));
|
||||
|
||||
|
||||
// 启动与主程序的通信
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
using MasstransferCommon.Utils;
|
||||
using MasstransferCommunicate.Mqtt.Model;
|
||||
using MasstransferInfrastructure.Mqtt.Model;
|
||||
using Masuit.Tools;
|
||||
using MQTTnet;
|
||||
using MQTTnet.Client;
|
||||
using MQTTnet.Protocol;
|
||||
|
@ -107,7 +106,7 @@ internal class MqttClient
|
|||
|
||||
var payload = JsonUtil.ToJson(message);
|
||||
|
||||
Console.WriteLine(message.ToJsonString());
|
||||
Console.WriteLine(payload);
|
||||
|
||||
var result = await _client.PublishAsync(new MqttApplicationMessageBuilder()
|
||||
.WithTopic(topic)
|
||||
|
|
Loading…
Reference in New Issue