Alarm Notification Groups

Use the OPC Systems component in your Visual Studio application to programmatically modify alarm notification groups. Refer to the FormConfigureAlarmNotification Form in the WinForm Example Code example for an example and how to add and modify alarm logging groups.

GetAlarmNotificationNames

The GetAlarmNotificationNames Function returns a list of the Alarm Notification Groups.

Returns Empty String Array if service is not reachable.

NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

Private Sub ButtonGetAlarmNotificationNames_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGetAlarmNotificationNames.Click
        Cursor.Current = Cursors.WaitCursor
        ComboBoxGetAlarmNotificationNames.Items.Clear()
        Dim Groups() As String
        Dim Group As String
        Dim ErrorString As String = ""
        Groups = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmNotificationNames(TextBoxNetworkNode.Text, ErrorString)
        If ErrorString = "Success" Then
            For Each Group In Groups
                ComboBoxGetAlarmNotificationNames.Items.Add(Group)
            Next
            If ComboBoxGetAlarmNotificationNames.Items.Count > 0 Then
                ComboBoxGetAlarmNotificationNames.SelectedIndex = 0
            End If
        Else
            MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub
 
    Private Sub ComboBoxGetAlarmNotificationNames_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxGetAlarmNotificationNames.SelectedIndexChanged
        TextBoxAlarmNotificationGroup.Text = ComboBoxGetAlarmNotificationNames.SelectedItem
    End Sub

C#

              private void ButtonGetAlarmNotificationNames_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     ComboBoxGetAlarmNotificationNames.Items.Clear();
                     string[] Groups = null;

//INSTANT C# NOTE: Commented this declaration since looping variables in 'foreach' loops are declared in the 'foreach' header in C#:
//                   string Group = null;
                     string ErrorString = "";
                     Groups = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmNotificationNames(TextBoxNetworkNode.Text, ref ErrorString);
                     if (ErrorString == "Success")
                     {
                           foreach (string Group in Groups)
                           {
                                  ComboBoxGetAlarmNotificationNames.Items.Add(Group);
                           }
                           if (ComboBoxGetAlarmNotificationNames.Items.Count > 0)
                           {
                                  ComboBoxGetAlarmNotificationNames.SelectedIndex = 0;
                           }
                     }
                     else
                     {
                           MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
              }
 
              private void ComboBoxGetAlarmNotificationNames_SelectedIndexChanged(object sender, System.EventArgs e)
              {
                     TextBoxAlarmNotificationGroup.Text = ComboBoxGetAlarmNotificationNames.SelectedItem.ToString();
              }
 

AddAlarmNotificationGroup

The AddAlarmNotificationGroup Function adds a Alarm Notification Group to the existing Alarm Notification configuration.

Returns -1 if service is not reachable.

Returns 1 if successful.

Returns 0 if the Group already exists or adding the Group failed.

Group is the name of the Group to add.

NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

    Private Sub ButtonAddAlarmNotificationGroup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonAddAlarmNotificationGroup.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ResultInt32 As Int32
        Dim ErrorString As String = ""
        ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.AddAlarmNotificationGroup(TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ErrorString)
        If ResultInt32 = -1 Then
            LabelAddAlarmNotificationGroupResult.Text = "OAS Service not reached."
        ElseIf ResultInt32 = 1 Then
            LabelAddAlarmNotificationGroupResult.Text = "Group successfully added."
        Else
            LabelAddAlarmNotificationGroupResult.Text = ErrorString
        End If
    End Sub

C#

              private void ButtonAddAlarmNotificationGroup_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     Int32 ResultInt32 = 0;
                     string ErrorString = "";
                     ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.AddAlarmNotificationGroup(TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ResultInt32 == -1)
                     {
                           LabelAddAlarmNotificationGroupResult.Text = "OAS Service not reached.";
                     }
                     else if (ResultInt32 == 1)
                     {
                           LabelAddAlarmNotificationGroupResult.Text = "Group successfully added.";
                     }
                     else
                     {
                           LabelAddAlarmNotificationGroupResult.Text = ErrorString;
                     }
              }
              

RemoveAlarmNotificationGroup

The RemoveAlarmNotificationGroup Function removes a Alarm Notification Group from the existing Alarm Notification configuration.

Returns -1 if service is not reachable.

Returns 1 if successful.

Returns 0 if the Group does not exist or removing the Group failed.

Group is the name of the Group to remove.

NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

    Private Sub ButtonRemoveAlarmNotificationGroup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonRemoveAlarmNotificationGroup.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ResultInt32 As Int32
        Dim ErrorString As String = ""
        ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.RemoveAlarmNotificationGroup(TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ErrorString)
        If ResultInt32 = -1 Then
            LabelRemoveAlarmNotificationGroupResult.Text = "OAS Service not reached."
        ElseIf ResultInt32 = 1 Then
            LabelRemoveAlarmNotificationGroupResult.Text = "Group successfully removed."
        Else
            LabelRemoveAlarmNotificationGroupResult.Text = ErrorString
        End If
    End Sub

