Shun %!s(int64=2) %!d(string=hai) anos
pai
achega
c6f249d95a
Modificáronse 33 ficheiros con 136 adicións e 131 borrados
  1. 5 1
      README.md
  2. 1 1
      src/YSAI.AllenBradley/AllenBradleyOperate.cs
  3. 1 1
      src/YSAI.AllenBradley/YSAI.AllenBradley.csproj
  4. 2 2
      src/YSAI.Beckhoff/BeckhoffOperate.cs
  5. 1 1
      src/YSAI.Beckhoff/YSAI.Beckhoff.csproj
  6. 2 2
      src/YSAI.Can/CanOperate.cs
  7. 1 1
      src/YSAI.Can/YSAI.Can.csproj
  8. 1 1
      src/YSAI.Core/YSAI.Core.csproj
  9. 36 39
      src/YSAI.Core/handler/AddressHandler.cs
  10. 6 6
      src/YSAI.Core/virtualAddress/VirtualAddress.cs
  11. 2 2
      src/YSAI.DB/DBOperate.cs
  12. 1 1
      src/YSAI.DB/YSAI.DB.csproj
  13. 1 1
      src/YSAI.DaqManage/YSAI.DaqManage.csproj
  14. 2 2
      src/YSAI.Mewtocol/MewtocolOperate.cs
  15. 1 1
      src/YSAI.Mewtocol/YSAI.Mewtocol.csproj
  16. 1 1
      src/YSAI.Mitsubishi/MitsubishiData.cs
  17. 3 3
      src/YSAI.Mitsubishi/MitsubishiOperate.cs
  18. 4 1
      src/YSAI.Mitsubishi/YSAI.Mitsubishi.csproj
  19. 13 13
      src/YSAI.Modbus/ModbusOperate.cs
  20. 1 1
      src/YSAI.Modbus/YSAI.Modbus.csproj
  21. 0 13
      src/YSAI.Omron/OmronData.cs
  22. 1 1
      src/YSAI.Omron/OmronOperate.cs
  23. 1 1
      src/YSAI.Omron/YSAI.Omron.csproj
  24. 1 1
      src/YSAI.Opc/YSAI.Opc.csproj
  25. 3 3
      src/YSAI.Opc/da/client/OpcDaClientOperate.cs
  26. 3 3
      src/YSAI.Opc/da/http/OpcDaHttpOperate.cs
  27. 4 4
      src/YSAI.Opc/ua/client/OpcUaClientOperate.cs
  28. 1 1
      src/YSAI.RelayManage/YSAI.RelayManage.csproj
  29. 1 1
      src/YSAI.Siemens/SiemensOperate.cs
  30. 1 1
      src/YSAI.Siemens/YSAI.Siemens.csproj
  31. 33 19
      src/YSAI.Test.All/Program.cs
  32. 1 1
      src/YSAI.Test.All/YSAI.Test.All.csproj
  33. 1 1
      src/YSAI.Test/YSAI.Test.csproj

+ 5 - 1
README.md

@@ -502,4 +502,8 @@ while(true)
 4. 修改脚本解析默认参数传两个
 5. 修改反射解析默认参数传两个
 6. 新增 动态转发 打开失败重试流程
-7. 版本更新
+7. 版本更新
+
+#### 2023-11-28
+1. 优化数据类型
+2. 优化地址处理函数,严格数据质量

+ 1 - 1
src/YSAI.AllenBradley/AllenBradleyOperate.cs

@@ -467,7 +467,7 @@ namespace YSAI.AllenBradley
                         }
                     }
                     //数据处理
-                    AddressValue addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);

+ 1 - 1
src/YSAI.AllenBradley/YSAI.AllenBradley.csproj

@@ -16,6 +16,6 @@
     <Description>$(DescriptionType):$(DescriptionName) ( $(DescriptionDetails) )</Description>
   </PropertyGroup>
   <ItemGroup>
