HAL_Linux: added duration to toneAlarm_set_buzzer_tone

required for disco
This commit is contained in:
Andrew Tridgell 2018-07-27 17:12:48 +10:00
parent c83567dcba
commit 03b7c08be6
6 changed files with 9 additions and 7 deletions

View File

@ -39,7 +39,7 @@ bool ToneAlarm::init()
return true;
}
void ToneAlarm::set_buzzer_tone(float frequency, float volume)
void ToneAlarm::set_buzzer_tone(float frequency, float volume, uint32_t duration_ms)
{
if (is_zero(frequency) || is_zero(volume)) {
dprintf(run_fd,"0");

View File

@ -8,7 +8,7 @@ class ToneAlarm {
public:
ToneAlarm();
virtual bool init();
virtual void set_buzzer_tone(float frequency, float volume);
virtual void set_buzzer_tone(float frequency, float volume, uint32_t duration_ms);
private:
int32_t period_fd;

View File

@ -20,6 +20,7 @@
#include <AP_HAL_Linux/RCOutput_Bebop.h>
#include <AP_HAL_Linux/RCOutput_Disco.h>
#include "ToneAlarm_Disco.h"
#include <AP_Math/AP_Math.h>
extern const AP_HAL::HAL &hal;
@ -34,12 +35,12 @@ bool ToneAlarm_Disco::init()
return true;
}
void ToneAlarm_Disco::set_buzzer_tone(float frequency, float volume)
void ToneAlarm_Disco::set_buzzer_tone(float frequency, float volume, uint32_t duration_ms)
{
if (is_zero(frequency) || is_zero(volume)) {
bebop_out->play_note(0, 0, 0);
} else {
bebop_out->play_note(TONEALARM_PWM_POWER, (uint16_t)roundf(frequency), 10000);
bebop_out->play_note(TONEALARM_PWM_POWER, (uint16_t)roundf(frequency), duration_ms);
}
}

View File

@ -13,7 +13,7 @@ class ToneAlarm_Disco : public ToneAlarm {
public:
ToneAlarm_Disco();
bool init() override;
void set_buzzer_tone(float frequency, float volume) override;
void set_buzzer_tone(float frequency, float volume, uint32_t duration_ms) override;
private:
RCOutput_Bebop *bebop_out;

View File

@ -17,7 +17,6 @@ using namespace Linux;
extern const AP_HAL::HAL& hal;
static int state;
#if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_DISCO
ToneAlarm_Disco Util::_toneAlarm;
#else

View File

@ -96,7 +96,9 @@ public:
int get_hw_arm32();
bool toneAlarm_init() override { return _toneAlarm.init(); }
void toneAlarm_set_buzzer_tone(float frequency, float volume) override { _toneAlarm.set_buzzer_tone(frequency, volume); }
void toneAlarm_set_buzzer_tone(float frequency, float volume, uint32_t duration_ms) override {
_toneAlarm.set_buzzer_tone(frequency, volume, duration_ms);
}
private:
#if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_DISCO