C#

              private void ButtonRemoveAlarmNotificationGroup_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     Int32 ResultInt32 = 0;
                     string ErrorString = "";
                     ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.RemoveAlarmNotificationGroup(TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ResultInt32 == -1)
                     {
                           LabelRemoveAlarmNotificationGroupResult.Text = "OAS Service not reached.";
                     }
                     else if (ResultInt32 == 1)
                     {
                           LabelRemoveAlarmNotificationGroupResult.Text = "Group successfully removed.";
                     }
                     else
                     {
                           LabelRemoveAlarmNotificationGroupResult.Text = ErrorString;
                     }
              }

GetAlarmNotificationParameterStrings

The GetAlarmNotificationParameterStrings Function returns an array of Strings containing all property types available for each Alarm Notification Group.

Returns Empty String Array if service is not reachable.

Returns a String Array of property types for all possible Parameters for a Alarm Notification Group.

NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

VB

    Private Sub ButtonGetAlarmNotificationParameterStrings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGetAlarmNotificationParameterStrings.Click
        Cursor.Current = Cursors.WaitCursor
        ComboBoxGetAlarmNotificationParameterStrings.Items.Clear()
        Dim Parameters() As String
        Dim Parameter As String
        Parameters = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmNotificationParameterStrings(TextBoxNetworkNode.Text)
        For Each Parameter In Parameters
            ComboBoxGetAlarmNotificationParameterStrings.Items.Add(Parameter)
        Next
        If ComboBoxGetAlarmNotificationParameterStrings.Items.Count > 0 Then
            ComboBoxGetAlarmNotificationParameterStrings.SelectedIndex = 1
        End If
    End Sub
 
    Private Sub ComboBoxGetAlarmNotificationParameterStrings_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxGetAlarmNotificationParameterStrings.SelectedIndexChanged
        TextBoxParameter.Text = ComboBoxGetAlarmNotificationParameterStrings.SelectedItem
    End Sub

C#

              private void ButtonGetAlarmNotificationParameterStrings_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     ComboBoxGetAlarmNotificationParameterStrings.Items.Clear();
                     string[] Parameters = null;
//INSTANT C# NOTE: Commented this declaration since looping variables in 'foreach' loops are declared in the 'foreach' header in C#:
//                   string Parameter = null;
                     Parameters = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmNotificationParameterStrings(TextBoxNetworkNode.Text);
                     foreach (string Parameter in Parameters)
                     {
                           ComboBoxGetAlarmNotificationParameterStrings.Items.Add(Parameter);
                     }
                     if (ComboBoxGetAlarmNotificationParameterStrings.Items.Count > 0)
                     {
                           ComboBoxGetAlarmNotificationParameterStrings.SelectedIndex = 1;
                     }
              }
 
              private void ComboBoxGetAlarmNotificationParameterStrings_SelectedIndexChanged(object sender, System.EventArgs e)
              {
                     TextBoxParameter.Text = ComboBoxGetAlarmNotificationParameterStrings.SelectedItem.ToString();
              }

GetAlarmNotification_Parameter_Value

The GetAlarmNotification_Parameter_Value Function returns an object value for the Alarm Notification Group and Parameter specified.

Returns nothing if service is not reachable.

Parameter is a String of the Parameter Type desired of the Alarm Notification Group.

Group is a String of the Alarm Notification Group desired.

NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

    Private Sub ButtonGetAlarmNotification_Parameter_Value_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGetAlarmNotification_Parameter_Value.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ResultObject As Object
        Dim ErrorString As String = ""
        ResultObject = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmNotification_Parameter_Value(TextBoxParameter.Text, TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ErrorString)
        If ErrorString = "Success" Then
            If ResultObject Is Nothing Then
                LabelGetAlarmNotification_Parameter_ValueResult.Text = ""
                TextBoxValueToSet.Text = ""
            Else
                Try
                    LabelGetAlarmNotification_Parameter_ValueResult.Text = ResultObject
                    TextBoxValueToSet.Text = ResultObject
                Catch ex As Exception
                    LabelGetAlarmNotification_Parameter_ValueResult.Text = "Error converting value to string."
                    TextBoxValueToSet.Text = ""
                End Try
            End If
        Else
            LabelGetAlarmNotification_Parameter_ValueResult.Text = ErrorString
            TextBoxValueToSet.Text = ""
        End If
    End Sub

