4#include "MAVLinkEnums.h"
54 int compId = MAV_COMP_ID_AUTOPILOT1,
96 void _handleResult(MAV_RESULT result,
107 bool _failOnMaxRetries =
false;
109 bool _requestActive =
false;
112 MAV_RESULT _lastResult = MAV_RESULT_ACCEPTED;
struct __mavlink_message mavlink_message_t
QString stateName() const
Vehicle * vehicle() const
Requests a MAVLink message with built-in retry logic.
int maxRetries() const
Get max retries setting.
std::function< bool()> SkipPredicate
void onWaitExited() override
Called when the state is exited - subclasses should call base implementation.
int retryCount() const
Get current retry count.
void messageReceived(const mavlink_message_t &message)
Emitted when message is successfully received.
void setFailOnMaxRetries(bool fail)
If true, emit error() after max retries instead of advance()
std::function< void(VehicleTypes::RequestMessageResultHandlerFailureCode_t failureCode, MAV_RESULT result)> FailureHandler
void disconnectWaitSignal() override
Subclasses override to tear down their signal connections.
void onWaitTimeout() override
Called when the timeout expires - default emits timeout(), subclasses can override.
void setSkipPredicate(SkipPredicate predicate)
void onWaitEntered() override
Called when the state is entered - subclasses should call base implementation.
void retriesExhausted()
Emitted when all retries are exhausted.
std::function< void(Vehicle *vehicle, const mavlink_message_t &message)> MessageHandler
void connectWaitSignal() override
Subclasses override to set up their signal connections.
MAV_RESULT lastResult() const
Get the MAV_RESULT from the last attempt.
void setFailureHandler(FailureHandler handler)
Set handler called when all retries fail.
VehicleTypes::RequestMessageResultHandlerFailureCode_t lastFailureCode() const
Get the failure code from the last attempt.
Base class for states that wait for something with optional timeout.
RequestMessageResultHandlerFailureCode_t
@ RequestMessageNoFailure