- Renamed `FsfwTmTcPrinter.get_validity_buffer` to `FsfwTmTcPrinter.get_validity_buffer_str` - Renamed `ObjectId<$TY>.from_bytes` to `ObjectId<$TY>.from_bytes_typed` to avoid invalid override.
- Bumped `spacepackets` to release range >=0.24, <0.25. - Bumped `cfdp-py` to v0.1.1.
Changed
- Renamed `DefaultProcedureParams` to `TreeCommandingParams`. - Renamed `TcParams` to `CommandingParams`. - Renamed `DefaultProcedureInfo` to `TreeCommandingProcedure`. - Renamed `add_default_procedure_arguments` to `add_tree_commanding_arguments`. - Renamed `TcProcedureType.DEFAULT` to `TcProcedureType.TREE_COMMANDING`. - Replaced `TelemetryListT` by `List[bytes]`. - Renamed `TcpSpacePacketsComIF` to `TcpSpacepacketsClient`. - Renamed `UdpComIF` to `UdpClient`.
Removed
- `CoreServiceList` enumeration. - `DEFAULT_APID` and `DEBUG_MODE` globals.
Fixed
- TCP client implementation re-worked to be thread-safe. Also added more graceful shut-down handling. Consequently, the thread spawned by the TCP client is not daemonic anymore.
8.0.0rc1
Fixed
- Fixed bug for acknowledged file transfer cancellation in the destination handler.
Removed
- The `tmtccmd.util.countdown` and `tmtccmd.util.seqcnt` module were moved to the `spacepackets` library. - Most of the `tmtccmd.cfdp` module was moved to the [`cfdp-py` library](https://github.com/us-irs/cfdp-py).
8.0.0rc0
Added
- Added new command tree mechanism which allows to specify the telecommand structure in a more flexible way. This mechanism deprecated the old service/op code combination. The user can now specify the whole command structure as a tree, and specify commands as a slash separated path through that tree.
Removed
- Removed high level CFDP handler and CFDP in CCSDS handler which are not generic enough and do not work in their current form. These handlers might be re-added with a proper implementation which also allow building a CFDP daemon / full CFDP entity more easily.
Changed
- Move `tmtccmd.tmtc.base` to `tmtccmd.tmtc.tm_base` and deprecate it.
7.0.0
Added
- The CFDP source and destination handler can now also handle cancel requests. - The CFDP source handler can handle acknowleded mode transfers now. - New `from_seconds` classmethod for `Countdown` class.
Changed
- All CFDP exceptions are now exposed via the `tmtccmd.cfdp.exceptions` module. - Both CFDP source destination handler now expect a `RemoteEntityCfgTable` for remote configuration setup. - CFDP source and dest handler now both have the `entity_id` property to retrieve the local ID. - CFDP handler transmission mode and CFDP state are separate from each other now. The transmission mode can be retrieved using a new `transmission_mode` property for both handlers, and the `CfdpState` `BUSY_CLASS_2_ACKED` and `BUSY_CLASS_1_NACKED` variants were merged into a `BUSY` variant. - Setting a sequnce of space packet IDs for TCP space packet parsing is now mandatory for the TCP communication interface. This avoids confusing errors during run-time. - Removed some global usage for the TCP communication interface - The CFDP source and destination handlers can now only handle one packet at a time. This makes reasoning about the logic of those handlers, and subsequently extending and adapting them a lot easier. Multiple packets can still be inserted by calling the `insert_packet` and `state_machine` function consecutively. - Moved all `pus_*` modules located inside the `tm` and `tc` module to the new`pus/tm` `pus/tc` submodule. - Renamed all `pus_*` modules to `s_*` modules (service) - Renamed `funccmd` PUS modules to `action`. - Unified `tc` and `tm` module into `tmtc` module. All `tmtccmd.tm` and `tmtccmd.tc` imports needs to be replaced with `tmtccmd.tmtc`. - The `CheckLimitProvider` abstraction must now be explicitely passed to the CFDP entity instead of being passed via the remote configuration. - `Countdown` class `timeout` property now returns a `timedelta` object to avoid inconsistency of getter and setter property. There is a new `timeout_ms` property to returns the timeout as milliseconds.
Removed
- Removed `serial_fixed_frame` module and `SerialFixedFrameComIF` class which has been deprecated since v4.0.0a0. - `SerialCommunicationType`: Removed `FIXED_FRAME_BASED` variant. - Hardcoded AT91 paths in `QEMUComIF`. - Removed deprecated TM modules.
Fixed
- Various fixes for the `QEMUComIF`. - Fixed the check timer and check limit mechanism for CFDP. The `RemoteEntityCfg` not only expects a `check_limit` integer field which defaults to 2.
6.0.0
- Changed package license from Apache-2.0 to dual Apache-2.0 or MIT. - spacepackets version v18.0.0
Fixed
- Bugfix for destination handler: Clear out file data queue when handling it.
Changed
- TCP communication interface: - Frame limit is optional now. - Small change to allow handling more than 4096 bytes in one polling cycle. - Renamed `args_to_params_tmtc` to `args_to_all_params_tmtc` and `args_to_params_cfdp` to `args_to_all_params_cfdp` - `PutRequest` model now stores both destination and source file path as a Python `Path`.
Added
- Added new `cfdp_args_to_cfdp_params` function which only performs the conversion of CFDP argparse arguments to the internalized `CfdpParams` type. - Explicit functions to convert internalized CFDP parameters to a put request: 1. `cfdp_req_to_put_req_get_req` 2. `cfdp_req_to_put_req_proxy_put_req` 3. `cfdp_req_to_put_req_regular` - Generic `generic_cfdp_params_to_put_request` conversion function which converts the internalized CFDP parameters to a put request based on heuristics.