File ControlLink.cpp
FileList > fw > rbcx-coprocessor > src > ControlLink.cpp
Go to the source code of this file.
#include <array>#include "stm32f1xx_hal.h"#include "stm32f1xx_hal_dma.h"#include "stm32f1xx_ll_usart.h"#include "Bsp.hpp"#include "Esp32Manager.hpp"#include "coproc_codec.h"#include "coproc_link_parser.h"#include "rbcx.pb.h"#include "utils/ByteFifo.hpp"#include "utils/MessageBufferWrapper.hpp"
Public Static Attributes
| Type | Name |
|---|---|
| rb::CoprocCodec | codec |
| DMA_HandleTypeDef | dmaRxHandle |
| DMA_HandleTypeDef | dmaTxHandle |
| ByteFifo< 512 > | rxFifo |
| std::array< uint8_t, codec.MaxFrameSize > | txDmaBuf |
| std::array< uint8_t, codec.MaxFrameSize > | txEncodeBuf |
| MessageBufferWrapper< 512 > | txMessageBuf |
Public Functions
| Type | Name |
|---|---|
| void | CONTROLUART_TX_DMA_HANDLER () |
| void | controlLinkReset () |
| bool | controlLinkRx (CoprocReq & incoming) |
| void | controlLinkTx (const CoprocStat & outgoing) |
| void | controlUartInit () |
Public Static Functions
| Type | Name |
|---|---|
| void | controlLinkUpdateRxFifo () |
| rb::CoprocLinkParser< CoprocReq, &CoprocReq_msg > | parser (codec) |
Public Static Attributes Documentation
variable codec
rb::CoprocCodec codec;
variable dmaRxHandle
DMA_HandleTypeDef dmaRxHandle;
Implements control frame exchange. Frame byte layout: [0x00 LEN_BYTE COBS_DATA...] COBS is used to avoid having zero bytes present on UART except as packet beginnings. https://en.wikipedia.org/wiki/Consistent_Overhead_Byte_Stuffing
variable dmaTxHandle
DMA_HandleTypeDef dmaTxHandle;
variable rxFifo
ByteFifo<512> rxFifo;
variable txDmaBuf
std::array<uint8_t, codec.MaxFrameSize> txDmaBuf;
variable txEncodeBuf
std::array<uint8_t, codec.MaxFrameSize> txEncodeBuf;
variable txMessageBuf
MessageBufferWrapper<512> txMessageBuf;
Public Functions Documentation
function CONTROLUART_TX_DMA_HANDLER
void CONTROLUART_TX_DMA_HANDLER ()
function controlLinkReset
void controlLinkReset ()
function controlLinkRx
bool controlLinkRx (
CoprocReq & incoming
)
function controlLinkTx
void controlLinkTx (
const CoprocStat & outgoing
)
function controlUartInit
void controlUartInit ()
Public Static Functions Documentation
function controlLinkUpdateRxFifo
static void controlLinkUpdateRxFifo ()
function parser
static rb::CoprocLinkParser< CoprocReq, &CoprocReq_msg > parser (
codec
)
The documentation for this class was generated from the following file fw/rbcx-coprocessor/src/ControlLink.cpp