C#

              private void ButtonGetAlarmNotification_Parameter_Value_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     object ResultObject = null;
                     string ErrorString = "";
                     ResultObject = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmNotification_Parameter_Value(TextBoxParameter.Text, TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ErrorString == "Success")
                     {
                           if (ResultObject == null)
                           {
                                   LabelGetAlarmNotification_Parameter_ValueResult.Text = "";
                                  TextBoxValueToSet.Text = "";
                           }
                           else
                           {
                                  try
                                  {
                                         LabelGetAlarmNotification_Parameter_ValueResult.Text = ResultObject.ToString();
                                         TextBoxValueToSet.Text = ResultObject.ToString();
                                  }
                                  catch (Exception ex)
                                  {
                                         LabelGetAlarmNotification_Parameter_ValueResult.Text = "Error converting value to string.";
                                         TextBoxValueToSet.Text = "";
                                  }
                           }
                     }
                     else
                     {
                           LabelGetAlarmNotification_Parameter_ValueResult.Text = ErrorString;
                           TextBoxValueToSet.Text = "";
                     }
              }

GetAlarmNotification_Parameter_Values

The GetAlarmNotification_Parameter_Values Function returns an array of object values for the Alarm Notification Group specified.

The order of the array corresponds with the GetAlarmNotificationParameterStrings Function order.

Returns empty array if service is not reachable.

Group is a String of the Alarm Notification Group desired.

NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

Private Sub ButtonGetAlarmNotification_Parameter_Values_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGetAlarmNotification_Parameter_Values.Click
 Cursor.Current = Cursors.WaitCursor
 ComboBoxGetAlarmNotification_Parameter_Values.Items.Clear()
 Dim ResultObjects() As Object
 Dim ResultObject As Object
 Dim ResultString As String
 Dim ErrorString As String = ""
 ResultObjects = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmNotification_Parameter_Values(TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ErrorString)
 If ErrorString = "Success" Then
 For Each ResultObject In ResultObjects
 Try
 If ResultObject Is Nothing Then
 ResultString = ""
 Else
 ResultString = ResultObject
 End If
 ComboBoxGetAlarmNotification_Parameter_Values.Items.Add(ResultString)
 Catch ex As Exception
 ComboBoxGetAlarmNotification_Parameter_Values.Items.Add("Error Converting Object")
 End Try
 Next
 If ComboBoxGetAlarmNotification_Parameter_Values.Items.Count > 0 Then
 ComboBoxGetAlarmNotification_Parameter_Values.SelectedIndex = 1
 End If
 Else
 MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
 End If
 End Sub

SetAlarmNotification_Parameter_Value

The SetAlarmNotification_Parameter_Value Function sets an object value for the Alarm Notification Group and Parameter specified.

Returns -1 if service is not reachable.

Returns 0 if the Group does not exist or the value did not get set correctly.

Returns 1 if the function was successful.

Parameter is a String of the Parameter Type desired of the Alarm Notification Group.

Value is the desired value to set.

Group is a String of the Alarm Notification Group desired.

NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

    Private Sub ButtonSetAlarmNotification_Parameter_Value_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSetAlarmNotification_Parameter_Value.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ResultInt32 As Int32
        Dim ErrorString As String = ""
        ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.SetAlarmNotification_Parameter_Value(TextBoxParameter.Text, TextBoxValueToSet.Text, TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ErrorString)
        If ResultInt32 = -1 Then
            LabelSetAlarmNotification_Parameter_ValueResult.Text = "OAS Service not reached."
        ElseIf ResultInt32 = 1 Then
            LabelSetAlarmNotification_Parameter_ValueResult.Text = "Parameter Successfully Updated."
        Else
            LabelSetAlarmNotification_Parameter_ValueResult.Text = ErrorString
        End If
    End Sub

C#

              private void ButtonGetAlarmNotification_Parameter_Values_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     ComboBoxGetAlarmNotification_Parameter_Values.Items.Clear();
                     object[] ResultObjects = null;
//INSTANT C# NOTE: Commented this declaration since looping variables in 'foreach' loops are declared in the 'foreach' header in C#:
//                   object ResultObject = null;
                     string ResultString = null;
                     string ErrorString = "";
                     ResultObjects = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmNotification_Parameter_Values(TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ErrorString == "Success")
                     {
                           foreach (object ResultObject in ResultObjects)
                           {
                                  try
                                  {
                                         if (ResultObject == null)
                                         {
                                                ResultString = "";
                                         }
                                         else
                                         {
                                                ResultString = ResultObject.ToString();
                                         }
                                         ComboBoxGetAlarmNotification_Parameter_Values.Items.Add(ResultString);
                                  }
                                  catch (Exception ex)
                                  {
                                         ComboBoxGetAlarmNotification_Parameter_Values.Items.Add("Error Converting Object");
                                  }
                           }
                           if (ComboBoxGetAlarmNotification_Parameter_Values.Items.Count > 0)
                           {
                                  ComboBoxGetAlarmNotification_Parameter_Values.SelectedIndex = 1;
                           }
                     }
                     else
                     {
                           MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
              }

SaveAlarmNotificationConfiguration

The SaveAlarmNotificationConfiguration Subroutine saves the current Alarm Notification configuration to the specified file path.

NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

    Private Sub ButtonSaveAlarmNotificationConfiguration_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSaveAlarmNotificationConfiguration.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ErrorString As String = ""
        ModuleNetworkNode.OPCSystemsComponent1.SaveAlarmNotificationConfiguration(TextBoxFilePath.Text, TextBoxNetworkNode.Text, ErrorString)
        If ErrorString <> "Success" Then
            MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub
              private void ButtonSetAlarmNotification_Parameter_Value_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     Int32 ResultInt32 = 0;
                     string ErrorString = "";
                     ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.SetAlarmNotification_Parameter_Value(TextBoxParameter.Text, TextBoxValueToSet.Text, TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ResultInt32 == -1)
                     {
                           LabelSetAlarmNotification_Parameter_ValueResult.Text = "OAS Service not reached.";
                     }
                     else if (ResultInt32 == 1)
                     {
                           LabelSetAlarmNotification_Parameter_ValueResult.Text = "Parameter Successfully Updated.";
                     }
                     else
                     {
                           LabelSetAlarmNotification_Parameter_ValueResult.Text = ErrorString;
                     }
              }

LoadAlarmNotificationConfiguration

The LoadAlarmNotificationConfiguration Subroutine saves the current Alarm Notification configuration to the specified file path.

NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

VB

    Private Sub ButtonLoadAlarmNotificationConfiguration_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonLoadAlarmNotificationConfiguration.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ErrorString As String = ""
        ModuleNetworkNode.OPCSystemsComponent1.LoadAlarmNotificationConfiguration(TextBoxFilePath.Text, TextBoxNetworkNode.Text, ErrorString)
        If ErrorString <> "Success" Then
            MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub

C#

              private void ButtonSaveAlarmNotificationConfiguration_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     string ErrorString = "";
                     ModuleNetworkNode.OPCSystemsComponent1.SaveAlarmNotificationConfiguration(TextBoxFilePath.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ErrorString != "Success")
                     {
                           MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
              }

Alarm Logging Groups – VB & C#

Code examples for VB and C# environments

GetAlarmLoggingNames

  • The GetAlarmLoggingNames Function returns a list of the Alarm Logging Groups.
  • Returns Empty String Array if service is not reachable.
  • NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.
  • Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

 
    Private Sub ButtonGetAlarmLoggingNames_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGetAlarmLoggingNames.Click
        Cursor.Current = Cursors.WaitCursor
        ComboBoxGetAlarmLoggingNames.Items.Clear()
        Dim Groups() As String
        Dim Group As String
        Dim ErrorString As String = ""
        Groups = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmLoggingNames(TextBoxNetworkNode.Text, ErrorString)
        If ErrorString = "Success" Then
            For Each Group In Groups
                ComboBoxGetAlarmLoggingNames.Items.Add(Group)
            Next
            If ComboBoxGetAlarmLoggingNames.Items.Count > 0 Then
                ComboBoxGetAlarmLoggingNames.SelectedIndex = 0
            End If
        Else
            MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub
 
    Private Sub ComboBoxGetAlarmLoggingNames_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxGetAlarmLoggingNames.SelectedIndexChanged
        TextBoxAlarmLoggingGroup.Text = ComboBoxGetAlarmLoggingNames.SelectedItem
    End Sub
    

C#

  private void ButtonGetAlarmNotificationNames_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     ComboBoxGetAlarmNotificationNames.Items.Clear();
                     string[] Groups = null;
//INSTANT C# NOTE: Commented this declaration since looping variables in 'foreach' loops are declared in the 'foreach' header in C#:
//                   string Group = null;
                     string ErrorString = "";
                     Groups = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmNotificationNames(TextBoxNetworkNode.Text, ref ErrorString);
                     if (ErrorString == "Success")
                     {
                           foreach (string Group in Groups)
                           {
                                  ComboBoxGetAlarmNotificationNames.Items.Add(Group);
                           }
                           if (ComboBoxGetAlarmNotificationNames.Items.Count > 0)
                           {
                                  ComboBoxGetAlarmNotificationNames.SelectedIndex = 0;
                           }
                     }
                     else
                     {
                           MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
              }
 
              private void ComboBoxGetAlarmNotificationNames_SelectedIndexChanged(object sender, System.EventArgs e)
              {
                     TextBoxAlarmNotificationGroup.Text = ComboBoxGetAlarmNotificationNames.SelectedItem.ToString();
              }

 

AddAlarmLoggingGroup Function

  • The AddAlarmLoggingGroup Function adds a Alarm Logging Group to the existing Alarm Logging configuration.
  • Returns -1 if service is not reachable.
  • Returns 1 if successful.
  • Returns 0 if the Group already exists or adding the Group failed.
  • Group is the name of the Group to add.
  • NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.
  • Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

 
    Private Sub ButtonAddAlarmLoggingGroup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonAddAlarmLoggingGroup.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ResultInt32 As Int32
        Dim ErrorString As String = ""
        ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.AddAlarmLoggingGroup(TextBoxAlarmLoggingGroup.Text, TextBoxNetworkNode.Text, ErrorString)
        If ResultInt32 = -1 Then
            LabelAddAlarmLoggingGroupResult.Text = "OAS Service not reached."
        ElseIf ResultInt32 = 1 Then
            LabelAddAlarmLoggingGroupResult.Text = "Group successfully added."
        Else
            LabelAddAlarmLoggingGroupResult.Text = ErrorString
        End If
    End Sub
 

C#

rivate void ButtonAddAlarmNotificationGroup_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     Int32 ResultInt32 = 0;
                     string ErrorString = "";
                     ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.AddAlarmNotificationGroup(TextBoxAlarmNotificationGroup.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ResultInt32 == -1)
                     {
                           LabelAddAlarmNotificationGroupResult.Text = "OAS Service not reached.";
                     }
                     else if (ResultInt32 == 1)
                     {
                           LabelAddAlarmNotificationGroupResult.Text = "Group successfully added.";
                     }
                     else
                     {
                           LabelAddAlarmNotificationGroupResult.Text = ErrorString;
                     }
              }

 

RemoveAlarmLoggingGroup

  • The RemoveAlarmLoggingGroup Function removes a Alarm Logging Group from the existing Alarm Logging configuration.
  • Returns -1 if service is not reachable.
  • Returns 1 if successful.
  • Returns 0 if the Group does not exist or removing the Group failed.
  • Group is the name of the Group to remove.
  • NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.
  • Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

    

    Private Sub ButtonRemoveAlarmLoggingGroup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonRemoveAlarmLoggingGroup.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ResultInt32 As Int32
        Dim ErrorString As String = ""
        ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.RemoveAlarmLoggingGroup(TextBoxAlarmLoggingGroup.Text, TextBoxNetworkNode.Text, ErrorString)
        If ResultInt32 = -1 Then
            LabelRemoveAlarmLoggingGroupResult.Text = "OAS Service not reached."
        ElseIf ResultInt32 = 1 Then
            LabelRemoveAlarmLoggingGroupResult.Text = "Group successfully removed."
        Else
            LabelRemoveAlarmLoggingGroupResult.Text = ErrorString
        End If
    End Sub

C#

 private void ButtonRemoveAlarmLoggingGroup_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     Int32 ResultInt32 = 0;
                     string ErrorString = "";
                     ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.RemoveAlarmLoggingGroup(TextBoxAlarmLoggingGroup.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ResultInt32 == -1)
                     {
                           LabelRemoveAlarmLoggingGroupResult.Text = "OAS Service not reached.";
                     }
                     else if (ResultInt32 == 1)
                     {
                           LabelRemoveAlarmLoggingGroupResult.Text = "Group successfully removed.";
                     }
                     else
                     {
                           LabelRemoveAlarmLoggingGroupResult.Text = ErrorString;
                     }
              }

 

GetAlarmLoggingParameterStrings

  • The GetAlarmLoggingParameterStrings Function returns an array of Strings containing all property types available for each Alarm Logging Group.
  • Returns Empty String Array if service is not reachable.
  • Returns a String Array of property types for all possible Parameters for a Alarm Logging Group.
  • NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

VB

      
Private Sub ButtonGetAlarmLoggingParameterStrings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGetAlarmLoggingParameterStrings.Click
        Cursor.Current = Cursors.WaitCursor
        ComboBoxGetAlarmLoggingParameterStrings.Items.Clear()
        Dim Parameters() As String
        Dim Parameter As String
        Parameters = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmLoggingParameterStrings(TextBoxNetworkNode.Text)
        For Each Parameter In Parameters
            ComboBoxGetAlarmLoggingParameterStrings.Items.Add(Parameter)
        Next
        If ComboBoxGetAlarmLoggingParameterStrings.Items.Count > 0 Then
            ComboBoxGetAlarmLoggingParameterStrings.SelectedIndex = 1
        End If
    End Sub    
 
    Private Sub ComboBoxGetAlarmLoggingParameterStrings_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxGetAlarmLoggingParameterStrings.SelectedIndexChanged
        TextBoxParameter.Text = ComboBoxGetAlarmLoggingParameterStrings.SelectedItem
    End Sub

C#

            private void ButtonGetAlarmLoggingParameterStrings_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     ComboBoxGetAlarmLoggingParameterStrings.Items.Clear();
                     string[] Parameters = null;
