Opc.Ua.Com.Server.ComHdaProxy.CreateReadRequests C# (CSharp) Method

CreateReadRequests() private method

Creates the read requests.
private CreateReadRequests ( Session session, System.DateTime startTime, System.DateTime endTime, double resampleInterval, int serverHandles, uint aggregateIds, ReadProcessedDetails details ) : List
session Opc.Ua.Client.Session
startTime System.DateTime
endTime System.DateTime
resampleInterval double
serverHandles int
aggregateIds uint
details ReadProcessedDetails
return List
        private List<HdaReadRequest> CreateReadRequests(
            Session session,
            DateTime startTime,
            DateTime endTime,
            double resampleInterval,
            int[] serverHandles, 
            uint[] aggregateIds,
            ReadProcessedDetails details)
        {
            // start time or end time must be specified.
            if (startTime == DateTime.MinValue || endTime == DateTime.MinValue || startTime == endTime || resampleInterval < 0)
            {
                throw ComUtils.CreateComException(ResultIds.E_INVALIDARG);
            }

            // check the number of intervals.
            if (m_configuration.MaxReturnValues > 0 && resampleInterval != 0)
            {
                long range = Math.Abs(((endTime - startTime).Ticks));

                if (range/(TimeSpan.TicksPerMillisecond*resampleInterval) > m_configuration.MaxReturnValues)
                {
                    throw ComUtils.CreateComException(ResultIds.E_MAXEXCEEDED);
                }
            }
            
            details.StartTime = startTime;
            details.EndTime = endTime;
            details.ProcessingInterval = resampleInterval;

            // build the list of requests.
            List<HdaReadRequest> requests = new List<HdaReadRequest>();

            for (int ii = 0; ii < serverHandles.Length; ii++)
            {
                HdaReadRequest request = new HdaReadRequest();
                requests.Add(request);

                // initialize request.
                request.AggregateId = aggregateIds[ii];

                // look up server handle.
                request.Handle = m_itemManager.LookupHandle(serverHandles[ii]);

                if (request.Handle == null)
                {
                    request.Error = ResultIds.E_INVALIDHANDLE;
                    continue;
                }
                
                // set node id to use.
                request.NodeId = request.Handle.NodeId;
                request.ClientHandle = request.Handle.ClientHandle;

                // check aggregate.
                NodeId aggregateId = ComUtils.GetHdaAggregateId(aggregateIds[ii]);

                if (aggregateId == null)
                {
                    aggregateId = m_mapper.GetRemoteIntegerIdMapping(Opc.Ua.BrowseNames.AggregateFunctions, aggregateIds[ii]);
                }

                if (aggregateId == null)
                {
                    request.Error = ResultIds.E_NOT_AVAIL;
                    continue;
                }

                details.AggregateType.Add(aggregateId);
            }

            return requests;
        }
        #endregion

Same methods

ComHdaProxy::CreateReadRequests ( Session session, System.DateTime startTime, System.DateTime endTime, int serverHandles, ReadRawModifiedDetails details ) : List
ComHdaProxy::CreateReadRequests ( Session session, System.DateTime startTime, System.DateTime endTime, int serverHandle, uint attributeIds, ReadRawModifiedDetails details ) : List
ComHdaProxy::CreateReadRequests ( Session session, System.DateTime startTime, System.DateTime endTime, uint numValues, bool returnBounds, int serverHandles, ReadRawModifiedDetails details ) : List
ComHdaProxy::CreateReadRequests ( Session session, System.DateTime timestamps, int serverHandles, ReadAtTimeDetails details ) : List