Exemple #1
0
        public void ChangeItem(AeCondition condition, string state)
        {
            ListViewItem item = new ListViewItem(state);

            item.Tag = condition;
            conditionlistView.Items.Add(item);
            item.SubItems.Add(condition.SourcePath);
            item.SubItems.Add(condition.ConditionName);
            item.SubItems.Add(condition.Severity.ToString());
            item.SubItems.Add(condition.Message);
            item.SubItems.Add(condition.OccurenceTime.ToString("hh:mm:ss.fff"));
            item.SubItems.Add(condition.ActorId);
            item.SubItems.Add(condition.SubConditionName);
        }
Exemple #2
0
        private void acknowledgeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                conditionsListView.Cursor = Cursors.WaitCursor;
                foreach (ListViewItem item in conditionsListView.SelectedItems)
                {
                    AeCondition condition = item.Tag as AeCondition;

                    int[] results = null;
                    condition.AeSession.AcknowledgeAeConditions(Environment.UserName, AECONDITION, new AeCondition[] { condition }, out results, null);
                }
            }
            catch { }
            finally
            {
                conditionsListView.Cursor = Cursors.Default;
            }
        }
Exemple #3
0
        }           //	end BuildEventCategories

        public int InitializeConditions()
        {
            try
            {
                condition1 = new AeCondition();
                condition2 = new AeCondition();

                eventAttributes1 = new ArrayList();
                eventAttributes1.Add(1);

                eventAttributes2 = new ArrayList();
                eventAttributes2.Add(2);

                condition1.Category   = _timeSlot;
                condition1.Definition = _timeSlot.GetConditionDefinition(COND_NAME_BETWEEN_MULTIPLE);
                condition1.Name       = COND_NAME_BETWEEN_MULTIPLE;

                condition1.SourcePath      = "computer/clock/time slot 1";
                condition1.Quality         = EnumQuality.GOOD;
                condition1.EventAttributes = eventAttributes1;
                condition1.UserData        = 1;

                condition2.Category        = _timeSlot;
                condition2.Name            = COND_NAME_BETWEEN_SINGLE;
                condition2.Definition      = _timeSlot.GetConditionDefinition(COND_NAME_BETWEEN_SINGLE);
                condition2.SourcePath      = "computer/clock/time slot 1";
                condition2.Quality         = EnumQuality.GOOD;
                condition2.EventAttributes = eventAttributes2;
                condition2.UserData        = 2;
            }
            catch (Exception exc)
            {
                Trace(
                    EnumTraceLevel.ERR,
                    EnumTraceGroup.USER1,
                    "OpcServer:initializeConditions",
                    exc.ToString());
                return((int)EnumResultCode.E_FAIL);
            }               //	end try...catch

            return((int)EnumResultCode.S_OK);
        }        // end InitializeConditions
Exemple #4
0
        //--
        #endregion

        #region Public Properties
        //-----------------------


        //--
        #endregion

        #region Handles
        //-----------------------

        private void HandleAeConditionsChanged(AeSubscription anAeSubscription, AeCondition[] conditions)
        {
            if (m_opcForm.conditionlistView.InvokeRequired)
            {
                RemoveItemsFromListView riflw = new RemoveItemsFromListView(m_opcForm.RemoveItems);
                m_opcForm.conditionlistView.BeginInvoke(riflw, null);
            }
            else
            {
                m_opcForm.conditionlistView.Items.Clear();
            }
            string state = String.Empty;

            for (int i = 0; i < conditions.Length; i++)
            {
                AeCondition condition = conditions[i];
                state = GetState(condition.State);

                if (m_opcForm.conditionlistView.InvokeRequired)
                {
                    ChangeConditionListView cclw = new ChangeConditionListView(m_opcForm.ChangeItem);
                    m_opcForm.conditionlistView.BeginInvoke(cclw, new object[] { condition, state });
                }
                else
                {
                    ListViewItem item = new ListViewItem(state);
                    item.Tag = condition;
                    m_opcForm.conditionlistView.Items.Add(item);
                    item.SubItems.Add(condition.SourcePath);
                    item.SubItems.Add(condition.ConditionName);
                    item.SubItems.Add(condition.Severity.ToString());
                    item.SubItems.Add(condition.Message);
                    item.SubItems.Add(condition.OccurenceTime.ToString("hh:mm:ss.fff"));
                    item.SubItems.Add(condition.ActorId);
                    item.SubItems.Add(condition.SubConditionName);
                    state = String.Empty;
                }
            }            //end for
            System.Diagnostics.Debug.WriteLine("The conditions list has changed ");
        }
Exemple #5
0
 private void GetConditionStateButtonOnClick(object sender, System.EventArgs e)
 {
     if (conditionlistView.SelectedItems.Count != 0)
     {
         AeCondition      condition      = ((AeCondition)conditionlistView.SelectedItems[0].Tag);
         AeConditionState conditionState = null;
         this.conditionStateRichTextBox.Text = null;
         int res = m_session.GetAeConditionState(condition.SourcePath, condition.ConditionName, null, out conditionState, m_executionOptions);
         if (ResultCode.SUCCEEDED(res) && (m_executionOptions.ExecutionType == EnumExecutionType.SYNCHRONOUS))
         {
             this.conditionStateRichTextBox.Text += " Source Path: " + condition.SourcePath + "\n";
             this.conditionStateRichTextBox.Text += " Condition Name: " + condition.ConditionName + "\n";
             this.conditionStateRichTextBox.Text += " State: " + GetState(conditionState.State) + "\n";
             this.conditionStateRichTextBox.Text += " Quality: " + conditionState.Quality + "\n";
             this.conditionStateRichTextBox.Text += " Active Time: " + conditionState.ConditionActiveTime + "\n";
             this.conditionStateRichTextBox.Text += " Inactive Time: " + conditionState.ConditionInactiveTime + "\n";
             this.conditionStateRichTextBox.Text += " AcknowledgeTime: " + conditionState.ConditionAckTime + "\n";
             this.conditionStateRichTextBox.Text += " AcknowledgerComment: " + conditionState.AcknowledgerComment + "\n";
             this.conditionStateRichTextBox.Text += " AcknowledgerID: " + conditionState.AcknowledgerId + "\n";
             this.conditionStateRichTextBox.Text += " Active subcondition time: " + conditionState.SubConditionActiveTime + "\n";
             this.conditionStateRichTextBox.Text += " Active subcondition name: " + conditionState.ActiveSubConditionName + "\n";
             this.conditionStateRichTextBox.Text += " Active subcondition definition: " + conditionState.ActiveSubConditionDefinition + "\n";
             this.conditionStateRichTextBox.Text += " Active subcondition description: " + conditionState.ActiveSubConditionDescription + "\n";
             this.conditionStateRichTextBox.Text += " Active subcondition severity: " + conditionState.ActiveSubConditionSeverity + "\n";
             this.conditionStateRichTextBox.Text += " Number of subconditions: " + conditionState.SubConditionsNames.Length + "\n";
             for (int i = 0; i < conditionState.SubConditionsNames.Length; i++)
             {
                 this.conditionStateRichTextBox.Text += "	Subcondition name: "+ conditionState.SubConditionsNames[i] + "\n";
                 this.conditionStateRichTextBox.Text += "	Subcondition definition: "+ conditionState.SubConditionsDefinitions[i] + "\n";
                 this.conditionStateRichTextBox.Text += "	Subcondition description: "+ conditionState.SubConditionsDescriptions[i] + "\n";
                 this.conditionStateRichTextBox.Text += "	Subcondition severity: "+ conditionState.SubConditionsSeverities[i] + "\n";
             }            //end for
         }                //end if
     }
     else
     {
         MessageBox.Show(" Select a condition in the condition list ! ", "Select condition");
     }             //ens if ... else
 }
