Browse Source

cuav gps:Add Beep indication

release/1.12
David Sidrane 4 years ago committed by Daniel Agar
parent
commit
ab650373d6
  1. 1
      boards/cuav/can-gps-v1/init/rc.board_defaults
  2. 24
      src/drivers/uavcannode/indication_controller.cpp

1
boards/cuav/can-gps-v1/init/rc.board_defaults

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
# board specific defaults
#------------------------------------------------------------------------------
neopixel start
tone_alarm start
if [ $AUTOCNF = yes ]
then

24
src/drivers/uavcannode/indication_controller.cpp

@ -36,8 +36,11 @@ @@ -36,8 +36,11 @@
#include <uavcan_stm32/uavcan_stm32.hpp>
#include "indication_controller.hpp"
#include <uavcan/equipment/indication/LightsCommand.hpp>
#include <uavcan/equipment/indication/BeepCommand.hpp>
#include <uORB/Publication.hpp>
#include <uORB/topics/led_control.h>
#include <uORB/topics/tune_control.h>
#include <lib/tunes/tunes.h>
namespace
{
@ -108,10 +111,25 @@ void cb_light_command(const uavcan::ReceivedDataStructure<uavcan::equipment::ind @@ -108,10 +111,25 @@ void cb_light_command(const uavcan::ReceivedDataStructure<uavcan::equipment::ind
}
}
}
void cb_beep_command(const uavcan::ReceivedDataStructure<uavcan::equipment::indication::BeepCommand> &msg)
{
tune_control_s tune_control{};
tune_control.tune_id = 0;
tune_control.frequency = (uint16_t)msg.frequency;
tune_control.duration = uavcan::uint32_t(1000000 * msg.duration);
tune_control.volume = 0xff;
uORB::Publication<tune_control_s> tune_control_pub{ORB_ID(tune_control)};
tune_control.timestamp = hrt_absolute_time();
tune_control_pub.publish(tune_control);
}
}
int init_indication_controller(uavcan::INode &node)
{
static uavcan::Subscriber<uavcan::equipment::indication::LightsCommand> sub_light(node);
static uavcan::Subscriber<uavcan::equipment::indication::BeepCommand> sub_beep(node);
self_light_index = 0;
@ -123,5 +141,11 @@ int init_indication_controller(uavcan::INode &node) @@ -123,5 +141,11 @@ int init_indication_controller(uavcan::INode &node)
return res;
}
res = sub_beep.start(cb_beep_command);
if (res != 0) {
return res;
}
return 0;
}

Loading…
Cancel
Save