need to figure out ranger

This commit is contained in:
Scott Bell 2024-08-14 17:32:26 -05:00
parent 9e3e7394d2
commit dcc893880b
5 changed files with 27 additions and 21 deletions

View File

@ -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);
} }
}; };

View File

@ -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);
} }

View File

@ -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
}
} }
]) ])
}; };

View File

@ -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]) {

View File

@ -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));
}; };