mirror of
https://github.com/nasa/openmct.git
synced 2025-02-04 10:10:43 +00:00
need to figure out ranger
This commit is contained in:
parent
9e3e7394d2
commit
dcc893880b
@ -18,12 +18,14 @@ export default class CompsManager extends EventEmitter {
|
||||
this.#domainObject = domainObject;
|
||||
}
|
||||
|
||||
addParameter(keyString) {
|
||||
addParameter(telemetryObject) {
|
||||
const keyString = this.#openmct.objects.makeKeyString(telemetryObject.identifier);
|
||||
const metaData = this.#openmct.telemetry.getMetadata(telemetryObject);
|
||||
const random4Digit = Math.floor(1000 + Math.random() * 9000);
|
||||
this.#domainObject.configuration.comps.parameters.push({
|
||||
keyString,
|
||||
name: `New_Parameter_${random4Digit}`,
|
||||
valueToUse: 'sin',
|
||||
name: `${telemetryObject.name}_${random4Digit}`,
|
||||
valueToUse: metaData.valueMetadatas[0].key,
|
||||
testValue: 0
|
||||
});
|
||||
this.persist(this.#domainObject);
|
||||
@ -225,7 +227,7 @@ export default class CompsManager extends EventEmitter {
|
||||
(parameter) => parameter.keyString === keyString
|
||||
);
|
||||
if (!parameterExists) {
|
||||
this.addParameter(keyString);
|
||||
this.addParameter(telemetryObject);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -32,23 +32,24 @@ onconnect = function (e) {
|
||||
};
|
||||
};
|
||||
|
||||
function getFullDataFrame(telemetryForComps) {
|
||||
function getFullDataFrame(telemetryForComps, parameters) {
|
||||
const dataFrame = {};
|
||||
Object.keys(telemetryForComps).forEach((key) => {
|
||||
const parameter = parameters.find((p) => p.keyString === key);
|
||||
const dataSet = telemetryForComps[key];
|
||||
const telemetryMap = new Map(dataSet.map((item) => [item.utc, item]));
|
||||
const telemetryMap = new Map(dataSet.map((item) => [item[parameter.timeKey], item]));
|
||||
dataFrame[key] = telemetryMap;
|
||||
});
|
||||
return dataFrame;
|
||||
}
|
||||
|
||||
function calculateSubscription(telemetryForComps, parameters, expression) {
|
||||
const dataFrame = getFullDataFrame(telemetryForComps);
|
||||
const dataFrame = getFullDataFrame(telemetryForComps, parameters);
|
||||
return calculate(dataFrame, parameters, expression);
|
||||
}
|
||||
|
||||
function calculateRequest(telemetryForComps, parameters, expression) {
|
||||
const dataFrame = getFullDataFrame(telemetryForComps);
|
||||
const dataFrame = getFullDataFrame(telemetryForComps, parameters);
|
||||
return calculate(dataFrame, parameters, expression);
|
||||
}
|
||||
|
||||
|
@ -21,8 +21,12 @@
|
||||
*****************************************************************************/
|
||||
|
||||
export default class CompsMetadataProvider {
|
||||
constructor(openmct) {
|
||||
this.openmct = openmct;
|
||||
#openmct = null;
|
||||
#compsManagerPool = null;
|
||||
|
||||
constructor(openmct, compsManagerPool) {
|
||||
this.#openmct = openmct;
|
||||
this.#compsManagerPool = compsManagerPool;
|
||||
}
|
||||
|
||||
supportsMetadata(domainObject) {
|
||||
@ -30,7 +34,7 @@ export default class CompsMetadataProvider {
|
||||
}
|
||||
|
||||
getDomains(domainObject) {
|
||||
return this.openmct.time.getAllTimeSystems().map(function (ts, i) {
|
||||
return this.#openmct.time.getAllTimeSystems().map(function (ts, i) {
|
||||
return {
|
||||
key: ts.key,
|
||||
name: ts.name,
|
||||
@ -43,6 +47,9 @@ export default class CompsMetadataProvider {
|
||||
}
|
||||
|
||||
getMetadata(domainObject) {
|
||||
const keyString = this.#openmct.objects.makeKeyString(domainObject.identifier);
|
||||
const specificCompsManager = this.#compsManagerPool[keyString];
|
||||
console.debug('📦 CompsMetadataProvider: getMetadata', specificCompsManager);
|
||||
return {
|
||||
values: this.getDomains().concat([
|
||||
{
|
||||
@ -53,14 +60,6 @@ export default class CompsMetadataProvider {
|
||||
hints: {
|
||||
range: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'utc',
|
||||
name: 'Time',
|
||||
format: 'utc',
|
||||
hints: {
|
||||
domain: 1
|
||||
}
|
||||
}
|
||||
])
|
||||
};
|
||||
|
@ -125,7 +125,11 @@ export default class CompsTelemetryProvider {
|
||||
|
||||
onSharedWorkerMessage(event) {
|
||||
const { type, result, callbackID, error } = event.data;
|
||||
if (type === 'calculationSubscriptionResult' && this.#subscriptionCallbacks[callbackID]) {
|
||||
if (
|
||||
type === 'calculationSubscriptionResult' &&
|
||||
this.#subscriptionCallbacks[callbackID] &&
|
||||
result.length
|
||||
) {
|
||||
console.debug('📝 Shared worker subscription message:', event.data);
|
||||
this.#subscriptionCallbacks[callbackID](result);
|
||||
} else if (type === 'calculationRequestResult' && this.#requestPromises[callbackID]) {
|
||||
|
@ -51,7 +51,7 @@ export default function CompsPlugin() {
|
||||
}
|
||||
return true;
|
||||
});
|
||||
openmct.telemetry.addProvider(new CompsMetadataProvider(openmct));
|
||||
openmct.telemetry.addProvider(new CompsMetadataProvider(openmct, compsManagerPool));
|
||||
openmct.telemetry.addProvider(new CompsTelemetryProvider(openmct, compsManagerPool));
|
||||
openmct.objectViews.addProvider(new CompsViewProvider(openmct, compsManagerPool));
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user