Open FFBoard
Open source force feedback firmware
CANPort Class Referenceabstract

#include <CAN.h>

Inheritance diagram for CANPort:
PersistentStorage CANPort_2B

Public Member Functions

 CANPort (const CANPortHardwareConfig &presets, uint8_t instance=0)
 
virtual ~CANPort ()
 
virtual bool start ()=0
 
virtual bool stop ()=0
 
virtual bool sendMessage (CAN_tx_msg &msg)=0
 
virtual bool sendMessage (CAN_msg_header_tx *pHeader, uint8_t aData[], uint32_t *pTxMailbox=nullptr)=0
 
virtual void abortTxRequests ()=0
 
virtual int32_t addCanFilter (CAN_filter filter)=0
 
virtual void removeCanFilter (uint8_t filterId)=0
 
virtual void setSpeed (uint32_t speed)=0
 
virtual void setSpeedPreset (uint8_t preset)=0
 
virtual uint32_t getSpeed ()=0
 
virtual uint8_t getSpeedPreset ()=0
 
virtual void setSilentMode (bool silent)=0
 
virtual int32_t getPortUsers ()
 
virtual void takePort ()
 
virtual void freePort ()
 
virtual void giveSemaphore ()
 
virtual bool takeSemaphore (uint32_t delay=portMAX_DELAY)
 
virtual uint8_t speedToPreset (uint32_t speed)
 Gets preset index for a speed. More...
 
virtual uint32_t presetToSpeed (uint8_t preset)
 Gets speed for a preset index. More...
 
- Public Member Functions inherited from PersistentStorage
 PersistentStorage ()
 
virtual ~PersistentStorage ()
 
virtual void saveFlash ()
 
virtual void restoreFlash ()
 
void restoreFlashDelayed ()
 

Static Public Member Functions

static CANPorthandleToPort (void *handle)
 
- Static Public Member Functions inherited from PersistentStorage
static std::vector< PersistentStorage * > & getFlashHandlers ()
 
static void restoreFlashStartupCb ()
 

Protected Member Functions

virtual void * getHandle ()=0
 

Protected Attributes

cpp_freertos::BinarySemaphore semaphore = cpp_freertos::BinarySemaphore(true)
 
cpp_freertos::BinarySemaphore configSem = cpp_freertos::BinarySemaphore(true)
 
const CANPortHardwareConfigpresets
 CAN port presets for different speeds. Hardware dependent. More...
 
bool isWaitingFlag = false
 
int32_t portUsers = 0
 
- Protected Attributes inherited from PersistentStorage
bool restoreDelayedFlag = false
 

Static Private Attributes

static std::vector< CANPort * > canPorts
 

Additional Inherited Members

- Static Protected Attributes inherited from PersistentStorage
static bool startupComplete = false
 

Detailed Description

Definition at line 119 of file CAN.h.

Constructor & Destructor Documentation

◆ CANPort()

CANPort::CANPort ( const CANPortHardwareConfig presets,
uint8_t  instance = 0 
)

Definition at line 16 of file CAN.cpp.

◆ ~CANPort()

CANPort::~CANPort ( )
virtual

Definition at line 19 of file CAN.cpp.

Member Function Documentation

◆ abortTxRequests()

virtual void CANPort::abortTxRequests ( )
pure virtual

Stops and clears pending requests if port is stuck

Implemented in CANPort_2B.

◆ addCanFilter()

virtual int32_t CANPort::addCanFilter ( CAN_filter  filter)
pure virtual

Implemented in CANPort_2B.

◆ freePort()

virtual void CANPort::freePort ( )
inlinevirtual

Definition at line 164 of file CAN.h.

◆ getHandle()

virtual void * CANPort::getHandle ( )
protectedpure virtual

Implemented in CANPort_2B.

◆ getPortUsers()

virtual int32_t CANPort::getPortUsers ( )
inlinevirtual

Definition at line 158 of file CAN.h.

◆ getSpeed()

virtual uint32_t CANPort::getSpeed ( )
pure virtual

Implemented in CANPort_2B.

◆ getSpeedPreset()

virtual uint8_t CANPort::getSpeedPreset ( )
pure virtual

Implemented in CANPort_2B.

◆ giveSemaphore()

virtual void CANPort::giveSemaphore ( )
inlinevirtual

Definition at line 173 of file CAN.h.

◆ handleToPort()

CANPort * CANPort::handleToPort ( void *  handle)
static

Definition at line 23 of file CAN.cpp.

◆ presetToSpeed()

virtual uint32_t CANPort::presetToSpeed ( uint8_t  preset)
inlinevirtual

Gets speed for a preset index.

Definition at line 198 of file CAN.h.

◆ removeCanFilter()

virtual void CANPort::removeCanFilter ( uint8_t  filterId)
pure virtual

Implemented in CANPort_2B.

◆ sendMessage() [1/2]

virtual bool CANPort::sendMessage ( CAN_msg_header_tx pHeader,
uint8_t  aData[],
uint32_t *  pTxMailbox = nullptr 
)
pure virtual

Implemented in CANPort_2B.

◆ sendMessage() [2/2]

virtual bool CANPort::sendMessage ( CAN_tx_msg msg)
pure virtual

Implemented in CANPort_2B.

◆ setSilentMode()

virtual void CANPort::setSilentMode ( bool  silent)
pure virtual

Implemented in CANPort_2B.

◆ setSpeed()

virtual void CANPort::setSpeed ( uint32_t  speed)
pure virtual

Implemented in CANPort_2B.

◆ setSpeedPreset()

virtual void CANPort::setSpeedPreset ( uint8_t  preset)
pure virtual

Implemented in CANPort_2B.

◆ speedToPreset()

virtual uint8_t CANPort::speedToPreset ( uint32_t  speed)
inlinevirtual

Gets preset index for a speed.

Definition at line 197 of file CAN.h.

◆ start()

virtual bool CANPort::start ( )
pure virtual

Sets up and starts the CAN port

Implemented in CANPort_2B.

◆ stop()

virtual bool CANPort::stop ( )
pure virtual

Stops the can port and releases the bus

Implemented in CANPort_2B.

◆ takePort()

virtual void CANPort::takePort ( )
inlinevirtual

Definition at line 159 of file CAN.h.

◆ takeSemaphore()

virtual bool CANPort::takeSemaphore ( uint32_t  delay = portMAX_DELAY)
inlinevirtual

Definition at line 183 of file CAN.h.

Member Data Documentation

◆ canPorts

std::vector< CANPort * > CANPort::canPorts
staticprivate

Definition at line 120 of file CAN.h.

◆ configSem

cpp_freertos::BinarySemaphore CANPort::configSem = cpp_freertos::BinarySemaphore(true)
protected

Definition at line 202 of file CAN.h.

◆ isWaitingFlag

bool CANPort::isWaitingFlag = false
protected

Definition at line 204 of file CAN.h.

◆ portUsers

int32_t CANPort::portUsers = 0
protected

Definition at line 205 of file CAN.h.

◆ presets

const CANPortHardwareConfig& CANPort::presets
protected

CAN port presets for different speeds. Hardware dependent.

Definition at line 203 of file CAN.h.

◆ semaphore

cpp_freertos::BinarySemaphore CANPort::semaphore = cpp_freertos::BinarySemaphore(true)
protected

Definition at line 201 of file CAN.h.


The documentation for this class was generated from the following files: