mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
canutils/uavcan: Make global static can a local static in getCanDriver()
This commit is contained in:
parent
556a771f36
commit
75f745ba74
1 changed files with 11 additions and 10 deletions
|
|
@ -44,30 +44,31 @@
|
|||
#include <uavcan_stm32/uavcan_stm32.hpp>
|
||||
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
* Configuration
|
||||
****************************************************************************/
|
||||
|
||||
#if CONFIG_UAVCAN_RX_QUEUE_CAPACITY > 0
|
||||
static uavcan_stm32::CanInitHelper<CONFIG_UAVCAN_RX_QUEUE_CAPACITY> can;
|
||||
#else
|
||||
static uavcan_stm32::CanInitHelper<> can;
|
||||
#if CONFIG_UAVCAN_RX_QUEUE_CAPACITY == 0
|
||||
# undef CONFIG_UAVCAN_RX_QUEUE_CAPACITY
|
||||
# define CONFIG_UAVCAN_RX_QUEUE_CAPACITY
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
static void delay_callable()
|
||||
static void delay(void)
|
||||
{
|
||||
std::usleep(can.getRecommendedListeningDelay().toUSec());
|
||||
std::usleep(uavcan_stm32::CanInitHelper<CONFIG_UAVCAN_RX_QUEUE_CAPACITY>::
|
||||
getRecommendedListeningDelay().toUSec());
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
uavcan::ICanDriver& getCanDriver()
|
||||
uavcan::ICanDriver &getCanDriver(void)
|
||||
{
|
||||
static uavcan_stm32::CanInitHelper<CONFIG_UAVCAN_RX_QUEUE_CAPACITY> can;
|
||||
static bool initialized = false;
|
||||
|
||||
if (!initialized)
|
||||
|
|
@ -78,7 +79,7 @@ uavcan::ICanDriver& getCanDriver()
|
|||
int retries = 0;
|
||||
#endif
|
||||
|
||||
while (can.init(delay_callable, bitrate) < 0)
|
||||
while (can.init(delay, bitrate) < 0)
|
||||
{
|
||||
#if CONFIG_UAVCAN_INIT_RETRIES > 0
|
||||
retries++;
|
||||
|
|
@ -95,7 +96,7 @@ uavcan::ICanDriver& getCanDriver()
|
|||
return can.driver;
|
||||
}
|
||||
|
||||
uavcan::ISystemClock& getSystemClock()
|
||||
uavcan::ISystemClock &getSystemClock(void)
|
||||
{
|
||||
return uavcan_stm32::SystemClock::instance();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue