'DeclarationPublic Event Starting As EventHandler
'UsageDim instance As EasySparkplugEdgeNodeCore Dim handler As EventHandler AddHandler instance.Starting, handler
public event EventHandler Starting
public: event EventHandler^ Starting
'DeclarationPublic Event Starting As EventHandler
'UsageDim instance As EasySparkplugEdgeNodeCore Dim handler As EventHandler AddHandler instance.Starting, handler
public event EventHandler Starting
public: event EventHandler^ Starting
The event handlers for this event should not throw any exceptions. If an exception is thrown from the event handler, it might be reported through debugging, tracing or logging facilities, but the processing continues as normally, i.e. the invocation of remaining handlers is not influenced.
Sparkplug is a trademark of Eclipse Foundation, Inc. "MQTT" is a trademark of the OASIS Open standards consortium. Other related terms are trademarks of their respective owners. Any use of these terms on this site is for descriptive purposes only and does not imply any sponsorship, endorsement or affiliation.
// This example shows how to react to events in order to initiate and finalize data collection in the push data provision // model. // You can use any OPC UA client, including our Connectivity Explorer and OpcCmd utility, to connect to the server. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-ConnectivityStudio/Latest/examples.html . // OPC client, server and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-ConnectivityStudio-CSharp . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. using System; using OpcLabs.EasyOpc.UA; using OpcLabs.EasyOpc.UA.NodeSpace; using Timer = System.Timers.Timer; namespace UAServerDocExamples._UAServerNode { class Starting_Stopped { public static void Main1() { // Instantiate the server object. // By default, the server will run on endpoint URL "opc.tcp://localhost:48040/". var server = new EasyUAServer(); // Create a read-only data variable. var dataVariable = UADataVariable.CreateIn(server.Objects, "ReadThisVariable") .ValueType<int>() .Writable(false); dataVariable.Starting += (sender, args) => { // Create a timer for pushing the data for OPC reads. var timer = new Timer { Interval = 1000, AutoReset = true, }; // Set the read attribute data of the data variable to a random value whenever the timer interval elapses. // Note that this example shows the basic concept, however there is also an UpdateReadAttributeData method that // can be used in most cases to achieve slightly more concise code. var random = new Random(); timer.Elapsed += (s, a) => dataVariable.ReadAttributeData = new UAAttributeData(random.Next(), DateTime.UtcNow); // Associate the timer with the data variable. dataVariable.State = timer; timer.Start(); }; dataVariable.Stopped += (sender, args) => { // Obtain the timer associated with the data variable. var timer = (Timer)((UADataVariable)sender).State; // Stop the timer. timer.Stop(); }; // Start the server. Console.WriteLine("The server is starting..."); server.Start(); Console.WriteLine("The server is started."); Console.WriteLine(); // Let the user decide when to stop. Console.WriteLine("Press Enter to stop the server..."); Console.ReadLine(); // Stop the server. Console.WriteLine("The server is stopping..."); server.Stop(); Console.WriteLine("The server is stopped."); } } }
# This example shows how to react to events in order to initiate and finalize data collection in the push data provision # model. # You can use any OPC UA client, including our Connectivity Explorer and OpcCmd utility, to connect to the server. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client, server and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-ConnectivityStudio-CSharp . # Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own # a commercial license in order to use Online Forums, and we reply to every post. #requires -Version 5.1 using namespace OpcLabs.EasyOpc.UA using namespace OpcLabs.EasyOpc.UA.NodeSpace # The path below assumes that the current directory is [ProductDir]/Examples-NET/PowerShell/Windows . Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.ServerOpcUAComponents.dll" # Instantiate the server object. # By default, the server will run on endpoint URL "opc.tcp://localhost:48040/". $server = New-Object EasyUAServer # Create a read-only data variable. $dataVariable = [UADataVariableExtension]::Writable([UADataVariableExtension]::ValueType([UADataVariable]::CreateIn($server.Objects, "ReadThisVariable"), [int]), $false) $random = New-Object System.Random Register-ObjectEvent -InputObject $dataVariable -EventName Starting -Action { param ($sender, $e) # Create a timer for pushing the data for OPC reads. $timer = New-Object Timers.Timer -property @{ Interval = 1000 AutoReset = $true } # Set the read attribute data of the data variable to a random value whenever the timer interval elapses. # Note that this example shows the basic concept, however there is also an UpdateReadAttributeData method that # can be used in most cases to achieve slightly more concise code. Register-ObjectEvent -InputObject $timer -EventName Elapsed -Action { param ($sender, $e) $dataVariable.ReadAttributeData = New-Object UAAttributeData($random.Next(), [DateTime]::UtcNow) } # Associate the timer with the data variable. $dataVariable.State = $timer $timer.Start() } Register-ObjectEvent -InputObject $dataVariable -EventName Stopped -Action { param ($sender, $e) # Obtain the timer associated with the data variable. $timer = [Timers.Timer](([UADataVariable]$sender).State) # Stop the timer. $timer.Stop() } # Start the server. Write-Host "The server is starting..." $server.Start() Write-Host "The server is started." Write-Host # Let the user decide when to stop. Write-Host "Press Enter to stop the server..." while(![System.Console]::KeyAvailable) { Start-Sleep -Milliseconds 20 } [void][System.Console]::ReadKey() # Stop the server. Write-Host "The server is stopping..." $server.Stop() Write-Host "The server is stopped."
' This example shows how to react to events in order to initiate and finalize data collection in the push data provision ' model. ' You can use any OPC UA client, including our Connectivity Explorer and OpcCmd utility, to connect to the server. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-ConnectivityStudio/Latest/examples.html . ' OPC client and subscriber examples in VB.NET on GitHub: https://github.com/OPCLabs/Examples-ConnectivityStudio-VBNET . ' Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own ' a commercial license in order to use Online Forums, and we reply to every post. Imports System Imports OpcLabs.EasyOpc.UA Imports OpcLabs.EasyOpc.UA.NodeSpace Imports Timer = System.Timers.Timer Namespace Global.UAServerDocExamples._UAServerNode Partial Friend Class Starting_Stopped Shared Sub Main1() ' Instantiate the server object. ' By default, the server will run on endpoint URL "opc.tcp://localhost:48040/". Dim server = New EasyUAServer() ' Create a read-only data variable. Dim dataVariable = UADataVariable.CreateIn(server.Objects, "ReadThisVariable") _ .ValueType(Of Integer)() _ .Writable(False) AddHandler dataVariable.Starting, Sub(sender, args) ' Create a timer for pushing the data for OPC reads. Dim timer = New Timer With { .Interval = 1000, .AutoReset = True } ' Set the read attribute data of the data variable to a random value whenever the timer interval elapses. ' Note that this example shows the basic concept, however there is also an UpdateReadAttributeData method that ' can be used in most cases to achieve slightly more concise code. Dim random = New Random() AddHandler timer.Elapsed, Sub(s, a) dataVariable.ReadAttributeData = New UAAttributeData(random.Next(), DateTime.UtcNow) End Sub ' Associate the timer with the data variable. dataVariable.State = timer timer.Start() End Sub AddHandler dataVariable.Stopped, Sub(sender, args) ' Obtain the timer associated with the data variable. Dim timer = CType(CType(sender, UADataVariable).State, Timer) ' Stop the timer. timer.Stop() End Sub ' Start the server. Console.WriteLine("The server is starting...") server.Start() Console.WriteLine("The server is started.") Console.WriteLine() ' Let the user decide when to stop. Console.WriteLine("Press Enter to stop the server...") Console.ReadLine() ' Stop the server. Console.WriteLine("The server is stopping...") server.Stop() Console.WriteLine("The server is stopped.") End Sub End Class End Namespace