diff --git a/Ref/Top/instances.fpp b/Ref/Top/instances.fpp index 27725d02dc3..e864230fea5 100644 --- a/Ref/Top/instances.fpp +++ b/Ref/Top/instances.fpp @@ -169,19 +169,19 @@ module Ref { instance tcDeframer: Svc.CCSDS.TcDeframer base id 0x4C00 - instance spacePacketDeframer: Svc.CCSDS.SpacePacketDeframer base id 0x5000 + instance spacePacketDeframer: Svc.CCSDS.SpacePacketDeframer base id 0x4D00 - instance tmFramer: Svc.CCSDS.TmFramer base id 0x5100 + instance tmFramer: Svc.CCSDS.TmFramer base id 0x4E00 - instance spacePacketFramer: Svc.CCSDS.SpacePacketFramer base id 0x5200 + instance spacePacketFramer: Svc.CCSDS.SpacePacketFramer base id 0x4F00 - instance fprimeRouter: Svc.FprimeRouter base id 0x4D00 + instance fprimeRouter: Svc.FprimeRouter base id 0x5000 - instance apidManager: Svc.CCSDS.ApidManager base id 0x4E00 + instance apidManager: Svc.CCSDS.ApidManager base id 0x5100 - instance comStub: Svc.ComStub base id 0x4F00 + instance comStub: Svc.ComStub base id 0x5200 - instance linuxTimer: Svc.LinuxTimer base id 0x5000 + instance linuxTimer: Svc.LinuxTimer base id 0x5300 } diff --git a/Svc/CCSDS/SpacePacketFramer/SpacePacketFramer.cpp b/Svc/CCSDS/SpacePacketFramer/SpacePacketFramer.cpp index d2aa3828728..aec17294e75 100644 --- a/Svc/CCSDS/SpacePacketFramer/SpacePacketFramer.cpp +++ b/Svc/CCSDS/SpacePacketFramer/SpacePacketFramer.cpp @@ -29,6 +29,7 @@ void SpacePacketFramer ::dataIn_handler(FwIndexType portNum, Fw::Buffer& data, c Fw::SerializeStatus status; FwSizeType frameSize = SpacePacketHeader::SERIALIZED_SIZE + data.getSize(); FW_ASSERT(data.getSize() <= std::numeric_limits::max() - SpacePacketHeader::SERIALIZED_SIZE, static_cast(data.getSize())); + FW_ASSERT(data.getSize() > 0, static_cast(data.getSize())); // Protocol specifies at least 1 byte of data for a valid packet // Allocate frame buffer Fw::Buffer frameBuffer = this->bufferAllocate_out(0, static_cast(frameSize)); diff --git a/Svc/CCSDS/TcDeframer/docs/sdd.md b/Svc/CCSDS/TcDeframer/docs/sdd.md index 1fee26f114a..f7e3f237e7b 100644 --- a/Svc/CCSDS/TcDeframer/docs/sdd.md +++ b/Svc/CCSDS/TcDeframer/docs/sdd.md @@ -4,7 +4,7 @@ The `Svc::CCSDS::TcDeframer` is an implementation of the [DeframerInterface](../ 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)](https://ccsds.org/Pubs/232x0b4e1c1.pdf) 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 an upstream [`Svc::ComQueue`](../../../ComQueue/docs/sdd.md) and passing frames to a [Communications Adapter](../../../Interfaces/docs/sdd.md), such as a Radio manager component or [`Svc::ComStub`](../../../ComStub/docs/sdd.md), for transmission on the wire. It is commonly coupled with the [`Svc::CCSDS::SpacePacketFramer`](../../SpacePacketFramer/docs/sdd.md) to wrap CCSDS Space Packets into TM frames. +The `Svc::CCSDS::TcDeframer` is designed to work in the common F Prime telemetry stack, receiving data from a [Communications Adapter](../../../Interfaces/docs/sdd.md) or the `Svc::FrameAccumulator`, for deframing and transmission to the rest of the system. It is commonly coupled with the [`Svc::CCSDS::SpacePacketDeframer`](../../SpacePacketFramer/docs/sdd.md) 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.