From 696d9fe48dce727ed2a239feb8816bd64937b462 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 1 Sep 2023 19:37:23 +0200 Subject: [PATCH] added actions chapter --- satrs-book/src/actions.md | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/satrs-book/src/actions.md b/satrs-book/src/actions.md index e69de29..1f3c921 100644 --- a/satrs-book/src/actions.md +++ b/satrs-book/src/actions.md @@ -0,0 +1,42 @@ +# Working with Actions + +Space systems generally need to be commanded regularly. This can include commands periodically +required to ensure a health system, or commands to reach the mission goals. + +These commands can be modelled using the concept of Actions. the ECSS PUS standard also provides +the PUS service 8 for actions, but provides few concrete subservices and specification on how +action commanding could look like. + +`sat-rs` proposes two recommended ways to perform action commanding: + +1. Target ID and Action ID based. The target ID is a 32-bit unsigned ID for an OBSW object entity + which can also accept Actions. The action ID is a 32-bit unsigned ID for each action that a + target is able to perform. +2. Target ID and Action String based. The target ID is the same as in the first proposal, but + the unique action is identified by a string. + +The framework provides an `ActionRequest` abstraction to model both of these cases. + +## Commanding with ECSS PUS 8 + +`sat-rs` provides a generic ECSS PUS 8 action command handler. This handler can convert PUS 8 +telecommands which use the commanding scheme 1 explained above to an `ActionRequest` which is +then forwarded to the target specified by the Target ID. + +There are 3 requirements for the PUS 8 telecommand: + +1. The subservice 128 must be used +2. Bytes 0 to 4 of application data must contain the target ID in `u32` big endian format. +3. Bytes 4 to 8 of application data must contain the action ID in `u32` big endian format. +4. The rest of the application data are assumed to be command specific additional parameters. They + will be added to an IPC store, the the corresponding store address will be sent as part of the + `ActionRequest`. + +## Sending back telemetry + +There are some cases where the regular verification provided by PUS in response to PUS action +commands is not sufficient and some additional telemetry needs to be sent to ground. In that +case, it is recommended to chose some custom subservice for action TM data and then send the +telemetry using the same scheme as shown above, where the first 8 bytes of the application +data is reserved for the target ID and action ID. +