Exemple #6
0
        /// <summary>
        /// Add Condition
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="subsciption"></param>
        private void AddCondition(AeCondition condition, AeSubscription subsciption)
        {
            try
            {
                ListViewItem item = new ListViewItem(condition.SourcePath);
                item.ImageIndex     = SetConditionImage(condition.State);
                condition.AeSession = subsciption.AeSession;
                item.Tag            = condition;
                item.SubItems.Add(condition.ConditionName);
                item.SubItems.Add(condition.Severity.ToString());
                item.SubItems.Add(condition.Message);
                item.SubItems.Add(ValueConverter.DateTimeOptions(condition.OccurenceTime));
                item.SubItems.Add(condition.ActorId);
                item.SubItems.Add(condition.SubConditionName);
                item.SubItems.Add(subsciption.AeSession.Url);
                item.SubItems.Add(SUBSCRIPTION);

                conditionsListView.Items.Add(item);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
        }           //	end BuildAddressSpace

        public void FireSimulationEvents()
        {
            String message = null;

            AeCondition condition1 = new AeCondition();

            condition1.Category   = m_timeSlotCategory;
            condition1.Name       = Console.COND_NAME_BETWEEN_SINGLE;
            condition1.Definition = m_timeSlotCategory.GetConditionDefinition(Console.COND_NAME_BETWEEN_SINGLE);
            condition1.SourcePath = "clock.time slot 1";
            condition1.Quality    = EnumQuality.GOOD;
            condition1.UserData   = 1;

            AeCondition condition2 = new AeCondition();

            condition2.Category   = m_timeSlotCategory;
            condition2.Name       = Console.COND_NAME_BETWEEN_MULTIPLE;
            condition2.Definition = m_timeSlotCategory.GetConditionDefinition(Console.COND_NAME_BETWEEN_MULTIPLE);
            condition2.SourcePath = "clock.time slot 2";
            condition2.Quality    = EnumQuality.GOOD;
            condition2.UserData   = 1;

            if (m_second != DateTime.Now.Second)
            {
                ArrayList conditionList   = new ArrayList();
                ArrayList eventAttributes = new ArrayList();

                switch (DateTime.Now.Second)
                {
                case 10:
                    eventAttributes.Add(DateTime.Now.Second);
                    condition1.Severity        = 510;
                    message                    = "between [10,50]";
                    condition1.Message         = message;
                    condition1.AckRequired     = true;
                    condition1.EventAttributes = eventAttributes;
                    condition1.ChangeMask      = (Byte)(EnumConditionChange.ACTIVE_STATE |
                                                        EnumConditionChange.SEVERITY |
                                                        EnumConditionChange.MESSAGE |
                                                        EnumConditionChange.ATTRIBUTE);
                    condition1.StateChange = EnumConditionState.ACTIVE;
                    conditionList.Add(condition1);

                    condition2.Severity               = 500;
                    message                           = "between [10,30]";
                    condition2.Message                = message;
                    condition2.AckRequired            = true;
                    condition2.ActiveSubConditionName = "[10,30]";
                    condition2.EventAttributes        = eventAttributes;
                    condition2.ChangeMask             = (Byte)(EnumConditionChange.ACTIVE_STATE |
                                                               EnumConditionChange.SEVERITY |
                                                               EnumConditionChange.MESSAGE |
                                                               EnumConditionChange.SUBCONDITION |
                                                               EnumConditionChange.ATTRIBUTE);
                    condition2.StateChange = EnumConditionState.ACTIVE;
                    conditionList.Add(condition2);
                    break;

                case 30:
                    eventAttributes.Add(DateTime.Now.Second);
                    condition2.Severity               = 540;
                    message                           = "between [30,50]";
                    condition2.Message                = message;
                    condition2.AckRequired            = true;
                    condition2.ActiveSubConditionName = "[30,50]";
                    condition2.EventAttributes        = eventAttributes;
                    condition2.ChangeMask             = (Byte)(EnumConditionChange.ACTIVE_STATE |
                                                               EnumConditionChange.SEVERITY |
                                                               EnumConditionChange.MESSAGE |
                                                               EnumConditionChange.SUBCONDITION |
                                                               EnumConditionChange.ATTRIBUTE);
                    condition2.StateChange = EnumConditionState.ACTIVE;
                    conditionList.Add(condition2);
                    break;

                case 50:
                    eventAttributes.Add(DateTime.Now.Second);
                    condition1.Severity        = 1;
                    message                    = "not between [10,50]";
                    condition1.Message         = message;
                    condition1.AckRequired     = false;
                    condition1.EventAttributes = eventAttributes;
                    condition1.ChangeMask      = (Byte)(EnumConditionChange.ACTIVE_STATE |
                                                        EnumConditionChange.SEVERITY |
                                                        EnumConditionChange.MESSAGE |
                                                        EnumConditionChange.ATTRIBUTE);
                    condition1.StateChange = EnumConditionState.NO;
                    conditionList.Add(condition1);

                    condition2.Severity        = 1;
                    message                    = "not between [10,50]";
                    condition2.Message         = message;
                    condition2.AckRequired     = false;
                    condition2.EventAttributes = eventAttributes;
                    condition2.ChangeMask      = (Byte)(EnumConditionChange.ACTIVE_STATE |
                                                        EnumConditionChange.SEVERITY |
                                                        EnumConditionChange.MESSAGE |
                                                        EnumConditionChange.SUBCONDITION |
                                                        EnumConditionChange.ATTRIBUTE);
                    condition2.StateChange = EnumConditionState.NO;
                    conditionList.Add(condition2);
                    break;

                default:
                    break;
                }                   //  end switch
                if (conditionList.Count > 0)
                {
                    Application.Instance.ChangeConditions(conditionList);
                }                   //  end if

                //  simple events
                if (m_second != DateTime.Now.Second)
                {
                    AeEvent   secondEvent     = new AeEvent(EnumEventType.SIMPLE, "time.local", Console.CATEGORY_ID_TIME_TICK);
                    ArrayList attributeValues = new ArrayList();
                    attributeValues.Add(DateTime.Now.Hour);
                    attributeValues.Add(DateTime.Now.Minute);
                    attributeValues.Add(DateTime.Now.Second);
                    m_second             = (Byte)DateTime.Now.Second;
                    secondEvent.Severity = 50;
                    secondEvent.ActorId  = "opcUser";
                    message                        = "Second Changed";
                    secondEvent.Message            = message;
                    secondEvent.AttributeValueList = attributeValues;
                    secondEvent.Fire();
                }
                if (m_minute != DateTime.Now.Minute)
                {
                    AeEvent   minuteEvent     = new AeEvent(EnumEventType.SIMPLE, "time.local", Console.CATEGORY_ID_TIME_TICK);
                    ArrayList attributeValues = new ArrayList(3);
                    attributeValues.Add(DateTime.Now.Hour);
                    attributeValues.Add(DateTime.Now.Minute);
                    attributeValues.Add(DateTime.Now.Second);
                    m_minute             = (Byte)DateTime.Now.Minute;
                    minuteEvent.Severity = 900;
                    minuteEvent.ActorId  = "opcUser";
                    message                        = "Minute Changed";
                    minuteEvent.Message            = message;
                    minuteEvent.AttributeValueList = attributeValues;
                    minuteEvent.Fire();
                }
            }
            if (System.Console.KeyAvailable)
            {
                ArrayList      attributeValues = new ArrayList(1);
                ConsoleKeyInfo keyInfo         = System.Console.ReadKey();
                attributeValues.Add((Byte)keyInfo.KeyChar);
                char    charPressed = keyInfo.KeyChar;
                AeEvent keyEvent    = new AeEvent(EnumEventType.TRACKING, "keyboard.key", Console.CATEGORY_ID_KEY_HIT);
                keyEvent.Severity           = 600;
                message                     = "key hit : ";
                message                    += charPressed.ToString();
                keyEvent.Message            = message;
                keyEvent.AttributeValueList = attributeValues;
                keyEvent.Fire();
                //writing to keyboard.key DA Variable
                ValueQT value = new ValueQT((Byte)keyInfo.KeyChar, EnumQuality.GOOD, DateTime.Now);
                if (m_keyElement != null)
                {
                    m_keyElement.ValueChanged(value);
                }
            }
        }           //	end FireEvents