Browse Source

1. 展示特性中新增详细提示字段,方面展示时了解与指导此属性的详情
2. Serilog 更新至最新版本

Shun 2 years ago
parent
commit
d9a1a4b8d2

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

@@ -5,7 +5,7 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-    <Version>1.0.0.93</Version>
+    <Version>1.0.0.94</Version>
     <Authors>Shun</Authors>
     <Company>YSAI</Company>
     <Product>SCADA</Product>
@@ -16,7 +16,7 @@
 		<PackageReference Include="StackExchange.Redis" Version="2.7.4" />
 		<PackageReference Include="Microsoft.ClearScript" Version="7.4.4" />
 		<PackageReference Include="System.IO.Ports" Version="7.0.0" />
-		<PackageReference Include="YSAI.Log" Version="1.0.0.13" />
+		<PackageReference Include="YSAI.Log" Version="1.0.0.14" />
 		<PackageReference Include="YSAI.Unility" Version="1.0.0.30" />
 	</ItemGroup>
 

+ 8 - 1
src/YSAI.Core/attribute/DisplayAttribute.cs

@@ -16,12 +16,14 @@ namespace YSAI.Core.attribute
         /// <param name="Show">是否显示</param>
         /// <param name="MustFillIn">必须填写</param>
         /// <param name="DataCate">数据类型</param>
-        public DisplayAttribute(bool Use, bool Show, bool MustFillIn, ParamStructure.dataCate DataCate)
+        /// <param name="DetailsTips">详细提示</param>
+        public DisplayAttribute(bool Use, bool Show, bool MustFillIn, ParamStructure.dataCate DataCate, string DetailsTips = null)
         {
             this.Use = Use;
             this.Show = Show;
             this.DataCate = DataCate;
             this.MustFillIn = MustFillIn;
+            this.DetailsTips = DetailsTips;
         }
 
         /// <summary>
@@ -43,6 +45,11 @@ namespace YSAI.Core.attribute
         /// </summary>
         public bool MustFillIn { get; set; }
 
+        /// <summary>
+        /// 详细提示
+        /// </summary>
+        public string DetailsTips { get; set; }
+
         /// <summary>
         /// 数据类型
         /// </summary>

+ 5 - 0
src/YSAI.Core/data/ParamStructure.cs

@@ -131,6 +131,11 @@ namespace YSAI.Core.data
             /// </summary>
             public bool MustFillIn { get; set; }
 
+            /// <summary>
+            /// 详细提示
+            /// </summary>
+            public string? DetailsTips { get; set; }
+
             /// <summary>
             /// 正则表达式
             /// </summary>

+ 2 - 0
src/YSAI.Core/handler/ParamHandler.cs

@@ -109,6 +109,7 @@ namespace YSAI.Core.handler
                             Use = displayAttribute?.Use ?? false,
                             MustFillIn = displayAttribute?.MustFillIn ?? false,
                             DataCate = displayAttribute?.DataCate ?? null,
+                            DetailsTips = displayAttribute?.DetailsTips ?? null,
 
                             Regex = verifyAttribute?.Regex ?? null,
                             FailTips = verifyAttribute?.FailTips ?? null,
@@ -221,6 +222,7 @@ namespace YSAI.Core.handler
                                 Use = displayAttribute?.Use ?? false,
                                 MustFillIn = displayAttribute?.MustFillIn ?? false,
                                 DataCate = displayAttribute?.DataCate ?? null,
+                                DetailsTips = displayAttribute?.DetailsTips ?? null,
 
                                 Regex = verifyAttribute?.Regex ?? null,
                                 FailTips = verifyAttribute?.FailTips ?? null,

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

@@ -13,7 +13,7 @@
   </PropertyGroup>
 
 	<ItemGroup>
-		<PackageReference Include="Dapper" Version="2.1.15" />
+		<PackageReference Include="Dapper" Version="2.1.21" />
 		<PackageReference Include="MySql.Data" Version="8.2.0" />
 		<PackageReference Include="System.Data.OracleClient" Version="1.0.8" />
 		<PackageReference Include="System.Data.SqlClient" Version="4.8.5" />

+ 2 - 2
src/YSAI.Log/YSAI.Log.csproj

@@ -5,14 +5,14 @@
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
 	<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-	<Version>1.0.0.13</Version>
+	<Version>1.0.0.14</Version>
 	<Authors>Shun</Authors>
     <Company>YSAI</Company>
     <Product>SCADA</Product>
 	  <GenerateDocumentationFile>True</GenerateDocumentationFile>
   </PropertyGroup>
 <ItemGroup>
-		<PackageReference Include="Serilog" Version="3.1.0" />
+		<PackageReference Include="Serilog" Version="3.1.1" />
 		<PackageReference Include="Serilog.Sinks.Console" Version="5.0.0" />
 		<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
 	</ItemGroup>

+ 99 - 102
src/YSAI.Test.All/Program.cs

@@ -407,12 +407,10 @@
 //using System.Collections.Concurrent;
 //using YSAI.Core.data;
 //using YSAI.Core.@enum;
-//using YSAI.Core.subscribe.core;
-//using YSAI.Log;
-//using YSAI.S7.client;
+//using YSAI.S7;
 //using YSAI.Unility;
 
-//S7ClientOperate s7ClientOperate = S7ClientOperate.Instance(new S7ClientData.Basics()
+//S7Operate s7ClientOperate = S7Operate.Instance(new S7Data.Basics()
 //{
 //    Ip = "192.168.2.20",
 //    Port = 102,
@@ -435,7 +433,7 @@
 //address.AddressArray.Add(new AddressDetails()
 //{
 //    AddressName = "DB71.DBD4",
-//    AddressDataType = YSAI.Core.@enum.DataType.Float,
+//    AddressDataType = YSAI.Core.@enum.DataType.String,
 //    AddressType = AddressType.Reality
 //});
 
@@ -452,19 +450,18 @@
 //}
 
 ////订阅
-//s7ClientOperate.OnEvent += S7ClientOperate_OnEvent;
-//s7ClientOperate.Subscribe(address);
+////s7ClientOperate.OnEvent += S7ClientOperate_OnEvent;
+////s7ClientOperate.Subscribe(address);
 
 //while (true)
 //{
-//    float value = float.Parse(Console.ReadLine());
+//    string value = Console.ReadLine();
 //    //写入
-//    ConcurrentDictionary<string, float> keyValuePairs = new ConcurrentDictionary<string, float>();
+//    ConcurrentDictionary<string, string> keyValuePairs = new ConcurrentDictionary<string, string>();
 //    keyValuePairs.TryAdd("DB71.DBD4", value);
 //    operateResult = s7ClientOperate.Write(keyValuePairs);
 //    Console.WriteLine(operateResult.Message);
 
-//    SubscribeService<AddressValue> subscribeService = SubscribeService<AddressValue>.Instance();
 //    Console.WriteLine();
 //}
 
@@ -720,104 +717,104 @@
 //    public string Description { get; set; }
 //}
 
-using System.Collections.Concurrent;
-using YSAI.Core.data;
-using YSAI.Log;
-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 = JsonTool.StringToJsonEntity<Address>(FileTool.FileToString("C:\\Users\\Shun\\Desktop\\[6032]Node_Address 202310120854271486.json"));
-
-Address address = new Address();
-address.SN = Guid.NewGuid().ToString();
-address.CreationTime = DateTime.Now;
-address.AddressArray = new List<AddressDetails>();
-List<string> strings = ReadCsv("C:\\Users\\Shun\\Desktop\\6022.csv", true);
-foreach (var item in strings)
-{
-    string[] str = item.Split(",");
-    string addressD = str[0].Replace("\"", "");
-    address.AddressArray.Add(new AddressDetails()
-    {
-        AddressName = $"ns=2;s=6022.6022.{addressD}",
-        SN = Guid.NewGuid().ToString()
-    });
-}
+//using System.Collections.Concurrent;
+//using YSAI.Core.data;
+//using YSAI.Log;
+//using YSAI.Opc.ua.client;
+//using YSAI.Unility;
 
