瀏覽代碼

修改tests

Shun 2 年之前
父節點
當前提交
97779a74e0
共有 4 個文件被更改,包括 335 次插入327 次删除
  1. 1 2
      src/YSAI.NetMQ/YSAI.NetMQ.csproj
  2. 18 0
      src/YSAI.Pack/src/DeleteBinAndObj.bat
  3. 311 313
      src/YSAI.Tests/Program.cs
  4. 5 12
      src/YSAI.Tests/YSAI.Tests.csproj

+ 1 - 2
src/YSAI.NetMQ/YSAI.NetMQ.csproj

@@ -3,14 +3,13 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.342.8314</Version>
+    <Version>23.342.8315</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>
     <Company>YSAI</Company>
     <Product>SCADA</Product>
     <GenerateDocumentationFile>True</GenerateDocumentationFile>
-    <SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
     <DescriptionType>转发协议</DescriptionType>
     <DescriptionName>NetMQ</DescriptionName>
     <DescriptionDetails>Publish、Subscribe</DescriptionDetails>

+ 18 - 0
src/YSAI.Pack/src/DeleteBinAndObj.bat

@@ -0,0 +1,18 @@
+@echo off
+
+set "targetFolders=bin obj"  REM 要删除的目标文件夹列表,用空格分隔
+
+for %%F in (%targetFolders%) do (
+    call :DeleteFolder "%%~F"
+)
+
+exit /b
+
+:DeleteFolder
+for /d /r %%D in (*) do (
+    if "%%~nxD"=="%~1" (
+        echo Deleting folder: "%%~fD"
+        rmdir /s /q "%%~fD"
+    )
+)
+exit /b

+ 311 - 313
src/YSAI.Tests/Program.cs

@@ -1,99 +1,99 @@
-using YSAI.Log;
-using YSAI.Modbus;
-using YSAI.Model.data;
-using YSAI.Model.@enum;
-using YSAI.Unility;
+//using YSAI.Log;
+//using YSAI.Modbus;
+//using YSAI.Model.data;
+//using YSAI.Model.@enum;
+//using YSAI.Unility;
 
-ModbusOperate modbusOperate = ModbusOperate.Instance(new ModbusData.Basics
-{
-    Ip = "127.0.0.1",
-    Port = 502,
-    PType = ModbusData.ProtocolType.Tcp,
-    MRType = ModbusData.ModbusReadType.FloatHoldingRegisters,
-    MWType = ModbusData.ModbusWriteType.FloatHoldingRegisters
-});
-LogHelper.Info(modbusOperate.On().ToJson().JsonFormatting());
+//ModbusOperate modbusOperate = ModbusOperate.Instance(new ModbusData.Basics
+//{
+//    Ip = "127.0.0.1",
+//    Port = 502,
+//    PType = ModbusData.ProtocolType.Tcp,
+//    MRType = ModbusData.ModbusReadType.FloatHoldingRegisters,
+//    MWType = ModbusData.ModbusWriteType.FloatHoldingRegisters
+//});
+//LogHelper.Info(modbusOperate.On().ToJson().JsonFormatting());
 
 
 
