Logic implementation in CSCP
With CSCP in !9 (merged), we agreed to leave the commands as implementation defined behavior, to separate the network protocol from the "logic protocol".
However, I think we should still write a document with the "default" logic we implement in CSCP, i.e. a list of commands we implement both in C++ and Python. In my head it is less of a strict RFC-style document but something where we can iterate more easily.
I would propose this as the "Constellation Satellite Implementation Guidelines" (CSIG).
It should define
- the
get_namecommand (via CHIRP we only get the MD5 hash) - the
get_commandscommand - the
get_capabilitiescommand (e.g. CDTP1_HOST, CDTP1_RECV, CMDP1_HOST, CSCP1_HOST, CSIG_V1.0) - the
get_statecommand - the
get_statuscommand - the
get_statisticscommand (if CMDP host) - the FSM structure
- the FSM commands
- a structure for configuration data over the network
- list of tags in used in message headers (e.g. CDTP compression)
By the nature of being guidelines, there is no strict requirement to stick to these guidelines, and versioning can be done semantic.
Edited by Stephan Lachnit