-//address.AddressArray.Add(new AddressDetails()
+///// <summary>
+///// 读取Csv,返回行集合
+///// </summary>
+///// <param name="path"></param>
+///// <param name="hasTitle"></param>
+///// <returns></returns>
+//List<string> ReadCsv(string path, bool hasTitle)
 //{
-//    AddressName = $"ns=2;s=6022.6022.LAP5_DP2113_AUTO",
-//    SN = Guid.NewGuid().ToString()
-//});
+//    if (!File.Exists(path))
+//        return new List<string>();
 
-//address.AddressArray.Add(new AddressDetails()
+//    var lines = File.ReadAllLines(path).ToList();
+//    if (hasTitle)
+//    {
+//        lines.RemoveAt(0);
+//    }
+//    return lines;
+//}
+
+////Address address = JsonTool.StringToJsonEntity<Address>(FileTool.FileToString("C:\\Users\\Shun\\Desktop\\[6032]Node_Address 202310120854271486.json"));
+
+//Address address = new Address();
+//address.SN = Guid.NewGuid().ToString();
+//address.CreationTime = DateTime.Now;
+//address.AddressArray = new List<AddressDetails>();
+//List<string> strings = ReadCsv("C:\\Users\\Shun\\Desktop\\6022.csv", true);
+//foreach (var item in strings)
 //{
-//    AddressName = $"ns=2;s=6022.6022.LAP5_DP2112_STATE_RUN",
-//    SN = Guid.NewGuid().ToString()
+//    string[] str = item.Split(",");
+//    string addressD = str[0].Replace("\"", "");
+//    address.AddressArray.Add(new AddressDetails()
+//    {
+//        AddressName = $"ns=2;s=6022.6022.{addressD}",
+//        SN = Guid.NewGuid().ToString()
+//    });
+//}
+
+////address.AddressArray.Add(new AddressDetails()
+////{
+////    AddressName = $"ns=2;s=6022.6022.LAP5_DP2113_AUTO",
+////    SN = Guid.NewGuid().ToString()
+////});
+
+////address.AddressArray.Add(new AddressDetails()
+////{
+////    AddressName = $"ns=2;s=6022.6022.LAP5_DP2112_STATE_RUN",
+////    SN = Guid.NewGuid().ToString()
+////});
+
+//OpcUaClientOperate opcUaClientOperate = OpcUaClientOperate.Instance(new OpcUaClientData.Basics
+//{
+//    ServerUrl = "opc.tcp://192.168.2.220:49320",
+//    CustomName = "YSAI 性能测试",
+//    TaskNumber = 10,
+//    TaskHandleInterval = 1,
+//    SubscribeSingleGroupMaxCount = 1000,
 //});
+//Console.WriteLine(opcUaClientOperate.On().ToJson().JsonFormatting());
+//opcUaClientOperate.OnEvent += OpcUaClientOperate_OnEvent;
 
-OpcUaClientOperate opcUaClientOperate = OpcUaClientOperate.Instance(new OpcUaClientData.Basics
-{
-    ServerUrl = "opc.tcp://192.168.2.220:49320",
-    CustomName = "YSAI 性能测试",
-    TaskNumber = 10,
-    TaskHandleInterval = 1,
-    SubscribeSingleGroupMaxCount = 1000,
-});
-Console.WriteLine(opcUaClientOperate.On().ToJson().JsonFormatting());
-opcUaClientOperate.OnEvent += OpcUaClientOperate_OnEvent;
-
-while (true)
-{
-    Console.ReadLine();
-    OperateResult operateResult = opcUaClientOperate.Subscribe(address);
-    Console.WriteLine(operateResult.ToJson().JsonFormatting());
-}
-
-void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
-{
-    switch (e.RType)
-    {
-        case YSAI.Core.@enum.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.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;
-    }
-}
+//while (true)
+//{
+//    Console.ReadLine();
+//    OperateResult operateResult = opcUaClientOperate.Subscribe(address);
+//    Console.WriteLine(operateResult.ToJson().JsonFormatting());
+//}
+
+//void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
+//{
+//    switch (e.RType)
+//    {
+//        case YSAI.Core.@enum.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.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;
+//    }
+//}
 
 //using Opc.Ua;
 //using YSAI.Core.data;

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

