Skip to content

feat(exn): migrate packet interfaces to CCSDSPack v2 - #3

Merged
Inczert merged 30 commits into
mainfrom
feat/ccsdspack-v2-interfaces
Aug 31, 2026
Merged

Inczert merged 30 commits into
mainfrom
feat/ccsdspack-v2-interfaces

Conversation

@Inczert

@Inczert Inczert commented Aug 31, 2026

Copy link
Copy Markdown
Member

Summary

Migrate the EXN mission packet/interface contract to CCSDSPack v2 and make the ICD, runtime .cfg templates, JSON mirrors, and MCU header definitions agree on one wire profile.

Protocol baseline

  • CCSDS Space Packet version 0
  • CCSDSPack v2.x, validated against v2.0.0
  • PUS revision A for all currently defined EXN services
  • PUS:revA:TC with one-octet source ID
  • PUS:revA:TM with zero-octet destination ID
  • CRC-16/CCITT-FALSE packet error control
  • TC APID identifies destination endpoint
  • TM APID identifies producing endpoint
  • mission CUC timestamps remain Application Data

This deliberately removes the old assumption that Service 5 implies a PUS-B secondary header or Service 17 implies PUS-C.

Routing / System HK

  • GS device-directed operations use the four-octet proxy preamble on the GS -> MCU hop.
  • MCU-local operations do not use the proxy preamble.
  • System HK TC 3/10 is direct GS -> MCU, APID 0x100, GS Source ID 0x10.
  • Its Application Data is exactly {transactionId:u16, include_mask:u8, detailMask:u16}.
  • System HK TM 3/100 is produced by MCU with APID 0x100.

Repository changes

  • rewrite the master ICD around the v2 packet profile;
  • align GS, MCU, PI and FPGA documentation;
  • migrate all current CCSDSPack .cfg templates to v2 selectors/keys;
  • add canonical interfaces/mcu-rtos/exn_interfaces.h;
  • retain astrai_interfaces.h as a compatibility shim;
  • update the current JSON mirrors and document that the JSON set is partial;
  • add a CCSDSPack v2 interface validator and GitHub Actions gate.

Validation

Interface CI on the branch validates:

  • CCSDSPack v2.0.0 builds and installs cleanly;
  • every committed .cfg loads and serializes through ccsds::Packet;
  • JSON mirrors parse;
  • canonical header compiles as C;
  • compatibility header compiles as C++.

Latest branch CI: PASS.

Related

This is the interface/ICD counterpart to the EXN-GS CCSDSPack v2 router/client migration.

Inczert added 30 commits August 31, 2026 21:30
@Inczert
Inczert merged commit 79ef105 into main Aug 31, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant