provide telemetry

* listen to realtime data
This commit is contained in:
David Tsay 2020-02-25 16:37:43 -08:00
parent 78cf75323f
commit 92ecf3af1d
3 changed files with 35 additions and 1 deletions

View File

@ -0,0 +1,24 @@
import ConditionManager from './ConditionManager'
export default class ConditionSetTelemetryProvider {
constructor(openmct) {
this.openmct = openmct;
}
supportsRequest(domainObject, options) {
return false;
}
supportsSubscribe(domainObject) {
return domainObject.type === 'conditionSet';
}
subscribe(domainObject, callback) {
let conditionManager = new ConditionManager(domainObject, this.openmct);
conditionManager.on('conditionSetResultUpdated', (output) => output);
return function unsubscribe() {
conditionManager.off('conditionSetResultUpdated');
}
}
}

View File

@ -54,12 +54,21 @@ export default {
},
mounted() {
this.conditionSetIdentifier = this.openmct.objects.makeKeyString(this.domainObject.identifier);
this.provideTelemetry();
},
beforeDestroy() {
if (this.stopProvidingTelemetry) {
this.stopProvidingTelemetry();
}
},
methods: {
updateCurrentOutput(currentConditionResult) {
if (this.openmct.objects.makeKeyString(currentConditionResult.id) === this.conditionSetIdentifier) {
this.currentConditionOutput = currentConditionResult.output;
}
},
provideTelemetry() {
this.stopProvidingTelemetry = this.openmct.telemetry.subscribe(this.domainObject);
}
}
};

View File

@ -21,6 +21,7 @@
*****************************************************************************/
import ConditionSetViewProvider from './ConditionSetViewProvider.js';
import ConditionSetCompositionPolicy from "./ConditionSetCompositionPolicy";
import ConditionSetTelemetryProvider from './ConditionSetTelemetryProvider';
export default function ConditionPlugin() {
@ -50,7 +51,7 @@ export default function ConditionPlugin() {
});
openmct.composition.addPolicy(new ConditionSetCompositionPolicy(openmct).allow);
openmct.telemetry.addProvider(new ConditionSetTelemetryProvider(openmct));
openmct.objectViews.addProvider(new ConditionSetViewProvider(openmct));
}