mirror of
https://github.com/nasa/openmct.git
synced 2025-06-14 21:28:12 +00:00
[Time Controller] Filter out realtime updates
Filter out realtime updates that are outside of the time controller's range. WTD-1515
This commit is contained in:
@ -42,6 +42,34 @@ define(
|
|||||||
this.telemetryService = telemetryService;
|
this.telemetryService = telemetryService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Strip out any realtime data series that is outside of the conductor's
|
||||||
|
// bounds.
|
||||||
|
ConductorTelemetryDecorator.prototype.stripRealtime = function (packaged) {
|
||||||
|
var conductor = this.conductorService.getConductor(),
|
||||||
|
start = conductor.displayStart(),
|
||||||
|
end = conductor.displayEnd(),
|
||||||
|
repackaged = {};
|
||||||
|
|
||||||
|
function filterSource(packagedBySource) {
|
||||||
|
var repackagedBySource = {};
|
||||||
|
|
||||||
|
Object.keys(packagedBySource).filter(function (k) {
|
||||||
|
return packagedBySource[k].getPointCount() > 0 &&
|
||||||
|
packagedBySource[k].getDomainValue(0) <= end;
|
||||||
|
}).forEach(function (k) {
|
||||||
|
repackagedBySource[k] = packagedBySource[k];
|
||||||
|
});
|
||||||
|
|
||||||
|
return repackagedBySource;
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.keys(packaged).forEach(function (source) {
|
||||||
|
repackaged[source] = filterSource(packaged[source]);
|
||||||
|
});
|
||||||
|
|
||||||
|
return repackaged;
|
||||||
|
};
|
||||||
|
|
||||||
ConductorTelemetryDecorator.prototype.amendRequests = function (requests) {
|
ConductorTelemetryDecorator.prototype.amendRequests = function (requests) {
|
||||||
var conductor = this.conductorService.getConductor(),
|
var conductor = this.conductorService.getConductor(),
|
||||||
start = conductor.displayStart(),
|
start = conductor.displayStart(),
|
||||||
@ -63,8 +91,14 @@ define(
|
|||||||
};
|
};
|
||||||
|
|
||||||
ConductorTelemetryDecorator.prototype.subscribe = function (callback, requests) {
|
ConductorTelemetryDecorator.prototype.subscribe = function (callback, requests) {
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
function internalCallback(packagedSeries) {
|
||||||
|
return callback(self.stripRealtime(packagedSeries));
|
||||||
|
}
|
||||||
|
|
||||||
return this.telemetryService
|
return this.telemetryService
|
||||||
.subscribe(callback, this.amendRequests(requests));
|
.subscribe(internalCallback, this.amendRequests(requests));
|
||||||
};
|
};
|
||||||
|
|
||||||
return ConductorTelemetryDecorator;
|
return ConductorTelemetryDecorator;
|
||||||
|
Reference in New Issue
Block a user