-//点位地址
-Address address = new Address();
-address.SN = Guid.NewGuid().ToString();
-address.CreationTime = DateTime.Now.ToLocalTime();
-address.AddressArray = new List<AddressDetails>();
-address.AddressArray.Add(new AddressDetails()
-{
-    AddressName = "1",
-    AddressDataType = DataType.Float,
-    AddressType = AddressType.Reality
-});
-address.AddressArray.Add(new AddressDetails()
-{
-    AddressName = "3",
-    AddressDataType = DataType.Float,
-    AddressType = AddressType.Reality
-});
-address.AddressArray.Add(new AddressDetails()
-{
-    AddressName = "5",
-    AddressDataType = DataType.Float,
-    AddressType = AddressType.Reality
-});
-address.AddressArray.Add(new AddressDetails()
-{
-    AddressName = "7",
-    AddressDataType = DataType.Float,
-    AddressType = AddressType.Reality
-});
-address.AddressArray.Add(new AddressDetails()
-{
-    AddressName = "9",
-    AddressDataType = DataType.Float,
-    AddressType = AddressType.Reality
-});
-address.AddressArray.Add(new AddressDetails()
-{
-    AddressName = "11",
-    AddressDataType = DataType.Float,
-    AddressType = AddressType.Reality
-});
-address.AddressArray.Add(new AddressDetails()
-{
-    AddressName = "13",
-    AddressDataType = DataType.Float,
-    AddressType = AddressType.Reality
-});
-LogHelper.Info(modbusOperate.Read(address).ToJson().JsonFormatting());
-
-//连续读取
-Address lxdq_address = new Address();
-lxdq_address.SN = Guid.NewGuid().ToString();
-lxdq_address.CreationTime = DateTime.Now.ToLocalTime();
-lxdq_address.AddressArray = new List<AddressDetails>();
-lxdq_address.AddressArray.Add(new AddressDetails()
-{
-    AddressName = "0,6",
-    AddressDataType = DataType.String,
-    AddressType = AddressType.Reality
-});
+////点位地址
+//Address address = new Address();
+//address.SN = Guid.NewGuid().ToString();
+//address.CreationTime = DateTime.Now.ToLocalTime();
+//address.AddressArray = new List<AddressDetails>();
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "1",
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "3",
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "5",
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "7",
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "9",
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "11",
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "13",
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//LogHelper.Info(modbusOperate.Read(address).ToJson().JsonFormatting());
+
+////连续读取
+//Address lxdq_address = new Address();
+//lxdq_address.SN = Guid.NewGuid().ToString();
+//lxdq_address.CreationTime = DateTime.Now.ToLocalTime();
+//lxdq_address.AddressArray = new List<AddressDetails>();
+//lxdq_address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "0,6",
+//    AddressDataType = DataType.String,
+//    AddressType = AddressType.Reality
+//});
 
-LogHelper.Info(modbusOperate.Read(lxdq_address).ToJson().JsonFormatting());
+//LogHelper.Info(modbusOperate.Read(lxdq_address).ToJson().JsonFormatting());
 
-//订阅
-modbusOperate.OnEvent += ModbusOperate_OnEvent;
-LogHelper.Info(modbusOperate.Subscribe(address).ToJson().JsonFormatting());
-//订阅连续读取
-LogHelper.Info(modbusOperate.Subscribe(lxdq_address).ToJson().JsonFormatting());
+////订阅
+//modbusOperate.OnEvent += ModbusOperate_OnEvent;
+//LogHelper.Info(modbusOperate.Subscribe(address).ToJson().JsonFormatting());
+////订阅连续读取
+//LogHelper.Info(modbusOperate.Subscribe(lxdq_address).ToJson().JsonFormatting());
 
-void ModbusOperate_OnEvent(object? sender, EventResult e)
-{
-    LogHelper.Debug(e.ToJson().JsonFormatting());
-}
+//void ModbusOperate_OnEvent(object? sender, EventResult e)
+//{
+//    LogHelper.Debug(e.ToJson().JsonFormatting());
+//}
 
-while (true)
-{
-    Console.ReadLine();
-}
+//while (true)
+//{
+//    Console.ReadLine();
+//}
 
 
 
@@ -148,243 +148,241 @@ while (true)
 
 
 
-//Console.WriteLine();
-
-//using System.Collections.Concurrent;
-//using YSAI.Core.reflection;
-//using YSAI.Core.script;
-//using YSAI.Log;
-//using YSAI.Model.data;
-//using YSAI.Model.@enum;
-//using YSAI.Mqtt.service;
-//using YSAI.Opc.ua.client;
-//using YSAI.Unility;
-///// <summary>
-///// 读取Csv,返回行集合
-///// </summary>
-///// <param name="path"></param>
-///// <param name="hasTitle"></param>
-///// <returns></returns>
-//List<string> ReadCsv(string path, bool hasTitle)
-//{
-//    if (!File.Exists(path))
-//        return new List<string>();
-
-//    var lines = File.ReadAllLines(path).ToList();
-//    if (hasTitle)
-//    {
-//        lines.RemoveAt(0);
-//    }
-//    return lines;
-//}
-
-////启动MQTT服务端 1
-//MqttServiceOperate mqttServiceOperate1 = MqttServiceOperate.Instance(new MqttServiceData.Basics
-//{
-//    MaxNumber = 1000,
-//    Password = "samples",
-//    UserName = "samples",
-//    Port = 8111
-//});
-////输出日志
-//LogHelper.Info(mqttServiceOperate1.On().ToJson().JsonFormatting());
-////启动MQTT服务端 2
-//MqttServiceOperate mqttServiceOperate2 = MqttServiceOperate.Instance(new MqttServiceData.Basics
-//{
-//    MaxNumber = 1000,
-//    Password = "samples",
-//    UserName = "samples",
-//    Port = 8222
-//});
-////输出日志
-//LogHelper.Info(mqttServiceOperate2.On().ToJson().JsonFormatting());
-
-
-
+using System.Collections.Concurrent;
+using YSAI.Core.reflection;
+using YSAI.Core.script;
+using YSAI.Log;
+using YSAI.Model.data;
+using YSAI.Model.@enum;
+using YSAI.Mqtt.service;
+using YSAI.Opc.ua.client;
+using YSAI.Unility;
+/// <summary>
+/// 读取Csv,返回行集合
+/// </summary>
+/// <param name="path"></param>
+/// <param name="hasTitle"></param>
+/// <returns></returns>
+List<string> ReadCsv(string path, bool hasTitle)
+{
+    if (!File.Exists(path))
+        return new List<string>();
+
+    var lines = File.ReadAllLines(path).ToList();
+    if (hasTitle)
+    {
+        lines.RemoveAt(0);
+    }
+    return lines;
+}
 
