Skip to content

File CANProtocol.cpp

FileList > CANProtocol > CANProtocol.cpp

Go to the source code of this file

  • #include "CANProtocol.h"
  • #include <STM32Board.h>
  • #include <Arduino.h>
  • #include <string.h>

Namespaces

Type Name
namespace CANProtocol

Classes

Type Name
struct BatchState
struct RxQueueEntry
struct TxQueueEntry

Public Static Attributes

Type Name
constexpr uint8_t MAX_FILTER_IDS = 16
constexpr uint8_t MAX_TX_ATTEMPTS = 3
constexpr uint8_t RX_RING_SIZE = 8
constexpr uint8_t TX_RING_SIZE = 16
BatchState _batches
uint8_t _filterCount = 0
uint32_t _filterIds
bool _filterPassAll = false
CanRxCallback _rxCb = nullptr
volatile uint8_t _rxHead = 0
RxQueueEntry _rxRing
volatile uint8_t _rxTail = 0
CanStatus _status = CanStatus::STARTING
CanStatusCallback _statusCb = nullptr
CanSyncReqCallback _syncReqCb = nullptr
uint32_t _txDrops = 0
volatile uint8_t _txHead = 0
TxQueueEntry _txRing
volatile uint8_t _txTail = 0

Public Functions

Type Name
void HAL_CAN_RxFifo0MsgPendingCallback (CAN_HandleTypeDef * hcan)
void HAL_CAN_TxMailbox0CompleteCallback (CAN_HandleTypeDef *)
void HAL_CAN_TxMailbox1CompleteCallback (CAN_HandleTypeDef *)
void HAL_CAN_TxMailbox2CompleteCallback (CAN_HandleTypeDef *)

Public Static Functions

Type Name
void _applyFilters ()
void _drainTxQueue ()
void _drainTxQueueFromMain ()
void _enqueueRxFrame (uint32_t canId, uint8_t len, const uint8_t * data)
void _pollRxFifo0 ()
void _startInternal (uint32_t mode)
void _updateStatus ()

Public Static Attributes Documentation

variable MAX_FILTER_IDS

constexpr uint8_t MAX_FILTER_IDS;

variable MAX_TX_ATTEMPTS

constexpr uint8_t MAX_TX_ATTEMPTS;

variable RX_RING_SIZE

constexpr uint8_t RX_RING_SIZE;

variable TX_RING_SIZE

constexpr uint8_t TX_RING_SIZE;

variable _batches

BatchState _batches[4];

variable _filterCount

uint8_t _filterCount;

variable _filterIds

uint32_t _filterIds[MAX_FILTER_IDS];

variable _filterPassAll

bool _filterPassAll;

variable _rxCb

CanRxCallback _rxCb;

variable _rxHead

volatile uint8_t _rxHead;

variable _rxRing

RxQueueEntry _rxRing[RX_RING_SIZE];

variable _rxTail

volatile uint8_t _rxTail;

variable _status

CanStatus _status;

variable _statusCb

CanStatusCallback _statusCb;

variable _syncReqCb

CanSyncReqCallback _syncReqCb;

variable _txDrops

uint32_t _txDrops;

variable _txHead

volatile uint8_t _txHead;

variable _txRing

TxQueueEntry _txRing[TX_RING_SIZE];

variable _txTail

volatile uint8_t _txTail;

Public Functions Documentation

function HAL_CAN_RxFifo0MsgPendingCallback

void HAL_CAN_RxFifo0MsgPendingCallback (
    CAN_HandleTypeDef * hcan
) 

function HAL_CAN_TxMailbox0CompleteCallback

void HAL_CAN_TxMailbox0CompleteCallback (
    CAN_HandleTypeDef *
) 

function HAL_CAN_TxMailbox1CompleteCallback

void HAL_CAN_TxMailbox1CompleteCallback (
    CAN_HandleTypeDef *
) 

function HAL_CAN_TxMailbox2CompleteCallback

void HAL_CAN_TxMailbox2CompleteCallback (
    CAN_HandleTypeDef *
) 

Public Static Functions Documentation

function _applyFilters

static void _applyFilters () 

function _drainTxQueue

static void _drainTxQueue () 

function _drainTxQueueFromMain

static void _drainTxQueueFromMain () 

function _enqueueRxFrame

static void _enqueueRxFrame (
    uint32_t canId,
    uint8_t len,
    const uint8_t * data
) 

function _pollRxFifo0

static void _pollRxFifo0 () 

function _startInternal

static void _startInternal (
    uint32_t mode
) 

function _updateStatus

static void _updateStatus () 


The documentation for this class was generated from the following file Firmware/Libraries/CANProtocol/CANProtocol.cpp