34 #ifndef CFDP_ENGINE_HPP 35 #define CFDP_ENGINE_HPP Status::T recvFd(Transaction *txn, const FileDataPdu &pdu)
Unpack a file data PDU from a received message.
Status::T sendEof(Transaction *txn)
Create, encode, and send an EOF (End of File) PDU.
TransactionInitType
Transaction initiation method.
Status::T txFile(const Fw::String &src, const Fw::String &dst, Class::T cfdp_class, Keep::T keep, U8 chan_num, U8 priority, EntityId dest_id, TransactionInitType initType=TransactionInitType::INIT_BY_COMMAND)
Begin transmit of a file.
Structure for use with the Channel::doTick() function.
Status::T stopPollDir(U8 chanId, U8 pollId)
Stop polling a directory.
bool early_exit
early exit result
CFDP Transaction state machine class.
Status::T cancelTransactionBySeq(U8 channelId, TransactionSeq transactionSeq, EntityId entityId)
Cancel a transaction with graceful close-out.
void(Transaction::* fn)(I32 *)
member function pointer
void init(Fw::MemAllocator &allocator, FwEnumStoreType memId)
Initialize the CFDP engine.
void recvMd(Transaction *txn, const MetadataPdu &pdu)
Handle receipt of metadata PDU.
U32 EntityId
Entity id size.
Transaction initiated via command interface.
I32 cont
if 1, then re-traverse the list
Channel * chan
channel object
Status::T sendAck(Transaction *txn, AckTxnStatus ts, FileDirective dir_code, ConditionCode cc, EntityId peer_eid, TransactionSeq tsn)
Create, encode, and send an ACK (Acknowledgment) PDU.
TxnStatus
Values for Transaction Status code.
Status::T startPollDir(U8 chanId, U8 pollId, const Fw::String &srcDir, const Fw::String &dstDir, Class::T cfdp_class, U8 priority, EntityId destEid, U32 intervalSec)
Start polling a directory.
I32 ran_one
should be set to 1 if a transaction was cycled
void finishTransaction(Transaction *txn, bool keep_history)
Finish a transaction.
U32 TransactionSeq
transaction sequence number size
friend class CfdpManagerTester
Channel * chan
channel object
virtual ~Engine()
Destroy the Engine object.
The type of a File Data PDU.
void setChannelFlowState(U8 channelId, Flow::T flowState)
Set channel flow state.
Status::T sendNak(Transaction *txn, NakPdu &nakPdu)
Encode and send a NAK (Negative Acknowledgment) PDU.
Engine(CfdpManager *manager)
Construct a new Engine object.
virtual Status::T sendMd(Transaction *txn)
Create, encode, and send a Metadata PDU.
void receivePdu(U8 chan_id, const Fw::Buffer &buffer)
Receive and process a PDU.
Structure for use with the Channel::cycleTx() function.
Status::T recvNak(Transaction *txn, const NakPdu &pdu)
Unpack a NAK PDU from a received message.
void armInactTimer(Transaction *txn)
Arm the inactivity timer for a transaction.
The type of a Finished PDU.
void dispatchTx(Transaction *txn)
Dispatch TX state machine for a transaction.
void txFileInitiate(Transaction *txn, Class::T cfdp_class, Keep::T keep, U8 chan, U8 priority, EntityId dest_id)
Initiate a file transfer transaction.
void setTxnStatus(Transaction *txn, TxnStatus txn_stat)
Helper function to store transaction status code only.
Status::T sendFd(Transaction *txn, FileDataPdu &fdPdu)
Encode and send a File Data PDU.
Status::T playbackDirInitiate(Playback *pb, const Fw::String &src_filename, const Fw::String &dst_filename, Class::T cfdp_class, Keep::T keep, U8 chan, U8 priority, EntityId dest_id)
Initiate playback of a directory.
uint8_t U8
8-bit unsigned integer
Cfdp::ChannelTelemetry & getChannelTelemetryRef(U8 channelId)
Get reference to channel telemetry for Channel class.
void cycle()
Cycle the engine once per scheduler call.
Memory Allocation base class.
Status::T recvFin(Transaction *txn, const FinPdu &pdu)
Unpack an FIN PDU from a received message.
Structure for the telemetry array of CFDP channels.
RateGroupDivider component implementation.
Status::T setSuspendResumeTransaction(U8 channelId, TransactionSeq transactionSeq, EntityId entityId, SuspendResume::T action)
Set transaction suspend state.
Defines a base class for a memory allocator for classes.
Status::T sendFin(Transaction *txn, FinDeliveryCode dc, FinFileStatus fs, ConditionCode cc)
Create, encode, and send a FIN (Finished) PDU.
Status::T abandonTransaction(U8 channelId, TransactionSeq transactionSeq, EntityId entityId)
Abandon a transaction immediately.
void armAckTimer(Transaction *txn)
Arm the ACK timer for a transaction.
Status::T playbackDir(const Fw::String &src, const Fw::String &dst, Class::T cfdp_class, Keep::T keep, U8 chan, U8 priority, EntityId dest_id)
Begin transmit of a directory.
Status::T recvEof(Transaction *txn, const EofPdu &pdu)
Unpack an EOF PDU from a received message.