Beispiel #1
0
        private void UnregisterButton_Click(object sender, EventArgs e)
        {
            try
            {
                if (ApplicationRecordDataGridView.SelectedRows.Count == 0)
                {
                    return;
                }

                List <DataRow> rowsToDelete = new List <DataRow>();

                foreach (DataGridViewRow row in ApplicationRecordDataGridView.SelectedRows)
                {
                    DataRowView source = row.DataBoundItem as DataRowView;
                    ApplicationRecordDataType argument = (ApplicationRecordDataType)source.Row[6];
                    m_gds.UnregisterApplication(argument.ApplicationId);
                    rowsToDelete.Add(source.Row);
                }

                foreach (var rowToDelete in rowsToDelete)
                {
                    rowToDelete.Delete();
                }

                m_dataset.AcceptChanges();
            }
            catch (Exception exception)
            {
                MessageBox.Show(Text + ": " + exception.Message);
            }
        }
        /// <summary cref="Object.MemberwiseClone" />
        public new object MemberwiseClone()
        {
            ApplicationRecordDataType clone = (ApplicationRecordDataType)base.MemberwiseClone();

            clone.m_applicationId      = (NodeId)Utils.Clone(this.m_applicationId);
            clone.m_applicationUri     = (string)Utils.Clone(this.m_applicationUri);
            clone.m_applicationType    = (ApplicationType)Utils.Clone(this.m_applicationType);
            clone.m_applicationNames   = (LocalizedTextCollection)Utils.Clone(this.m_applicationNames);
            clone.m_productUri         = (string)Utils.Clone(this.m_productUri);
            clone.m_discoveryUrls      = (StringCollection)Utils.Clone(this.m_discoveryUrls);
            clone.m_serverCapabilities = (StringCollection)Utils.Clone(this.m_serverCapabilities);

            return(clone);
        }
        /// <summary cref="IEncodeable.IsEqual(IEncodeable)" />
        public virtual bool IsEqual(IEncodeable encodeable)
        {
            if (Object.ReferenceEquals(this, encodeable))
            {
                return(true);
            }

            ApplicationRecordDataType value = encodeable as ApplicationRecordDataType;

            if (value == null)
            {
                return(false);
            }

            if (!Utils.IsEqual(m_applicationId, value.m_applicationId))
            {
                return(false);
            }
            if (!Utils.IsEqual(m_applicationUri, value.m_applicationUri))
            {
                return(false);
            }
            if (!Utils.IsEqual(m_applicationType, value.m_applicationType))
            {
                return(false);
            }
            if (!Utils.IsEqual(m_applicationNames, value.m_applicationNames))
            {
                return(false);
            }
            if (!Utils.IsEqual(m_productUri, value.m_productUri))
            {
                return(false);
            }
            if (!Utils.IsEqual(m_discoveryUrls, value.m_discoveryUrls))
            {
                return(false);
            }
            if (!Utils.IsEqual(m_serverCapabilities, value.m_serverCapabilities))
            {
                return(false);
            }

            return(true);
        }
Beispiel #4
0
        /// <summary>
        /// Registers the application.
        /// </summary>
        /// <param name="application">The application.</param>
        /// <returns>The application id assigned to the application.</returns>
        public NodeId RegisterApplication(ApplicationRecordDataType application)
        {
            if (!IsConnected)
            {
                Connect(null);
            }

            var outputArguments = m_session.Call(
                ExpandedNodeId.ToNodeId(Opc.Ua.Gds.ObjectIds.Directory, m_session.NamespaceUris),
                ExpandedNodeId.ToNodeId(Opc.Ua.Gds.MethodIds.Directory_RegisterApplication, m_session.NamespaceUris),
                application);

            if (outputArguments.Count > 0)
            {
                return(outputArguments[0] as NodeId);
            }

            return(null);
        }