public TimeSeries[] GetSampleData() { // This function gets sampled values for a list of tags // from the same PI server over the same time range at the // interval specified. try { if (mintValCnt == 0) mintValCnt = Int32.MaxValue; String[] tags = GetTags(); PIArcDataRequest[] padReqs = new PIArcDataRequest[tags.Length]; // Adjust start and end times to account for time zone CheckDates(); // insure that start is before end TimeRange tr = new TimeRange(); tr.Start = mdtStart.ToString("yyyy-MM-ddTHH:mm:ss-08:00"); tr.End = mdtEnd.ToString("yyyy-MM-ddTHH:mm:ss-08:00"); PIArcManner paManr = new PIArcManner(); paManr.RetrievalType = PIArcMannerRetrievalType.Interpolated; paManr.Boundaries = PIArcMannerBoundaries.Interpolated; // Calculate the number of intervals based on the interval and time span TimeSpan span = mdtEnd.Subtract(mdtStart); mintValCnt = (int)(span.TotalSeconds / Convert.ToDouble(mintInterval)) + 1; paManr.NumValues = mintValCnt; for (int i = 0; i < tags.Length; i++) { PIArcDataRequest padReq = new PIArcDataRequest(); padReq.Path = tags[i]; padReq.PIArcManner = paManr; padReq.TimeRange = tr; padReqs[i] = padReq; } TimeSeries[] ts = client.GetPIArchiveData(padReqs); // Always close the client. client.Close(); WriteOutput(); return (CheckResult(ts)); } catch (Exception ex) { output.AppendLine(ex.Message); if (ex.InnerException != null) { output.AppendLine(ex.InnerException.Message); } WriteOutput(); return null; } }
public TimeSeries[] GetArchiveData() { // This function gets compressed archive data for a list of tags // from the same PI server over the same time range. try { if (mintValCnt == 0) mintValCnt = Int32.MaxValue; String[] tags = GetTags(); PIArcDataRequest[] padReqs = new PIArcDataRequest[tags.Length]; // Adjust start and end times to account for time zone CheckDates(); // insure that start is before end TimeRange tr = new TimeRange(); tr.Start = mdtStart.ToString("yyyy-MM-ddTHH:mm:ss-08:00"); tr.End = mdtEnd.ToString("yyyy-MM-ddTHH:mm:ss-08:00"); PIArcManner paManr = new PIArcManner(); paManr.RetrievalType = PIArcMannerRetrievalType.Compressed; paManr.Boundaries = PIArcMannerBoundaries.Inside; paManr.NumValues = mintValCnt; for (int i = 0; i < tags.Length; i++) { PIArcDataRequest padReq = new PIArcDataRequest(); padReq.Path = tags[i]; padReq.PIArcManner = paManr; padReq.TimeRange = tr; padReqs[i] = padReq; } TimeSeries[] ts = client.GetPIArchiveData(padReqs); // Always close the client. client.Close(); WriteOutput(); return (CheckResult(ts)); } catch (Exception ex) { output.AppendLine(ex.Message); if (ex.InnerException != null) { output.AppendLine(ex.InnerException.Message); } WriteOutput(); return null; } }