OpenC3 COSMOS Core 6.10.1 - Sub-packets and Structures
Welcome to OpenC3 COSMOS Core 6.10.1!
We're excited to announce several new features in COSMOS 6.10 related to how you can define and use packets.
The first is sub-packets which enable channelized telemetry. Sub-packets come with 2 new keywords: SUBPACKET and SUBPACKETIZER. The SUBPACKET keyword is added to a packet declared in your cmd/tlm definitions. The packet is then not used except via the SUBPACKETIZER for identifying chunks of data as a packet. Additional documentation and examples are coming soon!
The next is structures which allow you to include and automatically flatten structures that use a different Accessor in the middle of the packet. For example, you can insert a JSON structure right in the middle of a binary data packet! The new keyword is STRUCTURE and APPEND_STRUCTURE similar to our ITEM keywords.
To better support JSON we have added additional types including BOOL, ARRAY, OBJECT, and ANY. These are Booleans (true/false), arrays of unknown data type, objects with unknown contents, and a completely unknown data type with ANY.
Enhancements
- Subpackets provides a process for breaking up packets during decom into subpackets
- Structure items allow you to include structures with different accessors in a packet
- Extended types including BOOL, ARRAY, OBJECT and ANY
- Packet Viewer virtual table instead of pagination
- Bucket Explorer multiple select and download
- Interpret environment variable value as boolean instead of string
- Keep menu open when submenu is clicked
- Restrict file uploads for plugin installs to gem files
- Add documentation for
open_file_dialoganddownload_file - Add selective UBI builds and air-gapped network support for podman
- Better error messages on plugin gem file upload
- Implement missing System Telemetry and System Commands methods in python
- Ensure python protocols support hex strings for parameters
- Table Manager usability including File New and File Save workflows
- Autonomic add buttons to Enable/Disable All Triggers
Bug Fixes
- Support binary commands in Command Queue APIs and UI
- Add RESTRICTED keyword to python
- Fix CTRF download for Script Runner logs
- Fix ScriptRunner handling of script crashed state
- Fix screen generator for packet items containing brackets, e.g.
ITEM[X] - Packet Viewer move tooltip to card header so that it is visible
- Autonomic fix for listing all reactions for a given trigger
- Autonomic fix for editing trigger changes value type
- Autonomic timestamp in the event logs does not respect UTC timezone
- View-only users can now use Command History and get command data from Data Extractor
What's Changed
- fix pnpm publish by @ryan-pratt in #2511
- [Manual] Update version to 6.9.3-beta0 by @ryan-pratt in #2512
- 2515 unify openc3sh and openc3bat between regular and project by @mcosgriff in #2517
- Update anycable and other dependencies by @jmthomas in #2531
- Add some Ruby / Python tabs by @jmthomas in #2542
- Add RESTRICTED keyword to python by @jmthomas in #2540
- Subpackets by @ryanmelt in #2474
- feat(ci): frontend generator tests by @mcosgriff in #2543
- PacketViewer virtual table by @EmilyRagan in #2547
- Interpret environment variable value as boolean instead of string by @EmilyRagan in #2544
- Keep menu open when submenu is clicked by @EmilyRagan in #2554
- Limit file uploads for plugin installs to gem files by @EmilyRagan in #2558
- [Documentation] Add docs on download_file by @clayandgen in #2555
- Unify Suite output timestamps, fix CTRF d/l by @jmthomas in #2524
- Bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in #2545
- [Feature] Multi-select + Download in Bucket Explorer by @clayandgen in #2559
- feat(cli): add selective UBI builds and air-gapped network support for podman by @mcosgriff in #2546
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #2567
- Remove COSMOS 5 references by @jmthomas in #2566
- Minor updates to unified openc3 scripts by @mcosgriff in #2568
- Fix ScriptRunner handling crashed state by @jmthomas in #2563
- Better error messages on plugin gem file upload #2516 by @markjmiller in #2548
- Queue binary by @jmthomas in #2535
- Make PacketViewer table loading state more robust by @EmilyRagan in #2560
- Bump sass from 1.93.3 to 1.94.0 in /openc3-cosmos-init/plugins by @dependabot[bot] in #2550
- Implement missing System Telemetry and System Commands methods in python by @mcosgriff in #2569
- Fix screen generator by @jmthomas in #2576
- Use locally built mc by @jmthomas in #2577
- move tooltip to card header so that it is visible again by @EmilyRagan in #2582
- Fix RESTRICTED in python by @jmthomas in #2583
- Generated python and ruby tests for hex value support in MINIMUM_VALUE, MAXIMUM_VALUE, and DEFAULT_VALUE by @mcosgriff in #2581
- Verify python protocols support hex strings by @mcosgriff in #2587
- [Enhancement] Table Manager usability by @clayandgen in #2574
- Add dependabot ignore for npm packages we update manually by @ryan-pratt in #2589
- [Bugs] Autonomic bug updates by @clayandgen in #2584
- Update Alpine 3.22, Ruby 3.4, Traefik 3.6.2 and JS deps by @jmthomas in #2585
- Fix gem update to 3.7.2 by @jmthomas in #2596
- Tweak feature request template verbiage by @ryan-pratt in #2598
- Allow streaming with cmd_info permission by @jmthomas in #2600
- Structure items by @ryanmelt in #2579
- Extended types by @ryanmelt in #2597
- Cleanup by @EmilyRagan in #2603
- Fix CmdSender binary commands by @jmthomas in #2606
- Update release to push to npm by @jmthomas in #2609
Full Changelog: v6.9.2...v6.10.1