-    <PackageReference Include="YSAI.Core" Version="23.332.13587" />
+    <PackageReference Include="YSAI.Core" Version="23.332.16655" />
   </ItemGroup>
 </Project>

+ 2 - 2
src/YSAI.Beckhoff/BeckhoffOperate.cs

@@ -134,7 +134,7 @@ namespace YSAI.Beckhoff
                                 //设置参数
                                 ConcurrentDictionary<string, AddressValue> param = new ConcurrentDictionary<string, AddressValue>();
                                 //处理数据
-                                AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(addressDetails, value);  //数据
+                                AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(addressDetails, value?.ToString());  //数据
                                 //添加或更新
                                 param.AddOrUpdate(addressDetails.AddressName, addressValue, (k, v) => addressValue);
 
@@ -470,7 +470,7 @@ namespace YSAI.Beckhoff
                         }
 
                         //数据处理
-                        AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value);
+                        AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                         //数据添加
                         param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);

+ 1 - 1
src/YSAI.Beckhoff/YSAI.Beckhoff.csproj

@@ -17,6 +17,6 @@
   </PropertyGroup>
   <ItemGroup>
     <PackageReference Include="Beckhoff.TwinCAT.Ads" Version="6.1.125" />
-    <PackageReference Include="YSAI.Core" Version="23.332.13587" />
+    <PackageReference Include="YSAI.Core" Version="23.332.16655" />
   </ItemGroup>
 </Project>

+ 2 - 2
src/YSAI.Can/CanOperate.cs

@@ -295,7 +295,7 @@ namespace YSAI.Can
                             object? Value = VAM.Read(item);
 
                             //数据处理
-                            AddressValue addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(item, Value);
+                            AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                             //数据添加
                             param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);
@@ -317,7 +317,7 @@ namespace YSAI.Can
                                 object? Value = candata.ToJson();
 
                                 //数据处理
-                                AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(item, Value);
+                                AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                                 //数据添加
                                 param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);

+ 1 - 1
src/YSAI.Can/YSAI.Can.csproj

@@ -16,7 +16,7 @@
     <Description>$(DescriptionType):$(DescriptionName) ( $(DescriptionDetails) )</Description>
   </PropertyGroup>
   <ItemGroup>
-    <PackageReference Include="YSAI.Core" Version="23.332.13587" />
+    <PackageReference Include="YSAI.Core" Version="23.332.16655" />
   </ItemGroup>
   <ItemGroup>
     <Reference Include="Kvaser.CanLib">

+ 1 - 1
src/YSAI.Core/YSAI.Core.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.332.13986</Version>
+    <Version>23.332.20597</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 36 - 39
src/YSAI.Core/handler/AddressHandler.cs

@@ -56,13 +56,14 @@ namespace YSAI.Core.handler
         /// <param name="addressDetails">地址详情数据</param>
         /// <param name="value">底层硬件返回的值</param>
         /// <returns>地址值</returns>
