There is a lovely UART interface here. It needs to be integrated in the flight software.
There are two other places UART-related work is done in the code.
A UART object holds limited, runtime-constant configuration data on the UART link.
TransportLayerMachine manages all the network operations onboard (Ethernet-to-Ethernet communication, Ethernet-to-buffer, SpaceWire-to-buffer, etc). This class will need to expose the UART interface implemented in UARTPort.
Todo
[x] Kris think about a better naming scheme so UARTPort and UART are less confusing. Honestly UARTPort seems fine, it's UART that is totally generic and unclear.
[ ] Kris add a new constructor to UARTPort that takes a reference to a UART, plus vtime argument (I think we initialize vmin as default then modify it on-the-fly using command-specific size data).
for background here, I generate UART objects from JSON configuration data on startup, so that's a convenient way to hand you the information.
[x] Kris modify TransportLayer.h adding a field with a reference to a UARTPort and modifying each constructor:
[x] Kris modify TransportLayer.cpp implementing the TransportLayerMachine constructors. You should initializer TransportLayerMachine::uart_port using initializer list syntax as is done for the io_context objects.
[x] Then, Thanasi add UART-specific methods to TransportLayerMachine.
Status
There is a lovely UART interface here. It needs to be integrated in the flight software.
There are two other places UART-related work is done in the code.
UART
object holds limited, runtime-constant configuration data on the UART link.TransportLayerMachine
manages all the network operations onboard (Ethernet-to-Ethernet communication, Ethernet-to-buffer, SpaceWire-to-buffer, etc). This class will need to expose the UART interface implemented inUARTPort
.Todo
UARTPort
andUART
are less confusing. HonestlyUARTPort
seems fine, it'sUART
that is totally generic and unclear.UARTPort
that takes a reference to aUART
, plusvtime
argument (I think we initializevmin
as default then modify it on-the-fly using command-specific size data).UART
objects from JSON configuration data on startup, so that's a convenient way to hand you the information.UARTPort
and modifying each constructor:TransportLayerMachine
constructors. You should initializerTransportLayerMachine::uart_port
using initializer list syntax as is done for theio_context
objects.