示例#1
0
        }                 //	end HandleReadRequests

        public override int HandleWriteRequests()
        {
            int       count   = Requests.Count;
            MySession pClient = (MySession)Session;

            for (int i = 0; i < count; i++)
            {
                DaRequest request = Requests[i] as DaRequest;
                if ((request != null) && (request.ProgressRequestState(EnumRequestState.CREATED, EnumRequestState.INPROGRESS) == true))
                {
                    MyDaAddressSpaceElement element = (MyDaAddressSpaceElement)request.AddressSpaceElement;
                    if (element != null)
                    {
                        if (pClient.Equals(MySession.s_controlingSession))
                        {
                            ValueQT valueQT = request.Value;
                            request.Result = (EnumResultCode)element.ValueChanged(valueQT);
                        }
                        else
                        {
                            request.Result = EnumResultCode.E_ACCESSDENIED;
                        } //	end if
                    }     //	end if
                }         //	end if
            }             //	end for
            return(CompleteRequests());
        }                 //	end HandleWriteRequests
示例#2
0
        }           //	end constructor

        public override int HandleReadRequests()
        {
            int count = Requests.Count;

            for (int i = 0; i < count; i++)
            {
                DaRequest request = (DaRequest)Requests[i];
                if ((request != null) && (request.ProgressRequestState(EnumRequestState.CREATED, EnumRequestState.INPROGRESS) == true))
                {
                    if (request.PropertyId == 0)
                    {
                        // get address space element value
                        // take the toolkit cache value
                        ValueQT cacheValue = null;
                        request.AddressSpaceElement.GetCacheValue(ref cacheValue);
                        if (cacheValue == null)
                        {
                            request.AddressSpaceElement.QueryCacheValue((MySession)Session, ref cacheValue);
                        }
                        request.Value  = cacheValue;
                        request.Result = EnumResultCode.S_OK;
                    }
                    else
                    {
                        // get property value
                        // get the value from the address space element
                        MyDaAddressSpaceElement element = request.AddressSpaceElement as MyDaAddressSpaceElement;
                        if (element != null)
                        {
                            element.GetPropertyValue(request);
                        }
                        else
                        {
                            request.Result = EnumResultCode.E_FAIL;
                        } //	end if ... else
                    }     //	end if ... else
                }         //  end if
            }             //	end for
            return(CompleteRequests());
        }                 //	end HandleReadRequests
        }           //	end ProcessCommandLine

        public int BuildAddressSpace()
        {
            try
            {
                MyCreator creator = (MyCreator)Application.Instance.Creator;

                //	DA
                MyDaAddressSpaceRoot daRoot = (MyDaAddressSpaceRoot)Application.Instance.DaAddressSpaceRoot;

                m_daSimulationElement1              = (MyDaAddressSpaceElement)creator.CreateMyDaAddressSpaceElement();
                m_daSimulationElement1.Name         = "client specific";
                m_daSimulationElement1.AccessRights = EnumAccessRights.READABLE;
                m_daSimulationElement1.Datatype     = typeof(System.Int32);
                m_daSimulationElement1.IoMode       = EnumIoMode.POLL_OWNCACHE;
                daRoot.AddChild(m_daSimulationElement1);

                m_daSimulationElement2              = (MyDaAddressSpaceElement)creator.CreateMyDaAddressSpaceElement();
                m_daSimulationElement2.Name         = "secured write";
                m_daSimulationElement2.AccessRights = EnumAccessRights.READWRITEABLE;
                m_daSimulationElement2.Datatype     = typeof(System.Int32);
                m_daSimulationElement2.IoMode       = EnumIoMode.POLL;
                daRoot.AddChild(m_daSimulationElement2);
                m_daSimulationElement2.ValueChanged(new ValueQT(2, EnumQuality.GOOD, DateTime.Now));
            }
            catch (Exception exc)
            {
                Trace(
                    EnumTraceLevel.ERR,
                    EnumTraceGroup.USER1,
                    "OpcServer:BuildAddressSpace",
                    exc.ToString());
                return((int)EnumResultCode.E_FAIL);
            }               //	end try...catch

            return((int)EnumResultCode.S_OK);
        }           //	end BuildAddressSpace