From 13d2c17e194debbe7e4f61d591ad92d57fb71b92 Mon Sep 17 00:00:00 2001 From: Peter Di Pasquale Date: Thu, 5 Feb 2026 07:18:33 -0800 Subject: [PATCH 1/3] bring peters evr module name fixes over to main --- src/realtime/MCWSEVRLevelStreamProvider.js | 2 +- src/realtime/MCWSEVRStreamProvider.js | 19 ++++++++++++++----- src/realtime/MCWSStreamWorkerScript.js | 2 +- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/realtime/MCWSEVRLevelStreamProvider.js b/src/realtime/MCWSEVRLevelStreamProvider.js index 7f90918..5d86370 100644 --- a/src/realtime/MCWSEVRLevelStreamProvider.js +++ b/src/realtime/MCWSEVRLevelStreamProvider.js @@ -31,7 +31,7 @@ class MCWSEVRLevelStreamProvider extends MCWSStreamProvider { * @returns {String} The key */ getKey(domainObject) { - return domainObject.telemetry.level; + return domainObject.telemetry.level.toUpperCase(); } } diff --git a/src/realtime/MCWSEVRStreamProvider.js b/src/realtime/MCWSEVRStreamProvider.js index b0d1b06..6f84ceb 100644 --- a/src/realtime/MCWSEVRStreamProvider.js +++ b/src/realtime/MCWSEVRStreamProvider.js @@ -32,19 +32,28 @@ class MCWSEVRStreamProvider extends MCWSStreamProvider { */ getKey(domainObject) { // Can subscribe only by EVR module even if subscribing by EVR + // This is the default cause for EVRs that contain a module. let module = domainObject.telemetry && domainObject.telemetry.definition && domainObject.telemetry.definition.module && - domainObject.telemetry.definition.module.toLowerCase(); + domainObject.telemetry.definition.module.toUpperCase(); + + // This is the top-level vista.evrModule object, which contains + // A module definition but not in the definition object. + // This must be captured before an attempt at legacy EVRs is made + // in case the module has underscores in it. + if (!module || module.length <= 0) { + module = domainObject.telemetry + && domainObject.telemetry.module + && domainObject.telemetry.module.toUpperCase(); + } // legacy inference of module by evr_name - // if this fallback is used will break on module names containing underscores + // This should *never* occur with modern telemetry dictionaries. if (!module || module.length <= 0) { console.warn('Legacy domain objects should not be used anymore!'); - module = domainObject.telemetry.evr_name - ? domainObject.telemetry.evr_name.split('_')[0].toLowerCase() - : domainObject.telemetry.module.toLowerCase(); + module = domainObject.telemetry.evr_name.split('_')[0].toUpperCase(); } return module; diff --git a/src/realtime/MCWSStreamWorkerScript.js b/src/realtime/MCWSStreamWorkerScript.js index 7824a27..000445f 100644 --- a/src/realtime/MCWSStreamWorkerScript.js +++ b/src/realtime/MCWSStreamWorkerScript.js @@ -212,7 +212,7 @@ const data = JSON.parse(message.data); data.forEach((datum) => { - const key = datum[property]; + const key = datum[property].toUpperCase(); if (subscribers[key] > 0) { self.postMessage({ From 9ae109f2fcbe04aad750c806c5d3f4761916937f Mon Sep 17 00:00:00 2001 From: Jamie V Date: Thu, 16 Apr 2026 10:59:41 -0700 Subject: [PATCH 2/3] cleaning up the code a bit --- src/realtime/MCWSEVRStreamProvider.js | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/realtime/MCWSEVRStreamProvider.js b/src/realtime/MCWSEVRStreamProvider.js index 6f84ceb..1badbab 100644 --- a/src/realtime/MCWSEVRStreamProvider.js +++ b/src/realtime/MCWSEVRStreamProvider.js @@ -33,21 +33,15 @@ class MCWSEVRStreamProvider extends MCWSStreamProvider { getKey(domainObject) { // Can subscribe only by EVR module even if subscribing by EVR // This is the default cause for EVRs that contain a module. - let module = - domainObject.telemetry && - domainObject.telemetry.definition && - domainObject.telemetry.definition.module && - domainObject.telemetry.definition.module.toUpperCase(); + let module = domainObject?.telemetry?.definition?.module?.toUpperCase(); - // This is the top-level vista.evrModule object, which contains - // A module definition but not in the definition object. - // This must be captured before an attempt at legacy EVRs is made - // in case the module has underscores in it. - if (!module || module.length <= 0) { - module = domainObject.telemetry - && domainObject.telemetry.module - && domainObject.telemetry.module.toUpperCase(); - } + // This is the top-level vista.evrModule object, which contains + // a module definition but not in the definition object. + // This must be captured before attempting legacy EVRs, + // in case the module contains underscores. + if (!module?.length) { + module = domainObject?.telemetry?.module?.toUpperCase(); + } // legacy inference of module by evr_name // This should *never* occur with modern telemetry dictionaries. From 79f547e9de5790607cfbf7133593be39fbbc53e5 Mon Sep 17 00:00:00 2001 From: David Tsay Date: Fri, 17 Apr 2026 14:10:09 -0700 Subject: [PATCH 3/3] add comment re: interface with MCWS --- src/realtime/MCWSEVRLevelStreamProvider.js | 2 ++ src/realtime/MCWSEVRStreamProvider.js | 8 +++++++- src/realtime/MCWSStreamWorkerScript.js | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/realtime/MCWSEVRLevelStreamProvider.js b/src/realtime/MCWSEVRLevelStreamProvider.js index 5d86370..60aa9c9 100644 --- a/src/realtime/MCWSEVRLevelStreamProvider.js +++ b/src/realtime/MCWSEVRLevelStreamProvider.js @@ -31,6 +31,8 @@ class MCWSEVRLevelStreamProvider extends MCWSStreamProvider { * @returns {String} The key */ getKey(domainObject) { + // only uppercase works for all mcws apis (lowercase will not work) + // see https://github.com/NASA-AMMOS/openmct-mcws/pull/412/changes return domainObject.telemetry.level.toUpperCase(); } } diff --git a/src/realtime/MCWSEVRStreamProvider.js b/src/realtime/MCWSEVRStreamProvider.js index 1badbab..6e4fed4 100644 --- a/src/realtime/MCWSEVRStreamProvider.js +++ b/src/realtime/MCWSEVRStreamProvider.js @@ -33,12 +33,16 @@ class MCWSEVRStreamProvider extends MCWSStreamProvider { getKey(domainObject) { // Can subscribe only by EVR module even if subscribing by EVR // This is the default cause for EVRs that contain a module. + // only uppercase works for all mcws apis (lowercase will not work) + // see https://github.com/NASA-AMMOS/openmct-mcws/pull/412/changes let module = domainObject?.telemetry?.definition?.module?.toUpperCase(); // This is the top-level vista.evrModule object, which contains // a module definition but not in the definition object. // This must be captured before attempting legacy EVRs, // in case the module contains underscores. + // only uppercase works for all mcws apis (lowercase will not work) + // see https://github.com/NASA-AMMOS/openmct-mcws/pull/412/changes if (!module?.length) { module = domainObject?.telemetry?.module?.toUpperCase(); } @@ -47,8 +51,10 @@ class MCWSEVRStreamProvider extends MCWSStreamProvider { // This should *never* occur with modern telemetry dictionaries. if (!module || module.length <= 0) { console.warn('Legacy domain objects should not be used anymore!'); + // only uppercase works for all mcws apis (lowercase will not work) + // see https://github.com/NASA-AMMOS/openmct-mcws/pull/412/changes module = domainObject.telemetry.evr_name.split('_')[0].toUpperCase(); - } + } return module; } diff --git a/src/realtime/MCWSStreamWorkerScript.js b/src/realtime/MCWSStreamWorkerScript.js index 000445f..3315614 100644 --- a/src/realtime/MCWSStreamWorkerScript.js +++ b/src/realtime/MCWSStreamWorkerScript.js @@ -212,6 +212,8 @@ const data = JSON.parse(message.data); data.forEach((datum) => { + // only uppercase works for all mcws apis (lowercase will not work) + // see https://github.com/NASA-AMMOS/openmct-mcws/pull/412/changes const key = datum[property].toUpperCase(); if (subscribers[key] > 0) {