|
|
@@ -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;
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
|
|
|
|