@@ -15,6 +15,7 @@
   <ItemGroup>
     <ProjectReference Include="..\YSAI.NetMQ\YSAI.NetMQ.csproj" />
     <ProjectReference Include="..\YSAI.Opc\YSAI.Opc.csproj" />
+    <ProjectReference Include="..\YSAI.S7\YSAI.S7.csproj" />
   </ItemGroup>
 
 

+ 118 - 117
src/YSAI.Test.Console/Program.cs

@@ -1,75 +1,75 @@
 
-using YSAI.AllenBradley;
-using YSAI.Beckhoff;
-using YSAI.Can;
-using YSAI.Core.data;
-using YSAI.DB;
-using YSAI.Kafka;
-using YSAI.Log;
-using YSAI.Mewtocol;
-using YSAI.Mitsubishi;
-using YSAI.Modbus;
-using YSAI.Mqtt.client;
-using YSAI.NetMQ;
-using YSAI.Netty.client;
-using YSAI.Omron;
-using YSAI.Opc.da.client;
-using YSAI.Opc.da.http;
-using YSAI.Opc.ua.client;
-using YSAI.RabbitMQ;
-using YSAI.S7;
-using YSAI.Unility;
+//using YSAI.AllenBradley;
+//using YSAI.Beckhoff;
+//using YSAI.Can;
+//using YSAI.Core.data;
+//using YSAI.DB;
+//using YSAI.Kafka;
+//using YSAI.Log;
+//using YSAI.Mewtocol;
+//using YSAI.Mitsubishi;
+//using YSAI.Modbus;
+//using YSAI.Mqtt.client;
+//using YSAI.NetMQ;
+//using YSAI.Netty.client;
+//using YSAI.Omron;
+//using YSAI.Opc.da.client;
+//using YSAI.Opc.da.http;
+//using YSAI.Opc.ua.client;
+//using YSAI.RabbitMQ;
+//using YSAI.S7;
+//using YSAI.Unility;
 
-OperateResult operateResult = new BeckhoffOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"BeckhoffOperate.log");
+//OperateResult operateResult = new BeckhoffOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"BeckhoffOperate.log");
 
-operateResult = new CanOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"CanOperate.log");
+//operateResult = new CanOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"CanOperate.log");
 
-operateResult = new DBOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"DBOperate.log");
+//operateResult = new DBOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"DBOperate.log");
 
-operateResult = new ModbusOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"ModbusOperate.log");
+//operateResult = new ModbusOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"ModbusOperate.log");
 
-operateResult = new OpcUaClientOperate().GetParam();
-LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"OpcUaClientOperate.log");
+//operateResult = new OpcUaClientOperate().GetParam();
+//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"OpcUaClientOperate.log");
 
-operateResult = new OpcDaClientOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"OpcDaClientOperate.log");
+//operateResult = new OpcDaClientOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"OpcDaClientOperate.log");
 
-operateResult = new OpcDaHttpOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"OpcDaHttpOperate.log");
+//operateResult = new OpcDaHttpOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"OpcDaHttpOperate.log");
 
-operateResult = new S7Operate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"S7Operate.log");
+//operateResult = new S7Operate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"S7Operate.log");
 
-operateResult = new KafkaOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"KafkaOperate.log");
+//operateResult = new KafkaOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"KafkaOperate.log");
 
-operateResult = new MqttClientOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"MqttClientOperate.log");
+//operateResult = new MqttClientOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"MqttClientOperate.log");
 
-operateResult = new NettyClientOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"NettyClientOperate.log");
+//operateResult = new NettyClientOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"NettyClientOperate.log");
 
-operateResult = new RabbitMQOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"RabbitMQOperate.log");
+//operateResult = new RabbitMQOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"RabbitMQOperate.log");
 
-operateResult = new MitsubishiOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"MitsubishiOperate.log");
+//operateResult = new MitsubishiOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"MitsubishiOperate.log");
 
-operateResult = new OmronOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"OmronOperate.log");
+//operateResult = new OmronOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"OmronOperate.log");
 
-operateResult = new NetMQOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"NetMQOperate.log");
+//operateResult = new NetMQOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"NetMQOperate.log");
 
