コード例 #1
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        {
            OutProc outProc = new OutProc();
            int     result  = (int)EnumResultCode.S_OK;

            try
            {
                outProc.CreateOpcClient();
                OpcClient opcClient = outProc.OpcClient;

                //	initialize the client instance
                if (!ResultCode.SUCCEEDED(opcClient.Initialize()))
                {
                    opcClient = null;
                    return;
                }                   //	end if

                //	initialize the AE client simulation
                result |= opcClient.InitializeAeObjects();

                OpcForm opcForm = new OpcForm(outProc);

                System.Windows.Forms.Application.Run(opcForm);

                opcClient.Terminate();
                opcClient = null;
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.ToString());
            } //	end try...catch
        }     //	end Main
コード例 #2
0
        public OpcForm(OutProc anOutProc)
        {
            InitializeComponent();

            try
            {
                m_outProc = anOutProc;

                m_opcClient = m_outProc.OpcClient;

                m_session = m_opcClient.m_aeSession;

                //create the events tree
                TreeNode root = new TreeNode(m_session.Url + " - Event Space ", 0, 0);
                eventsTreeView.Nodes.Add(root);

                //query categories for each event type
                AeCategory[] categories = null;
                m_session.QueryAeCategories(out categories, m_QC_executionOptions);

                for (int i = 0; i < categories.Length; i++)
                {
                    TreeNode category = new TreeNode(categories[i].Description, 1, 1);
                    root.Nodes.Add(category);

                    //Query categories' attributes
                    AeAttribute[] attributes = null;
                    categories[i].QueryAeAttributes(out attributes, m_QA_executionOptions);

                    for (int ii = 0; ii < attributes.Length; ii++)
                    {
                        TreeNode attribute = new TreeNode(attributes[ii].Description, 2, 2);
                        category.Nodes.Add(attribute);
                    }
                    //Query ConditionNames
                    string[] conditionNames = null;
                    categories[i].QueryAeConditionNames(out conditionNames, m_QCN_executionOptions);

                    for (int ii = 0; ii < conditionNames.Length; ii++)
                    {
                        TreeNode conditionName = new TreeNode(conditionNames[ii], 3, 3);
                        category.Nodes.Add(conditionName);

                        //Query SubConditionNames
                        string[] subConditionNames = null;
                        categories[i].QueryAeSubConditionNames(conditionNames[ii], out subConditionNames, m_QSCN_executionOptions);

                        for (int iii = 0; iii < subConditionNames.Length; iii++)
                        {
                            Console.WriteLine(" The category " + categories[ii].Description + " has for the condition " + conditionNames[ii] + " the subcondition " + subConditionNames[iii]);
                        }
                    }
                }
                //Query available filters
                EnumFilterBy availableFilters;
                m_session.QueryAvailableAeFilters(out availableFilters, m_AF_executionOptions);

                if ((availableFilters & EnumFilterBy.AREA) == EnumFilterBy.AREA)
                {
                    filtersTextBox.AppendText("Filter by Area \n");
                }
                if ((availableFilters & EnumFilterBy.CATEGORY) == EnumFilterBy.CATEGORY)
                {
                    filtersTextBox.AppendText("Filter by Category \n");
                }
                if ((availableFilters & EnumFilterBy.EVENT) == EnumFilterBy.EVENT)
                {
                    filtersTextBox.AppendText("Filter by Event \n");
                }
                if ((availableFilters & EnumFilterBy.SEVERITY) == EnumFilterBy.SEVERITY)
                {
                    filtersTextBox.AppendText("Filter by Severity \n");
                }
                if ((availableFilters & EnumFilterBy.SOURCE) == EnumFilterBy.SOURCE)
                {
                    filtersTextBox.AppendText("Filter by Source \n");
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.ToString());
            }       //	end try...catch
        }           //	end constructor