Browse Source

Vehicle: add sendMavCommandIntWithHandler

equivalent to the non-int function, allows a caller to specify a callback when ACK is received
QGC4.4
Peter Barker 1 year ago committed by Don Gagne
parent
commit
a58fab96a8
  1. 12
      src/Vehicle/Vehicle.cc
  2. 5
      src/Vehicle/Vehicle.h

12
src/Vehicle/Vehicle.cc

@ -3006,6 +3006,18 @@ void Vehicle::sendMavCommandInt(int compId, MAV_CMD command, MAV_FRAME frame, bo @@ -3006,6 +3006,18 @@ void Vehicle::sendMavCommandInt(int compId, MAV_CMD command, MAV_FRAME frame, bo
param1, param2, param3, param4, param5, param6, param7);
}
void Vehicle::sendMavCommandIntWithHandler(MavCmdResultHandler resultHandler, void *resultHandlerData, int compId, MAV_CMD command, MAV_FRAME frame, float param1, float param2, float param3, float param4, double param5, double param6, float param7)
{
_sendMavCommandWorker(true, // commandInt
false, // showError
resultHandler,
resultHandlerData,
compId,
command,
frame,
param1, param2, param3, param4, param5, param6, param7);
}
bool Vehicle::isMavCommandPending(int targetCompId, MAV_CMD command)
{
return ((-1) < _findMavCommandListEntryIndex(targetCompId, command));

5
src/Vehicle/Vehicle.h

@ -774,6 +774,11 @@ public: @@ -774,6 +774,11 @@ public:
/// @param resultHandleData Opaque data passed through callback
void sendMavCommandWithHandler(MavCmdResultHandler resultHandler, void* resultHandlerData, int compId, MAV_CMD command, float param1 = 0.0f, float param2 = 0.0f, float param3 = 0.0f, float param4 = 0.0f, float param5 = 0.0f, float param6 = 0.0f, float param7 = 0.0f);
/// Sends the command and calls the callback with the result
/// @param resultHandler Callback for result, nullptr for no callback
/// @param resultHandleData Opaque data passed through callback
void sendMavCommandIntWithHandler(MavCmdResultHandler resultHandler, void* resultHandlerData, int compId, MAV_CMD command, MAV_FRAME frame, float param1 = 0.0f, float param2 = 0.0f, float param3 = 0.0f, float param4 = 0.0f, double param5 = 0.0f, double param6 = 0.0f, float param7 = 0.0f);
typedef enum {
RequestMessageNoFailure,
RequestMessageFailureCommandError,

Loading…
Cancel
Save