Skip to content

About

Shared BusOBC-PayOBC CCSDS APID registry and generated consumer definitions

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

payload-apids

Single source of truth for APID allocation and direction on the STAR BusOBC-PayOBC link.

This repository is shared mission configuration. It is intentionally separate from payload-link: the framing library transports opaque bodies and must not know which CCSDS APIDs are legal. BusOBC flight software, the PayOBC simulator, production PayOBC software, and ground tooling should pin the same reviewed commit of this repository.

Authoritative and generated files

  • registry/apids.json is the only hand-edited APID allocation.
  • include/star/payload_apids.h is the generated C/C++ consumer interface.
  • docs/apid-table.md is the generated review/documentation table.
  • tools/generate.py validates the registry and regenerates both artifacts using only the Python standard library.

The initial allocation comes from interface-document section 3. RevB removes the old SPICEnet-only reservations 0x000-0x002; this registry retains the protocol reservations for LTP, CFDP, and idle packets.

Consumer use

Add this repository as a pinned submodule or CMake FetchContent dependency, then link the header-only target:

target_link_libraries(your_target PRIVATE STAR::payload_apids)
#include "star/payload_apids.h"

if (!star_payload_apid_allowed_pay_to_bus(received_apid)) {
    /* Drop and count the disallowed packet. */
}

Symbols use absolute packet names such as STAR_APID_PAYLOAD_COMMAND; they do not use endpoint-relative _TX or _RX suffixes that reverse meaning between consumers.

APID is not a cFE message ID

An APID is only the low 11 bits of the CCSDS packet identifier. It does not by itself determine the complete cFE message ID: command/telemetry and secondary header flags also matter. Those header-type mappings are not fully settled in the current interface document, so this first registry deliberately does not generate cFS MIDs. Add that mapping here after the interface decision is reviewed; do not guess it independently in each consumer.

The bridge application's local housekeeping and control MIDs are also outside this registry because they do not cross the BusOBC-PayOBC link.

Development

make generate  # after editing registry/apids.json
make check     # verify generated files are current
make test      # validate JSON and compile the C and C++ consumer interfaces

About

Shared BusOBC-PayOBC CCSDS APID registry and generated consumer definitions

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages