} // end HandleReadRequests public override int HandleWriteRequests() { int count = Requests.Count; 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) { ValueQT valueQT = request.Value; request.Result = (EnumResultCode)element.ValueChanged(valueQT); } // end if } // end if } // end for return(CompleteRequests()); } // end HandleWriteRequests
} // end ProcessCommandLine public int BuildAddressSpace() { try { MyCreator creator = (MyCreator)Application.Instance.Creator; // DA DaAddressSpaceRoot daRoot = Application.Instance.DaAddressSpaceRoot; m_daSimulationElement = (MyDaAddressSpaceElement)creator.CreateMyDaAddressSpaceElement(); m_daSimulationElement.Name = "simulation"; m_daSimulationElement.AccessRights = EnumAccessRights.READWRITEABLE; m_daSimulationElement.Datatype = typeof(System.Int32); m_daSimulationElement.IoMode = EnumIoMode.POLL; daRoot.AddChild(m_daSimulationElement); m_daSimulationElement.ValueChanged( new ValueQT( m_random.Next(5000), EnumQuality.GOOD, DateTime.Now)); //AE AeAddressSpaceRoot aeRoot = Application.Instance.AeAddressSpaceRoot; AeAddressSpaceElement aeElement = creator.CreateAeAddressSpaceElement(); aeElement.Name = "SimulationElement"; aeElement.HasChildren = false; aeRoot.AddChild(aeElement); } 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
} // 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); 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