12 #if CONFIG_HAL_BOARD_SUBTYPE != HAL_BOARD_SUBTYPE_LINUX_DISCO 28 #define BEBOP_BLDC_STATUS_INIT 0 29 #define BEBOP_BLDC_STATUS_IDLE 1 30 #define BEBOP_BLDC_STATUS_RAMPING 2 31 #define BEBOP_BLDC_STATUS_SPINNING_1 3 32 #define BEBOP_BLDC_STATUS_SPINNING_2 4 33 #define BEBOP_BLDC_STATUS_STOPPING 5 34 #define BEBOP_BLDC_STATUS_CRITICAL 6 37 #define BEBOP_BLDC_ERRNO_EEPROM 1 38 #define BEBOP_BLDC_ERRNO_MOTOR_STALLED 2 39 #define BEBOP_BLDC_ERRNO_PROP_SECU 3 40 #define BEBOP_BLDC_ERRNO_COM_LOST 4 41 #define BEBOP_BLDC_ERRNO_BATT_LEVEL 9 42 #define BEBOP_BLDC_ERRNO_LIPO 10 43 #define BEBOP_BLDC_ERRNO_MOTOR_HW 11 65 void set_freq(uint32_t chmask, uint16_t freq_hz)
override;
66 uint16_t get_freq(uint8_t ch)
override;
67 void enable_ch(uint8_t ch)
override;
68 void disable_ch(uint8_t ch)
override;
69 void write(uint8_t ch, uint16_t period_us)
override;
72 uint16_t
read(uint8_t ch)
override;
73 void read(uint16_t* period_us, uint8_t len)
override;
74 void set_esc_scaling(uint16_t min_pwm, uint16_t max_pwm)
override;
76 void play_note(uint8_t
pwm, uint16_t period_us, uint16_t duration_ms);
88 bool _corking =
false;
91 uint8_t _checksum(uint8_t *data,
unsigned int len);
93 void _toggle_gpio(uint8_t mask);
98 void _play_sound(uint8_t sound);
99 uint16_t _period_us_to_rpm(uint16_t period_us);
106 static void *_control_thread(
void *arg);
static RCOutput_Bebop * from(AP_HAL::RCOutput *rcout)
ssize_t write(int fd, const void *buf, size_t count)
POSIX Write count bytes from *buf to fileno fd.
uint8_t rpm_saturated[BEBOP_BLDC_MOTORS_NUM]
ssize_t read(int fd, void *buf, size_t count)
POSIX read count bytes from *buf to fileno fd.
static AP_HAL::OwnPtr< AP_HAL::Device > dev
uint16_t rpm[BEBOP_BLDC_MOTORS_NUM]
void init()
Generic board initialization function.
AP_HAL::OwnPtr< AP_HAL::I2CDevice > _dev