mirror of
https://github.com/nasa/openmct.git
synced 2025-06-04 00:20:50 +00:00
provide telemetry
* listen to realtime data
This commit is contained in:
parent
78cf75323f
commit
92ecf3af1d
24
src/plugins/condition/ConditionSetTelemetryProvider.js
Normal file
24
src/plugins/condition/ConditionSetTelemetryProvider.js
Normal 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');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -54,12 +54,21 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.conditionSetIdentifier = this.openmct.objects.makeKeyString(this.domainObject.identifier);
|
this.conditionSetIdentifier = this.openmct.objects.makeKeyString(this.domainObject.identifier);
|
||||||
|
this.provideTelemetry();
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
if (this.stopProvidingTelemetry) {
|
||||||
|
this.stopProvidingTelemetry();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
updateCurrentOutput(currentConditionResult) {
|
updateCurrentOutput(currentConditionResult) {
|
||||||
if (this.openmct.objects.makeKeyString(currentConditionResult.id) === this.conditionSetIdentifier) {
|
if (this.openmct.objects.makeKeyString(currentConditionResult.id) === this.conditionSetIdentifier) {
|
||||||
this.currentConditionOutput = currentConditionResult.output;
|
this.currentConditionOutput = currentConditionResult.output;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
provideTelemetry() {
|
||||||
|
this.stopProvidingTelemetry = this.openmct.telemetry.subscribe(this.domainObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
import ConditionSetViewProvider from './ConditionSetViewProvider.js';
|
import ConditionSetViewProvider from './ConditionSetViewProvider.js';
|
||||||
import ConditionSetCompositionPolicy from "./ConditionSetCompositionPolicy";
|
import ConditionSetCompositionPolicy from "./ConditionSetCompositionPolicy";
|
||||||
|
import ConditionSetTelemetryProvider from './ConditionSetTelemetryProvider';
|
||||||
|
|
||||||
export default function ConditionPlugin() {
|
export default function ConditionPlugin() {
|
||||||
|
|
||||||
@ -50,7 +51,7 @@ export default function ConditionPlugin() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
openmct.composition.addPolicy(new ConditionSetCompositionPolicy(openmct).allow);
|
openmct.composition.addPolicy(new ConditionSetCompositionPolicy(openmct).allow);
|
||||||
|
openmct.telemetry.addProvider(new ConditionSetTelemetryProvider(openmct));
|
||||||
openmct.objectViews.addProvider(new ConditionSetViewProvider(openmct));
|
openmct.objectViews.addProvider(new ConditionSetViewProvider(openmct));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user