Mantis: move power off tune to commander

This way we don't allocate inside the interrupt context.
This commit is contained in:
Julian Oes
2021-12-08 13:13:08 +01:00
committed by Daniel Agar
parent 372a0da987
commit b3d830dd11
2 changed files with 25 additions and 15 deletions
-15
View File
@@ -54,8 +54,6 @@
#include <uORB/uORB.h>
#include <uORB/Publication.hpp>
#include <uORB/topics/led_control.h>
#include <uORB/topics/tune_control.h>
#include <arm_arch.h>
#include "board_config.h"
@@ -117,26 +115,13 @@ int board_power_off(int status)
static int board_button_irq(int irq, FAR void *context, FAR void *args)
{
uORB::Publication<tune_control_s, tune_control_s::ORB_QUEUE_LENGTH> tune_control_pub{ORB_ID(tune_control)};
if (board_pwr_button_down()) {
led_on(BOARD_LED_RED);
clock_gettime(CLOCK_REALTIME, &time_down);
power_state_notification(PWR_BUTTON_DOWN);
tune_control_s tune_control{};
tune_control.volume = tune_control_s::VOLUME_LEVEL_DEFAULT - 20;
tune_control.tune_id = tune_control_s::TUNE_ID_POWER_OFF;
tune_control.timestamp = hrt_absolute_time();
tune_control_pub.publish(tune_control);
} else {
tune_control_s tune_control{};
tune_control.tune_override = true;
tune_control.timestamp = hrt_absolute_time();
tune_control_pub.publish(tune_control);
power_state_notification(PWR_BUTTON_UP);
led_off(BOARD_LED_RED);