Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | List of all members
uavcan_stm32::CanInitHelper< RxQueueCapacity > Class Template Reference

#include <can.hpp>

Public Types

enum  { BitRateAutoDetect = 0 }
 

Public Member Functions

 CanInitHelper ()
 
template<typename DelayCallable >
int init (DelayCallable delay_callable, uavcan::uint32_t &inout_bitrate=BitRateAutoDetect)
 
int init (uavcan::uint32_t bitrate)
 

Static Public Member Functions

static uavcan::MonotonicDuration getRecommendedListeningDelay ()
 

Public Attributes

CanDriver driver
 

Private Attributes

CanRxItem queue_storage_ [UAVCAN_STM32_NUM_IFACES][RxQueueCapacity]
 

Detailed Description

template<unsigned RxQueueCapacity = 128>
class uavcan_stm32::CanInitHelper< RxQueueCapacity >

Helper class. Normally only this class should be used by the application. 145 usec per Extended CAN frame @ 1 Mbps, e.g. 32 RX slots * 145 usec --> 4.6 msec before RX queue overruns.

Definition at line 293 of file platform_specific_components/stm32/libuavcan/driver/include/uavcan_stm32/can.hpp.

Member Enumeration Documentation

◆ anonymous enum

template<unsigned RxQueueCapacity = 128>
anonymous enum
Enumerator
BitRateAutoDetect 

Definition at line 298 of file platform_specific_components/stm32/libuavcan/driver/include/uavcan_stm32/can.hpp.

Constructor & Destructor Documentation

◆ CanInitHelper()

template<unsigned RxQueueCapacity = 128>
uavcan_stm32::CanInitHelper< RxQueueCapacity >::CanInitHelper ( )
inline

Member Function Documentation

◆ getRecommendedListeningDelay()

template<unsigned RxQueueCapacity = 128>
static uavcan::MonotonicDuration uavcan_stm32::CanInitHelper< RxQueueCapacity >::getRecommendedListeningDelay ( )
inlinestatic

Use this value for listening delay during automatic bit rate detection.

Definition at line 376 of file platform_specific_components/stm32/libuavcan/driver/include/uavcan_stm32/can.hpp.

◆ init() [1/2]

template<unsigned RxQueueCapacity = 128>
template<typename DelayCallable >
int uavcan_stm32::CanInitHelper< RxQueueCapacity >::init ( DelayCallable  delay_callable,
uavcan::uint32_t inout_bitrate = BitRateAutoDetect 
)
inline

This function can either initialize the driver at a fixed bit rate, or it can perform automatic bit rate detection. For theory please refer to the CiA application note #801.

Parameters
delay_callableA callable entity that suspends execution for strictly more than one second. The callable entity will be invoked without arguments. getRecommendedListeningDelay().
inout_bitrateFixed bit rate or zero. Zero invokes the bit rate detection process. If auto detection was used, the function will update the argument with established bit rate. In case of an error the value will be undefined.
Returns
Negative value on error; non-negative on success. Refer to constants Err*.

Definition at line 332 of file platform_specific_components/stm32/libuavcan/driver/include/uavcan_stm32/can.hpp.

◆ init() [2/2]

template<unsigned RxQueueCapacity = 128>
int uavcan_stm32::CanInitHelper< RxQueueCapacity >::init ( uavcan::uint32_t  bitrate)
inline

This overload simply configures the provided bitrate. Auto bit rate detection will not be performed. Bitrate value must be positive.

Returns
Negative value on error; non-negative on success. Refer to constants Err*.

Definition at line 312 of file platform_specific_components/stm32/libuavcan/driver/include/uavcan_stm32/can.hpp.

Member Data Documentation

◆ driver

template<unsigned RxQueueCapacity = 128>
CanDriver uavcan_stm32::CanInitHelper< RxQueueCapacity >::driver

◆ queue_storage_

template<unsigned RxQueueCapacity = 128>
CanRxItem uavcan_stm32::CanInitHelper< RxQueueCapacity >::queue_storage_[UAVCAN_STM32_NUM_IFACES][RxQueueCapacity]
private

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


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:05