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

#include <RCOutput_Bebop.h>

Inheritance diagram for Linux::RCOutput_Bebop:
[legend]
Collaboration diagram for Linux::RCOutput_Bebop:
[legend]

Public Member Functions

 RCOutput_Bebop (AP_HAL::OwnPtr< AP_HAL::I2CDevice > dev)
 
void init () override
 
void set_freq (uint32_t chmask, uint16_t freq_hz) override
 
uint16_t get_freq (uint8_t ch) override
 
void enable_ch (uint8_t ch) override
 
void disable_ch (uint8_t ch) override
 
void write (uint8_t ch, uint16_t period_us) override
 
void cork () override
 
void push () override
 
uint16_t read (uint8_t ch) override
 
void read (uint16_t *period_us, uint8_t len) override
 
void set_esc_scaling (uint16_t min_pwm, uint16_t max_pwm) override
 
int read_obs_data (BebopBLDC_ObsData &data)
 
void play_note (uint8_t pwm, uint16_t period_us, uint16_t duration_ms)
 
- Public Member Functions inherited from AP_HAL::RCOutput
virtual uint16_t read_last_sent (uint8_t ch)
 
virtual void read_last_sent (uint16_t *period_us, uint8_t len)
 
virtual void set_safety_pwm (uint32_t chmask, uint16_t period_us)
 
virtual void set_failsafe_pwm (uint32_t chmask, uint16_t period_us)
 
virtual bool force_safety_on (void)
 
virtual void force_safety_off (void)
 
virtual void force_safety_no_wait (void)
 
virtual bool get_esc_scaling (uint16_t &min_pwm, uint16_t &max_pwm)
 
virtual float scale_esc_to_unity (uint16_t pwm)
 
virtual bool enable_px4io_sbus_out (uint16_t rate_hz)
 
virtual void timer_tick (void)
 
virtual bool serial_setup_output (uint8_t chan, uint32_t baudrate)
 
virtual bool serial_write_bytes (const uint8_t *bytes, uint16_t len)
 
virtual uint16_t serial_read_bytes (uint8_t *buf, uint16_t len)
 
virtual void serial_end (void)
 
virtual void set_output_mode (uint16_t mask, enum output_mode mode)
 
virtual void set_default_rate (uint16_t rate_hz)
 
virtual void set_telem_request_mask (uint16_t mask)
 

Static Public Member Functions

static RCOutput_Bebopfrom (AP_HAL::RCOutput *rcout)
 

Private Member Functions

uint8_t _checksum (uint8_t *data, unsigned int len)
 
void _start_prop ()
 
void _toggle_gpio (uint8_t mask)
 
void _set_ref_speed (uint16_t rpm[BEBOP_BLDC_MOTORS_NUM])
 
bool _get_info (struct bldc_info *info)
 
void _stop_prop ()
 
void _clear_error ()
 
void _play_sound (uint8_t sound)
 
uint16_t _period_us_to_rpm (uint16_t period_us)
 
void _run_rcout ()
 

Static Private Member Functions

static void * _control_thread (void *arg)
 

Private Attributes

AP_HAL::OwnPtr< AP_HAL::I2CDevice_dev
 
uint16_t _request_period_us [BEBOP_BLDC_MOTORS_NUM]
 
uint16_t _period_us [BEBOP_BLDC_MOTORS_NUM]
 
uint16_t _rpm [BEBOP_BLDC_MOTORS_NUM]
 
uint16_t _frequency
 
uint16_t _min_pwm
 
uint16_t _max_pwm
 
uint8_t _n_motors =4
 
uint8_t _state
 
bool _corking = false
 
uint16_t _max_rpm
 
pthread_t _thread
 
pthread_mutex_t _mutex
 
pthread_cond_t _cond
 

Additional Inherited Members

- Public Types inherited from AP_HAL::RCOutput
enum  output_mode {
  MODE_PWM_NONE, MODE_PWM_NORMAL, MODE_PWM_ONESHOT, MODE_PWM_ONESHOT125,
  MODE_PWM_BRUSHED, MODE_PWM_DSHOT150, MODE_PWM_DSHOT300, MODE_PWM_DSHOT600,
  MODE_PWM_DSHOT1200
}
 

Detailed Description

Definition at line 56 of file RCOutput_Bebop.h.

Constructor & Destructor Documentation

◆ RCOutput_Bebop()

RCOutput_Bebop::RCOutput_Bebop ( AP_HAL::OwnPtr< AP_HAL::I2CDevice dev)

Definition at line 86 of file RCOutput_Bebop.cpp.

Member Function Documentation

