Please find my analysis and queries, please review them and clarify.
PMU data (IEC 61850-90-5) is streaming data continuously. Whereas goose data is arriving based on events (e.g. open/close).
Below logic is implemented in openHistorian’s Grafana Service to fetch the PMU data:
• Grafana UI is requesting data for specific interval (e.g last 5 mins data).
• openHistorian Grafana service is calculating the data resolution for given interval using some
long range = (stopTime - startTime). Ticks;
if (range <= TimeSpan.TicksPerHour && !measurementIDs.Any(measurementID => (metadata.TryGetValue(measurementID, out row) ? int.Parse(row[“FramesPerSecond”].ToString()) : 1) > 1)) return Resolution.Full;
if (range <= Ticks.PerMinute) return Resolution.Full;
if (range <= Ticks.PerMinute * 5L) return Resolution.TenPerSecond;
if (range <= Ticks.PerMinute * 30L) return Resolution.EverySecond;
if (range <= Ticks.PerHour * 3L) return Resolution.Every10Seconds;
When Grafana requesting data for specific time interval, resolution always falling like Resolution.TenPerSecond or Resolution.Every10Seconds with respective of interval length (ticks).
Once resolution is calculated then Grafana service is fetching the data from Historian data service and return them to Grafana UI.
According to Goose data, resolution must be “Full”, because Goose data will not fall under any variations or interval like TenPersecond or EverySecond.
Is there any possibility to identify whether this measurement id is belonging to goose device?
Is there any way to access openHistorian database from “OpenHistorian.Adapters”?
Specifically, TrendValueAPI.cs file.