diff --git a/src/plugins/telemetryTable/TelemetryTable.js b/src/plugins/telemetryTable/TelemetryTable.js index 494a13272e..2bf4e1c700 100644 --- a/src/plugins/telemetryTable/TelemetryTable.js +++ b/src/plugins/telemetryTable/TelemetryTable.js @@ -47,6 +47,7 @@ define([ this.subscriptions = {}; this.tableComposition = undefined; this.telemetryObjects = []; + this.datumCache = []; this.outstandingRequests = 0; this.configuration = new TelemetryTableConfiguration(domainObject, openmct); this.paused = false; @@ -155,6 +156,7 @@ define([ processHistoricalData(telemetryData, columnMap, keyString, limitEvaluator) { let telemetryRows = telemetryData.map(datum => new TelemetryTableRow(datum, columnMap, keyString, limitEvaluator)); this.boundedRows.add(telemetryRows); + this.emit('historical-rows-processed'); } /** @@ -227,12 +229,28 @@ define([ return; } - if (!this.paused) { + if (this.paused) { + let realtimeDatum = { + datum, + columnMap, + keyString, + limitEvaluator + }; + + this.datumCache.push(realtimeDatum); + } else { this.processRealtimeDatum(datum, columnMap, keyString, limitEvaluator); } }, subscribeOptions); } + processDatumCache() { + this.datumCache.forEach(cachedDatum => { + this.processRealtimeDatum(cachedDatum.datum, cachedDatum.columnMap, cachedDatum.keyString, cachedDatum.limitEvaluator); + }); + this.datumCache = []; + } + processRealtimeDatum(datum, columnMap, keyString, limitEvaluator) { this.boundedRows.add(new TelemetryTableRow(datum, columnMap, keyString, limitEvaluator)); } @@ -272,8 +290,8 @@ define([ unpause() { this.paused = false; + this.processDatumCache(); this.boundedRows.subscribeToBounds(); - this.refreshData(); } destroy() { diff --git a/src/plugins/telemetryTable/TelemetryTableViewProvider.js b/src/plugins/telemetryTable/TelemetryTableViewProvider.js index 78269b2fef..7750736720 100644 --- a/src/plugins/telemetryTable/TelemetryTableViewProvider.js +++ b/src/plugins/telemetryTable/TelemetryTableViewProvider.js @@ -68,7 +68,7 @@ define([ table, objectPath }, - template: '' + template: '' }); }, onEditModeChange(editMode) { @@ -86,7 +86,7 @@ define([ priority() { return 1; } - } + }; } return TelemetryTableViewProvider; }); diff --git a/src/plugins/telemetryTable/components/table.vue b/src/plugins/telemetryTable/components/table.vue index 0e41447750..c1dc41a113 100644 --- a/src/plugins/telemetryTable/components/table.vue +++ b/src/plugins/telemetryTable/components/table.vue @@ -21,7 +21,10 @@ *****************************************************************************/