-//Address address = new Address();
-//address.SN = Guid.NewGuid().ToString();
-//address.CreationTime = DateTime.Now;
-//address.AddressArray = new List<AddressDetails>();
-//List<string> strings = ReadCsv("files\\6022.csv", true);
-//for (int i = 0; i < strings.Count; i++)
-//{
-//    string[] str = strings[i].Split(",");
-//    string addressD = str[0].Replace("\"", "");
-//    DataType dataType = DataType.String;
-//    if (str.Contains("Float"))
-//    {
-//        dataType = DataType.Float;
-//    }
-//    else if (str.Contains("Boolean"))
-//    {
-//        dataType = DataType.Bool;
-//    }
-//    else if (str.Contains("Short"))
-//    {
-//        dataType = DataType.Short;
-//    }
+//启动MQTT服务端 1
+MqttServiceOperate mqttServiceOperate1 = MqttServiceOperate.Instance(new MqttServiceData.Basics
+{
+    MaxNumber = 1000,
+    Password = "samples",
+    UserName = "samples",
+    Port = 8111
+});
+//输出日志
+LogHelper.Info(mqttServiceOperate1.On().ToJson().JsonFormatting());
+//启动MQTT服务端 2
+MqttServiceOperate mqttServiceOperate2 = MqttServiceOperate.Instance(new MqttServiceData.Basics
+{
+    MaxNumber = 1000,
+    Password = "samples",
+    UserName = "samples",
+    Port = 8222
+});
+//输出日志
+LogHelper.Info(mqttServiceOperate2.On().ToJson().JsonFormatting());
 
-//    if (i % 2 == 0)
-//    {
-//        //走脚本解析
-//        address.AddressArray.Add(new AddressDetails()
-//        {
-//            AddressName = $"ns=2;s=6022.6022.{addressD}",
-//            SN = Guid.NewGuid().ToString(),
-//            AddressDataType = dataType,
-//            AddressRelayParam = new AddressRelay
-//            {
-//                ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
-//                Topic = $"TEST/{addressD}"
-//            },
-//            AddressParseParam = new AddressParse
-//            {
-//                ScriptParam = new ScriptData.Basics()
-//                {
-//                    ScriptCode = @"function Convert(addressname,value) { return '【这是调用脚本解析】传入的地址是:'+ addressname + '----传入的参数是:' + value; }",
-//                    ScriptFunction = "Convert",
-//                    ScriptType = ScriptData.ScriptType.JavaScript
-//                }
-//            }
-//        });
-//    }
-//    else
-//    {
-//        //走反射解析流程
-//        address.AddressArray.Add(new AddressDetails()
-//        {
-//            AddressName = $"ns=2;s=6022.6022.{addressD}",
-//            SN = Guid.NewGuid().ToString(),
-//            AddressDataType = dataType,
-//            AddressRelayParam = new AddressRelay
-//            {
-//                ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
-//                Topic = $"TEST/{addressD}"
-//            },
-//            AddressParseParam = new AddressParse
-//            {
-//                ReflectionParam = new object[]
-//                {
-//                    new ReflectionData.Basics
-//                    {
-//                        DllDatas = new List<ReflectionData.DllData>
-//                        {
-//                            new ReflectionData.DllData
-//                            {
-//                                DllPath="YSAI.DAQ.Samples.Reflection.dll",
-//                                IsAbsolutePath=false,
-//                                NamespaceDatas=new List<ReflectionData.NamespaceData>
-//                                {
-//                                    new ReflectionData.NamespaceData
-//                                    {
-//                                        Namespace="YSAI.DAQ.Samples.Reflection",
-//                                        ClassDatas=new List<ReflectionData.ClassData>
-//                                        {
-//                                            new ReflectionData.ClassData
-//                                            {
-//                                                ClassName="Class1",
-//                                                SN="YSAI.DAQ.Samples.Reflection.Class1[Instance]",
-//                                                MethodDatas=new List<ReflectionData.MethodData>
-//                                                {
-//                                                    new ReflectionData.MethodData
-//                                                    {
-//                                                        MethodName="R1",
-//                                                        SN="[R1]"
-//                                                    },
-//                                                     new ReflectionData.MethodData
-//                                                    {
-//                                                        MethodName="R2",
-//                                                        SN="[R2]"
-//                                                    },
-//                                                      new ReflectionData.MethodData
-//                                                    {
-//                                                        MethodName="R3",
-//                                                        SN="[R3]"
-//                                                    }
-//                                                }
-//                                            }
-//                                        }
-//                                    }
-//                                }
-
-//                            }
-//                        }
-//                    },
-//                    "YSAI.DAQ.Samples.Reflection.Class1[Instance][R2]"
-//                }
-//            }
-//        });
-//    }
-//}
 
