From 433e720fa8a90b154d9f09bac756d0d8b3dbeddc Mon Sep 17 00:00:00 2001 From: Charles Hacskaylo Date: Fri, 1 Nov 2024 09:30:52 -0700 Subject: [PATCH] New default display and related functionality (#478) * adding functionality for initial load example display layout * readding mistakenly removed line * New example default display and supporting components. * New example default display and supporting components. * Finalized new example default display and supporting components. - New main flex layout exercises conditionals and most available object views. - Modded index.js to look for new main layout name. * Updated README.md to include workaround for issue as noted in #427. * Enhancements to example Health display. * fix: add retry / polling limits so browser doesn't hang * chore: lint:fix * test: add smoke test for default display --------- Co-authored-by: Jamie V Co-authored-by: Mazzella, Jesse D. (ARC-TI)[KBR Wyle Services, LLC] --- README.md | 3 + example/example-display.json | 1 + example/index.js | 112 +++++++++++++++++++ tests/e2e/yamcs/quickstartSmoke.e2e.spec.mjs | 18 ++- 4 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 example/example-display.json diff --git a/README.md b/README.md index 7a40f486..e8ce01fd 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,9 @@ npm start This should build the example, and launch a web browser with Open MCT connected to a locally running YAMCS server. By default it is configured to connect to the "myproject" instance provided in the [YAMCS QuickStart](https://github.com/yamcs/quickstart) server. +> #### IMPORTANT NOTE +> If Open MCT version issues are encountered with `npm run build:example`, try using `npm run build:example:master` to force usage of the latest version of Open MCT. + ### Testing This project is using the openmct-e2e-as-a-dependency model. For getting started with our tests, please see [our README](./tests/README.md) diff --git a/example/example-display.json b/example/example-display.json new file mode 100644 index 00000000..ddd3861f --- /dev/null +++ b/example/example-display.json @@ -0,0 +1 @@ +{"openmct":{"6d101430-59f3-4375-96aa-844d1b5732a7":{"identifier":{"key":"6d101430-59f3-4375-96aa-844d1b5732a7","namespace":""},"name":"Example Displays","type":"folder","composition":[{"key":"4346369b-2bb7-4d54-83a5-ac99ea8a654f","namespace":""},{"key":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","namespace":""},{"key":"0b5a4cff-7026-439c-9eb2-dcec189748c1","namespace":""}],"modified":1726074729452,"location":"mine","modifiedBy":"guest","createdBy":"guest","created":1726074729044,"persisted":1726074729452},"4346369b-2bb7-4d54-83a5-ac99ea8a654f":{"identifier":{"key":"4346369b-2bb7-4d54-83a5-ac99ea8a654f","namespace":""},"name":"Components","type":"folder","composition":[{"key":"4d0f0617-2ea1-4d95-a3fb-6bec366ba705","namespace":""},{"key":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","namespace":""},{"key":"aeab24a0-00cc-4383-90a5-eeb7e6784bba","namespace":""},{"key":"b9276a6a-eb34-4b34-9211-8ceae02952d7","namespace":""},{"key":"9a842c53-ae6d-4d87-87c8-9c645fea0d5f","namespace":""}],"modified":1726074729053,"location":"6d101430-59f3-4375-96aa-844d1b5732a7","modifiedBy":"guest","createdBy":"guest","created":1726074729053,"persisted":1726074729053},"a2eb9582-ab73-4d9f-897d-c8517fcc97ce":{"identifier":{"key":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","namespace":""},"name":"Conditionals","type":"folder","composition":[{"key":"06d54e6a-a009-4ee2-86c4-58c2daa9dc81","namespace":""},{"key":"5e5752cf-33d2-4961-befb-a53849022c2f","namespace":""},{"key":"22fde920-e60d-4580-9114-0cee3d4325b7","namespace":""},{"key":"8f6a8668-b759-4e52-b86d-90c57ecee1cb","namespace":""},{"key":"f67cec5f-b56a-40c7-b548-1c85f0280f0c","namespace":""},{"key":"61c25067-60f2-471a-a5a9-e43f41773e56","namespace":""},{"key":"e5816722-1ac0-4b4a-8ed1-78af598a5bf5","namespace":""},{"key":"52e320f3-4fd2-4231-ae06-934f76dcae8f","namespace":""},{"key":"d1b0948d-67b8-4960-859e-7dd41fb35894","namespace":""},{"key":"dfcf3c75-1e82-48c9-b527-3519104f7b74","namespace":""},{"key":"ea972de5-4338-47b2-860b-202e504c9c77","namespace":""},{"key":"9ec11bdb-2cf5-4dce-a9cf-72c9d60d678f","namespace":""},{"key":"25e62b8f-b38b-40ad-b279-185cd56c99bc","namespace":""},{"key":"8dcb52d0-8da4-464e-852b-8db3f3257ae2","namespace":""},{"key":"ec245d49-6c6b-419f-a78b-b42b2c0f516a","namespace":""},{"key":"7ea3cf62-c086-472c-859d-1c7ddcdf23e0","namespace":""},{"key":"c3f91edb-26d2-45d0-b231-df32ffbefb8b","namespace":""},{"key":"3ddb0168-3e8a-4178-9b8e-e262d82adb65","namespace":""}],"modified":1726074729432,"location":"6d101430-59f3-4375-96aa-844d1b5732a7","modifiedBy":"guest","createdBy":"guest","created":1726074729432,"configuration":{"objectStyles":{}},"persisted":1726074729432},"0b5a4cff-7026-439c-9eb2-dcec189748c1":{"identifier":{"key":"0b5a4cff-7026-439c-9eb2-dcec189748c1","namespace":""},"name":"Example Flexible Layout","type":"flexible-layout","configuration":{"containers":[{"id":"cf8078bd-685e-4754-b927-abbe034e5d69","frames":[{"id":"74e4eccc-e5e3-470a-9f74-88bcb75ffc5d","domainObjectIdentifier":{"key":"e235429a-44ac-4f1d-bc8e-46df100da961","namespace":""},"size":50,"noFrame":true}],"size":7},{"id":"3a783f78-df47-4dff-ada6-4190b7f02347","frames":[{"id":"c21b3bf4-aae9-4ae1-88ca-11873ed0cdba","domainObjectIdentifier":{"key":"4d0f0617-2ea1-4d95-a3fb-6bec366ba705","namespace":""},"size":100,"noFrame":true}],"size":93}],"rowsLayout":true},"composition":[{"key":"e235429a-44ac-4f1d-bc8e-46df100da961","namespace":""},{"key":"4d0f0617-2ea1-4d95-a3fb-6bec366ba705","namespace":""}],"modified":1726074729442,"location":"6d101430-59f3-4375-96aa-844d1b5732a7","modifiedBy":"guest","createdBy":"guest","created":1726074729442,"persisted":1726074729442},"4d0f0617-2ea1-4d95-a3fb-6bec366ba705":{"identifier":{"key":"4d0f0617-2ea1-4d95-a3fb-6bec366ba705","namespace":""},"name":"Tabs View Main","type":"tabs","composition":[{"key":"7194bbf9-bdec-4f0b-af12-4594ea0b4fa5","namespace":""},{"key":"0bb252c4-6cf7-432a-b182-127c1c879583","namespace":""},{"key":"8c70aa92-83f8-4d55-9555-f4f51b491cac","namespace":""},{"key":"048912e9-2748-4d15-9f6a-4ae3e20558dd","namespace":""}],"keep_alive":false,"modified":1726163220541,"location":"4346369b-2bb7-4d54-83a5-ac99ea8a654f","modifiedBy":"guest","createdBy":"guest","created":1726074729062,"persisted":1726163220541,"currentTabIndex":3},"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029":{"identifier":{"key":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","namespace":""},"name":"Plots","type":"folder","composition":[{"key":"31849251-94f0-4bab-b075-dec732c6b57c","namespace":""},{"key":"16aaaf2d-3105-4a48-abce-2239c7407e27","namespace":""},{"key":"96b5b41a-7023-40b6-ac52-c6409a20d5b5","namespace":""},{"key":"66e409b0-c9e2-4a37-be39-21ba810f4f36","namespace":""},{"key":"097d7e2b-ec6c-40f2-a170-974f112fe6fc","namespace":""},{"key":"045f3288-b8c5-40c9-bcf1-19d5502bbc5c","namespace":""},{"key":"6aca5686-80d8-4199-97c2-44cff13e2420","namespace":""},{"key":"36304b2f-08b8-4165-908b-ded07b1ddabf","namespace":""},{"key":"fa0d27a6-e331-4496-9d08-f980488a57a8","namespace":""}],"modified":1726074729231,"location":"4346369b-2bb7-4d54-83a5-ac99ea8a654f","modifiedBy":"guest","createdBy":"guest","created":1726074729231,"persisted":1726074729231},"aeab24a0-00cc-4383-90a5-eeb7e6784bba":{"identifier":{"key":"aeab24a0-00cc-4383-90a5-eeb7e6784bba","namespace":""},"name":"Gauges","type":"folder","composition":[{"key":"6cc4c677-c12b-4b2a-8158-7805120b921d","namespace":""},{"key":"d7abd857-2f68-41f3-bc16-486c6845a542","namespace":""},{"key":"f8cc03b3-5cb9-4a9c-9bcb-9e31d4c7086a","namespace":""},{"key":"0e9a8be6-7fc4-43ae-9cc6-f093161381e9","namespace":""},{"key":"55eaa001-5f16-4bf5-98d6-20b105f246b4","namespace":""},{"key":"29abb180-c362-48c4-9cfe-09a2f0421585","namespace":""},{"key":"278d1503-4920-4306-936a-5b6cf5446930","namespace":""},{"key":"cf1afbab-6327-4fcb-a982-0feff68fa05e","namespace":""}],"modified":1726161035988,"location":"4346369b-2bb7-4d54-83a5-ac99ea8a654f","modifiedBy":"guest","createdBy":"guest","created":1726074729256,"persisted":1726161035988},"b9276a6a-eb34-4b34-9211-8ceae02952d7":{"identifier":{"key":"b9276a6a-eb34-4b34-9211-8ceae02952d7","namespace":""},"name":"Layouts","type":"folder","composition":[{"key":"0eb6ccc2-c55f-4252-905c-e002c5185924","namespace":""},{"key":"7194bbf9-bdec-4f0b-af12-4594ea0b4fa5","namespace":""},{"key":"e235429a-44ac-4f1d-bc8e-46df100da961","namespace":""},{"key":"0bb252c4-6cf7-432a-b182-127c1c879583","namespace":""},{"key":"8c70aa92-83f8-4d55-9555-f4f51b491cac","namespace":""}],"modified":1726074729264,"location":"4346369b-2bb7-4d54-83a5-ac99ea8a654f","modifiedBy":"guest","createdBy":"guest","created":1726074729264,"persisted":1726074729264},"9a842c53-ae6d-4d87-87c8-9c645fea0d5f":{"identifier":{"key":"9a842c53-ae6d-4d87-87c8-9c645fea0d5f","namespace":""},"name":"Tables","type":"folder","composition":[{"key":"048912e9-2748-4d15-9f6a-4ae3e20558dd","namespace":""},{"key":"b6956a8e-c4c7-4dd7-924d-cd98d3243fe9","namespace":""}],"modified":1726074729423,"location":"4346369b-2bb7-4d54-83a5-ac99ea8a654f","modifiedBy":"guest","createdBy":"guest","created":1726074729423,"persisted":1726074729423},"06d54e6a-a009-4ee2-86c4-58c2daa9dc81":{"identifier":{"key":"06d54e6a-a009-4ee2-86c4-58c2daa9dc81","namespace":""},"name":"CS ADCS Status","type":"conditionSet","configuration":{"conditionTestData":[],"conditionCollection":[{"id":"f58ea5d9-b4e5-4d22-8a33-8614c2e18671","configuration":{"name":"> 0","output":"true","trigger":"all","criteria":[{"id":"00c13bc0-5675-4ff2-aa28-df74a530a073","telemetry":"any","operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: any telemetry Value > 0 "},{"isDefault":true,"id":"f606be68-25c6-439f-9e6e-d551b66c7302","configuration":{"name":"Default","output":"Default","trigger":"all","criteria":[]},"summary":""}]},"composition":[{"key":"~myproject~ADCS_Error_Flag","namespace":"taxonomy"}],"telemetry":{},"modified":1726074729290,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modifiedBy":"guest","createdBy":"guest","created":1726074729290,"persisted":1726074729290},"5e5752cf-33d2-4961-befb-a53849022c2f":{"identifier":{"key":"5e5752cf-33d2-4961-befb-a53849022c2f","namespace":""},"name":"CW ADCS Status","type":"conditionWidget","configuration":{"objectStyles":{"styles":[{"conditionId":"f58ea5d9-b4e5-4d22-8a33-8614c2e18671","style":{"isStyleInvisible":"","backgroundColor":"#b45f06","border":"","color":"#ffffff","output":""}},{"conditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","style":{"isStyleInvisible":"","backgroundColor":"#38761d","border":"","color":"#00ff00","output":""}}],"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"selectedConditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","defaultConditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","conditionSetIdentifier":{"key":"06d54e6a-a009-4ee2-86c4-58c2daa9dc81","namespace":""}}},"label":"ADCS","conditionalLabel":"","url":"","modified":1726074729282,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modifiedBy":"guest","createdBy":"guest","created":1726074729282,"persisted":1726074729282},"22fde920-e60d-4580-9114-0cee3d4325b7":{"identifier":{"key":"22fde920-e60d-4580-9114-0cee3d4325b7","namespace":""},"name":"CS CDHS Status","type":"conditionSet","configuration":{"conditionTestData":[],"conditionCollection":[{"id":"f58ea5d9-b4e5-4d22-8a33-8614c2e18671","configuration":{"name":"> 0","output":"true","trigger":"all","criteria":[{"id":"00c13bc0-5675-4ff2-aa28-df74a530a073","telemetry":"any","operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: any telemetry Value > 0 "},{"isDefault":true,"id":"f606be68-25c6-439f-9e6e-d551b66c7302","configuration":{"name":"Default","output":"Default","trigger":"all","criteria":[]},"summary":""}]},"composition":[{"key":"~myproject~CDHS_Error_Flag","namespace":"taxonomy"}],"telemetry":{},"modifiedBy":"guest","createdBy":"guest","created":1726074729307,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729307,"persisted":1726074729307},"8f6a8668-b759-4e52-b86d-90c57ecee1cb":{"identifier":{"key":"8f6a8668-b759-4e52-b86d-90c57ecee1cb","namespace":""},"name":"CW CDHS Status","type":"conditionWidget","configuration":{"objectStyles":{"styles":[{"conditionId":"f58ea5d9-b4e5-4d22-8a33-8614c2e18671","style":{"backgroundColor":"#b45f06","border":"","color":"#ffffff","output":""}},{"conditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","style":{"backgroundColor":"#38761d","border":"","color":"#00ff00","output":""}}],"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"selectedConditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","defaultConditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","conditionSetIdentifier":{"key":"22fde920-e60d-4580-9114-0cee3d4325b7","namespace":""}},"fontStyle":{"fontSize":"default","font":"default"}},"label":"CDHS","conditionalLabel":"","url":"","modifiedBy":"guest","createdBy":"guest","created":1726074729299,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729299,"persisted":1726074729299},"f67cec5f-b56a-40c7-b548-1c85f0280f0c":{"identifier":{"key":"f67cec5f-b56a-40c7-b548-1c85f0280f0c","namespace":""},"name":"CS COMMS Status","type":"conditionSet","configuration":{"conditionTestData":[],"conditionCollection":[{"id":"f58ea5d9-b4e5-4d22-8a33-8614c2e18671","configuration":{"name":"> 0","output":"true","trigger":"all","criteria":[{"id":"00c13bc0-5675-4ff2-aa28-df74a530a073","telemetry":"any","operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: any telemetry Value > 0 "},{"isDefault":true,"id":"f606be68-25c6-439f-9e6e-d551b66c7302","configuration":{"name":"Default","output":"Default","trigger":"all","criteria":[]},"summary":""}]},"composition":[{"key":"~myproject~COMMS_Error_Flag","namespace":"taxonomy"}],"telemetry":{},"modifiedBy":"guest","createdBy":"guest","created":1726074729325,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729325,"persisted":1726074729325},"61c25067-60f2-471a-a5a9-e43f41773e56":{"identifier":{"key":"61c25067-60f2-471a-a5a9-e43f41773e56","namespace":""},"name":"CW COMMS Status","type":"conditionWidget","configuration":{"objectStyles":{"styles":[{"conditionId":"f58ea5d9-b4e5-4d22-8a33-8614c2e18671","style":{"backgroundColor":"#b45f06","border":"","color":"#ffffff","isStyleInvisible":"","output":""}},{"conditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","style":{"backgroundColor":"#38761d","border":"","color":"#00ff00","isStyleInvisible":"","output":""}}],"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"selectedConditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","defaultConditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","conditionSetIdentifier":{"key":"f67cec5f-b56a-40c7-b548-1c85f0280f0c","namespace":""}},"fontStyle":{"fontSize":"default","font":"default"}},"label":"COMMS","conditionalLabel":"","url":"","modifiedBy":"guest","createdBy":"guest","created":1726074729316,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729316,"persisted":1726074729316},"e5816722-1ac0-4b4a-8ed1-78af598a5bf5":{"identifier":{"key":"e5816722-1ac0-4b4a-8ed1-78af598a5bf5","namespace":""},"name":"CS EPS Status","type":"conditionSet","configuration":{"conditionTestData":[],"conditionCollection":[{"id":"f58ea5d9-b4e5-4d22-8a33-8614c2e18671","configuration":{"name":"> 0","output":"true","trigger":"all","criteria":[{"id":"00c13bc0-5675-4ff2-aa28-df74a530a073","telemetry":"any","operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: any telemetry Value > 0 "},{"isDefault":true,"id":"f606be68-25c6-439f-9e6e-d551b66c7302","configuration":{"name":"Default","output":"Default","trigger":"all","criteria":[]},"summary":""}]},"composition":[{"key":"~myproject~EPS_Error_Flag","namespace":"taxonomy"}],"telemetry":{},"modifiedBy":"guest","createdBy":"guest","created":1726074729343,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729343,"persisted":1726074729343},"52e320f3-4fd2-4231-ae06-934f76dcae8f":{"identifier":{"key":"52e320f3-4fd2-4231-ae06-934f76dcae8f","namespace":""},"name":"CW EPS Status","type":"conditionWidget","configuration":{"objectStyles":{"styles":[{"conditionId":"f58ea5d9-b4e5-4d22-8a33-8614c2e18671","style":{"backgroundColor":"#b45f06","border":"","color":"#ffffff","isStyleInvisible":"","output":""}},{"conditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","style":{"backgroundColor":"#38761d","border":"","color":"#00ff00","isStyleInvisible":"","output":""}}],"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"selectedConditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","defaultConditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","conditionSetIdentifier":{"key":"e5816722-1ac0-4b4a-8ed1-78af598a5bf5","namespace":""}},"fontStyle":{"fontSize":"default","font":"default"}},"label":"EPS","conditionalLabel":"","url":"","modifiedBy":"guest","createdBy":"guest","created":1726074729334,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729334,"persisted":1726074729334},"d1b0948d-67b8-4960-859e-7dd41fb35894":{"identifier":{"key":"d1b0948d-67b8-4960-859e-7dd41fb35894","namespace":""},"name":"CS PYLD Status","type":"conditionSet","configuration":{"conditionTestData":[],"conditionCollection":[{"id":"f58ea5d9-b4e5-4d22-8a33-8614c2e18671","configuration":{"name":"> 0","output":"true","trigger":"all","criteria":[{"id":"00c13bc0-5675-4ff2-aa28-df74a530a073","telemetry":"any","operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: any telemetry Value > 0 "},{"isDefault":true,"id":"f606be68-25c6-439f-9e6e-d551b66c7302","configuration":{"name":"Default","output":"Default","trigger":"all","criteria":[]},"summary":""}]},"composition":[{"key":"~myproject~Payload_Error_Flag","namespace":"taxonomy"}],"telemetry":{},"modifiedBy":"guest","createdBy":"guest","created":1726074729361,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729361,"persisted":1726074729361},"dfcf3c75-1e82-48c9-b527-3519104f7b74":{"identifier":{"key":"dfcf3c75-1e82-48c9-b527-3519104f7b74","namespace":""},"name":"CW PYLD Status","type":"conditionWidget","configuration":{"objectStyles":{"styles":[{"conditionId":"f58ea5d9-b4e5-4d22-8a33-8614c2e18671","style":{"isStyleInvisible":"","backgroundColor":"#b45f06","border":"","color":"#ffffff","output":""}},{"conditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","style":{"isStyleInvisible":"","backgroundColor":"#38761d","border":"","color":"#00ff00","output":""}}],"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"selectedConditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","defaultConditionId":"f606be68-25c6-439f-9e6e-d551b66c7302","conditionSetIdentifier":{"key":"d1b0948d-67b8-4960-859e-7dd41fb35894","namespace":""}},"fontStyle":{"fontSize":"default","font":"default"}},"label":"PAYLOAD","conditionalLabel":"","url":"","modifiedBy":"guest","createdBy":"guest","created":1726074729352,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729352,"persisted":1726074729352},"ea972de5-4338-47b2-860b-202e504c9c77":{"identifier":{"key":"ea972de5-4338-47b2-860b-202e504c9c77","namespace":""},"name":"CS Current Tx Mode","type":"conditionSet","configuration":{"conditionTestData":[],"conditionCollection":[{"id":"1dc4cf19-05f4-4b86-b0a1-0d38f029fc6a","configuration":{"name":"S Band","output":"S BAND","trigger":"all","criteria":[{"id":"3af0d0fb-095c-4ab7-a037-35aee53a9a14","telemetry":{"key":"~myproject~Mode_SBand","namespace":"taxonomy"},"operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: Mode_SBand Value > 0 "},{"id":"6d4fd19b-6c11-4998-9008-630d9bf9cc9e","configuration":{"name":"X Band","output":"X BAND","trigger":"all","criteria":[{"id":"fa42dcb2-0888-4a09-afbc-84b1027e2e26","telemetry":{"key":"~myproject~Mode_XBand","namespace":"taxonomy"},"operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: Mode_XBand Value > 0 "},{"isDefault":true,"id":"78cbae57-0a42-4a86-8d30-300853c70e9f","configuration":{"name":"Disabled","output":"DISABLED","trigger":"all","criteria":[]},"summary":""}]},"composition":[{"key":"~myproject~Mode_SBand","namespace":"taxonomy"},{"key":"~myproject~Mode_XBand","namespace":"taxonomy"}],"telemetry":{},"modified":1726074729396,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modifiedBy":"guest","createdBy":"guest","created":1726074729396,"persisted":1726074729396},"9ec11bdb-2cf5-4dce-a9cf-72c9d60d678f":{"identifier":{"key":"9ec11bdb-2cf5-4dce-a9cf-72c9d60d678f","namespace":""},"name":"CS Current Payload Mode","type":"conditionSet","configuration":{"conditionTestData":[],"conditionCollection":[{"id":"4cf23993-a066-40a6-8c8b-1429b42c7f81","configuration":{"name":"PAYLOAD","output":"PAYLOAD","trigger":"all","criteria":[{"id":"ca1b2847-3a26-4145-b7f4-075b7ced0c8a","telemetry":{"key":"~myproject~Mode_Payload","namespace":"taxonomy"},"operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: Mode_Payload Value > 0 "},{"id":"883b0293-a206-41bc-8185-bdc57e2bafb0","configuration":{"name":"SAFE","output":"SAFE","trigger":"all","criteria":[{"id":"9b53a2b7-a84e-4bd4-ba75-7aac6a33eee9","telemetry":{"key":"~myproject~Mode_Safe","namespace":"taxonomy"},"operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: Mode_Safe Value > 0 "},{"isDefault":true,"id":"78cbae57-0a42-4a86-8d30-300853c70e9f","configuration":{"name":"Default","output":"DISABLED","trigger":"all","criteria":[]},"summary":""}]},"composition":[{"key":"~myproject~Mode_Payload","namespace":"taxonomy"},{"key":"~myproject~Mode_Safe","namespace":"taxonomy"}],"telemetry":{},"modifiedBy":"guest","createdBy":"guest","created":1726074729378,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729378,"persisted":1726074729378},"25e62b8f-b38b-40ad-b279-185cd56c99bc":{"identifier":{"key":"25e62b8f-b38b-40ad-b279-185cd56c99bc","namespace":""},"name":"CW Tx Mode","type":"conditionWidget","configuration":{"objectStyles":{"styles":[{"conditionId":"1dc4cf19-05f4-4b86-b0a1-0d38f029fc6a","style":{"backgroundColor":"#38761d","border":"","color":"#00ff00","isStyleInvisible":"","output":"S BAND"}},{"conditionId":"6d4fd19b-6c11-4998-9008-630d9bf9cc9e","style":{"backgroundColor":"#1155cc","border":"","color":"#a4c2f4","isStyleInvisible":"","output":"X BAND"}},{"conditionId":"78cbae57-0a42-4a86-8d30-300853c70e9f","style":{"backgroundColor":"","border":"1px solid #bf9000","color":"#f1c232","isStyleInvisible":"","output":"DISABLED"}}],"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"selectedConditionId":"78cbae57-0a42-4a86-8d30-300853c70e9f","defaultConditionId":"78cbae57-0a42-4a86-8d30-300853c70e9f","conditionSetIdentifier":{"key":"ea972de5-4338-47b2-860b-202e504c9c77","namespace":""}},"useConditionSetOutputAsLabel":true,"fontStyle":{"fontSize":"default","font":"default"}},"label":"Condition Widget","conditionalLabel":"","url":"","modified":1726074729388,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modifiedBy":"guest","createdBy":"guest","created":1726074729387,"persisted":1726074729388},"8dcb52d0-8da4-464e-852b-8db3f3257ae2":{"identifier":{"key":"8dcb52d0-8da4-464e-852b-8db3f3257ae2","namespace":""},"name":"CW Payload Mode","type":"conditionWidget","configuration":{"objectStyles":{"styles":[{"conditionId":"4cf23993-a066-40a6-8c8b-1429b42c7f81","style":{"backgroundColor":"#38761d","border":"","color":"#00ff00","isStyleInvisible":"","output":"PAYLOAD"}},{"conditionId":"883b0293-a206-41bc-8185-bdc57e2bafb0","style":{"backgroundColor":"#b45f06","border":"","color":"#ffffff","isStyleInvisible":"","output":"SAFE"}},{"conditionId":"78cbae57-0a42-4a86-8d30-300853c70e9f","style":{"backgroundColor":"","border":"1px solid #bf9000","color":"#f1c232","isStyleInvisible":"","output":"DISABLED"}}],"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"selectedConditionId":"78cbae57-0a42-4a86-8d30-300853c70e9f","defaultConditionId":"78cbae57-0a42-4a86-8d30-300853c70e9f","conditionSetIdentifier":{"key":"9ec11bdb-2cf5-4dce-a9cf-72c9d60d678f","namespace":""}},"useConditionSetOutputAsLabel":true,"fontStyle":{"fontSize":"default","font":"default"}},"label":"Condition Widget","conditionalLabel":"","url":"","modifiedBy":"guest","createdBy":"guest","created":1726074729369,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729369,"persisted":1726074729369},"ec245d49-6c6b-419f-a78b-b42b2c0f516a":{"identifier":{"key":"ec245d49-6c6b-419f-a78b-b42b2c0f516a","namespace":""},"name":"CS Current Ops Mode","type":"conditionSet","configuration":{"conditionTestData":[],"conditionCollection":[{"id":"1dc4cf19-05f4-4b86-b0a1-0d38f029fc6a","configuration":{"name":"DAY","output":"DAY","trigger":"all","criteria":[{"id":"3af0d0fb-095c-4ab7-a037-35aee53a9a14","telemetry":{"key":"~myproject~Mode_Day","namespace":"taxonomy"},"operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: Mode_Day Value > 0 "},{"id":"6d4fd19b-6c11-4998-9008-630d9bf9cc9e","configuration":{"name":"NIGHT","output":"NIGHT","trigger":"all","criteria":[{"id":"fa42dcb2-0888-4a09-afbc-84b1027e2e26","telemetry":{"key":"~myproject~Mode_Night","namespace":"taxonomy"},"operation":"greaterThan","input":[0],"metadata":"value"}]},"summary":"Match if all criteria are met: Mode_Night Value > 0 "},{"isDefault":true,"id":"78cbae57-0a42-4a86-8d30-300853c70e9f","configuration":{"name":"Default","output":"Default","trigger":"all","criteria":[]},"summary":""}]},"composition":[{"key":"~myproject~Mode_Day","namespace":"taxonomy"},{"key":"~myproject~Mode_Night","namespace":"taxonomy"}],"telemetry":{},"modifiedBy":"guest","createdBy":"guest","created":1726074729414,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729414,"persisted":1726074729414},"7ea3cf62-c086-472c-859d-1c7ddcdf23e0":{"identifier":{"key":"7ea3cf62-c086-472c-859d-1c7ddcdf23e0","namespace":""},"name":"CW Ops Mode","type":"conditionWidget","configuration":{"objectStyles":{"styles":[{"conditionId":"1dc4cf19-05f4-4b86-b0a1-0d38f029fc6a","style":{"backgroundColor":"#3c78d8","border":"","color":"#ffffff","isStyleInvisible":"","output":"DAY"}},{"conditionId":"6d4fd19b-6c11-4998-9008-630d9bf9cc9e","style":{"backgroundColor":"","border":"1px solid #1155cc","color":"#6d9eeb","isStyleInvisible":"","output":"NIGHT"}},{"conditionId":"78cbae57-0a42-4a86-8d30-300853c70e9f","style":{"backgroundColor":"","border":"","color":"","isStyleInvisible":"","output":"Default"}}],"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"selectedConditionId":"78cbae57-0a42-4a86-8d30-300853c70e9f","defaultConditionId":"78cbae57-0a42-4a86-8d30-300853c70e9f","conditionSetIdentifier":{"key":"ec245d49-6c6b-419f-a78b-b42b2c0f516a","namespace":""}},"useConditionSetOutputAsLabel":true,"fontStyle":{"fontSize":"default","font":"default"}},"label":"Condition Widget","conditionalLabel":"","url":"","modifiedBy":"guest","createdBy":"guest","created":1726074729405,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726074729405,"persisted":1726074729405},"c3f91edb-26d2-45d0-b231-df32ffbefb8b":{"identifier":{"key":"c3f91edb-26d2-45d0-b231-df32ffbefb8b","namespace":""},"name":"CS Battery 1 under values","type":"conditionSet","configuration":{"conditionTestData":[],"conditionCollection":[{"id":"ea2aea74-108e-4241-9d7d-e29e5a3f5c63","configuration":{"name":"Batt 1 under temp/volts","output":"true","trigger":"any","criteria":[{"id":"b06286fc-d207-43fc-9fdc-70470f08be5d","telemetry":{"key":"~myproject~Battery1_Voltage","namespace":"taxonomy"},"operation":"lessThan","input":[10],"metadata":"value"},{"id":"724f39ba-1856-4162-9ebc-cf65161aeef9","telemetry":{"key":"~myproject~Battery1_Temp","namespace":"taxonomy"},"operation":"lessThan","input":[7],"metadata":"value"}]},"summary":"Match if any criteria are met: Battery1_Voltage Value < 10 or Battery1_Temp Value < 7 "},{"isDefault":true,"id":"2f49d37c-845a-4f44-8296-387b00ee2f34","configuration":{"name":"Default","output":"false","trigger":"all","criteria":[]},"summary":""}]},"composition":[{"key":"~myproject~Battery1_Voltage","namespace":"taxonomy"},{"key":"~myproject~Battery1_Temp","namespace":"taxonomy"}],"telemetry":{},"modified":1726160584882,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modifiedBy":"guest","createdBy":"guest","created":1726074729148,"persisted":1726160584882},"3ddb0168-3e8a-4178-9b8e-e262d82adb65":{"identifier":{"key":"3ddb0168-3e8a-4178-9b8e-e262d82adb65","namespace":""},"name":"CS Battery 2 under values","type":"conditionSet","configuration":{"conditionTestData":[],"conditionCollection":[{"id":"ea2aea74-108e-4241-9d7d-e29e5a3f5c63","configuration":{"name":"Batt 2 under temp/volts","output":"true","trigger":"any","criteria":[{"id":"b06286fc-d207-43fc-9fdc-70470f08be5d","telemetry":{"key":"~myproject~Battery2_Voltage","namespace":"taxonomy"},"operation":"lessThan","input":[10],"metadata":"value"},{"id":"724f39ba-1856-4162-9ebc-cf65161aeef9","telemetry":{"key":"~myproject~Battery2_Temp","namespace":"taxonomy"},"operation":"lessThan","input":[7],"metadata":"value"}]},"summary":"Match if any criteria are met: Battery2_Voltage Value < 10 or Battery2_Temp Value < 7 "},{"isDefault":true,"id":"2f49d37c-845a-4f44-8296-387b00ee2f34","configuration":{"name":"Default","output":"false","trigger":"all","criteria":[]},"summary":""}]},"composition":[{"key":"~myproject~Battery1_Voltage","namespace":"taxonomy"},{"key":"~myproject~Battery1_Temp","namespace":"taxonomy"},{"key":"~myproject~Battery2_Temp","namespace":"taxonomy"},{"key":"~myproject~Battery2_Voltage","namespace":"taxonomy"}],"telemetry":{},"modifiedBy":"guest","createdBy":"guest","created":1726074729157,"location":"a2eb9582-ab73-4d9f-897d-c8517fcc97ce","modified":1726160597367,"persisted":1726160597367},"e235429a-44ac-4f1d-bc8e-46df100da961":{"identifier":{"key":"e235429a-44ac-4f1d-bc8e-46df100da961","namespace":""},"name":"Status Panel","type":"layout","composition":[{"key":"5e5752cf-33d2-4961-befb-a53849022c2f","namespace":""},{"key":"8f6a8668-b759-4e52-b86d-90c57ecee1cb","namespace":""},{"key":"61c25067-60f2-471a-a5a9-e43f41773e56","namespace":""},{"key":"52e320f3-4fd2-4231-ae06-934f76dcae8f","namespace":""},{"key":"dfcf3c75-1e82-48c9-b527-3519104f7b74","namespace":""},{"key":"8dcb52d0-8da4-464e-852b-8db3f3257ae2","namespace":""},{"key":"25e62b8f-b38b-40ad-b279-185cd56c99bc","namespace":""},{"key":"7ea3cf62-c086-472c-859d-1c7ddcdf23e0","namespace":""}],"configuration":{"items":[{"fill":"#666666","stroke":"","x":100,"y":0,"width":91,"height":10,"type":"box-view","id":"0342b0da-61a3-43ea-88e5-6a964271a88d"},{"fill":"","stroke":"","color":"","x":100,"y":0,"width":11,"height":4,"text":"MODES","fontSize":"11","font":"default","type":"text-view","id":"b5b108c2-6d4e-48b7-8b87-bfddf76e549d"},{"fill":"#666666","stroke":"","x":0,"y":0,"width":99,"height":10,"type":"box-view","id":"7c367066-16dc-4240-9a4e-76002f7e7a7d"},{"fill":"","stroke":"","color":"","x":0,"y":0,"width":12,"height":4,"text":"SUBSYS","fontSize":"11","font":"default","type":"text-view","id":"72b6050f-eb88-40d5-8595-0b3133f69896"},{"width":13,"height":6,"x":120,"y":2,"identifier":{"key":"7ea3cf62-c086-472c-859d-1c7ddcdf23e0","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"57a4bb44-90a4-4508-b230-941f5a2b169f"},{"width":16,"height":6,"x":13,"y":2,"identifier":{"key":"5e5752cf-33d2-4961-befb-a53849022c2f","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"fc51854e-0ad3-4517-ba7d-121cdd3badd0"},{"width":16,"height":6,"x":30,"y":2,"identifier":{"key":"8f6a8668-b759-4e52-b86d-90c57ecee1cb","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"f0728617-6be0-4611-97d9-cb4d4e4bf72d"},{"width":16,"height":6,"x":47,"y":2,"identifier":{"key":"61c25067-60f2-471a-a5a9-e43f41773e56","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"c05c54d5-a205-4392-8de7-303919e338c0"},{"width":16,"height":6,"x":64,"y":2,"identifier":{"key":"52e320f3-4fd2-4231-ae06-934f76dcae8f","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"b052ac23-4033-4041-9285-3d9df2aa4a17"},{"width":16,"height":6,"x":81,"y":2,"identifier":{"key":"dfcf3c75-1e82-48c9-b527-3519104f7b74","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"f1c76073-0b34-4f54-9c13-6571a4487b4c"},{"fill":"","stroke":"","color":"","x":134,"y":2,"width":14,"height":6,"text":"PAYLOAD","fontSize":"default","font":"default","type":"text-view","id":"978f67ca-9a21-44aa-81d0-98d8d2c949b4"},{"width":17,"height":6,"x":148,"y":2,"identifier":{"key":"8dcb52d0-8da4-464e-852b-8db3f3257ae2","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"4c7bb9b5-1817-4975-996f-e4de42441f22"},{"fill":"","stroke":"","color":"","x":166,"y":2,"width":6,"height":6,"text":"TX","fontSize":"default","font":"default","type":"text-view","id":"e34afb4e-afb3-4269-bfce-379a38ed17a7"},{"width":17,"height":6,"x":172,"y":2,"identifier":{"key":"25e62b8f-b38b-40ad-b279-185cd56c99bc","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"493b050b-ed79-4e17-94a0-b11577790102"},{"fill":"","stroke":"","color":"","x":112,"y":2,"width":8,"height":6,"text":"OPS","fontSize":"default","font":"default","type":"text-view","id":"d035e60a-e16b-4ff5-b300-2a45c91a1992"}],"layoutGrid":[5,5],"objectStyles":{"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"d035e60a-e16b-4ff5-b300-2a45c91a1992":{"staticStyle":{"style":{"color":"#efefef"}}},"978f67ca-9a21-44aa-81d0-98d8d2c949b4":{"staticStyle":{"style":{"color":"#efefef"}}},"e34afb4e-afb3-4269-bfce-379a38ed17a7":{"staticStyle":{"style":{"color":"#efefef"}}},"72b6050f-eb88-40d5-8595-0b3133f69896":{"staticStyle":{"style":{"color":"","backgroundColor":"#434343"}}},"7c367066-16dc-4240-9a4e-76002f7e7a7d":{"staticStyle":{"style":{"backgroundColor":"","border":"1px solid #434343"}}},"selectedConditionId":"","b5b108c2-6d4e-48b7-8b87-bfddf76e549d":{"staticStyle":{"style":{"color":"","backgroundColor":"#434343"}}},"0342b0da-61a3-43ea-88e5-6a964271a88d":{"staticStyle":{"style":{"backgroundColor":"","border":"1px solid #434343"}}}}},"modified":1726074729273,"location":"b9276a6a-eb34-4b34-9211-8ceae02952d7","modifiedBy":"guest","createdBy":"guest","created":1726074729273,"persisted":1726074729273},"7194bbf9-bdec-4f0b-af12-4594ea0b4fa5":{"identifier":{"key":"7194bbf9-bdec-4f0b-af12-4594ea0b4fa5","namespace":""},"name":"Health","type":"flexible-layout","configuration":{"containers":[{"id":"c4787ac0-92a3-443e-8300-2d0a2d186d51","frames":[{"id":"4795f65d-585d-468e-bd9d-b2645a796119","domainObjectIdentifier":{"key":"31849251-94f0-4bab-b075-dec732c6b57c","namespace":""},"size":100,"noFrame":true}],"size":14},{"id":"39c8c67a-66e9-4099-acad-34c7c9b3b551","frames":[{"id":"c4ce4c39-524d-4f89-b967-b5dde93cbd96","domainObjectIdentifier":{"key":"fa0d27a6-e331-4496-9d08-f980488a57a8","namespace":""},"size":100,"noFrame":false}],"size":35},{"id":"7a018eaa-93bb-43ae-9ab1-990e8ad31034","frames":[{"id":"bd3da012-4fbe-43bd-9525-d61e25c0f6ef","domainObjectIdentifier":{"key":"16aaaf2d-3105-4a48-abce-2239c7407e27","namespace":""},"size":100,"noFrame":false}],"size":25},{"id":"0b05b895-3a26-4c93-bedb-b0496c33dff1","frames":[{"id":"26118e5b-00f2-4d00-abb1-6963cf62dff3","domainObjectIdentifier":{"key":"6aca5686-80d8-4199-97c2-44cff13e2420","namespace":""},"size":25,"noFrame":false},{"id":"f00ee006-79ca-4d15-b81c-2a6381f36fe7","domainObjectIdentifier":{"key":"~myproject~ElapsedSeconds","namespace":"taxonomy"},"size":27,"noFrame":false},{"id":"2c4a11e9-4f69-44be-b9a2-07c97e2a02b4","domainObjectIdentifier":{"key":"~myproject~OrbitNumberCumulative","namespace":"taxonomy"},"size":22,"noFrame":false}],"size":26}],"rowsLayout":false},"composition":[{"key":"fa0d27a6-e331-4496-9d08-f980488a57a8","namespace":""},{"key":"16aaaf2d-3105-4a48-abce-2239c7407e27","namespace":""},{"key":"~myproject~ElapsedSeconds","namespace":"taxonomy"},{"key":"~myproject~OrbitNumberCumulative","namespace":"taxonomy"},{"key":"31849251-94f0-4bab-b075-dec732c6b57c","namespace":""},{"key":"6aca5686-80d8-4199-97c2-44cff13e2420","namespace":""}],"modified":1726074729112,"location":"b9276a6a-eb34-4b34-9211-8ceae02952d7","modifiedBy":"guest","createdBy":"guest","created":1726074729112,"persisted":1726074729113},"0bb252c4-6cf7-432a-b182-127c1c879583":{"identifier":{"key":"0bb252c4-6cf7-432a-b182-127c1c879583","namespace":""},"name":"Position","type":"flexible-layout","configuration":{"containers":[{"id":"ae507a12-bf16-427c-a68b-65bbae9a01ea","frames":[{"id":"5f85b820-707e-4e85-a636-e3be581695a3","domainObjectIdentifier":{"key":"0eb6ccc2-c55f-4252-905c-e002c5185924","namespace":""},"size":100,"noFrame":true}],"size":6},{"id":"03b5a945-ff21-4987-a5cd-7656b3f2911c","frames":[{"id":"2d5824f5-3699-43fa-b2f1-3d320dfe58a0","domainObjectIdentifier":{"key":"66e409b0-c9e2-4a37-be39-21ba810f4f36","namespace":""},"size":50,"noFrame":false},{"id":"17ba00a3-918c-4a01-a759-73688fbc55e4","domainObjectIdentifier":{"key":"96b5b41a-7023-40b6-ac52-c6409a20d5b5","namespace":""},"size":37,"noFrame":false},{"id":"d90eb7e5-eb46-4ece-b6de-4a61e071783d","domainObjectIdentifier":{"key":"6cc4c677-c12b-4b2a-8158-7805120b921d","namespace":""},"size":13,"noFrame":false}],"size":94}],"rowsLayout":true},"composition":[{"key":"0eb6ccc2-c55f-4252-905c-e002c5185924","namespace":""},{"key":"6cc4c677-c12b-4b2a-8158-7805120b921d","namespace":""},{"key":"96b5b41a-7023-40b6-ac52-c6409a20d5b5","namespace":""},{"key":"66e409b0-c9e2-4a37-be39-21ba810f4f36","namespace":""}],"modified":1726074729070,"location":"b9276a6a-eb34-4b34-9211-8ceae02952d7","modifiedBy":"guest","createdBy":"guest","created":1726074729070,"persisted":1726074729070},"8c70aa92-83f8-4d55-9555-f4f51b491cac":{"identifier":{"key":"8c70aa92-83f8-4d55-9555-f4f51b491cac","namespace":""},"name":"Velocity","type":"flexible-layout","configuration":{"containers":[{"id":"e8e52704-ef73-4ced-bdb2-e4e73dfde69e","frames":[{"id":"1f8a6b9d-f880-4a16-aa6b-e869a86be272","domainObjectIdentifier":{"key":"d7abd857-2f68-41f3-bc16-486c6845a542","namespace":""},"size":33,"noFrame":false},{"id":"72ccf16f-fa79-4c86-8614-08f38af7f123","domainObjectIdentifier":{"key":"f8cc03b3-5cb9-4a9c-9bcb-9e31d4c7086a","namespace":""},"size":34,"noFrame":false},{"id":"05eb4bc1-5a47-439c-8215-8bf21a828112","domainObjectIdentifier":{"key":"0e9a8be6-7fc4-43ae-9cc6-f093161381e9","namespace":""},"size":33,"noFrame":false}],"size":42},{"id":"1b1136a4-ad5a-4079-a1aa-bfcad442be60","frames":[{"id":"f35157d1-7b66-4b3e-9740-088d59751177","domainObjectIdentifier":{"key":"36304b2f-08b8-4165-908b-ded07b1ddabf","namespace":""},"size":53,"noFrame":false},{"id":"1e1725d5-fd95-4504-b5fd-912e7742aee2","domainObjectIdentifier":{"key":"b6956a8e-c4c7-4dd7-924d-cd98d3243fe9","namespace":""},"size":47,"noFrame":false}],"size":58}],"rowsLayout":true},"composition":[{"key":"d7abd857-2f68-41f3-bc16-486c6845a542","namespace":""},{"key":"f8cc03b3-5cb9-4a9c-9bcb-9e31d4c7086a","namespace":""},{"key":"0e9a8be6-7fc4-43ae-9cc6-f093161381e9","namespace":""},{"key":"36304b2f-08b8-4165-908b-ded07b1ddabf","namespace":""},{"key":"b6956a8e-c4c7-4dd7-924d-cd98d3243fe9","namespace":""}],"notes":"","modified":1726074729174,"location":"b9276a6a-eb34-4b34-9211-8ceae02952d7","modifiedBy":"guest","createdBy":"guest","created":1726074729174,"persisted":1726074729174},"048912e9-2748-4d15-9f6a-4ae3e20558dd":{"identifier":{"key":"048912e9-2748-4d15-9f6a-4ae3e20558dd","namespace":""},"name":"All Current Values","type":"LadTable","composition":[{"key":"~myproject~A","namespace":"taxonomy"},{"key":"~myproject~ADCS_Error_Flag","namespace":"taxonomy"},{"key":"~myproject~Battery1_Temp","namespace":"taxonomy"},{"key":"~myproject~Battery1_Voltage","namespace":"taxonomy"},{"key":"~myproject~Battery2_Temp","namespace":"taxonomy"},{"key":"~myproject~Battery2_Voltage","namespace":"taxonomy"},{"key":"~myproject~CCSDS_Packet_ID.Version","namespace":"taxonomy"},{"key":"~myproject~CCSDS_Packet_ID.Type","namespace":"taxonomy"},{"key":"~myproject~CCSDS_Packet_ID.SecHdrFlag","namespace":"taxonomy"},{"key":"~myproject~CCSDS_Packet_ID.APID","namespace":"taxonomy"},{"key":"~myproject~CCSDS_Packet_Length","namespace":"taxonomy"},{"key":"~myproject~CCSDS_Packet_Sequence.GroupFlags","namespace":"taxonomy"},{"key":"~myproject~CCSDS_Packet_Sequence.Count","namespace":"taxonomy"},{"key":"~myproject~CDHS_Error_Flag","namespace":"taxonomy"},{"key":"~myproject~CDHS_Status","namespace":"taxonomy"},{"key":"~myproject~COMMS_Error_Flag","namespace":"taxonomy"},{"key":"~myproject~COMMS_Status","namespace":"taxonomy"},{"key":"~myproject~Contact_Golbasi_GS","namespace":"taxonomy"},{"key":"~myproject~Contact_Svalbard","namespace":"taxonomy"},{"key":"~myproject~Detector_Temp","namespace":"taxonomy"},{"key":"~myproject~ElapsedSeconds","namespace":"taxonomy"},{"key":"~myproject~Enum_Para_1","namespace":"taxonomy"},{"key":"~myproject~Enum_Para_2","namespace":"taxonomy"},{"key":"~myproject~Enum_Para_3","namespace":"taxonomy"},{"key":"~myproject~EpochUSNO","namespace":"taxonomy"},{"key":"~myproject~EPS_Error_Flag","namespace":"taxonomy"},{"key":"~myproject~Gyro.x","namespace":"taxonomy"},{"key":"~myproject~Gyro.y","namespace":"taxonomy"},{"key":"~myproject~Gyro.z","namespace":"taxonomy"},{"key":"~myproject~Height","namespace":"taxonomy"},{"key":"~myproject~Latitude","namespace":"taxonomy"},{"key":"~myproject~Longitude","namespace":"taxonomy"},{"key":"~myproject~Magnetometer.x","namespace":"taxonomy"},{"key":"~myproject~Magnetometer.y","namespace":"taxonomy"},{"key":"~myproject~Magnetometer.z","namespace":"taxonomy"},{"key":"~myproject~Mode_Day","namespace":"taxonomy"},{"key":"~myproject~Mode_Night","namespace":"taxonomy"},{"key":"~myproject~Mode_Payload","namespace":"taxonomy"},{"key":"~myproject~Mode_Safe","namespace":"taxonomy"},{"key":"~myproject~Mode_SBand","namespace":"taxonomy"},{"key":"~myproject~OrbitNumberCumulative","namespace":"taxonomy"},{"key":"~myproject~Payload_Error_Flag","namespace":"taxonomy"},{"key":"~myproject~Payload_Status","namespace":"taxonomy"},{"key":"~myproject~Position.x","namespace":"taxonomy"},{"key":"~myproject~Position.y","namespace":"taxonomy"},{"key":"~myproject~Position.z","namespace":"taxonomy"},{"key":"~myproject~Shadow","namespace":"taxonomy"},{"key":"~myproject~Sunsensor","namespace":"taxonomy"},{"key":"~myproject~Sunsensor_Beta","namespace":"taxonomy"},{"key":"~myproject~Velocity.x","namespace":"taxonomy"},{"key":"~myproject~Velocity.y","namespace":"taxonomy"},{"key":"~myproject~Velocity.z","namespace":"taxonomy"}],"modified":1726074729223,"location":"9a842c53-ae6d-4d87-87c8-9c645fea0d5f","modifiedBy":"guest","createdBy":"guest","created":1726074729223,"persisted":1726074729223},"31849251-94f0-4bab-b075-dec732c6b57c":{"identifier":{"key":"31849251-94f0-4bab-b075-dec732c6b57c","namespace":""},"name":"Health Panel","type":"layout","composition":[{"key":"~myproject~Sunsensor","namespace":"taxonomy"},{"key":"~myproject~Sunsensor_Beta","namespace":"taxonomy"},{"key":"~myproject~Shadow","namespace":"taxonomy"},{"key":"55eaa001-5f16-4bf5-98d6-20b105f246b4","namespace":""},{"key":"29abb180-c362-48c4-9cfe-09a2f0421585","namespace":""},{"key":"cf1afbab-6327-4fcb-a982-0feff68fa05e","namespace":""},{"key":"278d1503-4920-4306-936a-5b6cf5446930","namespace":""}],"configuration":{"items":[{"fill":"#666666","stroke":"","x":0,"y":0,"width":16,"height":55,"type":"box-view","id":"c2fa3ecf-5221-424d-a284-aa7224db2c37"},{"width":12,"height":21,"x":2,"y":8,"identifier":{"key":"55eaa001-5f16-4bf5-98d6-20b105f246b4","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"7c1afbbc-56c8-4080-84a7-e9a2914a4a6f"},{"fill":"#666666","stroke":"","x":0,"y":56,"width":16,"height":55,"type":"box-view","id":"40ee6f36-ce96-4528-9283-9ce35d34195f"},{"fill":"#666666","stroke":"","x":0,"y":112,"width":16,"height":27,"type":"box-view","id":"3e305cd0-7457-434d-b6ac-0dc1f77c03c9"},{"fill":"","stroke":"","color":"","x":0,"y":0,"width":5,"height":4,"text":"BAT 1","fontSize":"11","font":"default","type":"text-view","id":"0dcfcd6b-bb13-483a-8e0b-6214fa7b4312"},{"fill":"","stroke":"","color":"","x":0,"y":56,"width":5,"height":4,"text":"BAT 2","fontSize":"11","font":"default","type":"text-view","id":"7fe4770a-d65f-4a39-ada5-b9082ee5eebc"},{"fill":"","stroke":"","color":"","x":0,"y":112,"width":7,"height":4,"text":"SENSORS","fontSize":"11","font":"default","type":"text-view","id":"e5f37487-93d1-43a6-bd7b-0ee3c5d29978"},{"fill":"","stroke":"","color":"","x":0,"y":4,"width":6,"height":4,"text":"Volts","fontSize":"default","font":"default","type":"text-view","id":"38273220-cf71-44c6-885b-9ad24438dea8"},{"fill":"","stroke":"","color":"","x":1,"y":117,"width":6,"height":6,"text":"Sun A","fontSize":"default","font":"default","type":"text-view","id":"6a2fe7f9-6e61-46cd-88c4-d95a394a7fd6"},{"fill":"","stroke":"","color":"","x":1,"y":124,"width":6,"height":6,"text":"Sun B","fontSize":"default","font":"default","type":"text-view","id":"1265b951-c489-4102-a04b-9da05f505037"},{"fill":"","stroke":"","color":"","x":1,"y":131,"width":6,"height":6,"text":"Shadow","fontSize":"default","font":"default","type":"text-view","id":"b71b8c3e-c5e8-4bf7-be32-2e2b18bd4969"},{"identifier":{"key":"~myproject~Sunsensor","namespace":"taxonomy"},"x":7,"y":117,"width":8,"height":6,"displayMode":"value","value":"value","stroke":"","fill":"","color":"","fontSize":"18","font":"default","type":"telemetry-view","id":"e9895379-88a6-4f0c-bc27-ab4d7bc791b2","format":"%.2f"},{"identifier":{"key":"~myproject~Sunsensor_Beta","namespace":"taxonomy"},"x":7,"y":124,"width":8,"height":6,"displayMode":"value","value":"value","stroke":"","fill":"","color":"","fontSize":"18","font":"default","type":"telemetry-view","id":"fd81b0ff-62ae-4ac1-8612-3e963596852e","format":"%.2f"},{"identifier":{"key":"~myproject~Shadow","namespace":"taxonomy"},"x":7,"y":131,"width":8,"height":6,"displayMode":"value","value":"value","stroke":"","fill":"","color":"","fontSize":"18","font":"default","type":"telemetry-view","id":"2f3881e0-0410-4eec-82b0-7aa71b4149ec"},{"fill":"","stroke":"","color":"","x":0,"y":28,"width":6,"height":4,"text":"Temp","fontSize":"default","font":"default","type":"text-view","id":"77eebf1b-9d11-4812-9d0a-50bdd375bac9"},{"width":12,"height":21,"x":2,"y":64,"identifier":{"key":"29abb180-c362-48c4-9cfe-09a2f0421585","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"8bacb6b3-0f9d-423c-8e1e-806183e930ec"},{"fill":"","stroke":"","color":"","x":0,"y":60,"width":6,"height":4,"text":"Volts","fontSize":"default","font":"default","type":"text-view","id":"0d5a18c0-361d-4b07-a4d5-ebff358b7e41"},{"fill":"","stroke":"","color":"","x":0,"y":84,"width":6,"height":4,"text":"Temp","fontSize":"default","font":"default","type":"text-view","id":"fc1c8b51-49c1-40a8-a2ce-f8015c2a9877"},{"width":12,"height":21,"x":2,"y":88,"identifier":{"key":"cf1afbab-6327-4fcb-a982-0feff68fa05e","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"97f7c1ea-e55d-466a-a4ea-35a96e876f6d"},{"width":12,"height":21,"x":2,"y":32,"identifier":{"key":"278d1503-4920-4306-936a-5b6cf5446930","namespace":""},"hasFrame":false,"fontSize":"default","font":"default","type":"subobject-view","id":"3680379b-a752-4182-b9d3-c1041a8540ca"}],"layoutGrid":[10,5],"objectStyles":{"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"c2fa3ecf-5221-424d-a284-aa7224db2c37":{"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"styles":[{"conditionId":"ea2aea74-108e-4241-9d7d-e29e5a3f5c63","style":{"output":"","backgroundColor":"","border":"1px solid #a61c00","isStyleInvisible":""}},{"conditionId":"2f49d37c-845a-4f44-8296-387b00ee2f34","style":{"output":"","backgroundColor":"","border":"1px solid #38761d","isStyleInvisible":""}}],"selectedConditionId":"ea2aea74-108e-4241-9d7d-e29e5a3f5c63","defaultConditionId":"2f49d37c-845a-4f44-8296-387b00ee2f34","conditionSetIdentifier":{"key":"c3f91edb-26d2-45d0-b231-df32ffbefb8b","namespace":""}},"0dcfcd6b-bb13-483a-8e0b-6214fa7b4312":{"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"styles":[{"conditionId":"ea2aea74-108e-4241-9d7d-e29e5a3f5c63","style":{"output":"","backgroundColor":"#a61c00","border":"","color":"#ffffff","isStyleInvisible":""}},{"conditionId":"2f49d37c-845a-4f44-8296-387b00ee2f34","style":{"output":"","backgroundColor":"#38761d","border":"","color":"#b6d7a8","isStyleInvisible":""}}],"selectedConditionId":"ea2aea74-108e-4241-9d7d-e29e5a3f5c63","defaultConditionId":"2f49d37c-845a-4f44-8296-387b00ee2f34","conditionSetIdentifier":{"key":"c3f91edb-26d2-45d0-b231-df32ffbefb8b","namespace":""}},"40ee6f36-ce96-4528-9283-9ce35d34195f":{"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"styles":[{"conditionId":"ea2aea74-108e-4241-9d7d-e29e5a3f5c63","style":{"output":"","backgroundColor":"","border":"1px solid #a61c00","isStyleInvisible":""}},{"conditionId":"2f49d37c-845a-4f44-8296-387b00ee2f34","style":{"output":"","backgroundColor":"","border":"1px solid #38761d","isStyleInvisible":""}}],"selectedConditionId":"ea2aea74-108e-4241-9d7d-e29e5a3f5c63","defaultConditionId":"2f49d37c-845a-4f44-8296-387b00ee2f34","conditionSetIdentifier":{"key":"3ddb0168-3e8a-4178-9b8e-e262d82adb65","namespace":""}},"7fe4770a-d65f-4a39-ada5-b9082ee5eebc":{"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"styles":[{"conditionId":"ea2aea74-108e-4241-9d7d-e29e5a3f5c63","style":{"output":"","backgroundColor":"#a61c00","border":"","color":"#ffffff","isStyleInvisible":""}},{"conditionId":"2f49d37c-845a-4f44-8296-387b00ee2f34","style":{"output":"","backgroundColor":"#38761d","border":"","color":"#d9ead3","isStyleInvisible":""}}],"selectedConditionId":"ea2aea74-108e-4241-9d7d-e29e5a3f5c63","defaultConditionId":"2f49d37c-845a-4f44-8296-387b00ee2f34","conditionSetIdentifier":{"key":"3ddb0168-3e8a-4178-9b8e-e262d82adb65","namespace":""}},"3e305cd0-7457-434d-b6ac-0dc1f77c03c9":{"staticStyle":{"style":{"border":"1px solid #434343","backgroundColor":"__no_value"}}},"e5f37487-93d1-43a6-bd7b-0ee3c5d29978":{"staticStyle":{"style":{"backgroundColor":"#434343"}}},"2f3881e0-0410-4eec-82b0-7aa71b4149ec":{"staticStyle":{"style":{"border":"1px solid #666666","color":"#efefef"}}},"fd81b0ff-62ae-4ac1-8612-3e963596852e":{"staticStyle":{"style":{"border":"1px solid #666666","color":"#efefef"}}},"e9895379-88a6-4f0c-bc27-ab4d7bc791b2":{"staticStyle":{"style":{"border":"1px solid #666666","color":"#efefef"}}},"selectedConditionId":"","styles":[]}},"modified":1726162722251,"location":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","modifiedBy":"guest","createdBy":"guest","created":1726074729139,"persisted":1726162722256},"16aaaf2d-3105-4a48-abce-2239c7407e27":{"identifier":{"key":"16aaaf2d-3105-4a48-abce-2239c7407e27","namespace":""},"name":"Battery Voltage","type":"telemetry.plot.overlay","composition":[{"key":"~myproject~Battery1_Voltage","namespace":"taxonomy"},{"key":"~myproject~Battery2_Voltage","namespace":"taxonomy"}],"configuration":{"series":[{"identifier":{"key":"~myproject~Battery1_Voltage","namespace":"taxonomy"},"yAxisId":1},{"identifier":{"key":"~myproject~Battery2_Voltage","namespace":"taxonomy"},"yAxisId":1}]},"modified":1726074729130,"location":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","modifiedBy":"guest","createdBy":"guest","created":1726074729130,"persisted":1726074729130},"96b5b41a-7023-40b6-ac52-c6409a20d5b5":{"identifier":{"key":"96b5b41a-7023-40b6-ac52-c6409a20d5b5","namespace":""},"name":"Lat Long Height","type":"telemetry.plot.overlay","composition":[{"key":"~myproject~Latitude","namespace":"taxonomy"},{"key":"~myproject~Longitude","namespace":"taxonomy"},{"key":"~myproject~Height","namespace":"taxonomy"}],"configuration":{"series":[{"identifier":{"key":"~myproject~Latitude","namespace":"taxonomy"},"yAxisId":1},{"identifier":{"key":"~myproject~Longitude","namespace":"taxonomy"},"yAxisId":1},{"identifier":{"key":"~myproject~Height","namespace":"taxonomy"},"yAxisId":3}]},"modified":1726074729095,"location":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","modifiedBy":"guest","createdBy":"guest","created":1726074729095,"persisted":1726074729095},"66e409b0-c9e2-4a37-be39-21ba810f4f36":{"identifier":{"key":"66e409b0-c9e2-4a37-be39-21ba810f4f36","namespace":""},"name":"Position","type":"telemetry.plot.stacked","composition":[{"key":"~myproject~Position.x","namespace":"taxonomy"},{"key":"~myproject~Position.y","namespace":"taxonomy"},{"key":"~myproject~Position.z","namespace":"taxonomy"}],"configuration":{"series":[],"yAxis":{},"xAxis":{}},"modified":1726074729103,"location":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","modifiedBy":"guest","createdBy":"guest","created":1726074729103,"persisted":1726074729103},"097d7e2b-ec6c-40f2-a170-974f112fe6fc":{"identifier":{"key":"097d7e2b-ec6c-40f2-a170-974f112fe6fc","namespace":""},"name":"Postion","type":"telemetry.plot.overlay","composition":[{"key":"~myproject~Position.x","namespace":"taxonomy"},{"key":"~myproject~Position.y","namespace":"taxonomy"},{"key":"~myproject~Position.z","namespace":"taxonomy"}],"configuration":{"series":[{"identifier":{"key":"~myproject~Position.x","namespace":"taxonomy"}},{"identifier":{"key":"~myproject~Position.y","namespace":"taxonomy"}},{"identifier":{"key":"~myproject~Position.z","namespace":"taxonomy"}}]},"modified":1726074729239,"location":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","modifiedBy":"guest","createdBy":"guest","created":1726074729239,"persisted":1726074729239},"045f3288-b8c5-40c9-bcf1-19d5502bbc5c":{"identifier":{"key":"045f3288-b8c5-40c9-bcf1-19d5502bbc5c","namespace":""},"name":"Modes","type":"telemetry.plot.stacked","composition":[{"key":"~myproject~Mode_Day","namespace":"taxonomy"},{"key":"~myproject~Mode_Night","namespace":"taxonomy"},{"key":"~myproject~Mode_Payload","namespace":"taxonomy"},{"key":"~myproject~Mode_Safe","namespace":"taxonomy"},{"key":"~myproject~Mode_SBand","namespace":"taxonomy"},{"key":"~myproject~Mode_XBand","namespace":"taxonomy"}],"configuration":{"series":[],"yAxis":{},"xAxis":{}},"modified":1726074729248,"location":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","modifiedBy":"guest","createdBy":"guest","created":1726074729248,"persisted":1726074729248},"6aca5686-80d8-4199-97c2-44cff13e2420":{"identifier":{"key":"6aca5686-80d8-4199-97c2-44cff13e2420","namespace":""},"name":"Sun Sensors","type":"telemetry.plot.overlay","composition":[{"key":"~myproject~Sunsensor","namespace":"taxonomy"},{"key":"~myproject~Sunsensor_Beta","namespace":"taxonomy"},{"key":"~myproject~Shadow","namespace":"taxonomy"}],"configuration":{"series":[{"identifier":{"key":"~myproject~Sunsensor","namespace":"taxonomy"},"yAxisId":1},{"identifier":{"key":"~myproject~Sunsensor_Beta","namespace":"taxonomy"},"yAxisId":1},{"identifier":{"key":"~myproject~Shadow","namespace":"taxonomy"},"yAxisId":2}]},"modified":1726074729165,"location":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","modifiedBy":"guest","createdBy":"guest","created":1726074729165,"persisted":1726074729165},"36304b2f-08b8-4165-908b-ded07b1ddabf":{"identifier":{"key":"36304b2f-08b8-4165-908b-ded07b1ddabf","namespace":""},"name":"Velocity Over Time","type":"telemetry.plot.overlay","composition":[{"key":"~myproject~Velocity.x","namespace":"taxonomy"},{"key":"~myproject~Velocity.y","namespace":"taxonomy"},{"key":"~myproject~Velocity.z","namespace":"taxonomy"}],"configuration":{"series":[{"identifier":{"key":"~myproject~Velocity.x","namespace":"taxonomy"}},{"identifier":{"key":"~myproject~Velocity.y","namespace":"taxonomy"}},{"identifier":{"key":"~myproject~Velocity.z","namespace":"taxonomy"}}],"legend":{"expandByDefault":true,"showUnitsWhenExpanded":false}},"modified":1726074729206,"location":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","modifiedBy":"guest","createdBy":"guest","created":1726074729206,"persisted":1726074729206},"fa0d27a6-e331-4496-9d08-f980488a57a8":{"identifier":{"key":"fa0d27a6-e331-4496-9d08-f980488a57a8","namespace":""},"name":"Temps","type":"telemetry.plot.overlay","composition":[{"key":"~myproject~Battery1_Temp","namespace":"taxonomy"},{"key":"~myproject~Battery2_Temp","namespace":"taxonomy"},{"key":"~myproject~Detector_Temp","namespace":"taxonomy"}],"configuration":{"series":[{"identifier":{"key":"~myproject~Battery1_Temp","namespace":"taxonomy"},"yAxisId":1},{"identifier":{"key":"~myproject~Battery2_Temp","namespace":"taxonomy"},"yAxisId":1},{"identifier":{"key":"~myproject~Detector_Temp","namespace":"taxonomy"},"yAxisId":3}]},"modified":1726074729121,"location":"1d9f9c0c-b6fa-4ed7-b5cb-c61191df3029","modifiedBy":"guest","createdBy":"guest","created":1726074729121,"persisted":1726074729121},"6cc4c677-c12b-4b2a-8158-7805120b921d":{"identifier":{"key":"6cc4c677-c12b-4b2a-8158-7805120b921d","namespace":""},"name":"Height","type":"gauge","composition":[{"key":"~myproject~Height","namespace":"taxonomy"}],"configuration":{"gaugeController":{"gaugeType":"meter-vertical","isDisplayMinMax":true,"isDisplayCurVal":true,"isDisplayUnits":true,"isUseTelemetryLimits":false,"limitLow":803,"limitHigh":"","max":850,"min":800,"precision":2}},"modified":1726074729087,"location":"aeab24a0-00cc-4383-90a5-eeb7e6784bba","modifiedBy":"guest","createdBy":"guest","created":1726074729087,"persisted":1726074729087},"d7abd857-2f68-41f3-bc16-486c6845a542":{"identifier":{"key":"d7abd857-2f68-41f3-bc16-486c6845a542","namespace":""},"name":"Velocity X","type":"gauge","composition":[{"key":"~myproject~Velocity.x","namespace":"taxonomy"}],"configuration":{"gaugeController":{"gaugeType":"dial-filled","isDisplayMinMax":true,"isDisplayCurVal":true,"isDisplayUnits":true,"isUseTelemetryLimits":false,"limitLow":-8,"limitHigh":8,"max":10,"min":-10,"precision":2}},"modified":1726074729182,"location":"aeab24a0-00cc-4383-90a5-eeb7e6784bba","modifiedBy":"guest","createdBy":"guest","created":1726074729181,"persisted":1726074729182},"f8cc03b3-5cb9-4a9c-9bcb-9e31d4c7086a":{"identifier":{"key":"f8cc03b3-5cb9-4a9c-9bcb-9e31d4c7086a","namespace":""},"name":"Velocity Y","type":"gauge","composition":[{"key":"~myproject~Velocity.y","namespace":"taxonomy"}],"configuration":{"gaugeController":{"gaugeType":"dial-filled","isDisplayMinMax":true,"isDisplayCurVal":true,"isDisplayUnits":true,"isUseTelemetryLimits":false,"limitLow":-8,"limitHigh":8,"max":10,"min":-10,"precision":2}},"modifiedBy":"guest","createdBy":"guest","created":1726074729189,"location":"aeab24a0-00cc-4383-90a5-eeb7e6784bba","modified":1726074729189,"persisted":1726074729189},"0e9a8be6-7fc4-43ae-9cc6-f093161381e9":{"identifier":{"key":"0e9a8be6-7fc4-43ae-9cc6-f093161381e9","namespace":""},"name":"Velocity Z","type":"gauge","composition":[{"key":"~myproject~Velocity.z","namespace":"taxonomy"}],"configuration":{"gaugeController":{"gaugeType":"dial-filled","isDisplayMinMax":true,"isDisplayCurVal":true,"isDisplayUnits":true,"isUseTelemetryLimits":false,"limitLow":-8,"limitHigh":8,"max":10,"min":-10,"precision":2}},"modifiedBy":"guest","createdBy":"guest","created":1726074729198,"location":"aeab24a0-00cc-4383-90a5-eeb7e6784bba","modified":1726074729198,"persisted":1726074729198},"55eaa001-5f16-4bf5-98d6-20b105f246b4":{"identifier":{"key":"55eaa001-5f16-4bf5-98d6-20b105f246b4","namespace":""},"name":"Batt 1 Volts","type":"gauge","composition":[{"key":"~myproject~Battery1_Voltage","namespace":"taxonomy"}],"configuration":{"gaugeController":{"gaugeType":"dial-filled","isDisplayMinMax":true,"isDisplayCurVal":true,"isDisplayUnits":false,"isUseTelemetryLimits":false,"limitLow":10,"limitHigh":"","max":50,"min":-10,"precision":1}},"modified":1726161832702,"location":"aeab24a0-00cc-4383-90a5-eeb7e6784bba","modifiedBy":"guest","createdBy":"guest","created":1726076222421,"persisted":1726161832702},"29abb180-c362-48c4-9cfe-09a2f0421585":{"identifier":{"key":"29abb180-c362-48c4-9cfe-09a2f0421585","namespace":""},"name":"Batt 2 Volts","type":"gauge","composition":[{"key":"~myproject~Battery2_Temp","namespace":"taxonomy"}],"configuration":{"gaugeController":{"gaugeType":"dial-filled","isDisplayMinMax":true,"isDisplayCurVal":true,"isDisplayUnits":false,"isUseTelemetryLimits":false,"limitLow":10,"limitHigh":"","max":80,"min":-10,"precision":1}},"modifiedBy":"guest","createdBy":"guest","created":1726160701882,"location":"aeab24a0-00cc-4383-90a5-eeb7e6784bba","modified":1726161846145,"persisted":1726161846146},"278d1503-4920-4306-936a-5b6cf5446930":{"identifier":{"key":"278d1503-4920-4306-936a-5b6cf5446930","namespace":""},"name":"Batt 1 Temp","type":"gauge","composition":[{"key":"~myproject~Battery1_Temp","namespace":"taxonomy"}],"configuration":{"gaugeController":{"gaugeType":"dial-filled","isDisplayMinMax":true,"isDisplayCurVal":true,"isDisplayUnits":false,"isUseTelemetryLimits":false,"limitLow":10,"limitHigh":"","max":80,"min":-10,"precision":1}},"modifiedBy":"guest","createdBy":"guest","created":1726160962624,"location":"aeab24a0-00cc-4383-90a5-eeb7e6784bba","modified":1726161822644,"persisted":1726161822644},"cf1afbab-6327-4fcb-a982-0feff68fa05e":{"identifier":{"key":"cf1afbab-6327-4fcb-a982-0feff68fa05e","namespace":""},"name":"Batt 2 Temp","type":"gauge","composition":[{"key":"~myproject~Battery2_Voltage","namespace":"taxonomy"}],"configuration":{"gaugeController":{"gaugeType":"dial-filled","isDisplayMinMax":true,"isDisplayCurVal":true,"isDisplayUnits":false,"isUseTelemetryLimits":false,"limitLow":10,"limitHigh":"","max":50,"min":-10,"precision":1}},"modifiedBy":"guest","createdBy":"guest","created":1726161035843,"location":"aeab24a0-00cc-4383-90a5-eeb7e6784bba","modified":1726161839631,"persisted":1726161839631},"0eb6ccc2-c55f-4252-905c-e002c5185924":{"identifier":{"key":"0eb6ccc2-c55f-4252-905c-e002c5185924","namespace":""},"name":"Position Panel","type":"layout","composition":[{"key":"~myproject~Position.x","namespace":"taxonomy"},{"key":"~myproject~Position.y","namespace":"taxonomy"},{"key":"~myproject~Position.z","namespace":"taxonomy"},{"key":"~myproject~Latitude","namespace":"taxonomy"},{"key":"~myproject~Longitude","namespace":"taxonomy"},{"key":"~myproject~Height","namespace":"taxonomy"}],"configuration":{"items":[{"identifier":{"key":"~myproject~Position.x","namespace":"taxonomy"},"x":5,"y":0,"width":18,"height":6,"displayMode":"value","value":"value","stroke":"","fill":"","color":"","fontSize":"16","font":"default","type":"telemetry-view","id":"fae69ac6-007a-4595-aeb1-cfbfa081aedc","format":"%.2f"},{"identifier":{"key":"~myproject~Position.y","namespace":"taxonomy"},"x":30,"y":0,"width":18,"height":6,"displayMode":"value","value":"value","stroke":"","fill":"","color":"","fontSize":"16","font":"default","type":"telemetry-view","id":"4d00b761-4001-4296-ad7f-936c883ed142","format":"%.2f"},{"identifier":{"key":"~myproject~Position.z","namespace":"taxonomy"},"x":55,"y":0,"width":18,"height":6,"displayMode":"value","value":"value","stroke":"","fill":"","color":"","fontSize":"16","font":"default","type":"telemetry-view","id":"3901d2bc-5cb4-48b1-a5f0-b73180e4b748","format":"%.2f"},{"fill":"","stroke":"","color":"","x":0,"y":0,"width":5,"height":6,"text":"X","fontSize":"default","font":"default","type":"text-view","id":"d26cf3b3-89df-4f4a-a3e2-dd22bde8a90f"},{"fill":"","stroke":"","color":"","x":25,"y":0,"width":5,"height":6,"text":"Y","fontSize":"default","font":"default","type":"text-view","id":"20b25f15-e525-4534-bd4b-f3e251980329"},{"fill":"","stroke":"","color":"","x":50,"y":0,"width":5,"height":6,"text":"Z","fontSize":"default","font":"default","type":"text-view","id":"ca1a4e2a-22b9-4f0c-b790-c3ef533394a9"},{"identifier":{"key":"~myproject~Latitude","namespace":"taxonomy"},"x":83,"y":0,"width":22,"height":6,"displayMode":"value","value":"value","stroke":"","fill":"","color":"","fontSize":"16","font":"default","type":"telemetry-view","id":"9f47a06d-a20d-49c2-bf55-9c6bba035743","format":"%.5f"},{"identifier":{"key":"~myproject~Longitude","namespace":"taxonomy"},"x":117,"y":0,"width":22,"height":6,"displayMode":"value","value":"value","stroke":"","fill":"","color":"","fontSize":"16","font":"default","type":"telemetry-view","id":"3f1c1711-6c03-408d-8f2e-7288818a850c","format":"%.5f"},{"fill":"","stroke":"","color":"","x":75,"y":0,"width":8,"height":6,"text":"LAT","fontSize":"default","font":"default","type":"text-view","id":"c78569e4-3208-49b0-817c-3537caa82e8d"},{"fill":"","stroke":"","color":"","x":107,"y":0,"width":10,"height":6,"text":"LONG","fontSize":"default","font":"default","type":"text-view","id":"85b0a064-04da-485b-a676-dac60b8bed95"},{"identifier":{"key":"~myproject~Height","namespace":"taxonomy"},"x":153,"y":0,"width":22,"height":6,"displayMode":"value","value":"value","stroke":"","fill":"","color":"","fontSize":"16","font":"default","type":"telemetry-view","id":"85eae1e7-afe9-4ebb-ab49-e9a5ff855964","format":"%.5f"},{"fill":"","stroke":"","color":"","x":141,"y":0,"width":12,"height":6,"text":"HEIGHT","fontSize":"default","font":"default","type":"text-view","id":"eb87e194-a2d1-4689-beb8-fff363ab7d32"}],"layoutGrid":[5,5],"objectStyles":{"fae69ac6-007a-4595-aeb1-cfbfa081aedc":{"staticStyle":{"style":{"border":"1px solid #666666","color":"#ffffff"}}},"4d00b761-4001-4296-ad7f-936c883ed142":{"staticStyle":{"style":{"border":"1px solid #666666","color":"#ffffff"}}},"3901d2bc-5cb4-48b1-a5f0-b73180e4b748":{"staticStyle":{"style":{"border":"1px solid #666666","color":"#ffffff"}}},"staticStyle":{"style":{"backgroundColor":"","border":"","color":""}},"9f47a06d-a20d-49c2-bf55-9c6bba035743":{"staticStyle":{"style":{"border":"1px solid #666666","color":"#ffffff"}}},"3f1c1711-6c03-408d-8f2e-7288818a850c":{"staticStyle":{"style":{"border":"1px solid #666666","color":"#ffffff"}}},"85eae1e7-afe9-4ebb-ab49-e9a5ff855964":{"staticStyle":{"style":{"border":"1px solid #666666","color":"#ffffff"}}}}},"modified":1726074729078,"location":"b9276a6a-eb34-4b34-9211-8ceae02952d7","modifiedBy":"guest","createdBy":"guest","created":1726074729078,"persisted":1726074729078},"b6956a8e-c4c7-4dd7-924d-cd98d3243fe9":{"identifier":{"key":"b6956a8e-c4c7-4dd7-924d-cd98d3243fe9","namespace":""},"name":"Velocity Table","type":"table","composition":[{"key":"~myproject~Velocity.x","namespace":"taxonomy"},{"key":"~myproject~Velocity.y","namespace":"taxonomy"},{"key":"~myproject~Velocity.z","namespace":"taxonomy"}],"configuration":{"columnWidths":{},"hiddenColumns":{},"telemetryMode":"performance","persistModeChange":true,"rowLimit":50,"columnOrder":[],"cellFormat":{},"autosize":true},"modified":1726074729214,"location":"9a842c53-ae6d-4d87-87c8-9c645fea0d5f","modifiedBy":"guest","createdBy":"guest","created":1726074729214,"persisted":1726074729214}},"rootId":"6d101430-59f3-4375-96aa-844d1b5732a7"} \ No newline at end of file diff --git a/example/index.js b/example/index.js index 9350677e..3b968793 100644 --- a/example/index.js +++ b/example/index.js @@ -45,6 +45,10 @@ const STATUS_STYLES = { const openmct = window.openmct; (() => { + const POLL_INTERVAL = 100; // ms + const MAX_POLL_TIME = 10000; // 10 seconds + const COMPOSITION_RETRY_DELAY = 250; // ms + const MAX_COMPOSITION_RETRIES = 20; // 5 seconds total with 250ms intervals const ONE_SECOND = 1000; const ONE_MINUTE = ONE_SECOND * 60; const THIRTY_MINUTES = ONE_MINUTE * 30; @@ -111,5 +115,113 @@ const openmct = window.openmct; openmct.install(openmct.plugins.FaultManagement()); openmct.install(openmct.plugins.BarChart()); + + // setup example display layout + openmct.on('start', async () => { + if (localStorage.getItem('exampleLayout') !== null) { + return; + } + + // try to import the example display layout, fail gracefully + try { + // Function to fetch JSON content as text + async function fetchJsonText(url) { + const response = await fetch(url); + const text = await response.text(); + + return text; + } + + async function getExampleLayoutPath() { + const objects = Object.values(JSON.parse(localStorage.getItem('mct'))); + const exampleLayout = objects.find(object => object.name === 'Example Flexible Layout'); + let path = await openmct.objects.getOriginalPath(exampleLayout.identifier); + + path.pop(); + path = path.reverse(); + path = path.reduce((prev, curr) => { + return prev + '/' + openmct.objects.makeKeyString(curr.identifier); + }, '#/browse'); + + return path; + } + + // poll for the localStorage item + function mctItemExists() { + return new Promise((resolve, reject) => { + const startTime = Date.now(); + + function checkItem() { + if (localStorage.getItem('mct') !== null) { + resolve(true); + + return; + } + + if (Date.now() - startTime > MAX_POLL_TIME) { + reject(new Error('Timeout waiting for mct localStorage item')); + + return; + } + + setTimeout(checkItem, POLL_INTERVAL); + } + + checkItem(); + }); + } + + // wait for the 'mct' item to exist + await mctItemExists(); + + // setup to use import as JSON action + const importAction = openmct.actions.getAction('import.JSON'); + const myItems = await openmct.objects.get('mine'); + const exampleDisplayText = await fetchJsonText('./example-display.json'); + const selectFile = { + body: exampleDisplayText + }; + + // import the example display layout + importAction.onSave(myItems, { selectFile }); + + // the importAction has asynchronous code, so we will need to check + // the composition of My Items to confirm the import was successful + const compositionCollection = openmct.composition.get(myItems); + let compositionLength = 0; + let composition; + + let retryCount = 0; + while (compositionLength === 0 && retryCount < MAX_COMPOSITION_RETRIES) { + composition = await compositionCollection.load(); + compositionLength = composition.length; + + if (compositionLength === 0) { + retryCount++; + await new Promise(resolve => setTimeout(resolve, COMPOSITION_RETRY_DELAY)); + } + } + + if (compositionLength === 0) { + throw new Error('Failed to load composition after maximum retries'); + } + + const exampleLayoutPath = await getExampleLayoutPath(); + + // give everything time to initialize + await new Promise(resolve => setTimeout(resolve, 250)); + + openmct.notifications.info('Navigated to Example Display Layout'); + + // navigate to the "Example Display Layout" + openmct.router.navigate(exampleLayoutPath); + + // set the localStorage item to prevent this from running again + localStorage.setItem('exampleLayout', 'true'); + } catch (error) { + console.error('Failed to set up example display layout:', error); + openmct.notifications.error('Failed to load example display layout: ' + error.message); + } + }); } })(); diff --git a/tests/e2e/yamcs/quickstartSmoke.e2e.spec.mjs b/tests/e2e/yamcs/quickstartSmoke.e2e.spec.mjs index 9388276c..40ef842f 100644 --- a/tests/e2e/yamcs/quickstartSmoke.e2e.spec.mjs +++ b/tests/e2e/yamcs/quickstartSmoke.e2e.spec.mjs @@ -37,10 +37,12 @@ import { baseFixtures } from 'openmct-e2e'; const { test, expect } = baseFixtures; test.describe("Quickstart smoke tests @yamcs", () => { - test('Verify that the create button appears and that the Folder Domain Object is available for selection', async ({ page }) => { + test.beforeEach(async ({ page }) => { //Go to baseURL await page.goto('./', { waitUntil: 'networkidle' }); + }); + test('Verify that the create button appears and that the Folder Domain Object is available for selection', async ({ page }) => { //Click the Create button await page.getByRole('button', { name: 'Create' }).click(); @@ -57,4 +59,18 @@ test.describe("Quickstart smoke tests @yamcs", () => { await expect(page.locator('.c-tree__item :text-is("myproject")')).toBeEnabled(); await expect(page.locator('.c-tree__item :text-is("My Items")')).toBeEnabled(); }); + + test('Verify that the default display is generated and navigated to without error', async ({ page }) => { + await expect(page.getByRole('main').getByText('Example Flexible Layout')).toBeVisible(); + await expect(page.getByLabel('Health tab')).toBeVisible(); + await expect(page.getByLabel('Position tab')).toBeVisible(); + await expect(page.getByLabel('Velocity tab')).toBeVisible(); + await expect(page.getByLabel('All Current Values tab')).toBeVisible(); + await expect(page.getByText('SUBSYS')).toBeVisible(); + await expect(page.getByText('ADCS', { exact: true })).toBeVisible(); + await expect(page.getByText('CDHS', { exact: true })).toBeVisible(); + await expect(page.getByText('COMMS', { exact: true })).toBeVisible(); + await expect(page.getByText('EPS', { exact: true })).toBeVisible(); + await expect(page.getByLabel('CW PYLD Status Object View').getByText('PAYLOAD')).toBeVisible(); + }); });