42 using SendVehicleCommand::SendVehicleCommand;
44 static BT::PortsList providedPorts()
47 BT::InputPort<int>(INPUT_KEY_NAV_STATE,
"Target PX4 navigation state (mode id) to switch to."),
51 bool setMessage(px4_msgs::msg::VehicleCommand & msg)
override final
53 const BT::Expected<int> expected_nav_state = getInput<int>(INPUT_KEY_NAV_STATE);
54 if (!expected_nav_state) {
56 logger_,
"%s - Missing required input '%s': %s", context_.getFullyQualifiedTreeNodeName(
this).c_str(),
57 INPUT_KEY_NAV_STATE, expected_nav_state.error().c_str());
61 msg = px4_msgs::msg::VehicleCommand{};
62 msg.command = px4_msgs::msg::VehicleCommand::VEHICLE_CMD_SET_NAV_STATE;
63 msg.param1 =
static_cast<float>(expected_nav_state.value());
68 logger_,
"%s - Switching to nav_state %d (source_component %u).",
69 context_.getFullyQualifiedTreeNodeName(
this).c_str(), expected_nav_state.value(), msg.source_component);