|
|
@@ -6,123 +6,143 @@ using YSAI.Core.script;
|
|
|
using YSAI.DaqManage;
|
|
|
using YSAI.Mqtt.client;
|
|
|
using YSAI.Mqtt.service.websocket;
|
|
|
+using YSAI.Opc.ua.client;
|
|
|
using YSAI.RelayManage;
|
|
|
using YSAI.Unility;
|
|
|
|
|
|
-int[] ints = { 8881, 8882 };
|
|
|
-foreach (var item in ints)
|
|
|
+
|
|
|
+OpcUaClientData.Basics opcUaClientData = new OpcUaClientData.Basics()
|
|
|
{
|
|
|
- MqttWebSocketServiceOperate mqttWebSocketServiceOperate = MqttWebSocketServiceOperate.Instance(new MqttWebSocketServiceData.Basics()
|
|
|
- {
|
|
|
- Port = item,
|
|
|
- HttpPort = ($"1{item.ToString()}").ToInt(),
|
|
|
- LoginID = "ysai",
|
|
|
- LoginPassword = "ysai",
|
|
|
- Uri = "ysai"
|
|
|
- });
|
|
|
- mqttWebSocketServiceOperate.On();
|
|
|
-}
|
|
|
+ Name="ysai",
|
|
|
+ Password="ysai",
|
|
|
+ ServerUrl= "opc.tcp://127.0.0.1:8866/Opc.Ua.Service",
|
|
|
+ SN="OPCUA1",
|
|
|
+ UserName="ysai"
|
|
|
+};
|
|
|
|
|
|
+OpcUaClientOperate opcUaClientOperate = OpcUaClientOperate.Instance(opcUaClientData);
|
|
|
|
|
|
-DaqManageOperate manageOperate = new DaqManageOperate();
|
|
|
-manageOperate.OnEvent += DaqEvent;
|
|
|
+OperateResult operateResult = opcUaClientOperate.On();
|
|
|
|
|
|
-AddressHandler.RelayEventRegister(RelayEvent);
|
|
|
|
|
|
-while (manageOperate != null)
|
|
|
-{
|
|
|
- Console.Read();
|
|
|
- //添加订阅
|
|
|
- Address address = new Address();
|
|
|
- address.AddressArray = new List<AddressDetails>()
|
|
|
- {
|
|
|
- new AddressDetails()
|
|
|
- {
|
|
|
- AddressName = "a.a.a",
|
|
|
- AddressDataType = DataType.Bool,
|
|
|
- AddressDescribe = "一个动态的布尔类型",
|
|
|
- AddressAnotherName = "test",
|
|
|
- AddressPropertyName = "aaa",
|
|
|
- AddressType = AddressType.Reality
|
|
|
- },
|
|
|
- new AddressDetails()
|
|
|
- {
|
|
|
- AddressName = "a.a.h",
|
|
|
- AddressDataType = DataType.String,
|
|
|
- AddressDescribe = "一个动态的字符串类型",
|
|
|
- AddressAnotherName = "test",
|
|
|
- AddressPropertyName = "aah",
|
|
|
- AddressType = AddressType.Reality,
|
|
|
- AddressParseParam = new AddressParse()
|
|
|
- {
|
|
|
- ParseType = ParseType.ScriptAnalysis,
|
|
|
- Script = new ScriptData.Basics()
|
|
|
- {
|
|
|
- ScriptCode = @"function Convert(value)
|
|
|
- {
|
|
|
- return '这是脚本测试,传入的参数是:' + value;
|
|
|
- }",
|
|
|
- ScriptFunction = "Convert",
|
|
|
- ScriptType = ScriptData.ScriptType.JavaScript
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- new AddressDetails()
|
|
|
- {
|
|
|
- AddressName = "a.a.g",
|
|
|
- AddressDataType = DataType.Double,
|
|
|
- AddressDescribe = "一个动态的浮点类型",
|
|
|
- AddressAnotherName = "test",
|
|
|
- AddressPropertyName = "aag",
|
|
|
- AddressType = AddressType.Reality,
|
|
|
- AddressParseParam = new AddressParse()
|
|
|
- {
|
|
|
- ParseType = ParseType.ScriptAnalysis,
|
|
|
- Script = new ScriptData.Basics()
|
|
|
- {
|
|
|
- ScriptCode = @"function Convert(value)
|
|
|
- {
|
|
|
- return value*1000;
|
|
|
- }",
|
|
|
- ScriptFunction = "Convert",
|
|
|
- ScriptType = ScriptData.ScriptType.JavaScript
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- new AddressDetails()
|
|
|
- {
|
|
|
- AddressName = "OPCDA_VirtualAddress",
|
|
|
- AddressDataType =DataType.String,
|
|
|
- AddressDescribe = "虚拟地址",
|
|
|
- AddressAnotherName = "test",
|
|
|
- AddressPropertyName = "OPCDA_VirtualAddress",
|
|
|
- AddressType = AddressType.Virtual
|
|
|
- },
|
|
|
- new AddressDetails()
|
|
|
- {
|
|
|
- AddressName = "OPCDA_VirtualDynamicAddress",
|
|
|
- AddressDataType = DataType.String,
|
|
|
- AddressDescribe = "虚拟动态地址",
|
|
|
- AddressAnotherName = "test",
|
|
|
- AddressPropertyName = "OPCDA_VirtualDynamicAddress",
|
|
|
- AddressType =AddressType.VirtualDynamic
|
|
|
- }
|
|
|
- };
|
|
|
- OperateResult operateResult = manageOperate.Subscribe(address, $"YSAI.Opc.da.client.OpcDaClientOperate.OPCDA1");
|
|
|
- Console.WriteLine(operateResult.Message);
|
|
|
-}
|
|
|
+//FileTool.StringToFile("config/YSAI.Opc.ua.client.OpcUaClientReadController.OPCUA1.Daq.Config.json", opcUaClientData.ToJson().JsonFormatting());
|
|
|
|
|
|
+Console.WriteLine();
|
|
|
|
|
|
-void RelayEvent(object? sender, object e)
|
|
|
-{
|
|
|
- EventResult? result = JsonTool.StringToJsonEntity<EventResult>(e.ToJson());
|
|
|
- Console.ForegroundColor = ConsoleColor.Red;
|
|
|
- Console.WriteLine(result.Message);
|
|
|
-}
|
|
|
-void DaqEvent(object? sender, YSAI.Core.data.EventResult e)
|
|
|
-{
|
|
|
- if (e.Message == "点位数据更新")
|
|
|
- return;
|
|
|
- Console.ForegroundColor = ConsoleColor.Green;
|
|
|
- Console.WriteLine(e.Message);
|
|
|
-}
|
|
|
+//int[] ints = { 8881, 8882 };
|
|
|
+//foreach (var item in ints)
|
|
|
+//{
|
|
|
+// MqttWebSocketServiceOperate mqttWebSocketServiceOperate = MqttWebSocketServiceOperate.Instance(new MqttWebSocketServiceData.Basics()
|
|
|
+// {
|
|
|
+// Port = item,
|
|
|
+// HttpPort = ($"1{item.ToString()}").ToInt(),
|
|
|
+// LoginID = "ysai",
|
|
|
+// LoginPassword = "ysai",
|
|
|
+// Uri = "ysai"
|
|
|
+// });
|
|
|
+// mqttWebSocketServiceOperate.On();
|
|
|
+//}
|
|
|
+
|
|
|
+
|
|
|
+//DaqManageOperate manageOperate = new DaqManageOperate();
|
|
|
+//manageOperate.OnEvent += DaqEvent;
|
|
|
+
|
|
|
+//AddressHandler.RelayEventRegister(RelayEvent);
|
|
|
+
|
|
|
+//while (manageOperate != null)
|
|
|
+//{
|
|
|
+// Console.Read();
|
|
|
+// //添加订阅
|
|
|
+// Address address = new Address();
|
|
|
+// address.AddressArray = new List<AddressDetails>()
|
|
|
+// {
|
|
|
+// new AddressDetails()
|
|
|
+// {
|
|
|
+// AddressName = "a.a.a",
|
|
|
+// AddressDataType = DataType.Bool,
|
|
|
+// AddressDescribe = "一个动态的布尔类型",
|
|
|
+// AddressAnotherName = "test",
|
|
|
+// AddressPropertyName = "aaa",
|
|
|
+// AddressType = AddressType.Reality
|
|
|
+// },
|
|
|
+// new AddressDetails()
|
|
|
+// {
|
|
|
+// AddressName = "a.a.h",
|
|
|
+// AddressDataType = DataType.String,
|
|
|
+// AddressDescribe = "一个动态的字符串类型",
|
|
|
+// AddressAnotherName = "test",
|
|
|
+// AddressPropertyName = "aah",
|
|
|
+// AddressType = AddressType.Reality,
|
|
|
+// AddressParseParam = new AddressParse()
|
|
|
+// {
|
|
|
+// ParseType = ParseType.ScriptAnalysis,
|
|
|
+// Script = new ScriptData.Basics()
|
|
|
+// {
|
|
|
+// ScriptCode = @"function Convert(value)
|
|
|
+// {
|
|
|
+// return '这是脚本测试,传入的参数是:' + value;
|
|
|
+// }",
|
|
|
+// ScriptFunction = "Convert",
|
|
|
+// ScriptType = ScriptData.ScriptType.JavaScript
|
|
|
+// }
|
|
|
+// }
|
|
|
+// },
|
|
|
+// new AddressDetails()
|
|
|
+// {
|
|
|
+// AddressName = "a.a.g",
|
|
|
+// AddressDataType = DataType.Double,
|
|
|
+// AddressDescribe = "一个动态的浮点类型",
|
|
|
+// AddressAnotherName = "test",
|
|
|
+// AddressPropertyName = "aag",
|
|
|
+// AddressType = AddressType.Reality,
|
|
|
+// AddressParseParam = new AddressParse()
|
|
|
+// {
|
|
|
+// ParseType = ParseType.ScriptAnalysis,
|
|
|
+// Script = new ScriptData.Basics()
|
|
|
+// {
|
|
|
+// ScriptCode = @"function Convert(value)
|
|
|
+// {
|
|
|
+// return value*1000;
|
|
|
+// }",
|
|
|
+// ScriptFunction = "Convert",
|
|
|
+// ScriptType = ScriptData.ScriptType.JavaScript
|
|
|
+// }
|
|
|
+// }
|
|
|
+// },
|
|
|
+// new AddressDetails()
|
|
|
+// {
|
|
|
+// AddressName = "OPCDA_VirtualAddress",
|
|
|
+// AddressDataType =DataType.String,
|
|
|
+// AddressDescribe = "虚拟地址",
|
|
|
+// AddressAnotherName = "test",
|
|
|
+// AddressPropertyName = "OPCDA_VirtualAddress",
|
|
|
+// AddressType = AddressType.Virtual
|
|
|
+// },
|
|
|
+// new AddressDetails()
|
|
|
+// {
|
|
|
+// AddressName = "OPCDA_VirtualDynamicAddress",
|
|
|
+// AddressDataType = DataType.String,
|
|
|
+// AddressDescribe = "虚拟动态地址",
|
|
|
+// AddressAnotherName = "test",
|
|
|
+// AddressPropertyName = "OPCDA_VirtualDynamicAddress",
|
|
|
+// AddressType =AddressType.VirtualDynamic
|
|
|
+// }
|
|
|
+// };
|
|
|
+// OperateResult operateResult = manageOperate.Subscribe(address, $"YSAI.Opc.da.client.OpcDaClientOperate.OPCDA1");
|
|
|
+// Console.WriteLine(operateResult.Message);
|
|
|
+//}
|
|
|
+
|
|
|
+
|
|
|
+//void RelayEvent(object? sender, object e)
|
|
|
+//{
|
|
|
+// EventResult? result = JsonTool.StringToJsonEntity<EventResult>(e.ToJson());
|
|
|
+// Console.ForegroundColor = ConsoleColor.Red;
|
|
|
+// Console.WriteLine(result.Message);
|
|
|
+//}
|
|
|
+//void DaqEvent(object? sender, YSAI.Core.data.EventResult e)
|
|
|
+//{
|
|
|
+// if (e.Message == "点位数据更新")
|
|
|
+// return;
|
|
|
+// Console.ForegroundColor = ConsoleColor.Green;
|
|
|
+// Console.WriteLine(e.Message);
|
|
|
+//}
|