nasa / fprime

F´ - A flight software and embedded systems framework
https://fprime.jpl.nasa.gov
Apache License 2.0
10.05k stars 1.3k forks source link

Break Apart Deframer #2763

Open LeStarch opened 3 months ago

LeStarch commented 3 months ago
F´ Version
Affected Component

Feature Description

The Deframer is performing several peices:

  1. It reassembles frames
  2. It calls custom deframing via a subclass
  3. It routes data to F´ components.

On modern projects, we have seen the following needs that the deframer cannot support.

  1. Custom deframing needs to use custom port calls (e.g. call out to a helper component, database component, etc)
  2. Routing to F´ components often needs to be customized
  3. Reassembly is optional (e.g. a packet radio is already produces complete frames)

Thus we will break the deframer into 3 F´ items:

  1. An optional accumulator that takes in byte streams and outputs complete frames in Fw::Buffer: https://github.com/nasa/fprime/issues/2764
  2. A deframer interface that allows custom deframing to a standard component "drop in":
  3. A router implementation for basic F´ constructs:

EPIC Subtasks