-//File.WriteAllText("config\\config.json", address.ToJson().JsonFormatting());
 
-//OpcUaClientOperate opcUaClientOperate = OpcUaClientOperate.Instance(new OpcUaClientData.Basics
-//{
-//    ServerUrl = "opc.tcp://192.168.2.220:49320",
-//    CustomName = "YSAI 性能测试",
-//    SubscribeSingleGroupMaxCount = 1000,
-//});
-//Console.WriteLine(opcUaClientOperate.On().ToJson().JsonFormatting());
-//opcUaClientOperate.OnEvent += OpcUaClientOperate_OnEvent;
 
-//while (true)
-//{
-//    Console.ReadLine();
+Address address = new Address();
+address.SN = Guid.NewGuid().ToString();
+address.CreationTime = DateTime.Now;
+address.AddressArray = new List<AddressDetails>();
+List<string> strings = ReadCsv("files\\6022.csv", true);
+for (int i = 0; i < strings.Count; i++)
+{
+    string[] str = strings[i].Split(",");
+    string addressD = str[0].Replace("\"", "");
+    DataType dataType = DataType.String;
+    if (str.Contains("Float"))
+    {
+        dataType = DataType.Float;
+    }
+    else if (str.Contains("Boolean"))
+    {
+        dataType = DataType.Bool;
+    }
+    else if (str.Contains("Short"))
+    {
+        dataType = DataType.Short;
+    }
+
+    if (i % 2 == 0)
+    {
+        //走脚本解析
+        address.AddressArray.Add(new AddressDetails()
+        {
+            AddressName = $"ns=2;s=6022.6022.{addressD}",
+            SN = Guid.NewGuid().ToString(),
+            AddressDataType = dataType,
+            AddressRelayParam = new AddressRelay
+            {
+                ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
+                Topic = $"TEST/{addressD}"
+            },
+            AddressParseParam = new AddressParse
+            {
+                ScriptParam = new ScriptData.Basics()
+                {
+                    ScriptCode = @"function Convert(addressname,value) { return '【这是调用脚本解析】传入的地址是:'+ addressname + '----传入的参数是:' + value; }",
+                    ScriptFunction = "Convert",
+                    ScriptType = ScriptData.ScriptType.JavaScript
+                }
+            }
+        });
+    }
+    else
+    {
+        //走反射解析流程
+        address.AddressArray.Add(new AddressDetails()
+        {
+            AddressName = $"ns=2;s=6022.6022.{addressD}",
+            SN = Guid.NewGuid().ToString(),
+            AddressDataType = dataType,
+            AddressRelayParam = new AddressRelay
+            {
+                ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
+                Topic = $"TEST/{addressD}"
+            },
+            AddressParseParam = new AddressParse
+            {
+                ReflectionParam = new object[]
+                {
+                    new ReflectionData.Basics
+                    {
+                        DllDatas = new List<ReflectionData.DllData>
+                        {
+                            new ReflectionData.DllData
+                            {
+                                DllPath="YSAI.DAQ.Samples.Reflection.dll",
+                                IsAbsolutePath=false,
+                                NamespaceDatas=new List<ReflectionData.NamespaceData>
+                                {
+                                    new ReflectionData.NamespaceData
+                                    {
+                                        Namespace="YSAI.DAQ.Samples.Reflection",
+                                        ClassDatas=new List<ReflectionData.ClassData>
+                                        {
+                                            new ReflectionData.ClassData
+                                            {
+                                                ClassName="Class1",
+                                                SN="YSAI.DAQ.Samples.Reflection.Class1[Instance]",
+                                                MethodDatas=new List<ReflectionData.MethodData>
+                                                {
+                                                    new ReflectionData.MethodData
+                                                    {
+                                                        MethodName="R1",
+                                                        SN="[R1]"
+                                                    },
+                                                     new ReflectionData.MethodData
+                                                    {
+                                                        MethodName="R2",
+                                                        SN="[R2]"
+                                                    },
+                                                      new ReflectionData.MethodData
+                                                    {
+                                                        MethodName="R3",
+                                                        SN="[R3]"
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+
+                            }
+                        }
+                    },
+                    "YSAI.DAQ.Samples.Reflection.Class1[Instance][R2]"
+                }
+            }
+        });
+    }
+}
 
-//    OperateResult operateResult = opcUaClientOperate.Subscribe(address);
-//    Console.WriteLine(operateResult.ToJson().JsonFormatting());
-//    Console.ReadLine();
+File.WriteAllText("config\\config.json", address.ToJson().JsonFormatting());
 
-//    //OperateResult operateResult = opcUaClientOperate.Subscribe(address);
-//    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
-//    //Console.ReadLine();
-
-//    //operateResult = opcUaClientOperate.UnSubscribe(address);
-//    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
-//    //Console.ReadLine();
-//    //address = new Address();
-//    //address.SN = Guid.NewGuid().ToString();
-//    //address.CreationTime = DateTime.Now;
-//    //address.AddressArray = new List<AddressDetails>();
-//    //address.AddressArray.Add(new AddressDetails()
-//    //{
-//    //    AddressName = $"6666",
-//    //    SN = Guid.NewGuid().ToString()
-//    //});
-//    //operateResult = opcUaClientOperate.Subscribe(address);
-//    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
+OpcUaClientOperate opcUaClientOperate = OpcUaClientOperate.Instance(new OpcUaClientData.Basics
+{
+    ServerUrl = "opc.tcp://192.168.2.220:49320",
+    CustomName = "YSAI 性能测试",
+    SubscribeSingleGroupMaxCount = 1000,
+});
+Console.WriteLine(opcUaClientOperate.On().ToJson().JsonFormatting());
+opcUaClientOperate.OnEvent += OpcUaClientOperate_OnEvent;
 
-//}
+while (true)
+{
+    Console.ReadLine();
 
-//void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
-//{
-//    switch (e.RType)
-//    {
-//        case ResultType.KeyValue:
+    OperateResult operateResult = opcUaClientOperate.Subscribe(address);
+    Console.WriteLine(operateResult.ToJson().JsonFormatting());
+    Console.ReadLine();
 
-//            ConcurrentDictionary<string, AddressValue> pairs = e.GetRData<ConcurrentDictionary<string, AddressValue>>();
-//            foreach (var item in pairs)
-//            {
-//                if (item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2112_STATE_RUN") || item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2113_AUTO"))
-//                {
-//                    String str = String.Format("{0,-100}{1,-100}", item.Key, item.Value.Value);
-//                    LogHelper.Warning(item.Value.Quality.ToString());
-//                    LogHelper.Warning(item.Value.OriginalValue.GetType().Name);
-//                    LogHelper.Verbose(str);
-//                }
+    //OperateResult operateResult = opcUaClientOperate.Subscribe(address);
+    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
+    //Console.ReadLine();
+
+    //operateResult = opcUaClientOperate.UnSubscribe(address);
+    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
+    //Console.ReadLine();
+    //address = new Address();
+    //address.SN = Guid.NewGuid().ToString();
+    //address.CreationTime = DateTime.Now;
+    //address.AddressArray = new List<AddressDetails>();
+    //address.AddressArray.Add(new AddressDetails()
+    //{
+    //    AddressName = $"6666",
+    //    SN = Guid.NewGuid().ToString()
+    //});
+    //operateResult = opcUaClientOperate.Subscribe(address);
+    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
 
-//                //String str = String.Format("{0,-100}{1,-100}", item.Key, item.Value.Value);
-//                //LogHelper.Verbose(str);
-//            }
-//            break;
+}
 
-//        default:
-//            //Console.WriteLine(e.Message);
-//            break;
-//    }
-//}
+void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
+{
+    switch (e.RType)
+    {
+        case ResultType.KeyValue:
+
+            ConcurrentDictionary<string, AddressValue> pairs = e.GetRData<ConcurrentDictionary<string, AddressValue>>();
+            foreach (var item in pairs)
+            {
+                if (item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2112_STATE_RUN") || item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2113_AUTO"))
+                {
+                    String str = String.Format("{0,-100}{1,-100}", item.Key, item.Value.Value);
+                    LogHelper.Warning(item.Value.Quality.ToString());
+                    LogHelper.Warning(item.Value.OriginalValue.GetType().Name);
+                    LogHelper.Verbose(str);
+                }
+
+                //String str = String.Format("{0,-100}{1,-100}", item.Key, item.Value.Value);
+                //LogHelper.Verbose(str);
+            }
+            break;
+
+        default:
+            //Console.WriteLine(e.Message);
+            break;
+    }
+}
 
 
 

+ 5 - 12
src/YSAI.Tests/YSAI.Tests.csproj

@@ -5,6 +5,7 @@
     <TargetFramework>net8.0</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
+	  <SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
   </PropertyGroup>
 
   <ItemGroup>
@@ -27,8 +28,6 @@
     <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Log.dll" />
     <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Model.dll" />
     <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.dll" />
-    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.pdb" />
-    <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.xml" />
     <None Remove="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Unility.dll" />
   </ItemGroup>
 
@@ -90,12 +89,6 @@
     <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.dll">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.pdb">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Mqtt.xml">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
     <Content Include="lib\relay\YSAI.Mqtt.Pack\Release\YSAI.Unility.dll">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
@@ -103,22 +96,22 @@
 
 
 	<ItemGroup>
-		<!--<ProjectReference Include="..\YSAI.AllenBradley\YSAI.AllenBradley.csproj" />
+		<ProjectReference Include="..\YSAI.AllenBradley\YSAI.AllenBradley.csproj" />
 		<ProjectReference Include="..\YSAI.Beckhoff\YSAI.Beckhoff.csproj" />
 		<ProjectReference Include="..\YSAI.Can\YSAI.Can.csproj" />
 		<ProjectReference Include="..\YSAI.DAQ.Samples.Reflection\YSAI.DAQ.Samples.Reflection.csproj" />
 		<ProjectReference Include="..\YSAI.DB\YSAI.DB.csproj" />
 		<ProjectReference Include="..\YSAI.Kafka\YSAI.Kafka.csproj" />
 		<ProjectReference Include="..\YSAI.Mewtocol\YSAI.Mewtocol.csproj" />
-		<ProjectReference Include="..\YSAI.Mitsubishi\YSAI.Mitsubishi.csproj" />-->
+		<ProjectReference Include="..\YSAI.Mitsubishi\YSAI.Mitsubishi.csproj" />
 		<ProjectReference Include="..\YSAI.Modbus\YSAI.Modbus.csproj" />
-		<!--<ProjectReference Include="..\YSAI.Mqtt\YSAI.Mqtt.csproj" />
+		<ProjectReference Include="..\YSAI.Mqtt\YSAI.Mqtt.csproj" />
 		<ProjectReference Include="..\YSAI.NetMQ\YSAI.NetMQ.csproj" />
 		<ProjectReference Include="..\YSAI.Netty\YSAI.Netty.csproj" />
 		<ProjectReference Include="..\YSAI.Omron\YSAI.Omron.csproj" />
 		<ProjectReference Include="..\YSAI.Opc\YSAI.Opc.csproj" />
 		<ProjectReference Include="..\YSAI.RabbitMQ\YSAI.RabbitMQ.csproj" />
-		<ProjectReference Include="..\YSAI.Siemens\YSAI.Siemens.csproj" />-->
+		<ProjectReference Include="..\YSAI.Siemens\YSAI.Siemens.csproj" />
 	</ItemGroup>
 	
 </Project>