Releases: ravisuhag/astro
Releases · ravisuhag/astro
Release list
v0.2.0
Astro v0.2.0
This release completes the bidirectional CCSDS space communication stack — adding TC (telecommand) uplink protocols alongside the existing TM (telemetry) downlink, plus comprehensive documentation and conformance statements across all packages.
New Packages
-
pkg/tcdl— TC Space Data Link Protocol (CCSDS 232.0-B-4)- TC Transfer Frames with variable length (up to 1024 bytes)
- MAP sublayer with packet segmentation and reassembly
- 64 Virtual Channels, Master Channel multiplexing, Physical Channel
- Type-A (sequence-controlled) and Type-B (bypass/expedited) frame support
- Frame Sequence Number N(S) for COP-1 integration
-
pkg/cop— Communications Operation Procedure-1 (CCSDS 232.1-B-2)- FOP-1 (ground side): sliding window frame transmission with retransmission
- FARM-1 (spacecraft side): window-based frame acceptance with lockout detection
- CLCW encode/decode for return-link status reporting via TM OCF
-
pkg/sdl— Shared Data Link Primitives- Generic channel buffers, multiplexers, and service interfaces
- Eliminates code duplication between TM and TC implementations
-
pkg/tcf— Time Code Formats (CCSDS 301.0-B-4)- CUC, CDS, CCS, and ASCII time code formats
- CCSDS reference epoch (1958-01-01 TAI) with configurable custom epochs
- Full encode/decode with Go
time.Timeintegration
Enhancements
-
pkg/tmsc— Reed-Solomon error correction- RS(255,223) and RS(255,239) codes over GF(2^8)
- Berlekamp-Massey, Chien search, and Forney algorithm for full decode pipeline
- Symbol interleaving at depths 1, 2, 3, 4, 5, and 8
-
pkg/tmdl— TM Data Link improvements- Native multi-packet packing with FHP-based reassembly and loss resync
- PhysicalChannel with weighted round-robin MC multiplexing
- Frame gap detection via MC/VC count tracking
- Thread safety, input validation, and robustness improvements
-
pkg/spp— Space Packet Protocol improvements- Service type with Packet and Octet String services over
io.ReadWriter - Per-APID sequence counting
- CRC validation on decode and auto-compute on encode
- Service type with Packet and Octet String services over
Documentation
Every implemented package now has three documentation tiers:
| Package | Guide | Reference | PICS Proforma |
|---|---|---|---|
spp |
Guide | Reference | PICS |
tmdl |
Guide | Reference | PICS |
tmsc |
Guide | Reference | PICS |
tcdl |
Guide | Reference | PICS |
cop |
Guide | Reference | PICS |
tcf |
Guide |
Examples
examples/downlink— TM downlink simulation (spacecraft to ground)examples/lossy-link— Packet transmission with frame loss and FHP-based recovery
Other Changes
- Refactored TMDL and TCDL to use shared
sdlgeneric primitives - Reorganized package files to align with protocol components
- Resolved all
golangci-lintissues (errcheck, staticcheck, unused) - Upgraded CI to golangci-lint v2.1
Full Changelog
v0.1.0
Astro v0.1.0
Initial release of Astro — a Go library for CCSDS space communication standards.
Packages
pkg/spp— Space Packet Protocol (CCSDS 133.0-B-2)SpacePacketstruct withEncode()/Decode()round-trip support- Primary Header with APID, version, sequence flags, and packet length
- Optional Secondary Header with
SecondaryHeaderFlag - Packet Assembly and Extraction per CCSDS 4.2/4.3
- Maximum packet length enforcement
- TM and TC packet type support