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_name
command (via CHIRP we only get the MD5 hash) - the
get_commands
command - the
get_capabilities
command (e.g. CDTP1_HOST, CDTP1_RECV, CMDP1_HOST, CSCP1_HOST, CSIG_V1.0) - the
get_state
command - the
get_status
command - the
get_statistics
command (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