-        public static AddressValue? ExecuteDispose(AddressDetails addressDetails, object? value)
+        public static AddressValue? ExecuteDispose(AddressDetails addressDetails, string? value)
         {
             try
             {
                 //原始值
-                object? originalValue = value;
-
+                object? originalValue = null;
+                //实际值
+                object? Value = null;
                 // -1:尚未经过处理
                 // 0:异常
                 // 1:正常
@@ -72,7 +73,7 @@ namespace YSAI.Core.handler
                 int Quality = -1;
 
                 //当收到空数据时说明数据异常
-                if (value is null)
+                if (string.IsNullOrWhiteSpace(value))
                 {
                     //异常数据
                     Quality = 0;
@@ -85,14 +86,17 @@ namespace YSAI.Core.handler
                     //判断数据质量
                     if (Quality == 1)
                     {
+                        //原始值
+                        originalValue = outValue;
+
                         //转换后的数据
-                        value = outValue;
+                        Value = outValue;
 
                         //进行解析
-                        value = Parse(addressDetails, value);
+                        Value = Parse(addressDetails, Value);
 
                         //解析完后数据为空
-                        if (value is null || string.IsNullOrWhiteSpace(value?.ToString()))
+                        if (Value is null || string.IsNullOrWhiteSpace(Value?.ToString()))
                         {
                             //数据解析错误
                             Quality = 4;
@@ -107,7 +111,7 @@ namespace YSAI.Core.handler
 
                 //最终数据组织
                 AddressValue addressValue = new AddressValue().SET(addressDetails);
-                addressValue.Value = value;
+                addressValue.Value = Value;
                 addressValue.OriginalValue = originalValue;
                 addressValue.Quality = Quality;
 
@@ -115,7 +119,7 @@ namespace YSAI.Core.handler
                 if (Quality == 1 || Quality == 3)
                 {
                     //数据转发
-                    Relay(addressDetails, value);
+                    Relay(addressDetails, Value);
                 }
 
                 return addressValue;
@@ -142,13 +146,12 @@ namespace YSAI.Core.handler
         /// 3:数据经过解析,并且解析成功,无法得知数据解析后的正确性;
         /// 4:解析错误;
         /// </returns>
-        public static int DataTypeConvert(DataType dataType, object? value, out object? outValue)
+        public static int DataTypeConvert(DataType dataType, string value, out object? outValue)
         {
             //数据质量
             int Quality = -1;
             //转换后的值
             outValue = null;
-
             try
             {
                 Quality = 1;
@@ -156,72 +159,72 @@ namespace YSAI.Core.handler
                 switch (dataType)
                 {
                     case DataType.Bool:
-                        value = (bool)value;
+                        outValue = bool.Parse(value);
                         break;
                     case DataType.String:
-                        value = value?.ToString();
+                        outValue = value;
                         break;
                     case DataType.Char:
-                        value = (char)value;
+                        outValue = char.Parse(value);
                         break;
                     case DataType.Decimal:
-                        value = (decimal)value;
+                        outValue = decimal.Parse(value);
                         break;
                     case DataType.Double:
-                        value = (double)value;
+                        outValue = double.Parse(value);
                         break;
                     case DataType.Float:
-                        value = (float)value;
+                        outValue = float.Parse(value);
                         break;
                     case DataType.Byte:
-                        value = (byte)value;
+                        outValue = byte.Parse(value);
                         break;
                     case DataType.Sbyte:
-                        value = (sbyte)value;
+                        outValue = sbyte.Parse(value);
                         break;
                     case DataType.Int:
-                        value = (int)value;
+                        outValue = int.Parse(value);
                         break;
                     case DataType.Uint:
-                        value = (uint)value;
+                        outValue = uint.Parse(value);
                         break;
                     case DataType.Long:
-                        value = (long)value;
+                        outValue = long.Parse(value);
                         break;
                     case DataType.Ulong:
-                        value = (ulong)value;
+                        outValue = ulong.Parse(value);
                         break;
                     case DataType.Short:
-                        value = (short)value;
+                        outValue = short.Parse(value);
                         break;
                     case DataType.Ushort:
-                        value = (ushort)value;
+                        outValue = ushort.Parse(value);
                         break;
                     case DataType.DateTime:
-                        value = (DateTime)value;
+                        outValue = DateTime.Parse(value);
                         break;
                     case DataType.Int16:
-                        value = (Int16)value;
+                        outValue = Int16.Parse(value);
                         break;
                     case DataType.UInt16:
-                        value = (UInt16)value;
+                        outValue = UInt16.Parse(value);
                         break;
                     case DataType.Int32:
-                        value = (Int32)value;
+                        outValue = Int32.Parse(value);
                         break;
                     case DataType.UInt32:
-                        value = (UInt32)value;
+                        outValue = UInt32.Parse(value);
                         break;
                     case DataType.Int64:
-                        value = (Int64)value;
+                        outValue = Int64.Parse(value);
                         break;
                     case DataType.UInt64:
-                        value = (UInt64)value;
+                        outValue = UInt64.Parse(value);
                         break;
                     case DataType.Date:
                     case DataType.Time:
                     case DataType.None:
-                        value = value;
+                        outValue = value;
                         break;
                 }
             }
@@ -229,12 +232,6 @@ namespace YSAI.Core.handler
             {
                 Quality = 2;
             }
-
-            //数据质量正常,把传入值抛出
-            if (Quality == 1)
-            {
-                outValue = value;
-            }
             return Quality;
         }
 

+ 6 - 6
src/YSAI.Core/virtualAddress/VirtualAddress.cs

@@ -183,7 +183,7 @@ namespace YSAI.Core.virtualAddress
         {
             byte[] dataArray = new byte[new Random().Next(100)];
             random.NextBytes(dataArray);
-            return dataArray.HexToStr();
+            return dataArray.HexToStr().ToHex();
         }
 
         /// <summary>
@@ -193,7 +193,7 @@ namespace YSAI.Core.virtualAddress
         /// <returns></returns>
         private object FloatRandom(Random random)
         {
-            return (float.MaxValue * 2.0 * (random.NextDouble() - 0.5)).ToString();
+            return float.MaxValue * 2.0 * (random.NextDouble() - 0.5);
         }
 
         /// <summary>
@@ -208,11 +208,11 @@ namespace YSAI.Core.virtualAddress
         {
             if (random != null)
             {
-                return (random.NextDouble() * (maxiDouble - miniDouble) + miniDouble).ToString();
+                return (random.NextDouble() * (maxiDouble - miniDouble) + miniDouble);
             }
             else
             {
-                return 0.0d.ToString();
+                return 0.0d;
             }
         }
 
@@ -225,12 +225,12 @@ namespace YSAI.Core.virtualAddress
         {
             if (PositiveInteger)
             {
-                return random.Next(1, 888888).ToString();
+                return random.Next(1, 888888);
             }
             else
             {
                 int value = random.Next(1, 888888);
-                return $"{(value.ToString().Contains("8") ? "-" : "")}{value}";
+                return int.Parse($"{(value.ToString().Contains("8") ? "-" : "")}{value}");
             }
         }
 

+ 2 - 2
src/YSAI.DB/DBOperate.cs

@@ -467,7 +467,7 @@ namespace YSAI.DB
                 object? value = VAM.Read(addressDetails);
 
                 //处理
-                AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(addressDetails, value);
+                AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(addressDetails, value?.ToString());
 
                 //添加进字典
                 retData.AddOrUpdate(addressDetails.AddressName, addressValue, (k, v) => addressValue);
@@ -489,7 +489,7 @@ namespace YSAI.DB
                         object? value = Convert.ToString(item[column]);
 
                         //处理
-                        AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(addressDetails, value);
+                        AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(addressDetails, value?.ToString());
 
                         //添加进字典   哪个表的哪个字段    值
                         retData.AddOrUpdate(column, addressValue, (k, v) => addressValue);

+ 1 - 1
src/YSAI.DB/YSAI.DB.csproj

@@ -21,6 +21,6 @@
     <PackageReference Include="System.Data.OracleClient" Version="1.0.8" />
     <PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
     <PackageReference Include="System.Data.SQLite" Version="1.0.118" />
-    <PackageReference Include="YSAI.Core" Version="23.332.13587" />
+    <PackageReference Include="YSAI.Core" Version="23.332.16655" />
   </ItemGroup>
 </Project>

+ 1 - 1
src/YSAI.DaqManage/YSAI.DaqManage.csproj

@@ -7,7 +7,7 @@
   </PropertyGroup>
 	<ItemGroup>
 		<FrameworkReference Include="Microsoft.AspNetCore.App" />
-		<PackageReference Include="YSAI.Core" Version="23.332.13587" />
+		<PackageReference Include="YSAI.Core" Version="23.332.16655" />
 	</ItemGroup>
 
 	<!--<ItemGroup>

+ 2 - 2
src/YSAI.Mewtocol/MewtocolOperate.cs

@@ -213,7 +213,7 @@ namespace YSAI.Mewtocol
                                 }
                             }
                             //数据处理
-                            AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value);
+                            AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                             //数据添加
                             param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);
@@ -328,7 +328,7 @@ namespace YSAI.Mewtocol
                                 }
                             }
                             //数据处理
