|
|
@@ -1,40 +1,163 @@
|
|
|
-using YSAI.Redis;
|
|
|
+using System.Collections.Concurrent;
|
|
|
+using YSAI.Log;
|
|
|
+using YSAI.Model.data;
|
|
|
+using YSAI.Model.@enum;
|
|
|
+using YSAI.Opc.ua.client;
|
|
|
using YSAI.Unility;
|
|
|
|
|
|
-RedisOperate redisOperate = RedisOperate.Instance(new RedisData.Basics
|
|
|
+/// <summary>
|
|
|
+/// 读取Csv,返回行集合
|
|
|
+/// </summary>
|
|
|
+/// <param name="path"></param>
|
|
|
+/// <param name="hasTitle"></param>
|
|
|
+/// <returns></returns>
|
|
|
+List<string> ReadCsv(string path, bool hasTitle)
|
|
|
{
|
|
|
- CStr = "127.0.0.1:6379",
|
|
|
- DBI = 0,
|
|
|
- Expiry = 86400000,
|
|
|
- TAG = "Shun:",
|
|
|
- UseTAG = true,
|
|
|
-});
|
|
|
-Console.WriteLine(redisOperate.On().ToJson().JsonFormatting());
|
|
|
-Console.WriteLine(redisOperate.KeyDelete("*"));
|
|
|
-for (int i = 0; i < 100; i++)
|
|
|
-{
|
|
|
- Console.WriteLine(i);
|
|
|
- string xmlstr = new data().ToXml();
|
|
|
- Console.WriteLine(redisOperate.StringSet($"A{i}", new data()));
|
|
|
- Console.WriteLine(redisOperate.StringGet<data>($"A{i}").ToJson());
|
|
|
+ if (!File.Exists(path))
|
|
|
+ return new List<string>();
|
|
|
+
|
|
|
+ var lines = File.ReadAllLines(path).ToList();
|
|
|
+ if (hasTitle)
|
|
|
+ {
|
|
|
+ lines.RemoveAt(0);
|
|
|
+ }
|
|
|
+ return lines;
|
|
|
}
|
|
|
|
|
|
+//RelayOperate relayOperate = RelayOperate.Instance(new RelayData.Basics());
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
+//Thread.Sleep(5000);
|
|
|
|
|
|
-Console.WriteLine(redisOperate.Off().ToJson().JsonFormatting());
|
|
|
|
|
|
|
|
|
-public class data
|
|
|
+
|
|
|
+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)
|
|
|
{
|
|
|
- public double a { get; set; } = new Random().NextDouble();
|
|
|
- public double b { get; set; } = new Random().NextDouble();
|
|
|
- public double c { get; set; } = new Random().NextDouble();
|
|
|
- public double d { get; set; } = new Random().NextDouble();
|
|
|
- public double e { get; set; } = new Random().NextDouble();
|
|
|
- public double f { get; set; } = new Random().NextDouble();
|
|
|
- public double g { get; set; } = new Random().NextDouble();
|
|
|
+ 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(),
|
|
|
+
|
|
|
+ AddressRelayParam = new AddressRelay
|
|
|
+ {
|
|
|
+ ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
|
|
|
+ Topic = $"TEST/{addressD}"
|
|
|
+ }
|
|
|
+ }); ;
|
|
|
}
|
|
|
|
|
|
+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());
|
|
|
+ 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());
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+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.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 YSAI.Redis;
|
|
|
+//using YSAI.Unility;
|
|
|
+
|
|
|
+//RedisOperate redisOperate = RedisOperate.Instance(new RedisData.Basics
|
|
|
+//{
|
|
|
+// CStr = "127.0.0.1:6379",
|
|
|
+// DBI = 0,
|
|
|
+// Expiry = 86400000,
|
|
|
+// TAG = "Shun:",
|
|
|
+// UseTAG = true,
|
|
|
+//});
|
|
|
+//Console.WriteLine(redisOperate.On().ToJson().JsonFormatting());
|
|
|
+//Console.WriteLine(redisOperate.KeyDelete("*"));
|
|
|
+//for (int i = 0; i < 100; i++)
|
|
|
+//{
|
|
|
+// Console.WriteLine(i);
|
|
|
+// string xmlstr = new data().ToXml();
|
|
|
+// Console.WriteLine(redisOperate.StringSet($"A{i}", new data()));
|
|
|
+// Console.WriteLine(redisOperate.StringGet<data>($"A{i}").ToJson());
|
|
|
+//}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//Console.WriteLine(redisOperate.Off().ToJson().JsonFormatting());
|
|
|
+
|
|
|
+
|
|
|
+//public class data
|
|
|
+//{
|
|
|
+// public double a { get; set; } = new Random().NextDouble();
|
|
|
+// public double b { get; set; } = new Random().NextDouble();
|
|
|
+// public double c { get; set; } = new Random().NextDouble();
|
|
|
+// public double d { get; set; } = new Random().NextDouble();
|
|
|
+// public double e { get; set; } = new Random().NextDouble();
|
|
|
+// public double f { get; set; } = new Random().NextDouble();
|
|
|
+// public double g { get; set; } = new Random().NextDouble();
|
|
|
+//}
|
|
|
+
|
|
|
|
|
|
|
|
|
|