diff --git a/boards/cuav/can-gps-v1/init/rc.board_defaults b/boards/cuav/can-gps-v1/init/rc.board_defaults index 1b70e0701f..5f510e1f92 100644 --- a/boards/cuav/can-gps-v1/init/rc.board_defaults +++ b/boards/cuav/can-gps-v1/init/rc.board_defaults @@ -3,6 +3,7 @@ # board specific defaults #------------------------------------------------------------------------------ neopixel start +tone_alarm start if [ $AUTOCNF = yes ] then diff --git a/src/drivers/uavcannode/indication_controller.cpp b/src/drivers/uavcannode/indication_controller.cpp index 1e5e6b81d4..d5741297e2 100644 --- a/src/drivers/uavcannode/indication_controller.cpp +++ b/src/drivers/uavcannode/indication_controller.cpp @@ -36,8 +36,11 @@ #include #include "indication_controller.hpp" #include +#include #include #include +#include +#include namespace { @@ -108,10 +111,25 @@ void cb_light_command(const uavcan::ReceivedDataStructure &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_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 sub_light(node); + static uavcan::Subscriber sub_beep(node); self_light_index = 0; @@ -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; }