-                            AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value);
+                            AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                             //数据添加
                             param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);

+ 1 - 1
src/YSAI.Mewtocol/YSAI.Mewtocol.csproj

@@ -17,6 +17,6 @@
   </PropertyGroup>
   <ItemGroup>
     <PackageReference Include="Mewtocol.NET" Version="0.8.1" />
-    <PackageReference Include="YSAI.Core" Version="23.332.13587" />
+    <PackageReference Include="YSAI.Core" Version="23.332.16655" />
   </ItemGroup>
 </Project>

+ 1 - 1
src/YSAI.Mitsubishi/MitsubishiData.cs

@@ -131,7 +131,7 @@ namespace YSAI.Mitsubishi
             /// </summary>
             public string? Address { get; set; }
 
-            public string? Value { get; set; }
+            public object? Value { get; set; }
         }
     }
 }

+ 3 - 3
src/YSAI.Mitsubishi/MitsubishiOperate.cs

@@ -852,7 +852,7 @@ namespace YSAI.Mitsubishi
                                             DValue.Add(new RetValue
                                             {
                                                 Address = $"{dbType}{dbAddress + i * len}",
-                                                Value = BitConverter.ToInt16(bytes, (addressData.count - 1 - i) * len).ToString()
+                                                Value = BitConverter.ToInt16(bytes, (addressData.count - 1 - i) * len)
                                             });
                                         }
                                         Value = DValue.ToJson();
