From 4b177364b36ad5a71eba8d80fed2931f8e7b0802 Mon Sep 17 00:00:00 2001 From: chammard Date: Wed, 25 Sep 2024 14:10:35 -0700 Subject: [PATCH] Update RPI deployment to use FrameAccumulator/Router --- RPI/Top/RPITopologyDefs.hpp | 1 + RPI/Top/instances.fpp | 25 ++++++++-------- RPI/Top/topology.fpp | 30 +++++++++++-------- .../FrameDetector/StartLengthCrcDetector.hpp | 6 +++- 4 files changed, 35 insertions(+), 27 deletions(-) diff --git a/RPI/Top/RPITopologyDefs.hpp b/RPI/Top/RPITopologyDefs.hpp index 50ec1d1c84..5040f33ff6 100644 --- a/RPI/Top/RPITopologyDefs.hpp +++ b/RPI/Top/RPITopologyDefs.hpp @@ -6,6 +6,7 @@ #include "RPI/Top/FppConstantsAc.hpp" #include "Svc/FramingProtocol/FprimeProtocol.hpp" #include "Svc/LinuxTimer/LinuxTimer.hpp" +#include namespace RPI { diff --git a/RPI/Top/instances.fpp b/RPI/Top/instances.fpp index 6b69ee9464..c174b28bf3 100644 --- a/RPI/Top/instances.fpp +++ b/RPI/Top/instances.fpp @@ -227,18 +227,7 @@ module RPI { } - instance uplink: Svc.Deframer base id 1240 \ - { - - phase Fpp.ToCpp.Phases.configObjects """ - Svc::FprimeDeframing deframing; - """ - - phase Fpp.ToCpp.Phases.configComponents """ - RPI::uplink.setup(ConfigObjects::RPI_uplink::deframing); - """ - - } + instance deframer: Svc.Deframer base id 1240 instance comm: Drv.TcpClient base id 1260 \ { @@ -459,8 +448,18 @@ module RPI { instance frameAccumulator: Svc.FrameAccumulator base id 2900 \ { - + phase Fpp.ToCpp.Phases.configObjects """ + Svc::FrameDetectors::FprimeFrameDetector fprimeFrameDetector; + """ + + phase Fpp.ToCpp.Phases.configComponents """ + { + frameAccumulator.configure(ConfigObjects::RPI_frameAccumulator::fprimeFrameDetector, 1, Allocation::mallocator, 2048); + } + + """ } + instance uplinkRouter: Svc.Router base id 3000 } diff --git a/RPI/Top/topology.fpp b/RPI/Top/topology.fpp index 25facc5292..5e0e6e0732 100644 --- a/RPI/Top/topology.fpp +++ b/RPI/Top/topology.fpp @@ -11,12 +11,14 @@ module RPI { instance cmdDisp instance cmdSeq instance comm + instance deframer instance downlink instance eventLogger instance fatalAdapter instance fatalHandler instance fileDownlink instance fileUplink + instance frameAccumulator instance commsBufferManager instance gpio17Drv instance gpio23Drv @@ -33,8 +35,8 @@ module RPI { instance spiDrv instance textLogger instance uartDrv - instance uplink instance uartBufferManager + instance uplinkRouter # ---------------------------------------------------------------------- # Pattern graph specifiers @@ -70,13 +72,6 @@ module RPI { eventLogger.FatalAnnounce -> fatalHandler.FatalReceive } - connections FileUplinkBuffers { - fileUplink.bufferSendOut -> commsBufferManager.bufferSendIn - uplink.bufferAllocate -> commsBufferManager.bufferGetCallee - uplink.bufferDeallocate -> commsBufferManager.bufferSendIn - uplink.bufferOut -> fileUplink.bufferSendIn - } - connections GPIO { rpiDemo.GpioRead -> gpio25Drv.gpioRead rpiDemo.GpioRead -> gpio17Drv.gpioRead @@ -113,11 +108,14 @@ module RPI { rpiDemo.SpiReadWrite -> spiDrv.SpiReadWrite } - connections StaticMemory { + connections MemoryMgmt { comm.allocate -> commsBufferManager.bufferGetCallee comm.deallocate -> commsBufferManager.bufferSendIn downlink.framedAllocate -> commsBufferManager.bufferGetCallee - uplink.framedDeallocate -> commsBufferManager.bufferSendIn + fileUplink.bufferSendOut -> commsBufferManager.bufferSendIn + frameAccumulator.frameAllocate -> commsBufferManager.bufferGetCallee + frameAccumulator.dataDeallocate -> commsBufferManager.bufferSendIn + uplinkRouter.bufferDeallocate -> commsBufferManager.bufferSendIn } connections UART { @@ -128,9 +126,15 @@ module RPI { } connections Uplink { - cmdDisp.seqCmdStatus -> uplink.cmdResponseIn - comm.$recv -> uplink.framedIn - uplink.comOut -> cmdDisp.seqCmdBuff + comm.$recv -> frameAccumulator.dataIn + + frameAccumulator.frameOut -> deframer.framedIn + deframer.deframedOut -> uplinkRouter.dataIn + + uplinkRouter.commandOut -> cmdDisp.seqCmdBuff + uplinkRouter.fileOut -> fileUplink.bufferSendIn + + cmdDisp.seqCmdStatus -> uplinkRouter.cmdResponseIn } } diff --git a/Svc/FrameAccumulator/FrameDetector/StartLengthCrcDetector.hpp b/Svc/FrameAccumulator/FrameDetector/StartLengthCrcDetector.hpp index 861513b295..45cbbf9466 100644 --- a/Svc/FrameAccumulator/FrameDetector/StartLengthCrcDetector.hpp +++ b/Svc/FrameAccumulator/FrameDetector/StartLengthCrcDetector.hpp @@ -7,9 +7,13 @@ #define SVC_FRAMEACCUCULATOR_FRAME_DETECTOR_STARTLENGTHCHECKSUMDETECTOR_HPP #include "Fw/Types/PolyType.hpp" #include "Svc/FrameAccumulator/FrameDetector.hpp" -#include "Utils/Hash/libcrc/lib_crc.h" #include +// Include the lic crc c library: +extern "C" { + #include +} + namespace Svc { namespace FrameDetectors {