-operateResult = new AllenBradleyOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"AllenBradleyOperate.log");
+//operateResult = new AllenBradleyOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"AllenBradleyOperate.log");
 
-operateResult = new MewtocolOperate().GetParam();
-//LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"MewtocolOperate.log");
+//operateResult = new MewtocolOperate().GetParam();
+////LogHelper.Verbose(operateResult.RData.ToJson().JsonFormatting(), $"MewtocolOperate.log");
 
 //using System.Collections.Concurrent;
 //using YSAI.Beckhoff;
@@ -363,71 +363,72 @@ operateResult = new MewtocolOperate().GetParam();
 //    LogHelper.Info(result.ToJson().JsonFormatting());
 //}
 
-//using S7.Net;
-//using System.Collections.Concurrent;
-//using YSAI.Core.data;
-//using YSAI.Core.@enum;
-//using YSAI.S7;
-//using YSAI.Unility;
-
-//S7Operate s7ClientOperate = S7Operate.Instance(new S7Data.Basics()
-//{
-//    Ip = "192.168.2.20",
-//    Port = 102,
-//    Rack = 0,
-//    Slot = 1,
-//    S7CpuType = CpuType.S71200,
-//    ChangeOut = true,
-//    HandleInterval = 1000,
-//    SN = Guid.NewGuid().ToString()
-//}); ;
-
-////打开
-//OperateResult operateResult = s7ClientOperate.On();
-//Console.WriteLine(operateResult.Message);
-
-////点位地址
-//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 = "DB71.DBD4",
-//    AddressDataType = YSAI.Core.@enum.DataType.Uint,
-//    AddressType = AddressType.Reality
-//});
-
-////读取
-//operateResult = s7ClientOperate.Read(address);
-//Console.WriteLine(operateResult.Message);
-//if (operateResult.State)
-//{
-//    foreach (var item in operateResult.RData as ConcurrentDictionary<string, AddressValue>)
-//    {
-//        Console.WriteLine(item.Key);
-//        Console.WriteLine(item.Value.Value);
-//    }
-//}
-
-////订阅
-//s7ClientOperate.OnEvent += S7ClientOperate_OnEvent;
-//s7ClientOperate.Subscribe(address);
+using S7.Net;
+using System.Collections.Concurrent;
+using YSAI.Core.data;
+using YSAI.Core.@enum;
+using YSAI.S7;
+using YSAI.Unility;
 
-//while (true)
-//{
-//    string value = Console.ReadLine();
-//    //写入
-//    ConcurrentDictionary<string, uint> keyValuePairs = new ConcurrentDictionary<string, uint>();
-//    keyValuePairs.TryAdd("DB71.DBD4", string.IsNullOrWhiteSpace(value) ? uint.MaxValue : uint.Parse(value));
-//    operateResult = s7ClientOperate.Write(keyValuePairs);
-//    Console.WriteLine(operateResult.Message);
-//}
+S7Operate s7ClientOperate = S7Operate.Instance(new S7Data.Basics()
+{
+    Ip = "192.168.2.20",
+    Port = 102,
+    Rack = 0,
+    Slot = 1,
+    S7CpuType = CpuType.S71200,
+    ChangeOut = true,
+    HandleInterval = 1000,
+    SN = Guid.NewGuid().ToString()
+}); ;
 