@@ -876,7 +876,7 @@ namespace YSAI.Mitsubishi
                                             DValue.Add(new RetValue
                                             {
                                                 Address = $"{dbType}{dbAddress + i * len}",
-                                                Value = value.ToString()
+                                                Value = value
                                             });
                                         }
                                         Value = DValue.ToJson();
@@ -893,7 +893,7 @@ namespace YSAI.Mitsubishi
                         }
                     }
                     //数据处理
-                    AddressValue addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value);
+                    AddressValue addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);

+ 4 - 1
src/YSAI.Mitsubishi/YSAI.Mitsubishi.csproj

@@ -16,6 +16,9 @@
     <Description>$(DescriptionType):$(DescriptionName) ( $(DescriptionDetails) )</Description>
   </PropertyGroup>
   <ItemGroup>
-    <PackageReference Include="YSAI.Core" Version="23.332.13587" />
+    <PackageReference Include="YSAI.Core" Version="23.332.16655" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\YSAI.Modbus\YSAI.Modbus.csproj" />
   </ItemGroup>
 </Project>

+ 13 - 13
src/YSAI.Modbus/ModbusOperate.cs

@@ -484,7 +484,7 @@ namespace YSAI.Modbus
                             int index = Dvalue.startAddress;
                             foreach (var item in retvalue)
                             {
-                                DValue.Add(new RetValue { Address = index.ToString(), Value = item.ToString() });
+                                DValue.Add(new RetValue { Address = index.ToString(), Value = item });
                                 index++;
                             }
                             Value = DValue.ToJson();
@@ -496,7 +496,7 @@ namespace YSAI.Modbus
                     }
 
                     //数据处理
-                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
@@ -570,7 +570,7 @@ namespace YSAI.Modbus
                             int index = Dvalue.startAddress;
                             foreach (var item in retvalue)
                             {
-                                DValue.Add(new RetValue { Address = index.ToString(), Value = item.ToString() });
+                                DValue.Add(new RetValue { Address = index.ToString(), Value = item });
                                 index++;
                             }
                             Value = DValue.ToJson();
@@ -582,7 +582,7 @@ namespace YSAI.Modbus
                     }
 
                     //数据处理
-                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
@@ -668,7 +668,7 @@ namespace YSAI.Modbus
                         }
                     }
                     //数据处理
-                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
@@ -756,7 +756,7 @@ namespace YSAI.Modbus
                     }
 
                     //数据处理
-                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
@@ -1071,7 +1071,7 @@ namespace YSAI.Modbus
                         }
                     }
                     //数据处理
-                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
@@ -1140,7 +1140,7 @@ namespace YSAI.Modbus
                         }
                     }
                     //数据处理
-                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
@@ -1209,7 +1209,7 @@ namespace YSAI.Modbus
                         }
                     }
                     //数据处理
-                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
@@ -1278,7 +1278,7 @@ namespace YSAI.Modbus
                         }
                     }
                     //数据处理
-                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
@@ -1347,7 +1347,7 @@ namespace YSAI.Modbus
                         }
                     }
                     //数据处理
-                    AddressValue addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                    AddressValue addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
@@ -1416,7 +1416,7 @@ namespace YSAI.Modbus
                         }
                     }
                     //数据处理
-                    AddressValue addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
@@ -1902,7 +1902,7 @@ namespace YSAI.Modbus
                         }
 
                         //数据处理
-                        AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value);
+                        AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(add, Value?.ToString());
                         //数据添加
                         param.AddOrUpdate(add.AddressName, addressValue, (k, v) => addressValue);
                     }

+ 1 - 1
src/YSAI.Modbus/YSAI.Modbus.csproj

@@ -18,6 +18,6 @@
   <ItemGroup>
     <PackageReference Include="NModbus" Version="3.0.81" />
     <PackageReference Include="NModbus.Serial" Version="3.0.81" />
-    <PackageReference Include="YSAI.Core" Version="23.332.13587" />
+    <PackageReference Include="YSAI.Core" Version="23.332.16655" />
   </ItemGroup>
 </Project>

+ 0 - 13
src/YSAI.Omron/OmronData.cs

@@ -181,18 +181,5 @@ namespace YSAI.Omron
             /// </summary>
             public DataType DataType { get; set; }
         }
-
-        /// <summary>
-        /// 只用于连续读取的返回参数
-        /// </summary>
-        public class RetValue
-        {
-            /// <summary>
-            /// 地址
-            /// </summary>
-            public string? Address { get; set; }
-
-            public string? Value { get; set; }
-        }
     }
 }

+ 1 - 1
src/YSAI.Omron/OmronOperate.cs

@@ -759,7 +759,7 @@ namespace YSAI.Omron
                         }
                     }
                     //数据处理
-                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value);
+                    AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                     //数据添加
                     param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);

+ 1 - 1
src/YSAI.Omron/YSAI.Omron.csproj

@@ -16,6 +16,6 @@
     <Description>$(DescriptionType):$(DescriptionName) ( $(DescriptionDetails) )</Description>
   </PropertyGroup>
   <ItemGroup>
-    <PackageReference Include="YSAI.Core" Version="23.332.13587" />
+    <PackageReference Include="YSAI.Core" Version="23.332.16655" />
   </ItemGroup>
 </Project>

+ 1 - 1
src/YSAI.Opc/YSAI.Opc.csproj

@@ -17,7 +17,7 @@
   </PropertyGroup>
   <ItemGroup>
     <PackageReference Include="OPCFoundation.NetStandard.Opc.Ua" Version="1.4.372.76" />
-    <PackageReference Include="YSAI.Core" Version="23.332.13587" />
+    <PackageReference Include="YSAI.Core" Version="23.332.16655" />
   </ItemGroup>
   <!--<ItemGroup>
     <ProjectReference Include="..\YSAI.Core\YSAI.Core.csproj" />

+ 3 - 3
src/YSAI.Opc/da/client/OpcDaClientOperate.cs

@@ -650,7 +650,7 @@ namespace YSAI.Opc.da.client
                                         ConcurrentDictionary<string, AddressValue> param = new ConcurrentDictionary<string, AddressValue>();
 
                                         //处理数据
-                                        AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(addressDetails, item.Value);  //数据
+                                        AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(addressDetails, item.Value?.ToString());  //数据
 
                                         //添加至集合
                                         param.AddOrUpdate(addressDetails.AddressName, addressValue, (k, v) => addressValue);
@@ -832,7 +832,7 @@ namespace YSAI.Opc.da.client
                             object? Value = VAM.Read(item);
 
                             //数据处理
-                            AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(item, Value);
+                            AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                             //数据添加
                             param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);
@@ -856,7 +856,7 @@ namespace YSAI.Opc.da.client
                                 object? Value = itemValue[i].Value;
 
                                 //数据处理
-                                AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(address.AddressArray[i], Value);
+                                AddressValue? addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(address.AddressArray[i], Value?.ToString());
 
                                 //数据添加
                                 param.AddOrUpdate(itemValue[i].ItemName, addressValue, (k, v) => addressValue);

+ 3 - 3
src/YSAI.Opc/da/http/OpcDaHttpOperate.cs

@@ -346,7 +346,7 @@ namespace YSAI.Opc.da.http
                     {
                         object? Value = VAM.Read(addressDetails.AddressName);
 
-                        nodes.TryAdd(addressDetails.AddressName, AddressHandler.ExecuteDispose(addressDetails, Value));
+                        nodes.TryAdd(addressDetails.AddressName, AddressHandler.ExecuteDispose(addressDetails, Value?.ToString()));
                     }
                     else
                     {
@@ -377,13 +377,13 @@ namespace YSAI.Opc.da.http
                                     if (read.ReadGroup)  //直接读取组下面的数据
                                     {
                                         //处理
-                                        nodes.TryAdd(itemvalues.itemname, AddressHandler.ExecuteDispose(addressDetails, Value));
+                                        nodes.TryAdd(itemvalues.itemname, AddressHandler.ExecuteDispose(addressDetails, Value?.ToString()));
                                     }
                                     else  //读取单个节点数据
                                     {
                                         if (addressDetails.AddressName.Equals(itemvalues.itemname))
                                         {
-                                            nodes.TryAdd(itemvalues.itemname, AddressHandler.ExecuteDispose(addressDetails, Value));
+                                            nodes.TryAdd(itemvalues.itemname, AddressHandler.ExecuteDispose(addressDetails, Value?.ToString()));
                                         }
                                     }
                                 }

+ 4 - 4
src/YSAI.Opc/ua/client/OpcUaClientOperate.cs

@@ -1395,8 +1395,8 @@ namespace YSAI.Opc.ua.client
                                 //设置参数
                                 ConcurrentDictionary<string, AddressValue> param = new ConcurrentDictionary<string, AddressValue>();
                                 //处理数据
-                                AddressValue? addressValue = AddressHandler.ExecuteDispose(queueData.addressDetails, value);  //数据
-                                                                                                                              //添加或更新
+                                AddressValue? addressValue = AddressHandler.ExecuteDispose(queueData.addressDetails, value?.ToString());  //数据
+                                                                                                                                          //添加或更新
                                 param.AddOrUpdate(queueData.addressDetails.AddressName, addressValue, (k, v) => addressValue);
 
                                 //响应
@@ -1812,7 +1812,7 @@ namespace YSAI.Opc.ua.client
                         object? Value = VAM.Read(item);
 
                         //数据处理
-                        AddressValue addressValue = AddressHandler.ExecuteDispose(item, Value);
+                        AddressValue addressValue = AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                         //数据添加
                         param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);
@@ -1838,7 +1838,7 @@ namespace YSAI.Opc.ua.client
                             object? Value = read.Results[i];
 
                             //数据处理
-                            AddressValue? addressValue = AddressHandler.ExecuteDispose(addressDetails, Value);
+                            AddressValue? addressValue = AddressHandler.ExecuteDispose(addressDetails, Value?.ToString());
 
                             //数据添加
                             param.AddOrUpdate(addressDetails.AddressName, addressValue, (k, v) => addressValue);

+ 1 - 1
src/YSAI.RelayManage/YSAI.RelayManage.csproj

