PX4 Firmware
PX4 Autopilot Software http://px4.io
|
Helper class. More...
#include <can.hpp>
Public Types | |
enum | { BitRateAutoDetect = 0 } |
Public Member Functions | |
CanInitHelper () | |
int | init (uavcan::uint32_t bitrate) |
This overload simply configures the provided bitrate. More... | |
template<typename DelayCallable > | |
int | init (DelayCallable delay_callable, uavcan::uint32_t &inout_bitrate=BitRateAutoDetect) |
This function can either initialize the driver at a fixed bit rate, or it can perform automatic bit rate detection. More... | |
Static Public Member Functions | |
static uavcan::MonotonicDuration | getRecommendedListeningDelay () |
Use this value for listening delay during automatic bit rate detection. More... | |
Public Attributes | |
CanDriver | driver |
Private Attributes | |
CanRxItem | queue_storage_ [UAVCAN_KINETIS_NUM_IFACES][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.
anonymous enum |
|
inline |
|
inlinestatic |
|
inline |
This overload simply configures the provided bitrate.
Auto bit rate detection will not be performed. Bitrate value must be positive.
Definition at line 354 of file can.hpp.
References uavcan_kinetis::CanDriver::init(), and uavcan_kinetis::CanIface::NormalMode.
|
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.
delay_callable | A callable entity that suspends execution for strictly more than one second. The callable entity will be invoked without arguments. getRecommendedListeningDelay(). |
inout_bitrate | Fixed 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. |
Definition at line 374 of file can.hpp.
References uavcan_kinetis::ErrBitRateNotDetected, uavcan_kinetis::CanDriver::getIface(), uavcan_kinetis::CanDriver::getNumIfaces(), uavcan_kinetis::CanDriver::init(), uavcan_kinetis::CanIface::isRxBufferEmpty(), uavcan_kinetis::CanIface::NormalMode, and uavcan_kinetis::CanIface::SilentMode.
CanDriver uavcan_kinetis::CanInitHelper< RxQueueCapacity >::driver |
|
private |