}           //	end ProcessCommandLine

        public void Terminate()
        {
            if (m_areDaObjectsInitialized)
            {
                if (m_daSubscription.CurrentState != EnumObjectState.DISCONNECTED)
                {
                    m_daSubscription.Disconnect(new ExecutionOptions());
                }
                if (m_daSession.CurrentState != EnumObjectState.DISCONNECTED)
                {
                    m_daSession.Disconnect(new ExecutionOptions());
                }

                m_daSubscription.RemoveDaItem(m_daItem1);
                m_daSubscription.RemoveDaItem(m_daItem2);
                m_daSubscription.RemoveDaItem(m_daItem3);
                m_daSubscription.RemoveDaItem(m_daItem4);

                m_daSession.RemoveDaSubscription(m_daSubscription);

                GetApplication().RemoveDaSession(m_daSession);
            }

            GetApplication().Terminate();
            m_daSession      = null;
            m_daSubscription = null;
            m_daItem1        = null;
            m_daItem2        = null;
            m_daItem3        = null;
            m_daItem4        = null;
        }           //	end Terminate
示例#2
0
        //-----------------

        public MyDaItem(string itemId, MyDaSubscription parentSubscription) : base(itemId, parentSubscription)
        {
            StateChangeCompleted            += new StateChangeEventHandler(HandleStateChanged);
            PerformStateTransitionCompleted += new PerformStateTransitionEventHandler(HandlePerformStateTransition);
        }
        }           //	end Terminate

        public int InitializeDaObjects()
        {
            int connectResult = (int)EnumResultCode.E_FAIL;

            m_executionOptions = new ExecutionOptions();
            m_executionOptions.ExecutionType    = EnumExecutionType.ASYNCHRONOUS;
            m_executionOptions.ExecutionContext = 0;

            m_itemList = new MyDaItem[4];
            m_itemIds  = new string[] { "maths.sin", "time.local.second", "increment.UI1 array", "increment.BSTR" };

            try
            {
                //	TODO add your server URL here
                //	this is the server url for Softing OPCToolbox Demo Server
                //	first choice is COM-DA
                string url = "opcda:///Softing.OPCToolboxDemo_ServerDA.1/{2E565242-B238-11D3-842D-0008C779D775}";

                //uncomment if you need an XML-DA access
                //	string url = "http://localhost:8079/OPC/DA";

                m_daSession = new MyDaSession(url);

                if (!m_daSession.Valid)
                {
                    return(connectResult);
                }

                m_daSubscription = new MyDaSubscription(1000, m_daSession);

                if (!m_daSubscription.Valid)
                {
                    return(connectResult);
                }

                m_daItem1 = new MyDaItem("maths.sin", m_daSubscription);

                if (!m_daItem1.Valid)
                {
                    return(connectResult);
                }
                m_itemList[0] = m_daItem1;

                m_daItem2 = new MyDaItem("time.local.second", m_daSubscription);

                if (!m_daItem2.Valid)
                {
                    return(connectResult);
                }
                m_itemList[1] = m_daItem2;

                m_daItem3 = new MyDaItem("increment.UI1 array", m_daSubscription);
                if (!m_daItem3.Valid)
                {
                    return(connectResult);
                }
                m_itemList[2] = m_daItem3;

                m_daItem4 = new MyDaItem("increment.BSTR", m_daSubscription);
                if (!m_daItem4.Valid)
                {
                    return(connectResult);
                }

                m_itemList[3] = m_daItem4;

                m_areDaObjectsInitialized = true;

                connectResult = m_daSession.Connect(true, true, null);
            }
            catch (Exception exc)
            {
                GetApplication().Trace(
                    EnumTraceLevel.ERR,
                    EnumTraceGroup.USER,
                    "OpcClient::InitializaDaObjects",
                    exc.ToString());
            }               //	end try...catch

            return(connectResult);
        }           //	end InitializeDaObjects