Svc::CCSDS::TcDeframer
The Svc::CCSDS::TcDeframer
is an implementation of the DeframerInterface for the CCSDS TC Space Data Link Protocol.
It receives payload data (such as a Space Packet or a VCA_SDU) on input and produces a TC frame on its output port as a result. Please refer to the CCSDS TC specification (CCSDS 232.0-B-4) for details on the frame format and protocol.
The Svc::CCSDS::TcDeframer
is designed to work in the common F Prime telemetry stack, receiving data from a Communications Adapter or the Svc::FrameAccumulator
, for deframing and transmission to the rest of the system. It is commonly coupled with the Svc::CCSDS::SpacePacketDeframer
to unwrap CCSDS Space Packets from TC frames.
The TcDeframer currently functions only in the "Expedited Service" mode, for Type-B Frames. This means that should Type-A frames be received, no FARM checks would be performed on board.
Configuration
The TcDeframer
component can be configured with a specific Virtual Channel ID (VCID) and Spacecraft ID. By default, it uses the spacecraft ID from config/ComCfg.fpp
and accepts all VCIDs.
vcId
: The virtual channel ID to accept. This is only used ifacceptAllVcid
isfalse
.spacecraftId
: The spacecraft ID to accept.acceptAllVcid
: Iftrue
, the deframer accepts all VCIDs. Iffalse
, it only accepts thevcId
specified.
Port Descriptions
Kind | Name | Port Type | Description |
---|---|---|---|
Input (guarded) | dataIn | Svc.ComDataWithContext | Port to receive framed data |
Output | dataOut | Svc.ComDataWithContext | Port to output deframed data |
Output | dataReturnOut | Svc.ComDataWithContext | Port for returning ownership of received buffers to deframe |
Input (sync) | dataReturnIn | Svc.ComDataWithContext | Port receiving back ownership of sent buffers |
Events
Name | Severity | Description |
---|---|---|
InvalidSpacecraftId | warning low |
Deframing received an invalid SCID |
InvalidFrameLength | warning high |
Deframing received an invalid frame length |
InvalidVcId | activity low |
Deframing received an invalid VCID |
InvalidCrc | warning high |
Deframing received an invalid checksum |
Requirements
Name | Description | Validation |
---|---|---|
SVC-CCSDS-TC-DEFRAMER-001 | The TcDeframer shall deframe Telecommand (TC) Transfer Frames according to the CCSDS Space Data Link Protocol standard for Type-BD frames. | Unit Test, Inspection |
SVC-CCSDS-TC-DEFRAMER-002 | The TcDeframer shall perform Frame Validation Check Procedures, including Spacecraft ID, Virtual Channel ID, Frame Length, and CRC. | Unit Test |
SVC-CCSDS-TC-DEFRAMER-003 | The TcDeframer shall be configurable for a specific Spacecraft ID. | Unit Test, Inspection |
SVC-CCSDS-TC-DEFRAMER-004 | The TcDeframer shall be configurable with a specific Virtual Channel ID (VCID) OR to accept all VCIDs. | Unit Test, Inspection |
SVC-CCSDS-TC-DEFRAMER-005 | The TcDeframer shall log an InvalidSpacecraftId event if a frame with an unexpected Spacecraft ID is received. |
Unit Test |
SVC-CCSDS-TC-DEFRAMER-006 | The TcDeframer shall log an InvalidFrameLength event if a frame with an invalid length is received. |
Unit Test |
SVC-CCSDS-TC-DEFRAMER-007 | The TcDeframer shall log an InvalidVcId event if a frame with an unexpected VCID is received (when not configured to accept all VCIDs). |
Unit Test |
SVC-CCSDS-TC-DEFRAMER-008 | The TcDeframer shall log an InvalidCrc event if a frame fails the CRC check. |
Unit Test |
SVC-CCSDS-TC-DEFRAMER-009 | The TcDeframer shall provide an input port (dataIn ) to receive framed data, and emit deframed data packets on its dataOut output port. |
Unit Test |