/// <summary>
        /// Handles the click event of the MonitoringMenu_RemoveItems_Click control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void MonitoringMenu_RemoveItems_Click(object sender, EventArgs e)
        {
            try
            {
                // check if operation is currently allowed.
                if (m_Subscription.Session == null || MonitoredItemsLV.SelectedItems.Count == 0)
                {
                    return;
                }

                // Collect the items to delete.
                List <ListViewItem> itemsToDelete = new List <ListViewItem>();

                for (int ii = 0; ii < MonitoredItemsLV.SelectedItems.Count; ii++)
                {
                    MonitoredItem monitoredItem = MonitoredItemsLV.SelectedItems[ii].Tag as MonitoredItem;

                    if (monitoredItem != null)
                    {
                        m_Server.RemoveMonitoredItem(m_Subscription, monitoredItem);
                        itemsToDelete.Add(MonitoredItemsLV.SelectedItems[ii]);
                    }
                }

                // Remove item(s).
                for (int ii = 0; ii < itemsToDelete.Count; ii++)
                {
                    MonitoredItem monitoredItem = itemsToDelete[ii].Tag as MonitoredItem;

                    // Check the status.
                    if (ServiceResult.IsBad(monitoredItem.Status.Error))
                    {
                        itemsToDelete[ii].SubItems[5].Text = monitoredItem.Status.Error.StatusCode.ToString();
                        continue;
                    }

                    itemsToDelete[ii].Remove();
                }

                // Fit column width.
                // NodeId.
                MonitoredItemsLV.Columns[0].Width = -2;
                // Error.
                MonitoredItemsLV.Columns[5].Width = -2;

                // Update status label.
                OnUpdateStatusLabel("Removing monitored items succeeded.", true);
            }
            catch (Exception exception)
            {
                // Update status label.
                OnUpdateStatusLabel("An exception occured while removing monitored items: " +
                                    exception.Message, false);
            }
        }
示例#2
0
        /// <summary>
        // Handles the remove items procedure started from the menu bar.
        /// <summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void RemoveItems_Click(object sender, EventArgs e)
        {
            try
            {
                // Check if operation is currently allowed.
                if (monitoredItemsControl.Subscription.Session == null || monitoredItemsControl.MonitoredItemsList.SelectedItems.Count == 0)
                {
                    return;
                }

                // Collect the items to delete.
                List <ListViewItem> itemsToDelete = new List <ListViewItem>();

                for (int ii = 0; ii < monitoredItemsControl.MonitoredItemsList.SelectedItems.Count; ii++)
                {
                    MonitoredItem monitoredItem = monitoredItemsControl.MonitoredItemsList.SelectedItems[ii].Tag as MonitoredItem;

                    if (monitoredItem != null)
                    {
                        m_Server.RemoveMonitoredItem(monitoredItemsControl.Subscription, monitoredItem);
                        itemsToDelete.Add(monitoredItemsControl.MonitoredItemsList.SelectedItems[ii]);
                    }
                }

                // Check the status.
                for (int ii = 0; ii < itemsToDelete.Count; ii++)
                {
                    MonitoredItem monitoredItem = itemsToDelete[ii].Tag as MonitoredItem;

                    if (ServiceResult.IsBad(monitoredItem.Status.Error))
                    {
                        // Fill error column.
                        itemsToDelete[ii].SubItems[5].Text = monitoredItem.Status.Error.StatusCode.ToString();
                        continue;
                    }

                    // Remove the current item from the listview.
                    itemsToDelete[ii].Remove();
                }

                // Set the width of the NodeId and the Error column.
                monitoredItemsControl.MonitoredItemsList.Columns[0].Width = -2;
                monitoredItemsControl.MonitoredItemsList.Columns[5].Width = -2;

                // Update status label.
                toolStripStatusLabel.Text = "Removing monitored items succeeded.";
            }
            catch (Exception exception)
            {
                // Update status label.
                toolStripStatusLabel.Text  = "An exception occured while removing monitored items: " + exception.Message;
                toolStripStatusLabel.Image = global::Siemens.OpcUA.Client.Properties.Resources.error;
            }
        }
示例#3
0
        /// <summary>
        /// 订阅内移除变量
        /// </summary>
        /// <param name="tag">要移除的变量</param>
        /// <returns></returns>
        public bool RemoveSubscription(TagItem tag)
        {
            MonitoredItem monitoredItem = uAClient.RemoveMonitoredItem(_Subscription, _MonitorItem[tag.ServerId]);

            if (_MonitorItem[tag.ServerId].Created == false)
            {
                _SubscriptionTags.Remove(tag.ServerId);
                _MonitorItem.Remove(tag.ServerId);
                return(true);
            }
            else
            {
                return(false);
            }
        }