Exemplo n.º 1
0
            public override UInt32 HandleHistoryReadRequest(object session, object readDetails, HistoryReadValueId id,
                                                            ContinuationPointHistory continuationPoint, List <DataValue> results, ref int?offsetContinueFit)
            {
                if (testHistoryPoints == null)
                {
                    testHistoryPoints = new List <DataValue>();

                    var dt = new DateTime(2015, 12, 1);
                    for (int i = 0; i < 100000; i++)
                    {
                        testHistoryPoints.Add(new DataValue(
                                                  Math.Sin(i * 0.3) + Math.Cos(i * 0.17) * 0.5 + Math.Sin(i * 0.087) * 0.25, StatusCode.Good,
                                                  dt));
                        dt = dt.AddHours(1);
                    }
                }

                int startOffset = continuationPoint.IsValid ? continuationPoint.Offset : 0;

                if (readDetails is ReadRawModifiedDetails)
                {
                    var rd = readDetails as ReadRawModifiedDetails;
                    for (int i = 0; i < 100000; i++)
                    {
                        var p = testHistoryPoints[i];
                        if (p.SourceTimestamp >= rd.StartTime &&
                            p.SourceTimestamp < rd.EndTime)
                        {
                            // Skip startOffset points
                            if (startOffset > 0)
                            {
                                startOffset--;
                                continue;
                            }

                            results.Add(p);
                        }
                    }

                    return((UInt32)StatusCode.Good);
                }

                return((UInt32)StatusCode.BadHistoryOperationUnsupported);
            }
Exemplo n.º 2
0
			public override UInt32 HandleHistoryEventReadRequest(object session, object readDetails,
				HistoryReadValueId id, ContinuationPointHistory continuationPoint, List<object[]> results)
			{
				if (readDetails is ReadEventDetails)
				{
					var rd = readDetails as ReadEventDetails;

					var dt = rd.StartTime;
					for (int i = 0; i < 5; i++)
					{
						var ev = GenerateSampleAlarmEvent(dt);
						results.Add(NetDispatcher.MatchFilterClauses(rd.SelectClauses, ev));
						dt = dt.AddMinutes(1);
					}

					return (UInt32)StatusCode.Good;
				}

				return (UInt32)StatusCode.BadHistoryOperationUnsupported;
			}