//INSTANT C# NOTE: Commented this declaration since looping variables in 'foreach' loops are declared in the 'foreach' header in C#:
//                   string Parameter = null;
                     Parameters = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmLoggingParameterStrings(TextBoxNetworkNode.Text);
                     foreach (string Parameter in Parameters)
                     {
                           ComboBoxGetAlarmLoggingParameterStrings.Items.Add(Parameter);
                     }
                     if (ComboBoxGetAlarmLoggingParameterStrings.Items.Count > 0)
                     {
                           ComboBoxGetAlarmLoggingParameterStrings.SelectedIndex = 1;
                     }
              }
 
              private void ComboBoxGetAlarmLoggingParameterStrings_SelectedIndexChanged(object sender, System.EventArgs e)
              {
                     TextBoxParameter.Text = ComboBoxGetAlarmLoggingParameterStrings.SelectedItem.ToString();
              }

 

GetAlarmLogging_Parameter_Value

  • The GetAlarmLogging_Parameter_Value Function returns an object value for the Alarm Logging Group and Parameter specified.
  • Returns nothing if service is not reachable. ‘ Parameter is a String of the Parameter Type desired of the Alarm Logging Group.
  • Group is a String of the Alarm Logging Group desired.
  • NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.
  • Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

      

   Private Sub ButtonGetAlarmLogging_Parameter_Value_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGetAlarmLogging_Parameter_Value.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ResultObject As Object
        Dim ErrorString As String = ""
        ResultObject = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmLogging_Parameter_Value(TextBoxParameter.Text, TextBoxAlarmLoggingGroup.Text, TextBoxNetworkNode.Text, ErrorString)
        If ErrorString = "Success" Then
            If ResultObject Is Nothing Then
                LabelGetAlarmLogging_Parameter_ValueResult.Text = ""
                TextBoxValueToSet.Text = ""
            Else
                Try
                    LabelGetAlarmLogging_Parameter_ValueResult.Text = ResultObject
                    TextBoxValueToSet.Text = ResultObject
                Catch ex As Exception
                    LabelGetAlarmLogging_Parameter_ValueResult.Text = "Error converting value to string."
                    TextBoxValueToSet.Text = ""
                End Try
            End If
        Else
            LabelGetAlarmLogging_Parameter_ValueResult.Text = ErrorString
            TextBoxValueToSet.Text = ""
        End If
    End Sub

C#

   private void ButtonGetAlarmLogging_Parameter_Value_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     object ResultObject = null;
                     string ErrorString = "";
                     ResultObject = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmLogging_Parameter_Value(TextBoxParameter.Text, TextBoxAlarmLoggingGroup.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ErrorString == "Success")
                     {
                           if (ResultObject == null)
                           {
                                  LabelGetAlarmLogging_Parameter_ValueResult.Text = "";
                                  TextBoxValueToSet.Text = "";
                           }
                           else
                           {
                                  try
                                  {
                                         LabelGetAlarmLogging_Parameter_ValueResult.Text = ResultObject.ToString();
                                         TextBoxValueToSet.Text = ResultObject.ToString();
                                  }
                                  catch (Exception ex)
                                  {
                                         LabelGetAlarmLogging_Parameter_ValueResult.Text = "Error converting value to string.";
                                         TextBoxValueToSet.Text = "";
                                  }
                           }
                     }
                     else
                     {
                           LabelGetAlarmLogging_Parameter_ValueResult.Text = ErrorString;
                           TextBoxValueToSet.Text = "";
                     }
              }

 

GetAlarmLogging_Parameter_Values

  • The GetAlarmLogging_Parameter_Values Function returns an array of object values for the Alarm Logging Group specified.
  • The order of the array corresponds with the GetAlarmLoggingParameterStrings Function order.
  • Returns empty array if service is not reachable.
  • Group is a String of the Alarm Logging Group desired.
  • NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.
  • Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

      

 Private Sub ButtonGetAlarmLogging_Parameter_Values_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGetAlarmLogging_Parameter_Values.Click
        Cursor.Current = Cursors.WaitCursor
        ComboBoxGetAlarmLogging_Parameter_Values.Items.Clear()
        Dim ResultObjects() As Object
        Dim ResultObject As Object
        Dim ResultString As String
        Dim ErrorString As String = ""
        ResultObjects = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmLogging_Parameter_Values(TextBoxAlarmLoggingGroup.Text, TextBoxNetworkNode.Text, ErrorString)
        If ErrorString = "Success" Then
            For Each ResultObject In ResultObjects
                Try
                    If ResultObject Is Nothing Then
                        ResultString = ""
                    Else
                        ResultString = ResultObject
                    End If
                    ComboBoxGetAlarmLogging_Parameter_Values.Items.Add(ResultString)
                Catch ex As Exception
                    ComboBoxGetAlarmLogging_Parameter_Values.Items.Add("Error Converting Object")
                End Try
            Next
            If ComboBoxGetAlarmLogging_Parameter_Values.Items.Count > 0 Then
                ComboBoxGetAlarmLogging_Parameter_Values.SelectedIndex = 1
            End If
        Else
            MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub

C#

   private void ButtonGetAlarmLogging_Parameter_Values_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     ComboBoxGetAlarmLogging_Parameter_Values.Items.Clear();
                     object[] ResultObjects = null;
//INSTANT C# NOTE: Commented this declaration since looping variables in 'foreach' loops are declared in the 'foreach' header in C#:
//                   object ResultObject = null;
                     string ResultString = null;
                     string ErrorString = "";
                     ResultObjects = ModuleNetworkNode.OPCSystemsComponent1.GetAlarmLogging_Parameter_Values(TextBoxAlarmLoggingGroup.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ErrorString == "Success")
                     {
                           foreach (object ResultObject in ResultObjects)
                           {
                                  try
                                  {
                                         if (ResultObject == null)
                                         {
                                                ResultString = "";
                                         }
                                         else
                                         {
                                                ResultString = ResultObject.ToString();
                                         }
                                         ComboBoxGetAlarmLogging_Parameter_Values.Items.Add(ResultString);
                                  }
                                  catch (Exception ex)
                                  {
                                         ComboBoxGetAlarmLogging_Parameter_Values.Items.Add("Error Converting Object");
                                  }
                           }
                           if (ComboBoxGetAlarmLogging_Parameter_Values.Items.Count > 0)
                           {
                                  ComboBoxGetAlarmLogging_Parameter_Values.SelectedIndex = 1;
                           }
                     }
                     else
                     {
                           MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
              }

 

SetAlarmLogging_Parameter_Value

  • The SetAlarmLogging_Parameter_Value Function sets an object value for the Alarm Logging Group and Parameter specified.
  • Returns -1 if service is not reachable.
  • Returns 0 if the Group does not exist or the value did not get set correctly.
  • Returns 1 if the function was successful.
  • Parameter is a String of the Parameter Type desired of the Alarm Logging Group.
  • Value is the desired value to set.
  • Group is a String of the Alarm Logging Group desired.
  • NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.
  • Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

    Private Sub ButtonSetAlarmLogging_Parameter_Value_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSetAlarmLogging_Parameter_Value.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ResultInt32 As Int32
        Dim ErrorString As String = ""
        ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.SetAlarmLogging_Parameter_Value(TextBoxParameter.Text, TextBoxValueToSet.Text, TextBoxAlarmLoggingGroup.Text, TextBoxNetworkNode.Text, ErrorString)
        If ResultInt32 = -1 Then
            LabelSetAlarmLogging_Parameter_ValueResult.Text = "OAS Service not reached."
        ElseIf ResultInt32 = 1 Then
            LabelSetAlarmLogging_Parameter_ValueResult.Text = "Parameter Successfully Updated."
        Else
            LabelSetAlarmLogging_Parameter_ValueResult.Text = ErrorString
        End If
    End Sub

C#

    private void ButtonSetAlarmLogging_Parameter_Value_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     Int32 ResultInt32 = 0;
                     string ErrorString = "";
                     ResultInt32 = ModuleNetworkNode.OPCSystemsComponent1.SetAlarmLogging_Parameter_Value(TextBoxParameter.Text, TextBoxValueToSet.Text, TextBoxAlarmLoggingGroup.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ResultInt32 == -1)
                     {
                           LabelSetAlarmLogging_Parameter_ValueResult.Text = "OAS Service not reached.";
                     }
                     else if (ResultInt32 == 1)
                     {
                           LabelSetAlarmLogging_Parameter_ValueResult.Text = "Parameter Successfully Updated.";
                     }
                     else
                     {
                           LabelSetAlarmLogging_Parameter_ValueResult.Text = ErrorString;
                     }
              }

 

SaveAlarmLoggingConfiguration

  • The SaveAlarmLoggingConfiguration Subroutine saves the current Alarm Logging configuration to the specified file path.
  • NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.
  • Optional ErrorString will be set to Success when function is successful and an error message when in error.

VB

     
 Private Sub ButtonSaveAlarmLoggingConfiguration_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSaveAlarmLoggingConfiguration.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ErrorString As String = ""
        ModuleNetworkNode.OPCSystemsComponent1.SaveAlarmLoggingConfiguration(TextBoxFilePath.Text, TextBoxNetworkNode.Text, ErrorString)
        If ErrorString <> "Success" Then
            MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub
    

C#

   private void ButtonSaveAlarmLoggingConfiguration_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     string ErrorString = "";
                     ModuleNetworkNode.OPCSystemsComponent1.SaveAlarmLoggingConfiguration(TextBoxFilePath.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ErrorString != "Success")
                     {
                           MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
              }

 

LoadAlarmLoggingConfiguration

  • The LoadAlarmLoggingConfiguration Subroutine saves the current Alarm Logging configuration to the specified file path.
  • NetworkNode is the name of the network node of the OAS Service to connect to. Leave blank for localhost connection.

VB

      

    Private Sub ButtonLoadAlarmLoggingConfiguration_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonLoadAlarmLoggingConfiguration.Click
        Cursor.Current = Cursors.WaitCursor
        Dim ErrorString As String = ""
        ModuleNetworkNode.OPCSystemsComponent1.LoadAlarmLoggingConfiguration(TextBoxFilePath.Text, TextBoxNetworkNode.Text, ErrorString)
        If ErrorString <> "Success" Then
            MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub

