mirror of
https://github.com/nasa/openmct.git
synced 2025-02-04 18:20:43 +00:00
add icons and fix errant telemetry
This commit is contained in:
parent
1c68c7e044
commit
5894363ba5
@ -485,9 +485,9 @@ export default class TelemetryCollection extends EventEmitter {
|
|||||||
this.boundedTelemetry = [];
|
this.boundedTelemetry = [];
|
||||||
this.futureBuffer = [];
|
this.futureBuffer = [];
|
||||||
|
|
||||||
this.emit('clear');
|
const telemetryLoadPromise = this._requestHistoricalTelemetry();
|
||||||
|
|
||||||
this._requestHistoricalTelemetry();
|
this.emit('clear', telemetryLoadPromise);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -9,12 +9,14 @@ export default class CompsManager extends EventEmitter {
|
|||||||
#dataFrame = {};
|
#dataFrame = {};
|
||||||
#telemetryLoadedPromises = [];
|
#telemetryLoadedPromises = [];
|
||||||
#loaded = false;
|
#loaded = false;
|
||||||
|
#compositionLoaded = false;
|
||||||
#telemetryProcessors = {};
|
#telemetryProcessors = {};
|
||||||
|
|
||||||
constructor(openmct, domainObject) {
|
constructor(openmct, domainObject) {
|
||||||
super();
|
super();
|
||||||
this.#openmct = openmct;
|
this.#openmct = openmct;
|
||||||
this.#domainObject = domainObject;
|
this.#domainObject = domainObject;
|
||||||
|
this.clearData = this.clearData.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
isValid() {
|
isValid() {
|
||||||
@ -110,13 +112,16 @@ export default class CompsManager extends EventEmitter {
|
|||||||
this.#domainObject = passedDomainObject;
|
this.#domainObject = passedDomainObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
isLoaded() {
|
isReady() {
|
||||||
return this.#loaded;
|
return this.isValid() && this.#loaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
async load() {
|
async load() {
|
||||||
if (!this.#loaded) {
|
if (!this.#compositionLoaded) {
|
||||||
await this.#loadComposition();
|
await this.#loadComposition();
|
||||||
|
this.#compositionLoaded = true;
|
||||||
|
}
|
||||||
|
if (!this.#loaded) {
|
||||||
await Promise.all(this.#telemetryLoadedPromises);
|
await Promise.all(this.#telemetryLoadedPromises);
|
||||||
this.#telemetryLoadedPromises = [];
|
this.#telemetryLoadedPromises = [];
|
||||||
this.#loaded = true;
|
this.#loaded = true;
|
||||||
@ -130,7 +135,7 @@ export default class CompsManager extends EventEmitter {
|
|||||||
if (!this.#telemetryCollections[keyString].loaded) {
|
if (!this.#telemetryCollections[keyString].loaded) {
|
||||||
const specificTelemetryProcessor = this.#getTelemetryProcessor(keyString);
|
const specificTelemetryProcessor = this.#getTelemetryProcessor(keyString);
|
||||||
this.#telemetryCollections[keyString].on('add', specificTelemetryProcessor);
|
this.#telemetryCollections[keyString].on('add', specificTelemetryProcessor);
|
||||||
this.#telemetryCollections[keyString].on('clear', this.#clearData);
|
this.#telemetryCollections[keyString].on('clear', this.clearData);
|
||||||
this.#telemetryCollections[keyString].load();
|
this.#telemetryCollections[keyString].load();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -142,7 +147,7 @@ export default class CompsManager extends EventEmitter {
|
|||||||
const specificTelemetryProcessor = this.#telemetryProcessors[keyString];
|
const specificTelemetryProcessor = this.#telemetryProcessors[keyString];
|
||||||
delete this.#telemetryProcessors[keyString];
|
delete this.#telemetryProcessors[keyString];
|
||||||
this.#telemetryCollections[keyString].off('add', specificTelemetryProcessor);
|
this.#telemetryCollections[keyString].off('add', specificTelemetryProcessor);
|
||||||
this.#telemetryCollections[keyString].off('clear', this.#clearData);
|
this.#telemetryCollections[keyString].off('clear', this.clearData);
|
||||||
this.#telemetryCollections[keyString].destroy();
|
this.#telemetryCollections[keyString].destroy();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -236,8 +241,10 @@ export default class CompsManager extends EventEmitter {
|
|||||||
this.emit('underlyingTelemetryUpdated', { [keyString]: newTelemetry });
|
this.emit('underlyingTelemetryUpdated', { [keyString]: newTelemetry });
|
||||||
};
|
};
|
||||||
|
|
||||||
#clearData() {
|
clearData(telemetryLoadedPromise) {
|
||||||
console.debug('Clear Data');
|
console.debug('💨 Clear Data fired, need to wait for all telemetry collections to load');
|
||||||
|
this.#loaded = false;
|
||||||
|
this.#telemetryLoadedPromises.push(telemetryLoadedPromise);
|
||||||
}
|
}
|
||||||
|
|
||||||
getOutputFormat() {
|
getOutputFormat() {
|
||||||
@ -256,7 +263,7 @@ export default class CompsManager extends EventEmitter {
|
|||||||
this.#openmct.telemetry.requestCollection(telemetryObject);
|
this.#openmct.telemetry.requestCollection(telemetryObject);
|
||||||
|
|
||||||
this.#telemetryCollections[keyString].on('add', this.#getTelemetryProcessor(keyString));
|
this.#telemetryCollections[keyString].on('add', this.#getTelemetryProcessor(keyString));
|
||||||
this.#telemetryCollections[keyString].on('clear', this.#clearData);
|
this.#telemetryCollections[keyString].on('clear', this.clearData);
|
||||||
const telemetryLoadedPromise = this.#telemetryCollections[keyString].load();
|
const telemetryLoadedPromise = this.#telemetryCollections[keyString].load();
|
||||||
this.#telemetryLoadedPromises.push(telemetryLoadedPromise);
|
this.#telemetryLoadedPromises.push(telemetryLoadedPromise);
|
||||||
console.debug('📢 CompsManager: loaded telemetry collection', keyString);
|
console.debug('📢 CompsManager: loaded telemetry collection', keyString);
|
||||||
|
@ -77,17 +77,17 @@ export default class CompsTelemetryProvider {
|
|||||||
callbackID
|
callbackID
|
||||||
};
|
};
|
||||||
this.#sharedWorker.port.postMessage(payload);
|
this.#sharedWorker.port.postMessage(payload);
|
||||||
|
console.debug('🧮 Comps Telemetry Provider: sending request request (bleh)', payload);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
#computeOnNewTelemetry(specificCompsManager, newTelemetry, callbackID) {
|
#computeOnNewTelemetry(specificCompsManager, newTelemetry, callbackID) {
|
||||||
if (!specificCompsManager.isValid() || !specificCompsManager.isLoaded()) {
|
if (!specificCompsManager.isReady()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const expression = specificCompsManager.getExpression();
|
const expression = specificCompsManager.getExpression();
|
||||||
const telemetryForComps = specificCompsManager.getFullDataFrame(newTelemetry);
|
const telemetryForComps = specificCompsManager.getFullDataFrame(newTelemetry);
|
||||||
// TODO: this is nasty. instead figure out why a proxy is getting in here
|
|
||||||
const parameters = JSON.parse(JSON.stringify(specificCompsManager.getParameters()));
|
const parameters = JSON.parse(JSON.stringify(specificCompsManager.getParameters()));
|
||||||
const payload = {
|
const payload = {
|
||||||
type: 'calculateSubscription',
|
type: 'calculateSubscription',
|
||||||
@ -96,7 +96,7 @@ export default class CompsTelemetryProvider {
|
|||||||
parameters,
|
parameters,
|
||||||
callbackID
|
callbackID
|
||||||
};
|
};
|
||||||
console.debug('🧮 Comps Telemetry Provider: sending calculation request', payload);
|
console.debug('🧮 Comps Telemetry Provider: sending subscription request', payload);
|
||||||
this.#sharedWorker.port.postMessage(payload);
|
this.#sharedWorker.port.postMessage(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,17 @@
|
|||||||
<ObjectPath
|
<ObjectPath
|
||||||
:domain-object="compsManager.getTelemetryObjectForParameter(parameter.keyString)"
|
:domain-object="compsManager.getTelemetryObjectForParameter(parameter.keyString)"
|
||||||
/>
|
/>
|
||||||
{{ compsManager.getTelemetryObjectForParameter(parameter.keyString)?.name }}
|
<div class="parametery-telemetry">
|
||||||
|
<div
|
||||||
|
class="parameter-telemetry-icon"
|
||||||
|
:class="
|
||||||
|
getIconForType(compsManager.getTelemetryObjectForParameter(parameter.keyString))
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
<div class="parametery-telemetry-name">
|
||||||
|
{{ compsManager.getTelemetryObjectForParameter(parameter.keyString)?.name }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<!-- drop down to select value from telemetry -->
|
<!-- drop down to select value from telemetry -->
|
||||||
<select v-if="isEditing" v-model="parameter.valueToUse" @change="updateParameters">
|
<select v-if="isEditing" v-model="parameter.valueToUse" @change="updateParameters">
|
||||||
<option
|
<option
|
||||||
@ -176,6 +186,10 @@ function updateParameters() {
|
|||||||
applyTestData();
|
applyTestData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getIconForType(telemetryObject) {
|
||||||
|
return openmct.types.get(telemetryObject.type).definition.cssClass;
|
||||||
|
}
|
||||||
|
|
||||||
function toggleTestData() {
|
function toggleTestData() {
|
||||||
testDataApplied.value = !testDataApplied.value;
|
testDataApplied.value = !testDataApplied.value;
|
||||||
if (testDataApplied.value) {
|
if (testDataApplied.value) {
|
||||||
|
@ -30,6 +30,11 @@
|
|||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.parametery-telemetry {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
.expression-input {
|
.expression-input {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user