GCS_MAVLink: move handling of MAG_CAL command longs up

This commit is contained in:
Peter Barker 2017-07-17 10:46:54 +10:00 committed by Francisco Ferreira
parent 6b53b5b5f3
commit bd28bdd907
4 changed files with 20 additions and 0 deletions

View File

@ -220,6 +220,7 @@ protected:
virtual bool accept_packet(const mavlink_status_t &status, mavlink_message_t &msg) { return true; }
virtual AP_Mission *get_mission() = 0;
virtual AP_Rally *get_rally() const = 0;
virtual Compass *get_compass() const = 0;
virtual AP_ServoRelayEvents *get_servorelayevents() const = 0;
bool waypoint_receiving; // currently receiving
@ -275,6 +276,7 @@ protected:
bool telemetry_delayed() const;
virtual uint32_t telem_delay() const = 0;
MAV_RESULT handle_command_mag_cal(const mavlink_command_long_t &packet);
MAV_RESULT handle_command_long_message(mavlink_command_long_t &packet);
private:

View File

@ -1835,12 +1835,28 @@ void GCS_MAVLINK::handle_common_mission_message(mavlink_message_t *msg)
}
}
MAV_RESULT GCS_MAVLINK::handle_command_mag_cal(const mavlink_command_long_t &packet)
{
Compass *compass = get_compass();
if (compass == nullptr) {
return MAV_RESULT_UNSUPPORTED;
}
return compass->handle_mag_cal_command(packet);
}
MAV_RESULT GCS_MAVLINK::handle_command_long_message(mavlink_command_long_t &packet)
{
MAV_RESULT result = MAV_RESULT_FAILED;
switch (packet.command) {
case MAV_CMD_DO_START_MAG_CAL:
case MAV_CMD_DO_ACCEPT_MAG_CAL:
case MAV_CMD_DO_CANCEL_MAG_CAL: {
result = handle_command_mag_cal(packet);
break;
}
case MAV_CMD_START_RX_PAIR:
result = handle_rc_bind(packet);
break;

View File

@ -14,6 +14,7 @@ class GCS_MAVLINK_Dummy : public GCS_MAVLINK
protected:
Compass *get_compass() const override { return nullptr; };
AP_Mission *get_mission() override { return nullptr; }
AP_Rally *get_rally() const override { return nullptr; };
AP_ServoRelayEvents *get_servorelayevents() const override { return nullptr; }

View File

@ -21,6 +21,7 @@ public:
protected:
uint32_t telem_delay() const override { return 0; }
Compass *get_compass() const override { return nullptr; };
AP_Mission *get_mission() override { return nullptr; }
AP_Rally *get_rally() const override { return nullptr; }
AP_ServoRelayEvents *get_servorelayevents() const override { return nullptr; }