Esempio n. 1
0
        /// <summary>
        /// Creates the update requests.
        /// </summary>
        private List<HdaUpdateRequest> CreateUpdateRequests(
            Session session,
            int[] serverHandles,
            DateTime[] timestamps,
            Annotation[][] annotations)
        {
            List<HdaUpdateRequest> requests = new List<HdaUpdateRequest>();

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

                // find handle.
                request.Handle = m_itemManager.LookupHandle(serverHandles[ii]);

                if (request.Handle == null)
                {
                    request.Error = ResultIds.E_INVALIDHANDLE;
                    continue;
                }

                request.ClientHandle = request.Handle.ClientHandle;

                // check if nothing to do.
                Annotation[] list = annotations[ii];

                if (list == null || list.Length == 0)
                {
                    request.Error = ResultIds.S_OK;
                    continue;
                }

                // get the annotations proprerty.
                NodeId annotationsId = m_itemManager.GetAnnotationsPropertyNodeId(session, request.Handle);

                if (NodeId.IsNull(annotationsId))
                {
                    request.Error = ResultIds.E_FAIL;
                    continue;
                }

                // specify the parameters for the request.
                UpdateDataDetails details = new UpdateDataDetails();

                details.NodeId = annotationsId;
                details.PerformInsertReplace = PerformUpdateType.Insert;

                for (int jj = 0; jj < list.Length; jj++)
                {
                    DataValue value = new DataValue();
                    value.WrappedValue = new ExtensionObject(list[jj]);
                    value.SourceTimestamp = timestamps[ii];
                    details.UpdateValues.Add(value);                    
                }

                request.Details = new ExtensionObject(details);
            }

            return requests;
        }
Esempio n. 2
0
        /// <summary>
        /// Creates the update requests.
        /// </summary>
        private List<HdaUpdateRequest> CreateUpdateRequests(
            Session session,
            DateTime[] timestamps,
            int[] serverHandles)
        {
            List<HdaUpdateRequest> requests = new List<HdaUpdateRequest>();

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

                // find handle.
                request.Handle = m_itemManager.LookupHandle(serverHandles[ii]);

                if (request.Handle == null)
                {
                    request.Error = ResultIds.E_INVALIDHANDLE;
                    continue;
                }

                request.ClientHandle = request.Handle.ClientHandle;

                // specify the parameters for the request.
                DeleteAtTimeDetails details = new DeleteAtTimeDetails();

                details.NodeId = request.Handle.NodeId;
                details.ReqTimes.AddRange(timestamps);

                request.Details = new ExtensionObject(details);
            }

            return requests;
        }
Esempio n. 3
0
        /// <summary>
        /// Creates the update requests.
        /// </summary>
        private List<HdaUpdateRequest> CreateUpdateRequests(
            Session session,
            DateTime startTime,
            DateTime endTime,
            int[] serverHandles)
        {
            if (startTime == DateTime.MinValue || endTime == DateTime.MinValue)
            {
                throw ComUtils.CreateComException(ResultIds.E_INVALIDARG);
            }

            List<HdaUpdateRequest> requests = new List<HdaUpdateRequest>();

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

                // find handle.
                request.Handle = m_itemManager.LookupHandle(serverHandles[ii]);

                if (request.Handle == null)
                {
                    request.Error = ResultIds.E_INVALIDHANDLE;
                    continue;
                }

                request.ClientHandle = request.Handle.ClientHandle;

                // specify the parameters for the request.
                DeleteRawModifiedDetails details = new DeleteRawModifiedDetails();

                details.NodeId = request.Handle.NodeId;
                details.IsDeleteModified = false;
                details.StartTime = startTime;
                details.EndTime = endTime;

                request.Details = new ExtensionObject(details);
            }

            return requests;
        }
Esempio n. 4
0
        /// <summary>
        /// Creates the update requests.
        /// </summary>
        private List<HdaUpdateRequest> CreateUpdateRequests(
            Session session,
            PerformUpdateType updateType,
            int[] serverHandles,
            DaValue[] values)
        {
            List<HdaUpdateRequest> requests = new List<HdaUpdateRequest>();

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

                // find handle.
                request.Handle = m_itemManager.LookupHandle(serverHandles[ii]);

                if (request.Handle == null)
                {
                    request.Error = ResultIds.E_INVALIDHANDLE;
                    continue;
                }

                request.ClientHandle = request.Handle.ClientHandle;

                // check if nothing to do.
                DaValue value = values[ii];

                if (value == null)
                {
                    request.Error = ResultIds.E_FAIL;
                    continue;
                }

                // specify the parameters for the request.
                UpdateDataDetails details = new UpdateDataDetails();

                details.NodeId = request.Handle.NodeId;
                details.PerformInsertReplace = updateType;

                DataValue value2 = m_mapper.GetRemoteDataValue(value, m_itemManager.GetRemoteDataType(request.Handle));

                value2.SourceTimestamp = value.Timestamp;
                value2.StatusCode = ComUtils.GetHdaQualityCode(value.HdaQuality);

                details.UpdateValues.Add(value2);

                request.Details = new ExtensionObject(details);
            }

            return requests;
        }