-//void S7ClientOperate_OnEvent(object? sender, EventResult e)
-//{
-//    Console.WriteLine(e.ToJson());
-//}
+//打开
+OperateResult operateResult = s7ClientOperate.On();
+Console.WriteLine(operateResult.Message);
+
+//点位地址
+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 = "DB71.DBD4",
+    AddressDataType = YSAI.Core.@enum.DataType.String,
+    AddressType = AddressType.Reality
+});
+
+//读取
+operateResult = s7ClientOperate.Read(address);
+Console.WriteLine(operateResult.Message);
+if (operateResult.State)
+{
+    foreach (var item in operateResult.RData as ConcurrentDictionary<string, AddressValue>)
+    {
+        Console.WriteLine(item.Key);
+        Console.WriteLine(item.Value.Value);
+    }
+}
+
+//订阅
+s7ClientOperate.OnEvent += S7ClientOperate_OnEvent;
+s7ClientOperate.Subscribe(address);
+
+while (true)
+{
+    string value = Console.ReadLine();
+    //写入
+    ConcurrentDictionary<string, string> keyValuePairs = new ConcurrentDictionary<string, string>();
+    //keyValuePairs.TryAdd("DB71.DBD4", string.IsNullOrWhiteSpace(value) ? uint.MaxValue : uint.Parse(value));
+    keyValuePairs.TryAdd("DB71.DBD4", value);
+    operateResult = s7ClientOperate.Write(keyValuePairs);
+    Console.WriteLine(operateResult.Message);
+}
+
+void S7ClientOperate_OnEvent(object? sender, EventResult e)
+{
+    Console.WriteLine(e.ToJson());
+}
 
 //WsServiceOperate wsServiceOperate = WsServiceOperate.Instance(new WsServiceData.Basics
 //{

+ 24 - 47
src/YSAI.Test.Service/Program.cs

@@ -1,8 +1,5 @@
-using System.Collections.Concurrent;
-using YSAI.AllenBradley;
-using YSAI.Core.data;
-using YSAI.Core.@enum;
-using YSAI.Test.Service.Servers.PLC;
+using S7.Net;
+using YSAI.S7;
 using YSAI.Unility;
 
 namespace YSAI.Test.Service
@@ -11,54 +8,34 @@ namespace YSAI.Test.Service
     {
         static void Main(string[] args)
         {
-            AllenBradleyServer allenBradleyServer = new AllenBradleyServer(6666);
-            allenBradleyServer.Start();
-
-
-
-            AllenBradleyOperate allenBradleyOperate = AllenBradleyOperate.Instance(new AllenBradleyData.Basics
+            S7Operate s7Operate = S7Operate.Instance(new S7Data.Basics()
             {
-                Ip = "127.0.0.1",
-                Port = 6666,
-                TaskHandleInterval = 1
-            }); ;
-            Console.WriteLine(allenBradleyOperate.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 = "A1",
-                AddressDataType = YSAI.Core.@enum.DataType.Float,
-                AddressType = AddressType.Reality
+                Ip = "192.168.2.20",
+                Port = 102,
+                Rack = 0,
+                Slot = 1,
+                S7CpuType = CpuType.S71200,
+                ChangeOut = true,
+                HandleInterval = 1000,
+                SN = Guid.NewGuid().ToString()
             });
+            Console.WriteLine(s7Operate.On().ToJson().JsonFormatting());
 
-            allenBradleyOperate.OnEvent += AllenBradleyOperate_OnEvent;
-            Console.WriteLine(allenBradleyOperate.Subscribe(address).ToJson().JsonFormatting());
-
-            while (true)
+            s7Operate = S7Operate.Instance(new S7Data.Basics
             {
-                string value = Console.ReadLine();
-                ConcurrentDictionary<string, float> keyValuePairs = new ConcurrentDictionary<string, float>();
-                keyValuePairs.TryAdd("A1", string.IsNullOrWhiteSpace(value) ? float.Parse(new Random().NextDouble().ToString()) : float.Parse(value));
-                Console.WriteLine(allenBradleyOperate.Write(keyValuePairs).ToJson().JsonFormatting());
-            }
+                Ip = "192.168.2.20",
+                Port = 102,
+                Rack = 0,
+                Slot = 1,
+                S7CpuType = CpuType.S71200,
+                ChangeOut = true,
+                HandleInterval = 1000,
+                SN = Guid.NewGuid().ToString()
+            });
+            Console.WriteLine(s7Operate.On().ToJson().JsonFormatting());
 
         }
 
-        private static void AllenBradleyOperate_OnEvent(object? sender, EventResult e)
-        {
-            Console.WriteLine(e.ToJson());
-        }
+
     }
 }

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

@@ -13,7 +13,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\YSAI.AllenBradley\YSAI.AllenBradley.csproj" />
+    <ProjectReference Include="..\YSAI.S7\YSAI.S7.csproj" />
   </ItemGroup>
 
 </Project>