diff --git a/src/api/telemetry/TelemetryAPI.js b/src/api/telemetry/TelemetryAPI.js index e5be70590f..9d83152b24 100644 --- a/src/api/telemetry/TelemetryAPI.js +++ b/src/api/telemetry/TelemetryAPI.js @@ -284,6 +284,27 @@ export default class TelemetryAPI { return value; } + hasNumericTelemetry(domainObject) { + if (!Object.prototype.hasOwnProperty.call(domainObject, 'telemetry')) { + return false; + } + + let metadata = this.openmct.telemetry.getMetadata(domainObject); + + return metadata.values().length > 0 && this.#hasDomainAndNumericRange(metadata); + } + + #hasDomainAndNumericRange(metadata) { + const rangeValues = metadata.valuesForHints(['range']); + const domains = metadata.valuesForHints(['domain']); + + return ( + domains.length > 0 && + rangeValues.length > 0 && + !rangeValues.every((value) => value.format === 'string') + ); + } + /** * Generates a numeric hash value for an options object. The hash is consistent * for equivalent option objects regardless of property order.