◆ _checksum()

uint8_t RCOutput_Bebop::_checksum ( uint8_t *  data,
unsigned int  len 
)
private

Definition at line 97 of file RCOutput_Bebop.cpp.

Referenced by _set_ref_speed(), and read_obs_data().

Here is the caller graph for this function:

◆ _clear_error()

void RCOutput_Bebop::_clear_error ( )
private

Definition at line 264 of file RCOutput_Bebop.cpp.

Referenced by _run_rcout(), and init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _control_thread()

void * RCOutput_Bebop::_control_thread ( void *  arg)
staticprivate

Definition at line 455 of file RCOutput_Bebop.cpp.

Referenced by init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _get_info()

bool RCOutput_Bebop::_get_info ( struct bldc_info info)
private

Definition at line 150 of file RCOutput_Bebop.cpp.

Referenced by _run_rcout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _period_us_to_rpm()

uint16_t RCOutput_Bebop::_period_us_to_rpm ( uint16_t  period_us)
private

Definition at line 320 of file RCOutput_Bebop.cpp.

Referenced by _run_rcout(), and read_obs_data().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _play_sound()

void RCOutput_Bebop::_play_sound ( uint8_t  sound)
private

Definition at line 276 of file RCOutput_Bebop.cpp.

Here is the call graph for this function:

◆ _run_rcout()

void RCOutput_Bebop::_run_rcout ( )
private

Definition at line 462 of file RCOutput_Bebop.cpp.

Referenced by _control_thread().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _set_ref_speed()

void RCOutput_Bebop::_set_ref_speed ( uint16_t  rpm[BEBOP_BLDC_MOTORS_NUM])
private

Definition at line 122 of file RCOutput_Bebop.cpp.

Referenced by _run_rcout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _start_prop()

void RCOutput_Bebop::_start_prop ( )
private

Definition at line 108 of file RCOutput_Bebop.cpp.

Referenced by _run_rcout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _stop_prop()

void RCOutput_Bebop::_stop_prop ( )
private

Definition at line 252 of file RCOutput_Bebop.cpp.

Referenced by _run_rcout(), and disable_ch().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _toggle_gpio()

void RCOutput_Bebop::_toggle_gpio ( uint8_t  mask)
private

Definition at line 242 of file RCOutput_Bebop.cpp.

Referenced by init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cork()

void RCOutput_Bebop::cork ( void  )
overridevirtual

Implements AP_HAL::RCOutput.

Definition at line 414 of file RCOutput_Bebop.cpp.

Referenced by Linux::RCOutput_Disco::cork().

Here is the caller graph for this function:

◆ disable_ch()

void RCOutput_Bebop::disable_ch ( uint8_t  ch)
overridevirtual

Implements AP_HAL::RCOutput.

Definition at line 396 of file RCOutput_Bebop.cpp.

Here is the call graph for this function:

◆ enable_ch()

void RCOutput_Bebop::enable_ch ( uint8_t  ch)
overridevirtual

Implements AP_HAL::RCOutput.

Definition at line 392 of file RCOutput_Bebop.cpp.

◆ from()

static RCOutput_Bebop* Linux::RCOutput_Bebop::from ( AP_HAL::RCOutput rcout)
inlinestatic

Definition at line 60 of file RCOutput_Bebop.h.

Referenced by AP_BattMonitor_Bebop::read().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_freq()

uint16_t RCOutput_Bebop::get_freq ( uint8_t  ch)
overridevirtual

Implements AP_HAL::RCOutput.

Definition at line 387 of file RCOutput_Bebop.cpp.

◆ init()

void RCOutput_Bebop::init ( void  )
overridevirtual

Implements AP_HAL::RCOutput.

Definition at line 330 of file RCOutput_Bebop.cpp.

Referenced by Linux::RCOutput_Disco::init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ play_note()

void RCOutput_Bebop::play_note ( uint8_t  pwm,
uint16_t  period_us,
uint16_t  duration_ms 
)

Definition at line 292 of file RCOutput_Bebop.cpp.

Referenced by Linux::ToneAlarm_Disco::play(), and Linux::ToneAlarm_Disco::stop().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ push()

void RCOutput_Bebop::push ( void  )
overridevirtual

Implements AP_HAL::RCOutput.

Definition at line 419 of file RCOutput_Bebop.cpp.

Referenced by Linux::RCOutput_Disco::push(), and write().

Here is the caller graph for this function:

◆ read() [1/2]

uint16_t RCOutput_Bebop::read ( uint8_t  ch)
overridevirtual

Implements AP_HAL::RCOutput.

Definition at line 432 of file RCOutput_Bebop.cpp.

Referenced by read().

Here is the caller graph for this function:

◆ read() [2/2]

void RCOutput_Bebop::read ( uint16_t *  period_us,
uint8_t  len 
)
overridevirtual

Implements AP_HAL::RCOutput.

Definition at line 441 of file RCOutput_Bebop.cpp.

Here is the call graph for this function:

◆ read_obs_data()

int RCOutput_Bebop::read_obs_data ( BebopBLDC_ObsData data)

Definition at line 166 of file RCOutput_Bebop.cpp.

Here is the call graph for this function:

◆ set_esc_scaling()

void RCOutput_Bebop::set_esc_scaling ( uint16_t  min_pwm,
uint16_t  max_pwm 
)
overridevirtual

Reimplemented from AP_HAL::RCOutput.

Definition at line 448 of file RCOutput_Bebop.cpp.

Referenced by Linux::RCOutput_Disco::set_esc_scaling().

Here is the caller graph for this function:

◆ set_freq()

void RCOutput_Bebop::set_freq ( uint32_t  chmask,
uint16_t  freq_hz 
)
overridevirtual

Implements AP_HAL::RCOutput.

Definition at line 382 of file RCOutput_Bebop.cpp.

◆ write()

void RCOutput_Bebop::write ( uint8_t  ch,
uint16_t  period_us 
)
overridevirtual

Implements AP_HAL::RCOutput.

Definition at line 401 of file RCOutput_Bebop.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ _cond

pthread_cond_t Linux::RCOutput_Bebop::_cond
private

Definition at line 104 of file RCOutput_Bebop.h.

Referenced by _run_rcout(), init(), and push().

◆ _corking

bool Linux::RCOutput_Bebop::_corking = false
private

Definition at line 88 of file RCOutput_Bebop.h.

Referenced by cork(), push(), and write().

◆ _dev

AP_HAL::OwnPtr<AP_HAL::I2CDevice> Linux::RCOutput_Bebop::_dev
private

◆ _frequency

uint16_t Linux::RCOutput_Bebop::_frequency
private

Definition at line 83 of file RCOutput_Bebop.h.

Referenced by get_freq(), init(), and set_freq().

◆ _max_pwm

uint16_t Linux::RCOutput_Bebop::_max_pwm
private

Definition at line 85 of file RCOutput_Bebop.h.

Referenced by _period_us_to_rpm(), and set_esc_scaling().

◆ _max_rpm

uint16_t Linux::RCOutput_Bebop::_max_rpm
private

Definition at line 89 of file RCOutput_Bebop.h.

Referenced by _period_us_to_rpm(), and _run_rcout().

◆ _min_pwm

uint16_t Linux::RCOutput_Bebop::_min_pwm
private

Definition at line 84 of file RCOutput_Bebop.h.

Referenced by _period_us_to_rpm(), _run_rcout(), and set_esc_scaling().

◆ _mutex

pthread_mutex_t Linux::RCOutput_Bebop::_mutex
private

Definition at line 103 of file RCOutput_Bebop.h.

Referenced by _run_rcout(), init(), and push().

◆ _n_motors

uint8_t Linux::RCOutput_Bebop::_n_motors =4
private

Definition at line 86 of file RCOutput_Bebop.h.

Referenced by _run_rcout(), and read_obs_data().

◆ _period_us

uint16_t Linux::RCOutput_Bebop::_period_us[BEBOP_BLDC_MOTORS_NUM]
private

Definition at line 81 of file RCOutput_Bebop.h.

Referenced by _run_rcout(), push(), RCOutput_Bebop(), read(), and read_obs_data().

◆ _request_period_us

uint16_t Linux::RCOutput_Bebop::_request_period_us[BEBOP_BLDC_MOTORS_NUM]
private

Definition at line 80 of file RCOutput_Bebop.h.

Referenced by push(), RCOutput_Bebop(), and write().

◆ _rpm

uint16_t Linux::RCOutput_Bebop::_rpm[BEBOP_BLDC_MOTORS_NUM]
private

Definition at line 82 of file RCOutput_Bebop.h.

Referenced by _run_rcout(), RCOutput_Bebop(), and read_obs_data().

◆ _state

uint8_t Linux::RCOutput_Bebop::_state
private

Definition at line 87 of file RCOutput_Bebop.h.

Referenced by _run_rcout(), _start_prop(), and read_obs_data().

◆ _thread

pthread_t Linux::RCOutput_Bebop::_thread
private

Definition at line 102 of file RCOutput_Bebop.h.

Referenced by init().


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