APM:Libraries
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
AP_UAVCAN Class Reference

#include <AP_UAVCAN.h>

Collaboration diagram for AP_UAVCAN:
[legend]

Classes

struct  _led_device
 
struct  Baro_Info
 
struct  BatteryInfo_Info
 
struct  Mag_Info
 
class  RaiiSynchronizer
 
class  SystemClock
 

Public Member Functions

 AP_UAVCAN ()
 
 ~AP_UAVCAN ()
 
uint8_t register_gps_listener (AP_GPS_Backend *new_listener, uint8_t preferred_channel)
 
uint8_t register_gps_listener_to_node (AP_GPS_Backend *new_listener, uint8_t node)
 
uint8_t find_gps_without_listener (void)
 
void remove_gps_listener (AP_GPS_Backend *rem_listener)
 
AP_GPS::GPS_Statefind_gps_node (uint8_t node)
 
void update_gps_state (uint8_t node)
 
uint8_t register_baro_listener (AP_Baro_Backend *new_listener, uint8_t preferred_channel)
 
uint8_t register_baro_listener_to_node (AP_Baro_Backend *new_listener, uint8_t node)
 
void remove_baro_listener (AP_Baro_Backend *rem_listener)
 
Baro_Infofind_baro_node (uint8_t node)
 
uint8_t find_smallest_free_baro_node ()
 
void update_baro_state (uint8_t node)
 
uint8_t register_mag_listener (AP_Compass_Backend *new_listener, uint8_t preferred_channel)
 
void remove_mag_listener (AP_Compass_Backend *rem_listener)
 
Mag_Infofind_mag_node (uint8_t node, uint8_t sensor_id)
 
uint8_t find_smallest_free_mag_node ()
 
uint8_t register_mag_listener_to_node (AP_Compass_Backend *new_listener, uint8_t node)
 
void update_mag_state (uint8_t node, uint8_t sensor_id)
 
uint8_t register_BM_bi_listener_to_id (AP_BattMonitor_Backend *new_listener, uint8_t id)
 
void remove_BM_bi_listener (AP_BattMonitor_Backend *rem_listener)
 
BatteryInfo_Infofind_bi_id (uint8_t id)
 
uint8_t find_smallest_free_bi_id ()
 
void update_bi_state (uint8_t id)
 
void SRV_sem_take ()
 
void SRV_sem_give ()
 
bool led_out_sem_take ()
 
void led_out_sem_give ()
 
void led_out_send ()
 
void SRV_send_servos ()
 
void SRV_send_esc ()
 
void do_cyclic (void)
 
bool try_init (void)
 
void SRV_set_safety_pwm (uint32_t chmask, uint16_t pulse_len)
 
void SRV_set_failsafe_pwm (uint32_t chmask, uint16_t pulse_len)
 
void SRV_force_safety_on (void)
 
void SRV_force_safety_off (void)
 
void SRV_arm_actuators (bool arm)
 
void SRV_write (uint16_t pulse_len, uint8_t ch)
 
void SRV_push_servos (void)
 
bool led_write (uint8_t led_index, uint8_t red, uint8_t green, uint8_t blue)
 
void set_parent_can_mgr (AP_HAL::CANManager *parent_can_mgr)
 

Static Public Member Functions

static AP_UAVCANget_uavcan (uint8_t iface)
 

Static Public Attributes

static const struct AP_Param::GroupInfo var_info []
 

Private Member Functions

uavcan::ISystemClock & get_system_clock ()
 
uavcan::ICanDriver * get_can_driver ()
 
uavcan::Node< 0 > * get_node ()
 

Private Attributes

uint8_t _gps_nodes [AP_UAVCAN_MAX_GPS_NODES]
 
uint8_t _gps_node_taken [AP_UAVCAN_MAX_GPS_NODES]
 
AP_GPS::GPS_State _gps_node_state [AP_UAVCAN_MAX_GPS_NODES]
 
uint8_t _gps_listener_to_node [AP_UAVCAN_MAX_LISTENERS]
 
AP_GPS_Backend_gps_listeners [AP_UAVCAN_MAX_LISTENERS]
 
uint8_t _baro_nodes [AP_UAVCAN_MAX_BARO_NODES]
 
uint8_t _baro_node_taken [AP_UAVCAN_MAX_BARO_NODES]
 
Baro_Info _baro_node_state [AP_UAVCAN_MAX_BARO_NODES]
 
uint8_t _baro_listener_to_node [AP_UAVCAN_MAX_LISTENERS]
 
AP_Baro_Backend_baro_listeners [AP_UAVCAN_MAX_LISTENERS]
 
uint8_t _mag_nodes [AP_UAVCAN_MAX_MAG_NODES]
 
uint8_t _mag_node_taken [AP_UAVCAN_MAX_MAG_NODES]
 
Mag_Info _mag_node_state [AP_UAVCAN_MAX_MAG_NODES]
 
uint8_t _mag_node_max_sensorid_count [AP_UAVCAN_MAX_MAG_NODES]
 
uint8_t _mag_listener_to_node [AP_UAVCAN_MAX_LISTENERS]
 
AP_Compass_Backend_mag_listeners [AP_UAVCAN_MAX_LISTENERS]
 
uint8_t _mag_listener_sensor_ids [AP_UAVCAN_MAX_LISTENERS]
 
uint16_t _bi_id [AP_UAVCAN_MAX_BI_NUMBER]
 
uint16_t _bi_id_taken [AP_UAVCAN_MAX_BI_NUMBER]
 
BatteryInfo_Info _bi_id_state [AP_UAVCAN_MAX_BI_NUMBER]
 
uint16_t _bi_BM_listener_to_id [AP_UAVCAN_MAX_LISTENERS]
 
AP_BattMonitor_Backend_bi_BM_listeners [AP_UAVCAN_MAX_LISTENERS]
 
struct {
   uint16_t   pulse
 
   uint16_t   safety_pulse
 
   uint16_t   failsafe_pulse
 
   bool   esc_pending
 
   bool   servo_pending
 
_SRV_conf [UAVCAN_SRV_NUMBER]
 
bool _initialized
 
uint8_t _SRV_armed
 
uint8_t _SRV_safety
 
uint32_t _SRV_last_send_us
 
struct {
   bool   broadcast_enabled
 
   _led_device   devices [AP_UAVCAN_MAX_LED_DEVICES]
 
   uint8_t   devices_count
 
   uint64_t   last_update
 
_led_conf
 
AP_HAL::SemaphoreSRV_sem
 
AP_HAL::Semaphore_led_out_sem
 
uavcan::Node< 0 > * _node = nullptr
 
uavcan::HeapBasedPoolAllocator< UAVCAN_NODE_POOL_BLOCK_SIZE, AP_UAVCAN::RaiiSynchronizer_node_allocator
 
AP_Int8 _uavcan_node
 
AP_Int32 _servo_bm
 
AP_Int32 _esc_bm
 
AP_Int16 _servo_rate_hz
 
uint8_t _uavcan_i
 
AP_HAL::CANManager * _parent_can_mgr
 

Detailed Description

Definition at line 50 of file AP_UAVCAN.h.

Constructor & Destructor Documentation

◆ AP_UAVCAN()

AP_UAVCAN::AP_UAVCAN ( )

◆ ~AP_UAVCAN()

AP_UAVCAN::~AP_UAVCAN ( )

Member Function Documentation

◆ do_cyclic()

void AP_UAVCAN::do_cyclic ( void  )

◆ find_baro_node()

Baro_Info* AP_UAVCAN::find_baro_node ( uint8_t  node)

◆ find_bi_id()

BatteryInfo_Info* AP_UAVCAN::find_bi_id ( uint8_t  id)

◆ find_gps_node()

AP_GPS::GPS_State* AP_UAVCAN::find_gps_node ( uint8_t  node)

◆ find_gps_without_listener()

uint8_t AP_UAVCAN::find_gps_without_listener ( void  )

Referenced by AP_GPS::detect_instance().

Here is the caller graph for this function:

◆ find_mag_node()

Mag_Info* AP_UAVCAN::find_mag_node ( uint8_t  node,
uint8_t  sensor_id 
)

◆ find_smallest_free_baro_node()

uint8_t AP_UAVCAN::find_smallest_free_baro_node ( )

◆ find_smallest_free_bi_id()

uint8_t AP_UAVCAN::find_smallest_free_bi_id ( )

◆ find_smallest_free_mag_node()

uint8_t AP_UAVCAN::find_smallest_free_mag_node ( )

◆ get_can_driver()

uavcan::ICanDriver* AP_UAVCAN::get_can_driver ( )
private

◆ get_node()

uavcan::Node<0>* AP_UAVCAN::get_node ( )
private

◆ get_system_clock()

uavcan::ISystemClock& AP_UAVCAN::get_system_clock ( )
private

◆ get_uavcan()

static AP_UAVCAN* AP_UAVCAN::get_uavcan ( uint8_t  iface)
static

Referenced by SRV_Channels::push().

Here is the caller graph for this function:

◆ led_out_sem_give()

void AP_UAVCAN::led_out_sem_give ( )

◆ led_out_sem_take()

bool AP_UAVCAN::led_out_sem_take ( )

◆ led_out_send()

void AP_UAVCAN::led_out_send ( )

◆ led_write()

bool AP_UAVCAN::led_write ( uint8_t  led_index,
uint8_t  red,
uint8_t  green,
uint8_t  blue 
)

◆ register_baro_listener()

uint8_t AP_UAVCAN::register_baro_listener ( AP_Baro_Backend new_listener,
uint8_t  preferred_channel 
)

◆ register_baro_listener_to_node()

uint8_t AP_UAVCAN::register_baro_listener_to_node ( AP_Baro_Backend new_listener,
uint8_t  node 
)

◆ register_BM_bi_listener_to_id()

uint8_t AP_UAVCAN::register_BM_bi_listener_to_id ( AP_BattMonitor_Backend new_listener,
uint8_t  id 
)

◆ register_gps_listener()

uint8_t AP_UAVCAN::register_gps_listener ( AP_GPS_Backend new_listener,
uint8_t  preferred_channel 
)

◆ register_gps_listener_to_node()

uint8_t AP_UAVCAN::register_gps_listener_to_node ( AP_GPS_Backend new_listener,
uint8_t  node 
)

Referenced by AP_GPS::detect_instance().

Here is the caller graph for this function:

◆ register_mag_listener()

uint8_t AP_UAVCAN::register_mag_listener ( AP_Compass_Backend new_listener,
uint8_t  preferred_channel 
)

◆ register_mag_listener_to_node()

uint8_t AP_UAVCAN::register_mag_listener_to_node ( AP_Compass_Backend new_listener,
uint8_t  node 
)

◆ remove_baro_listener()

void AP_UAVCAN::remove_baro_listener ( AP_Baro_Backend rem_listener)

◆ remove_BM_bi_listener()

void AP_UAVCAN::remove_BM_bi_listener ( AP_BattMonitor_Backend rem_listener)

◆ remove_gps_listener()

void AP_UAVCAN::remove_gps_listener ( AP_GPS_Backend rem_listener)

◆ remove_mag_listener()

void AP_UAVCAN::remove_mag_listener ( AP_Compass_Backend rem_listener)

◆ set_parent_can_mgr()

void AP_UAVCAN::set_parent_can_mgr ( AP_HAL::CANManager *  parent_can_mgr)
inline

Definition at line 278 of file AP_UAVCAN.h.

◆ SRV_arm_actuators()

void AP_UAVCAN::SRV_arm_actuators ( bool  arm)

◆ SRV_force_safety_off()

void AP_UAVCAN::SRV_force_safety_off ( void  )

◆ SRV_force_safety_on()

void AP_UAVCAN::SRV_force_safety_on ( void  )

◆ SRV_push_servos()

void AP_UAVCAN::SRV_push_servos ( void  )

Referenced by SRV_Channels::push().

Here is the caller graph for this function:

◆ SRV_sem_give()

void AP_UAVCAN::SRV_sem_give ( )

◆ SRV_sem_take()

void AP_UAVCAN::SRV_sem_take ( )

◆ SRV_send_esc()

void AP_UAVCAN::SRV_send_esc ( )

◆ SRV_send_servos()

void AP_UAVCAN::SRV_send_servos ( )

◆ SRV_set_failsafe_pwm()

void AP_UAVCAN::SRV_set_failsafe_pwm ( uint32_t  chmask,
uint16_t  pulse_len 
)

◆ SRV_set_safety_pwm()

void AP_UAVCAN::SRV_set_safety_pwm ( uint32_t  chmask,
uint16_t  pulse_len 
)

◆ SRV_write()

void AP_UAVCAN::SRV_write ( uint16_t  pulse_len,
uint8_t  ch 
)

◆ try_init()

bool AP_UAVCAN::try_init ( void  )

◆ update_baro_state()

void AP_UAVCAN::update_baro_state ( uint8_t  node)

◆ update_bi_state()

void AP_UAVCAN::update_bi_state ( uint8_t  id)

◆ update_gps_state()

void AP_UAVCAN::update_gps_state ( uint8_t  node)

◆ update_mag_state()

void AP_UAVCAN::update_mag_state ( uint8_t  node,
uint8_t  sensor_id 
)

Member Data Documentation

◆ _baro_listener_to_node

uint8_t AP_UAVCAN::_baro_listener_to_node[AP_UAVCAN_MAX_LISTENERS]
private

Definition at line 152 of file AP_UAVCAN.h.

◆ _baro_listeners

AP_Baro_Backend* AP_UAVCAN::_baro_listeners[AP_UAVCAN_MAX_LISTENERS]
private

Definition at line 153 of file AP_UAVCAN.h.

◆ _baro_node_state

Baro_Info AP_UAVCAN::_baro_node_state[AP_UAVCAN_MAX_BARO_NODES]
private

Definition at line 151 of file AP_UAVCAN.h.

◆ _baro_node_taken

uint8_t AP_UAVCAN::_baro_node_taken[AP_UAVCAN_MAX_BARO_NODES]
private

Definition at line 150 of file AP_UAVCAN.h.

◆ _baro_nodes

uint8_t AP_UAVCAN::_baro_nodes[AP_UAVCAN_MAX_BARO_NODES]
private

Definition at line 149 of file AP_UAVCAN.h.

◆ _bi_BM_listener_to_id

uint16_t AP_UAVCAN::_bi_BM_listener_to_id[AP_UAVCAN_MAX_LISTENERS]
private

Definition at line 168 of file AP_UAVCAN.h.

◆ _bi_BM_listeners

AP_BattMonitor_Backend* AP_UAVCAN::_bi_BM_listeners[AP_UAVCAN_MAX_LISTENERS]
private

Definition at line 169 of file AP_UAVCAN.h.

◆ _bi_id

uint16_t AP_UAVCAN::_bi_id[AP_UAVCAN_MAX_BI_NUMBER]
private

Definition at line 165 of file AP_UAVCAN.h.

◆ _bi_id_state

BatteryInfo_Info AP_UAVCAN::_bi_id_state[AP_UAVCAN_MAX_BI_NUMBER]
private

Definition at line 167 of file AP_UAVCAN.h.

◆ _bi_id_taken

uint16_t AP_UAVCAN::_bi_id_taken[AP_UAVCAN_MAX_BI_NUMBER]
private

Definition at line 166 of file AP_UAVCAN.h.

◆ _esc_bm

AP_Int32 AP_UAVCAN::_esc_bm
private

Definition at line 258 of file AP_UAVCAN.h.

◆ _gps_listener_to_node

uint8_t AP_UAVCAN::_gps_listener_to_node[AP_UAVCAN_MAX_LISTENERS]
private

Definition at line 144 of file AP_UAVCAN.h.

◆ _gps_listeners

AP_GPS_Backend* AP_UAVCAN::_gps_listeners[AP_UAVCAN_MAX_LISTENERS]
private

Definition at line 146 of file AP_UAVCAN.h.

◆ _gps_node_state

AP_GPS::GPS_State AP_UAVCAN::_gps_node_state[AP_UAVCAN_MAX_GPS_NODES]
private

Definition at line 141 of file AP_UAVCAN.h.

◆ _gps_node_taken

uint8_t AP_UAVCAN::_gps_node_taken[AP_UAVCAN_MAX_GPS_NODES]
private

Definition at line 139 of file AP_UAVCAN.h.

◆ _gps_nodes

uint8_t AP_UAVCAN::_gps_nodes[AP_UAVCAN_MAX_GPS_NODES]
private

Definition at line 137 of file AP_UAVCAN.h.

◆ _initialized

bool AP_UAVCAN::_initialized
private

Definition at line 179 of file AP_UAVCAN.h.

◆ _led_conf

struct { ... } AP_UAVCAN::_led_conf

◆ _led_out_sem

AP_HAL::Semaphore* AP_UAVCAN::_led_out_sem
private

Definition at line 198 of file AP_UAVCAN.h.

◆ _mag_listener_sensor_ids

uint8_t AP_UAVCAN::_mag_listener_sensor_ids[AP_UAVCAN_MAX_LISTENERS]
private

Definition at line 162 of file AP_UAVCAN.h.

◆ _mag_listener_to_node

uint8_t AP_UAVCAN::_mag_listener_to_node[AP_UAVCAN_MAX_LISTENERS]
private

Definition at line 160 of file AP_UAVCAN.h.

◆ _mag_listeners

AP_Compass_Backend* AP_UAVCAN::_mag_listeners[AP_UAVCAN_MAX_LISTENERS]
private

Definition at line 161 of file AP_UAVCAN.h.

◆ _mag_node_max_sensorid_count

uint8_t AP_UAVCAN::_mag_node_max_sensorid_count[AP_UAVCAN_MAX_MAG_NODES]
private

Definition at line 159 of file AP_UAVCAN.h.

◆ _mag_node_state

Mag_Info AP_UAVCAN::_mag_node_state[AP_UAVCAN_MAX_MAG_NODES]
private

Definition at line 158 of file AP_UAVCAN.h.

◆ _mag_node_taken

uint8_t AP_UAVCAN::_mag_node_taken[AP_UAVCAN_MAX_MAG_NODES]
private

Definition at line 157 of file AP_UAVCAN.h.

◆ _mag_nodes

uint8_t AP_UAVCAN::_mag_nodes[AP_UAVCAN_MAX_MAG_NODES]
private

Definition at line 156 of file AP_UAVCAN.h.

◆ _node

uavcan::Node<0>* AP_UAVCAN::_node = nullptr
private

Definition at line 235 of file AP_UAVCAN.h.

◆ _node_allocator

uavcan::HeapBasedPoolAllocator<UAVCAN_NODE_POOL_BLOCK_SIZE, AP_UAVCAN::RaiiSynchronizer> AP_UAVCAN::_node_allocator
private

Definition at line 254 of file AP_UAVCAN.h.

◆ _parent_can_mgr

AP_HAL::CANManager* AP_UAVCAN::_parent_can_mgr
private

Definition at line 263 of file AP_UAVCAN.h.

◆ _servo_bm

AP_Int32 AP_UAVCAN::_servo_bm
private

Definition at line 257 of file AP_UAVCAN.h.

◆ _servo_rate_hz

AP_Int16 AP_UAVCAN::_servo_rate_hz
private

Definition at line 259 of file AP_UAVCAN.h.

◆ _SRV_armed

uint8_t AP_UAVCAN::_SRV_armed
private

Definition at line 180 of file AP_UAVCAN.h.

◆ _SRV_conf

struct { ... } AP_UAVCAN::_SRV_conf[UAVCAN_SRV_NUMBER]

◆ _SRV_last_send_us

uint32_t AP_UAVCAN::_SRV_last_send_us
private

Definition at line 182 of file AP_UAVCAN.h.

◆ _SRV_safety

uint8_t AP_UAVCAN::_SRV_safety
private

Definition at line 181 of file AP_UAVCAN.h.

◆ _uavcan_i

uint8_t AP_UAVCAN::_uavcan_i
private

Definition at line 261 of file AP_UAVCAN.h.

◆ _uavcan_node

AP_Int8 AP_UAVCAN::_uavcan_node
private

Definition at line 256 of file AP_UAVCAN.h.

◆ broadcast_enabled

bool AP_UAVCAN::broadcast_enabled

Definition at line 191 of file AP_UAVCAN.h.

◆ devices

Definition at line 192 of file AP_UAVCAN.h.

◆ devices_count

uint8_t AP_UAVCAN::devices_count

Definition at line 193 of file AP_UAVCAN.h.

◆ esc_pending

bool AP_UAVCAN::esc_pending

Definition at line 175 of file AP_UAVCAN.h.

◆ failsafe_pulse

uint16_t AP_UAVCAN::failsafe_pulse

Definition at line 174 of file AP_UAVCAN.h.

◆ last_update

uint64_t AP_UAVCAN::last_update

Definition at line 194 of file AP_UAVCAN.h.

◆ pulse

uint16_t AP_UAVCAN::pulse

Definition at line 172 of file AP_UAVCAN.h.

◆ safety_pulse

uint16_t AP_UAVCAN::safety_pulse

Definition at line 173 of file AP_UAVCAN.h.

◆ servo_pending

bool AP_UAVCAN::servo_pending

Definition at line 176 of file AP_UAVCAN.h.

◆ SRV_sem

AP_HAL::Semaphore* AP_UAVCAN::SRV_sem
private

Definition at line 197 of file AP_UAVCAN.h.

◆ var_info

const struct AP_Param::GroupInfo AP_UAVCAN::var_info[]
static

Definition at line 55 of file AP_UAVCAN.h.


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