diff --git a/src/modules/navigator/mission.cpp b/src/modules/navigator/mission.cpp index 653825d64f..d3b8c3bff3 100644 --- a/src/modules/navigator/mission.cpp +++ b/src/modules/navigator/mission.cpp @@ -141,10 +141,32 @@ Mission::on_inactive() _work_item_type = WORK_ITEM_TYPE_DEFAULT; } +void +Mission::on_inactivation() +{ + // Disable camera trigger + vehicle_command_s cmd{}; + cmd.command = vehicle_command_s::VEHICLE_CMD_DO_TRIGGER_CONTROL; + // Pause trigger + cmd.param1 = -1.0f; + cmd.param3 = 1.0f; + cmd.timestamp = hrt_absolute_time(); + _navigator->publish_vehicle_cmd(cmd); +} + void Mission::on_activation() { set_mission_items(); + + // unpause triggering if it was paused + vehicle_command_s cmd{}; + cmd.command = vehicle_command_s::VEHICLE_CMD_DO_TRIGGER_CONTROL; + // unpause trigger + cmd.param1 = -1.0f; + cmd.param3 = 0.0f; + cmd.timestamp = hrt_absolute_time(); + _navigator->publish_vehicle_cmd(cmd); } void diff --git a/src/modules/navigator/mission.h b/src/modules/navigator/mission.h index 8a13e9376b..e77e308473 100644 --- a/src/modules/navigator/mission.h +++ b/src/modules/navigator/mission.h @@ -72,6 +72,7 @@ public: ~Mission() override = default; void on_inactive() override; + void on_inactivation() override; void on_activation() override; void on_active() override;