pub struct FaultHandler<UserHandler: UserFaultHookProvider> {
pub user_hook: RefCell<UserHandler>,
/* private fields */
}
Expand description
This structure is used to implement the fault handling as specified in chapter 4.8 of the CFDP standard.
It does so by mapping each applicable spacepackets::cfdp::ConditionCode to a fault handler which is denoted by the four spacepackets::cfdp::FaultHandlerCodes. This code is used to select the error handling inside the CFDP handler itself in addition to dispatching to a user-provided callback function provided by the UserFaultHookProvider.
Some note on the provided default settings:
- Checksum failures will be ignored by default. This is because for unacknowledged transfers, cancelling the transfer immediately would interfere with the check limit mechanism specified in chapter 4.6.3.3.
- Unsupported checksum types will also be ignored by default. Even if the checksum type is not supported the file transfer might still have worked properly.
For all other faults, the default fault handling operation will be to cancel the transaction. These defaults can be overriden by using the Self::set_fault_handler method. Please note that in any case, fault handler overrides can be specified by the sending CFDP entity.
Fields§
§user_hook: RefCell<UserHandler>