C#

 private void ButtonLoadAlarmLoggingConfiguration_Click(object sender, System.EventArgs e)
              {
                     System.Windows.Forms.Cursor.Current = Cursors.WaitCursor;
                     string ErrorString = "";
                     ModuleNetworkNode.OPCSystemsComponent1.LoadAlarmLoggingConfiguration(TextBoxFilePath.Text, TextBoxNetworkNode.Text, ref ErrorString);
                     if (ErrorString != "Success")
                     {
                           MessageBox.Show(ErrorString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
              }

 

 

.NET Programmatic Server Configuration

Programmatic setup of OAS configuration is supported with the methods in the assembly OASConfig.dll which is a .NET Standard 2.0 assembly.

Installation of Assemblies

  • All OAS .NET Assemblies are distributed with the OAS Platform and located within the installation directory
  • Optionally, you can install the assembly package from NuGet within Visual Studio
    Direct link to the OASIOT.OASData package: https://www.nuget.org/packages/OASIOT.OASConfig

Assembly Usage

OASConfig can be used in applications that target the following:

  • .NET 5+
  • .NET Core 2.0 or greater
  • .NET Framework 4.61 or greater
  • Xamarin.iOS 10.14 or greater
  • Xamarin.Android 8.0 or greater
  • UWP 1.0.0.16299 or greater

Install the OASIOT.OASConfig NuGet package directly from your Visual Studio project. – https://www.nuget.org/packages/OASIOT.OASConfig.

The same methods are also included in the legacy OPCSystems.dll assembly for .NET Framework 4.6 or less located in the OAS installation directory C:\Program Files\Open Automation Software\OAS\Controls\.

The most commonly used methods are Get and Set Tag Properties to obtain and set desired properties of multiple tags in one call.

All configurations can be programmatically defined. This would include Tags, Data Logging, Alarm Logging, Alarm Notification, Recipes, Security, and Options.

Sample Code

Refer to the OAS Example Service Code for a working example of programmatically adding tags to a service.  This includes example projects for both C# and VB for .NET Core Console App to run on all operating systems including Linux, Windows, Mac, Android, and iOS.  There is also C# and VB projects to run as a Windows Service.  The code examples in all 4 projects are the same to show adding tags programmatically and the asynchronous and synchronous methods for reading and writing data.

Applications can be deployed locally or remotely and can optionally implement OAS Basic Networking or Live Data Cloud Networking.

See our OASConfig documentation for more details.
See Automatic Configuration with Dynamic User Interface to view WPF application that creates tags and adapts the user interface based on the configuration defined.

Overview – Programmatic Interface

There are five different methods of interfacing with the Programmatic Interfaces of the OAS server, each targeted at a specific set of needs.

.NET Configuration for all platforms

The free to use .NET Standard 2.0 OASConfig assembly is used to programmatically add and update all OAS Engine configurations and can target .NET 7, 6, 5, .NET Core 2.0 or greater, .NET Framework 4.61 or greater, Xamarin.iOS 10.14, Xamarin.Android 8.0, and UWP 1.0.0.16299.

.NET Data Connector for all platforms

The .NET Standard 2.0 OASData assembly is used to provide read and write access to OAS tag variables and can target .NET 7, 6, 5, .NET Core 2.0 or greater, .NET Framework 4.61 or greater, Xamarin.iOS 10.14, Xamarin.Android 8.0, and UWP 1.0.0.16299.

.NET Connector and Windows Components

For .NET developers who wish to create HMIs or system automations on a windows platform, these components provide visual and programmatic access to real time and historical data, as well as interfaces into automated configuration of the OAS server.

.NET Core for Native Mobile Applications

The .NET Core Components are a programmatic interface designed to be used in a Xamarin Application, which allows developers to compile native applications for iOS and Android devices with a single code base.

Universal Driver Interface

Create data sources for OAS with target to both .NET Standard 2.0 for cross platform deployment and .NET Framework 4.6.1 or greater and .NET Framework 4.6 or less to deploy Windows Services locally and remotely.
Define your own properties that are automatically added to the OAS engine.
See the UDI Technical Overview on how to create a Universal Driver.

REST API

Using standard REST patterns and JSON over HTTP, the REST API provides a programmatic interface for any platform that supports those technologies, including Linux servers, RaspberryPI and Arduino devices, and more.

Web HMI

For developers interested in creating HMIs in HTML5 web applications, the OAS Web HMI includes libraries for displaying real time and historical data in any web browser, using both a markup technique as well as a programmatic Javascript API.

The following graphic shows how Open Automation Software provides programmatic access for real time and historical data and shows the protocols and tools to create specific applications.

For more details on how to use any of these interfaces, see below: