From bb3e1ae1e705f362985a2da82541a75c0733be16 Mon Sep 17 00:00:00 2001 From: Jason Thomas Date: Mon, 28 Sep 2026 16:44:48 -0600 Subject: [PATCH 1/2] perf(tlm-viewer): skip screen updates for unchanged values - Stop writing unchanged values to screenValues in updateValues once the aging fade is done so widgets don't re-render on every poll - Export AGING_* constants from VWidget.js so the screen knows how many polls the fade takes - Add INST ccsds.txt and hs_adcs.txt 1000 item screens to measure mostly static vs constantly changing values Co-Authored-By: Claude Opus 5.5 --- .../targets/INST/screens/ccsds.txt | 1337 ++++++++++++++++ .../targets/INST/screens/hs_adcs.txt | 1339 +++++++++++++++++ .../src/components/Openc3Screen.vue | 47 +- .../openc3-vue-common/src/widgets/VWidget.js | 19 +- 4 files changed, 2736 insertions(+), 6 deletions(-) create mode 100644 openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/screens/ccsds.txt create mode 100644 openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/screens/hs_adcs.txt diff --git a/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/screens/ccsds.txt b/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/screens/ccsds.txt new file mode 100644 index 0000000000..3ca1ac3cb5 --- /dev/null +++ b/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/screens/ccsds.txt @@ -0,0 +1,1337 @@ +SCREEN AUTO AUTO 1.0 + + TITLE "INST and INST2 CCSDS Headers" + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + LABELVALUE INST2 MECH CCSDSLENGTH + END + VERTICALBOX "INST2 HYBRIDTLM" + LABELVALUE INST2 HYBRIDTLM CCSDSVER + LABELVALUE INST2 HYBRIDTLM CCSDSTYPE + LABELVALUE INST2 HYBRIDTLM CCSDSSHF + LABELVALUE INST2 HYBRIDTLM CCSDSAPID + LABELVALUE INST2 HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST2 HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST2 HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS CCSDSVER + LABELVALUE INST HEALTH_STATUS CCSDSTYPE + LABELVALUE INST HEALTH_STATUS CCSDSSHF + LABELVALUE INST HEALTH_STATUS CCSDSAPID + LABELVALUE INST HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS CCSDSVER + LABELVALUE INST ADCS CCSDSTYPE + LABELVALUE INST ADCS CCSDSSHF + LABELVALUE INST ADCS CCSDSAPID + LABELVALUE INST ADCS CCSDSSEQFLAGS + LABELVALUE INST ADCS CCSDSSEQCNT + LABELVALUE INST ADCS CCSDSLENGTH + END + VERTICALBOX "INST PARAMS" + LABELVALUE INST PARAMS CCSDSVER + LABELVALUE INST PARAMS CCSDSTYPE + LABELVALUE INST PARAMS CCSDSSHF + LABELVALUE INST PARAMS CCSDSAPID + LABELVALUE INST PARAMS CCSDSSEQFLAGS + LABELVALUE INST PARAMS CCSDSSEQCNT + LABELVALUE INST PARAMS CCSDSLENGTH + END + VERTICALBOX "INST IMAGE" + LABELVALUE INST IMAGE CCSDSVER + LABELVALUE INST IMAGE CCSDSTYPE + LABELVALUE INST IMAGE CCSDSSHF + LABELVALUE INST IMAGE CCSDSAPID + LABELVALUE INST IMAGE CCSDSSEQFLAGS + LABELVALUE INST IMAGE CCSDSSEQCNT + LABELVALUE INST IMAGE CCSDSLENGTH + END + VERTICALBOX "INST MECH" + LABELVALUE INST MECH CCSDSVER + LABELVALUE INST MECH CCSDSTYPE + LABELVALUE INST MECH CCSDSSHF + LABELVALUE INST MECH CCSDSAPID + LABELVALUE INST MECH CCSDSSEQFLAGS + LABELVALUE INST MECH CCSDSSEQCNT + LABELVALUE INST MECH CCSDSLENGTH + END + VERTICALBOX "INST HYBRIDTLM" + LABELVALUE INST HYBRIDTLM CCSDSVER + LABELVALUE INST HYBRIDTLM CCSDSTYPE + LABELVALUE INST HYBRIDTLM CCSDSSHF + LABELVALUE INST HYBRIDTLM CCSDSAPID + LABELVALUE INST HYBRIDTLM CCSDSSEQFLAGS + LABELVALUE INST HYBRIDTLM CCSDSSEQCNT + LABELVALUE INST HYBRIDTLM CCSDSLENGTH + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS CCSDSVER + LABELVALUE INST2 HEALTH_STATUS CCSDSTYPE + LABELVALUE INST2 HEALTH_STATUS CCSDSSHF + LABELVALUE INST2 HEALTH_STATUS CCSDSAPID + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQFLAGS + LABELVALUE INST2 HEALTH_STATUS CCSDSSEQCNT + LABELVALUE INST2 HEALTH_STATUS CCSDSLENGTH + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS CCSDSVER + LABELVALUE INST2 ADCS CCSDSTYPE + LABELVALUE INST2 ADCS CCSDSSHF + LABELVALUE INST2 ADCS CCSDSAPID + LABELVALUE INST2 ADCS CCSDSSEQFLAGS + LABELVALUE INST2 ADCS CCSDSSEQCNT + LABELVALUE INST2 ADCS CCSDSLENGTH + END + VERTICALBOX "INST2 PARAMS.PKT" + LABELVALUE INST2 PARAMS.PKT CCSDSVER + LABELVALUE INST2 PARAMS.PKT CCSDSTYPE + LABELVALUE INST2 PARAMS.PKT CCSDSSHF + LABELVALUE INST2 PARAMS.PKT CCSDSAPID + LABELVALUE INST2 PARAMS.PKT CCSDSSEQFLAGS + LABELVALUE INST2 PARAMS.PKT CCSDSSEQCNT + LABELVALUE INST2 PARAMS.PKT CCSDSLENGTH + END + VERTICALBOX "INST2 IMAGE" + LABELVALUE INST2 IMAGE CCSDSVER + LABELVALUE INST2 IMAGE CCSDSTYPE + LABELVALUE INST2 IMAGE CCSDSSHF + LABELVALUE INST2 IMAGE CCSDSAPID + LABELVALUE INST2 IMAGE CCSDSSEQFLAGS + LABELVALUE INST2 IMAGE CCSDSSEQCNT + LABELVALUE INST2 IMAGE CCSDSLENGTH + END + VERTICALBOX "INST2 MECH" + LABELVALUE INST2 MECH CCSDSVER + LABELVALUE INST2 MECH CCSDSTYPE + LABELVALUE INST2 MECH CCSDSSHF + LABELVALUE INST2 MECH CCSDSAPID + LABELVALUE INST2 MECH CCSDSSEQFLAGS + LABELVALUE INST2 MECH CCSDSSEQCNT + END + END diff --git a/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/screens/hs_adcs.txt b/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/screens/hs_adcs.txt new file mode 100644 index 0000000000..e7cecb2880 --- /dev/null +++ b/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/screens/hs_adcs.txt @@ -0,0 +1,1339 @@ +SCREEN AUTO AUTO 1.0 + + TITLE "INST and INST2 HEALTH_STATUS and ADCS" + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + END + HORIZONTAL + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + LABELVALUE INST2 ADCS POSZ + LABELVALUE INST2 ADCS VELX + LABELVALUE INST2 ADCS VELY + LABELVALUE INST2 ADCS VELZ + LABELVALUE INST2 ADCS Q1 + LABELVALUE INST2 ADCS Q2 + LABELVALUE INST2 ADCS Q3 + LABELVALUE INST2 ADCS Q4 + END + VERTICALBOX "INST HEALTH_STATUS" + LABELVALUE INST HEALTH_STATUS TEMP1 + LABELVALUE INST HEALTH_STATUS TEMP2 + LABELVALUE INST HEALTH_STATUS TEMP3 + LABELVALUE INST HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST ADCS" + LABELVALUE INST ADCS POSX + LABELVALUE INST ADCS POSY + LABELVALUE INST ADCS POSZ + LABELVALUE INST ADCS VELX + LABELVALUE INST ADCS VELY + LABELVALUE INST ADCS VELZ + LABELVALUE INST ADCS Q1 + LABELVALUE INST ADCS Q2 + LABELVALUE INST ADCS Q3 + LABELVALUE INST ADCS Q4 + END + VERTICALBOX "INST2 HEALTH_STATUS" + LABELVALUE INST2 HEALTH_STATUS TEMP1 + LABELVALUE INST2 HEALTH_STATUS TEMP2 + LABELVALUE INST2 HEALTH_STATUS TEMP3 + LABELVALUE INST2 HEALTH_STATUS TEMP4 + END + VERTICALBOX "INST2 ADCS" + LABELVALUE INST2 ADCS POSX + LABELVALUE INST2 ADCS POSY + END + END diff --git a/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/components/Openc3Screen.vue b/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/components/Openc3Screen.vue index 325390cc61..b87bb5e776 100644 --- a/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/components/Openc3Screen.vue +++ b/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/components/Openc3Screen.vue @@ -242,12 +242,26 @@ import { OpenC3Api, } from '@openc3/js-common/services' import WidgetComponents from '@/widgets/WidgetComponents' +import { AGING_UPDATES } from '@/widgets/VWidget' import EditScreenDialog from './EditScreenDialog.vue' const MAX_ERRORS = 20 // Identifies our own get_tlm_values poll as the source of a transient error const POLL_ERROR_SOURCE = 'screen:get_tlm_values' +// Values compare equal if they're the same primitive or serialize the same. +// Array and object values (ARRAY widgets, BLOCK, etc) come back as new objects +// every poll so they need the JSON comparison. +function sameValue(a, b) { + if (Object.is(a, b)) { + return true + } + if (a === null || b === null || typeof a !== 'object') { + return false + } + return JSON.stringify(a) === JSON.stringify(b) +} + export default { components: { EditScreenDialog, @@ -484,6 +498,9 @@ export default { return false }, created() { + // Consecutive polls each item has come back unchanged. Deliberately not + // reactive, nothing renders from it. + this.unchangedCounts = {} this.api = new OpenC3Api() this.configParser = new ConfigParserService() this.parseDefinition() @@ -582,6 +599,7 @@ export default { // Each time we start over and parse the screen definition this.clearErrors() this.screenItems = [] + this.unchangedCounts = {} // Reset what we poll along with it. The new definition may register no // items at all (a screen of nothing but graphs, say) in which case // nothing calls debouncedUpdateTlmAvailable and this would otherwise @@ -1144,9 +1162,34 @@ export default { JSON.stringify(this.actualScreenItems), ) } else { + // The same item can appear more than once in screenItems but it + // should only count as one poll per update + const seen = new Set() for (let i = 0; i < values.length; i++) { + const valueId = this.screenItems[i] + if (seen.has(valueId)) { + continue + } + seen.add(valueId) + const previous = this.screenValues[valueId] + if ( + previous && + sameValue(previous[0], values[i][0]) && + previous[1] === values[i][1] + ) { + const count = (this.unchangedCounts[valueId] || 0) + 1 + this.unchangedCounts[valueId] = count + // Widgets fade unchanged values on each counter bump. Once the + // fade is done another update changes nothing on screen, so skip + // it rather than re-render every widget on every poll. + if (count > AGING_UPDATES) { + continue + } + } else { + this.unchangedCounts[valueId] = 0 + } values[i].push(this.updateCounter) - this.screenValues[this.screenItems[i]] = values[i] + this.screenValues[valueId] = values[i] } } }, @@ -1268,6 +1311,8 @@ export default { }, addItem: function (valueId) { this.screenItems.push(valueId) + // The value is reset below so a new widget starts its fade from scratch + delete this.unchangedCounts[valueId] // If frozen and we have a saved value for this item, use it // Otherwise initialize to null if (this.frozen && this.frozenValues && this.frozenValues[valueId]) { diff --git a/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/VWidget.js b/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/VWidget.js index ca8ad50dbb..7400cd26a3 100644 --- a/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/VWidget.js +++ b/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/VWidget.js @@ -19,6 +19,15 @@ import { TimeFilters } from '@/util' import Widget from './Widget' import FormatValueBase from './FormatValueBase' import { limitsColor, astroStatus } from './LimitsColor' + +// A value fades from AGING_START to AGING_MIN by AGING_RATE on every update +// where it didn't change. The screen uses AGING_UPDATES to know when the fade +// is done and it can stop pushing unchanged values to the widget. +export const AGING_START = 80 +export const AGING_MIN = 30 +export const AGING_RATE = 5 +export const AGING_UPDATES = Math.ceil((AGING_START - AGING_MIN) / AGING_RATE) + export default { mixins: [Widget, TimeFilters, FormatValueBase], // ValueWidget can either get it's value and limitsState directly through props @@ -46,8 +55,8 @@ export default { appliedTimeZone: 'local', curValue: null, prevValue: null, - grayLevel: 80, - grayRate: 5, + grayLevel: AGING_START, + grayRate: AGING_RATE, valueId: null, arrayIndex: null, viewDetails: false, @@ -74,11 +83,11 @@ export default { watch: { _counter: function (newVal, oldVal) { if (this.curValue !== this.prevValue) { - this.grayLevel = 80 + this.grayLevel = AGING_START } else { this.grayLevel -= this.grayRate - if (this.grayLevel < 30) { - this.grayLevel = 30 + if (this.grayLevel < AGING_MIN) { + this.grayLevel = AGING_MIN } } this.prevValue = this.curValue From aea796393cdaf983517f9febbf5faa9e82c778a7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 16:42:36 +0000 Subject: [PATCH 2/2] fix(review): apply Codex review fixes (turn 2) - openc3-cosmos-init/plugins/packages/openc3-vue-common/src/components/Openc3Screen.vue:255 - JSON comparison threw on telemetry arrays containing BigInts; replaced it with recursive equality. - openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/VWidget.js:84 - The fade watcher could compare the previous rendered value and stop fading prematurely; it now reads the current computed value. AI-Review-Bot: true AI-Review-Run: 36745680936 --- .../src/components/Openc3Screen.vue | 18 ++++++++++++++---- .../openc3-vue-common/src/widgets/VWidget.js | 7 +++++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/components/Openc3Screen.vue b/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/components/Openc3Screen.vue index b87bb5e776..3a390a2607 100644 --- a/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/components/Openc3Screen.vue +++ b/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/components/Openc3Screen.vue @@ -249,17 +249,27 @@ const MAX_ERRORS = 20 // Identifies our own get_tlm_values poll as the source of a transient error const POLL_ERROR_SOURCE = 'screen:get_tlm_values' -// Values compare equal if they're the same primitive or serialize the same. +// Values compare equal if they're the same primitive or have equal contents. // Array and object values (ARRAY widgets, BLOCK, etc) come back as new objects -// every poll so they need the JSON comparison. +// every poll. Compare recursively because telemetry can contain BigInts. function sameValue(a, b) { if (Object.is(a, b)) { return true } - if (a === null || b === null || typeof a !== 'object') { + if ( + a === null || + b === null || + typeof a !== 'object' || + typeof b !== 'object' || + Array.isArray(a) !== Array.isArray(b) + ) { return false } - return JSON.stringify(a) === JSON.stringify(b) + const keys = Object.keys(a) + return ( + keys.length === Object.keys(b).length && + keys.every((key) => Object.hasOwn(b, key) && sameValue(a[key], b[key])) + ) } export default { diff --git a/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/VWidget.js b/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/VWidget.js index 7400cd26a3..609425206f 100644 --- a/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/VWidget.js +++ b/openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/VWidget.js @@ -82,7 +82,10 @@ export default { }, watch: { _counter: function (newVal, oldVal) { - if (this.curValue !== this.prevValue) { + // Refresh the computed value before comparing: this watcher runs before + // rendering, and the screen stops updates once the fade is complete. + const value = this._value + if (value !== this.prevValue) { this.grayLevel = AGING_START } else { this.grayLevel -= this.grayRate @@ -90,7 +93,7 @@ export default { this.grayLevel = AGING_MIN } } - this.prevValue = this.curValue + this.prevValue = value }, }, computed: {