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