} // end ProcessCommandLine public void Terminate() { if (m_aeSession.CurrentState != EnumObjectState.DISCONNECTED) { m_aeSession.Disconnect(new ExecutionOptions()); } GetApplication().RemoveAeSession(m_aeSession); GetApplication().Terminate(); m_aeSession = null; } // end Terminate
} // end Terminate public int InitializeAeObjects() { int connectResult = (int)EnumResultCode.E_FAIL; try { m_aeSession = new MyAeSession("opcae:///Softing.OPCToolboxDemo_ServerAE.1/{2E565243-B238-11D3-842D-0008C779D775}"); connectResult = m_aeSession.Connect( true, true, null); } catch (Exception exc) { GetApplication().Trace( EnumTraceLevel.ERR, EnumTraceGroup.USER, "OpcClient::InitializeAeObjects", exc.ToString()); } // end try...catch return(connectResult); } // end InitializeAeObjects
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