- `spacepackets` version 0.14.0rc2
Added
- `tmtccmd.com.ComInterface`: Added two new generic exceptions:
- `ReceptionDecodeError` for generic decoder errors on packet reception.
- `SendError` for generic send errors when sending packets.
- `tmtccmd.pus.pus_20_fsfw_params_defs`: New `ParameterId` and `Parameter` helper
dataclasses. Also added `Service20ParamDumpWrapper` helper class
to help with the deserialization of parameters. The helper classes can be used both
for TC and TM handling. Create new API set to create the `Parameter` classes for common
parameter types.
- `SetupParams` can now already include a COM interface instance.
- CLI arguments: Added the `--pp` or `--prompt-proc` argument which only has meaning when used
together with the listener flag (`-l`). It should cause the main application to prompt for
a procedure (but still go to listener mode after the procedure).
Changed
Argument parsing and Core modules
- (breaking): `tmtccmd.config.hook.TmTcCfgHookBase` renamed to `tmtccmd.config.hook.HookBase`.
- (breaking): The `PostArgsParsingWrapper` constructor now expects a `SetupParams` parameter and
caches it.
All `set_*` methods now do not expect the `SetupParams` to be passed explicitely anymore.
- (breaking): The `PreArgsParsingWrapper` now expects a `setup_params` parameter to be passed to the
`parse` method. The parameter helper will be cached in the created `PostArgsParsingWrapper`.
- `args_to_params_tmtc` now expects an `assign_com_if` method and can assign a COM interface
when it is passed. It oftentimes makes sense to determine a valid COM interface
(and prompt applicable parameters from the user) before prompting procedure parameters.
The new behaviour is the default when using the `PostArgsParsingWrapper`.
PUS modules
- (breaking): Renamed `tmtccmd.*.*20_params.py` to
`tmtccmd.*.*20_fsfw_param.py` to reflect these modules are tailored
towards usage with the FSFW.
- (breaking): Reworked `tmtccmd.tm.pus_20_fsfw_params` by simplifying `Service20FsfwTm`
significantly. It only implements `AbstractPusTm` now and is a simple wrapper
around `PusTelemetry`, which is exposed as a `pus_tm` member.
- (breaking): Renamed `tm.pus_5_event` to `tm.pus_5_fsfw_event` to better reflect these modules
are tailored towards usage with the FSFW
- (breaking): Simplified `Service5Tm` significantly. It only implements `AbstractPusTm` now and
is a more simple wrapper around `PusTelemetry` exposing some FSFW specific functionality.
- (breaking): Renamed `tmtccmd.*.*200_fsfw_modes` to `tmtccmd.*.*200_fsfw_mode` and
`tmtccmd.*.*20_fsfw_params` to `tmtccmd.*.*20_fsfw_param` for consistency.
- `tmtccmd.tc.pus_20_params.py`: Create new `crate_fsfw_load_param_cmd` and
deprecate the former `pack_fsfw_load_param_cmd` function.
Other
- (breaking): `DefaultPusQueueHelper`: `seq_cnt_provider`, `pus_verificator`
and `default_pus_apid` (formerly `pus_apid`) do not have default values anymore
and need to be specified explicitely.
- (breaking): Renamed `tmtccmd.config.com.ComIfCfgBase` to `ComCfgBase`
- (breaking): `tmtccmd.com.ComInterface`: Change `get_id` to `id` property.
- (breaking): TCP (`tmtccmd.com.TcpSpacePacketsComIF`) and `tmtccmd.com.UdpComIF`:
Remove `max_recv_size` argument and replace it with 4096 where it was used.
- (breaking): TCP: Renamed `tmtccmd.com.TcpComIF` to `tmtccmd.com.TcpSpacePacketsComIF` to better
reflect this interface sends and expects space packets.
- (breaking) TCP: The TCP communication interface now expects a generic `Sequence[PacketId]`
instead of a tuple of raw packet IDs. This makes usage more ergonomic.
- (possibly breaking): Rename `com_if` module to `com`.
- (breaking): `tmtccmd.tc.queue.DefaultPusQueueHelper`: The timestamp length of time tagged
telecommands needs to be specified explicitely now (no default value of 4).
Fixed
- TCP: Actually use the TM polling frequency parameter now in the TM reception thread.
- TCP: The `data_available` API now works properly by always converting the internal unparsed
TM queue to the TM packet list and returning its length.