Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Derived Telemetry Prototype #7815

Open
wants to merge 106 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
4316003
skeleton for comps
scottbell Jul 25, 2024
6c74e84
more scaffolding
scottbell Jul 29, 2024
f5d7a33
more drafts
scottbell Jul 30, 2024
0dd0442
add comps manager
scottbell Aug 1, 2024
ff81454
worker ready
scottbell Aug 2, 2024
74c3a95
telemetry is null for some reason
scottbell Aug 2, 2024
ce5e435
can add two sin waves
scottbell Aug 2, 2024
69db534
adding works
scottbell Aug 2, 2024
90a24b3
exact values enabled
scottbell Aug 5, 2024
37d222f
subscriptions work
scottbell Aug 6, 2024
55c8609
Merge remote-tracking branch 'origin/master' into telemetry-comps
scottbell Aug 8, 2024
a94c752
slowing adding gui
scottbell Aug 8, 2024
0113ec0
fix plots
scottbell Aug 12, 2024
a0a2ead
rudimentary expression editor
scottbell Aug 12, 2024
e5719fc
correctly persist
scottbell Aug 13, 2024
0326e38
parameters
scottbell Aug 13, 2024
413338d
can take arbitrary expressions
scottbell Aug 13, 2024
f174515
styles and timing for loading worker
scottbell Aug 14, 2024
9e3e739
ui works kinda
scottbell Aug 14, 2024
dcc8938
need to figure out ranger
scottbell Aug 14, 2024
87dc272
works with time
scottbell Aug 15, 2024
df3ca84
timesystem works
scottbell Aug 15, 2024
484a81b
get rid of batch for now
scottbell Aug 15, 2024
446c811
gui still leaking data
scottbell Aug 15, 2024
aa8750e
memory conserved
scottbell Aug 15, 2024
4d546fb
styles
scottbell Aug 16, 2024
d6c8bee
Merge remote-tracking branch 'origin/master' into telemetry-comps
scottbell Aug 19, 2024
d7d7913
fix initial load
scottbell Aug 19, 2024
d4b2986
expression validator
scottbell Aug 19, 2024
a9d63b9
fix test data
scottbell Aug 20, 2024
e4dcda8
do not persist
scottbell Aug 20, 2024
58568b8
persist after adding
scottbell Aug 20, 2024
d96c3fc
fix editing issues
scottbell Aug 21, 2024
28ec13a
mutate when parameters or expression changes
scottbell Aug 22, 2024
386c3b4
implement output format
scottbell Sep 3, 2024
5af6413
implement output format
scottbell Sep 3, 2024
1c68c7e
be consistent with output key
scottbell Sep 3, 2024
5894363
add icons and fix errant telemetry
scottbell Sep 4, 2024
40a95cf
lint
scottbell Sep 4, 2024
ccc12de
lint
scottbell Sep 4, 2024
3ad21ee
use key instead of name
scottbell Sep 4, 2024
4260cc3
Style enhancements for Derived Telemetry object
charlesh88 Sep 4, 2024
cce3008
Style enhancements for Derived Telemetry object
charlesh88 Sep 4, 2024
2793da4
Enhancements for Derived Telemetry object
charlesh88 Sep 5, 2024
1d686c2
Style enhancements for Derived Telemetry object
charlesh88 Sep 5, 2024
f8ceaa5
Merge branch 'telemetry-comps' of github.com:nasa/openmct into teleme…
charlesh88 Sep 5, 2024
e1f50fe
Enhancements for Derived Telemetry object
charlesh88 Sep 5, 2024
eac4676
do not apply test data when edit mode changes to false
scottbell Sep 5, 2024
02cf701
Revert "do not apply test data when edit mode changes to false"
scottbell Sep 5, 2024
9aeb454
trying this again without blowing away the very pretty styling
scottbell Sep 5, 2024
fb8730c
clean up composition effects
scottbell Sep 5, 2024
06e916e
allow deleting of parameters
scottbell Sep 5, 2024
1996e66
can chain and plot derived data
scottbell Sep 5, 2024
dde0d1a
can delete properly
scottbell Sep 5, 2024
cde34e3
Enhancements for Derived Telemetry object
charlesh88 Sep 5, 2024
fdcece8
Merge branch 'telemetry-comps' of github.com:nasa/openmct into teleme…
charlesh88 Sep 5, 2024
80d8bab
handle arrays and add skeleton tests
scottbell Sep 5, 2024
1615c36
Merge branch 'telemetry-comps' of github.com:nasa/openmct into teleme…
charlesh88 Sep 5, 2024
59461d6
Enhancements for Derived Telemetry object
charlesh88 Sep 6, 2024
1b186d7
add tests
scottbell Sep 6, 2024
b251fde
ensure output format propagates
scottbell Sep 6, 2024
89e18d4
add output format test
scottbell Sep 6, 2024
dd57d78
add some basic object path label tests
scottbell Sep 7, 2024
8b4eed9
good job code scanner. changing to or condition
scottbell Sep 9, 2024
60e07e6
refactor aria labeling
scottbell Sep 10, 2024
e02217a
Merge branch 'master' into telemetry-comps
scottbell Sep 10, 2024
c1a361d
Merge branch 'master' into telemetry-comps
scottbell Sep 11, 2024
ee612a6
resolve conflicts
scottbell Sep 17, 2024
dfcfa47
pass options on request to underlying collections
scottbell Sep 24, 2024
4a301a1
ensure derived DERIVED telemetry loads in the proper order. also have…
scottbell Sep 25, 2024
eb5d32c
fix domains
scottbell Oct 1, 2024
5e013b6
ensure we only ask for latest for comp editor
scottbell Oct 1, 2024
1a94010
Merge remote-tracking branch 'origin/master' into telemetry-comps
scottbell Oct 2, 2024
8e5ac68
improvement in loading
scottbell Oct 3, 2024
154e8c6
fix slow loading errors
scottbell Oct 3, 2024
4bbbd17
more telemetry collection changes to acommodate bound changes
scottbell Oct 3, 2024
38316bd
more debug just in case
scottbell Oct 4, 2024
f718ccd
stacked plots are overriding telemetry object configurations
scottbell Oct 4, 2024
58d6cdb
some changes
scottbell Oct 4, 2024
d859322
add new flag to deal with plots asking for zoomed out data that shoul…
scottbell Oct 4, 2024
395436a
works
scottbell Oct 9, 2024
3f92deb
add sample size
scottbell Oct 9, 2024
c680694
check if sample size greater than zero
scottbell Oct 9, 2024
8e7bfd0
ensure number for sample size
scottbell Oct 9, 2024
2de628a
ensure we have a reference value before we slice
scottbell Oct 9, 2024
ba7f291
can do derived derived accumulated comps now
scottbell Oct 9, 2024
7c01a5e
ensure we are checking for not equal
scottbell Oct 9, 2024
bf9d5ef
add a few more awaits
scottbell Oct 9, 2024
d6f5056
allow blank test values for arrays
scottbell Oct 9, 2024
85a7769
check for blank test values
scottbell Oct 9, 2024
3be414e
Merge remote-tracking branch 'origin/master' into telemetry-comps-wit…
scottbell Oct 9, 2024
3b06c77
change to just value
scottbell Oct 9, 2024
4de0354
impute requested data properly
scottbell Oct 9, 2024
3b78d4d
fix output and add accumulation label
scottbell Oct 10, 2024
d5ee430
update output when comp changes
scottbell Oct 10, 2024
6710ad0
remove unused function
scottbell Oct 10, 2024
7d46afb
add placeholder
scottbell Oct 10, 2024
00c8c0e
Merge remote-tracking branch 'origin/master' into telemetry-comps
scottbell Oct 11, 2024
51f73bb
Merge remote-tracking branch 'origin/master' into telemetry-comps
scottbell Oct 14, 2024
1516524
support lambda values
scottbell Oct 14, 2024
96b1ef0
reduce size
Oct 22, 2024
4a4dabf
Merge remote-tracking branch 'origin/master' into telemetry-comps
scottbell Oct 28, 2024
9ca489c
widen size to accomodate sample size
scottbell Oct 28, 2024
55063a0
removing debug statements for PR review
scottbell Oct 28, 2024
64ae96e
Closes #7823
charlesh88 Nov 14, 2024
5683320
Merge remote-tracking branch 'origin/master' into telemetry-comps
scottbell Nov 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Enhancements for Derived Telemetry object
- Closes #7823
- Added new `ObjectPathString.vue` UI component, based on `ObjectPath.vue`.
  • Loading branch information
charlesh88 committed Sep 5, 2024
commit 2793da40ec7641f7aa7cfdf1efbd275682bbb17e
171 changes: 171 additions & 0 deletions src/ui/components/ObjectPathString.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
<!--
Open MCT, Copyright (c) 2014-2024, United States Government
as represented by the Administrator of the National Aeronautics and Space
Administration. All rights reserved.

Open MCT is licensed under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.

Open MCT includes source code licensed under additional open source
licenses. See the Open Source Licenses file (LICENSES.md) included with
this source code distribution or the Licensing information page available
at runtime from the About dialog for additional information.
-->

<template>
<div
v-if="orderedPath.length"
class="c-object-path-string"
:aria-label="`${domainObject.name}`"
role="navigation"
>
{{ orderedPathStr }}
</div>
</template>

<script>
// import ObjectLabel from './ObjectLabel.vue';

export default {
inject: ['openmct'],
props: {
domainObject: {
type: Object,
required: true
},
readOnly: {
type: Boolean,
required: false,
default() {
return false;
}
},
showObjectItself: {
type: Boolean,
required: false,
default() {
return false;
}
},
objectPath: {
type: Array,
default() {
return null;
}
}
},
data() {
return {
orderedPath: [],
orderedPathStr: ''
};
},
async mounted() {
this.abortController = new AbortController();
this.nameChangeListeners = {};
const keyString = this.openmct.objects.makeKeyString(this.domainObject.identifier);

if (keyString && this.keyString !== keyString) {
this.keyString = keyString;
this.originalPath = [];

let rawPath = null;
if (this.objectPath === null) {
try {
rawPath = await this.openmct.objects.getOriginalPath(
keyString,
[],
this.abortController.signal
);
} catch (error) {
// aborting the search is ok, everything else should be thrown
if (error.name !== 'AbortError') {
throw error;
}
}
} else {
rawPath = this.objectPath;
}

const pathWithDomainObject = rawPath.map((domainObject, index, pathArray) => {
let key = this.openmct.objects.makeKeyString(domainObject.identifier);
const objectPath = pathArray.slice(index);

return {
domainObject,
key,
objectPath
};
});
if (this.showObjectItself) {
// remove ROOT only
this.orderedPath = pathWithDomainObject.slice(0, pathWithDomainObject.length - 1).reverse();
} else {
// remove ROOT and object itself from path
this.orderedPath = pathWithDomainObject.slice(1, pathWithDomainObject.length - 1).reverse();
}

this.orderedPath.forEach((pathObject) => {
this.orderedPathStr = this.orderedPathStr.concat('/').concat(pathObject.domainObject.name);
// this.addNameListenerFor(pathObject.domainObject);
});
}
},
unmounted() {
if (this.abortController) {
this.abortController.abort();
}
Object.values(this.nameChangeListeners).forEach((unlisten) => {
unlisten();
});
},
methods: {
/**
* Generate the hash url for the given object path, removing the '/ROOT' prefix if present.
* @param {import('../../api/objects/ObjectAPI').DomainObject[]} objectPath
*/
navigateToPath(objectPath) {
/** @type {string} */
const path = `/browse/${this.openmct.objects.getRelativePath(objectPath)}`;

return path.replace('ROOT/', '');
},
updateObjectPathName(keyString, newName) {
this.orderedPath = this.orderedPath.map((pathObject) => {
if (this.openmct.objects.makeKeyString(pathObject.domainObject.identifier) === keyString) {
return {
...pathObject,
domainObject: { ...pathObject.domainObject, name: newName }
};
}
return pathObject;
});
},
removeNameListenerFor(domainObject) {
const keyString = this.openmct.objects.makeKeyString(domainObject.identifier);
if (this.nameChangeListeners[keyString]) {
this.nameChangeListeners[keyString]();
delete this.nameChangeListeners[keyString];
}
},
addNameListenerFor(domainObject) {
const keyString = this.openmct.objects.makeKeyString(domainObject.identifier);
if (!this.nameChangeListeners[keyString]) {
this.nameChangeListeners[keyString] = this.openmct.objects.observe(
domainObject,
'name',
this.updateObjectPathName.bind(this, keyString)
);
}
}
}
};
</script>