/// <summary> /// Runs a version A simulation. /// </summary> /// <returns>A <see cref="Task"/> representing any asynchronous operation.</returns> private static async Task RunVersionA() { Console.WriteLine("Starting application..."); var applicationMetrics = new List <VersionAPayload.KuraMetric>(VersionAMetrics); var application = new VersionA.SparkplugApplication(applicationMetrics); var applicationOptions = new SparkplugApplicationOptions("localhost", 1883, "application1", "user", "password", false, "scada1", TimeSpan.FromSeconds(30), true, null, null, CancellationTokenSource.Token); await application.Start(applicationOptions); Console.WriteLine("Application started..."); Console.WriteLine("Starting node..."); var nodeMetrics = new List <VersionAPayload.KuraMetric>(VersionAMetrics); var node = new VersionA.SparkplugNode(nodeMetrics); var nodeOptions = new SparkplugNodeOptions("localhost", 1883, "node 1", "user", "password", false, "scada1", "group1", "node1", TimeSpan.FromSeconds(30), null, null, CancellationTokenSource.Token); await node.Start(nodeOptions); Console.WriteLine("Node started..."); Console.WriteLine("Starting device..."); var deviceMetrics = new List <VersionAPayload.KuraMetric>(VersionAMetrics); var device = new VersionA.SparkplugDevice(deviceMetrics); var deviceOptions = new SparkplugDeviceOptions("localhost", 1883, "device 1", "user", "password", false, "scada1", "group1", "node1", "device1", TimeSpan.FromSeconds(30), null, null, CancellationTokenSource.Token); await device.Start(deviceOptions); Console.WriteLine("Device started..."); }
public async Task T01_Node_VersionB_ConnectBirth() { var userName = "******"; var password = "******"; var clientIdentifier = "client1"; var groupIdentifier = "group1"; var scadaHostIdentifier = "scada1"; var edgeNodeIdentifier = "node1"; var nodeOptions = new SparkplugNodeOptions(MqttServerUnderTest.ServerAddress, MqttServerUnderTest.ServerPort, clientIdentifier, userName, password, false, scadaHostIdentifier, groupIdentifier, edgeNodeIdentifier, TimeSpan.FromSeconds(30), null, null, this.cts.Token); nodeKnownMetrics = GetNodeTestMetrics(); nodeMetrics = GetNodeTestMetrics(); nodeUnderTest = new SparkplugNode(nodeKnownMetrics); await nodeUnderTest.Start(nodeOptions); Assert.IsTrue(nodeUnderTest.IsConnected); }
/// <summary> /// Starts the Sparkplug node. /// </summary> /// <param name="nodeOptions">The node options.</param> /// <exception cref="ArgumentNullException">The options are null.</exception> /// <returns>A <see cref="Task"/> representing any asynchronous operation.</returns> public async Task Start(SparkplugNodeOptions nodeOptions) { // Storing the options. this.options = nodeOptions; if (this.options is null) { throw new ArgumentNullException(nameof(this.options), "The options aren't set properly."); } // Add handlers. this.AddDisconnectedHandler(); this.AddMessageReceivedHandler(); // Connect, subscribe to incoming messages and send a state message. await this.ConnectInternal(); await this.SubscribeInternal(); await this.PublishInternal(); }