@@ -9,7 +9,7 @@
 	<ItemGroup>
 		<PackageReference Include="RabbitMQ.Client" Version="6.7.0" />
 		<PackageReference Include="Confluent.Kafka" Version="2.3.0" />
-		<PackageReference Include="YSAI.Core" Version="23.332.13587" />
+		<PackageReference Include="YSAI.Core" Version="23.332.16655" />
 		<FrameworkReference Include="Microsoft.AspNetCore.App" />
 	</ItemGroup>
 

+ 1 - 1
src/YSAI.Siemens/SiemensOperate.cs

@@ -264,7 +264,7 @@ namespace YSAI.Siemens
                         }
 
                         //数据处理
-                        AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value);
+                        AddressValue? addressValue = Core.handler.AddressHandler.ExecuteDispose(item, Value?.ToString());
 
                         //数据添加
                         param.AddOrUpdate(item.AddressName, addressValue, (k, v) => addressValue);

+ 1 - 1
src/YSAI.Siemens/YSAI.Siemens.csproj

@@ -17,6 +17,6 @@
   </PropertyGroup>
   <ItemGroup>
     <PackageReference Include="S7netplus" Version="0.20.0" />
-    <PackageReference Include="YSAI.Core" Version="23.332.13587" />
+    <PackageReference Include="YSAI.Core" Version="23.332.16655" />
   </ItemGroup>
 </Project>

+ 33 - 19
src/YSAI.Test.All/Program.cs

@@ -4,7 +4,6 @@ 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;
 
@@ -27,23 +26,23 @@ List<string> ReadCsv(string path, bool hasTitle)
     return lines;
 }
 
-//启动两个服务端
+////启动两个服务端
 
-Console.WriteLine(MqttServiceOperate.Instance(new MqttServiceData.Basics
-{
-    MaxNumber = 1000,
-    Password = "ysai",
-    UserName = "ysai",
-    Port = 8881
-}).On().ToJson().JsonFormatting());
+//Console.WriteLine(MqttServiceOperate.Instance(new MqttServiceData.Basics
+//{
+//    MaxNumber = 1000,
+//    Password = "ysai",
+//    UserName = "ysai",
+//    Port = 8881
+//}).On().ToJson().JsonFormatting());
 
-Console.WriteLine(MqttServiceOperate.Instance(new MqttServiceData.Basics
-{
-    MaxNumber = 1000,
-    Password = "ysai",
-    UserName = "ysai",
-    Port = 8882
-}).On().ToJson().JsonFormatting());
+//Console.WriteLine(MqttServiceOperate.Instance(new MqttServiceData.Basics
+//{
+//    MaxNumber = 1000,
+//    Password = "ysai",
+//    UserName = "ysai",
+//    Port = 8882
+//}).On().ToJson().JsonFormatting());
 
 
 
@@ -56,6 +55,20 @@ 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)
     {
         //走脚本解析
@@ -63,8 +76,7 @@ for (int i = 0; i < strings.Count; i++)
         {
             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" },
@@ -89,7 +101,7 @@ for (int i = 0; i < strings.Count; i++)
         {
             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" },
@@ -201,6 +213,8 @@ void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
                 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);
                 }
 

+ 1 - 1
src/YSAI.Test.All/YSAI.Test.All.csproj

@@ -9,7 +9,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\YSAI.Mqtt\YSAI.Mqtt.csproj" />
+    <!--<ProjectReference Include="..\YSAI.Mqtt\YSAI.Mqtt.csproj" />-->
     <ProjectReference Include="..\YSAI.Opc\YSAI.Opc.csproj" />
   </ItemGroup>
 

+ 1 - 1
src/YSAI.Test/YSAI.Test.csproj

@@ -17,7 +17,7 @@
       <PrivateAssets>all</PrivateAssets>
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
     </PackageReference>
-	<PackageReference Include="YSAI.Core" Version="23.332.13587" />
+	<PackageReference Include="YSAI.Core" Version="23.332.16655" />
   </ItemGroup>
 
   <ItemGroup>