Browse Source

Confirm retasking command before altering active waypoint

QGC4.4
Nate Weibley 9 years ago
parent
commit
e0caee4390
  1. 1
      src/FlightDisplay/FlightDisplayViewMap.qml
  2. 7
      src/FlightDisplay/FlightDisplayViewWidgets.qml
  3. 5
      src/FlightMap/MapItems/MissionItemView.qml
  4. 5
      src/MissionManager/VisualMissionItem.cc
  5. 2
      src/MissionManager/VisualMissionItem.h
  6. 21
      src/Vehicle/Vehicle.cc
  7. 4
      src/Vehicle/Vehicle.h

1
src/FlightDisplay/FlightDisplayViewMap.qml

@ -48,6 +48,7 @@ FlightMap {
property bool _activeVehicleCoordinateValid: _activeVehicle ? _activeVehicle.coordinateValid : false property bool _activeVehicleCoordinateValid: _activeVehicle ? _activeVehicle.coordinateValid : false
property var activeVehicleCoordinate: _activeVehicle ? _activeVehicle.coordinate : QtPositioning.coordinate() property var activeVehicleCoordinate: _activeVehicle ? _activeVehicle.coordinate : QtPositioning.coordinate()
property var _gotoHereCoordinate: QtPositioning.coordinate() property var _gotoHereCoordinate: QtPositioning.coordinate()
property int _retaskSequence: 0
Component.onCompleted: { Component.onCompleted: {
QGroundControl.flightMapPosition = center QGroundControl.flightMapPosition = center

7
src/FlightDisplay/FlightDisplayViewWidgets.qml

@ -286,6 +286,7 @@ Item {
readonly property int confirmEmergencyStop: 6 readonly property int confirmEmergencyStop: 6
readonly property int confirmChangeAlt: 7 readonly property int confirmChangeAlt: 7
readonly property int confirmGoTo: 8 readonly property int confirmGoTo: 8
readonly property int confirmRetask: 9
property int confirmActionCode property int confirmActionCode
property string confirmText property string confirmText
@ -322,6 +323,9 @@ Item {
case confirmGoTo: case confirmGoTo:
_activeVehicle.guidedModeGotoLocation(_flightMap._gotoHereCoordinate) _activeVehicle.guidedModeGotoLocation(_flightMap._gotoHereCoordinate)
break; break;
case confirmRetask:
_activeVehicle.setCurrentMissionSequence(_flightMap._retaskSequence)
break;
default: default:
console.warn("Internal error: unknown confirmActionCode", confirmActionCode) console.warn("Internal error: unknown confirmActionCode", confirmActionCode)
} }
@ -355,6 +359,9 @@ Item {
case confirmGoTo: case confirmGoTo:
_guidedModeBar.confirmText = "move" _guidedModeBar.confirmText = "move"
break; break;
case confirmRetask:
_guidedModeBar.confirmText = "active waypoint change"
break;
} }
guidedModeButtons.visible = false guidedModeButtons.visible = false
guidedModeConfirm.visible = true guidedModeConfirm.visible = true

5
src/FlightMap/MapItems/MissionItemView.qml

@ -42,7 +42,10 @@ MapItemView {
z: QGroundControl.zOrderMapItems z: QGroundControl.zOrderMapItems
missionItem: object missionItem: object
sequenceNumber: object.sequenceNumber sequenceNumber: object.sequenceNumber
onClicked: object.tryMakingCurrent() onClicked: {
parent._retaskSequence = object.sequenceNumber
parent.flightWidgets.guidedModeBar.confirmAction(parent.flightWidgets.guidedModeBar.confirmRetask)
}
// These are the non-coordinate child mission items attached to this item // These are the non-coordinate child mission items attached to this item
Row { Row {

5
src/MissionManager/VisualMissionItem.cc

@ -103,8 +103,3 @@ void VisualMissionItem::setAzimuth(double azimuth)
_azimuth = azimuth; _azimuth = azimuth;
emit azimuthChanged(_azimuth); emit azimuthChanged(_azimuth);
} }
void VisualMissionItem::tryMakingCurrent()
{
_vehicle->setCurrentMissionSequence(sequenceNumber());
}

2
src/MissionManager/VisualMissionItem.h

@ -92,8 +92,6 @@ public:
/// are shown next to the exitCoordinate indidcator in the ui. /// are shown next to the exitCoordinate indidcator in the ui.
Q_PROPERTY(QmlObjectListModel* childItems READ childItems CONSTANT) Q_PROPERTY(QmlObjectListModel* childItems READ childItems CONSTANT)
Q_INVOKABLE void tryMakingCurrent();
// Property accesors // Property accesors
double altDifference (void) const { return _altDifference; } double altDifference (void) const { return _altDifference; }

21
src/Vehicle/Vehicle.cc

@ -1136,16 +1136,6 @@ void Vehicle::setFlightMode(const QString& flightMode)
} }
} }
void Vehicle::setCurrentMissionSequence(int seq)
{
if (!_firmwarePlugin->sendHomePositionToVehicle()) {
seq--;
}
mavlink_message_t msg;
mavlink_msg_mission_set_current_pack(_mavlink->getSystemId(), _mavlink->getComponentId(), &msg, id(), _compID, seq);
sendMessage(msg);
}
bool Vehicle::hilMode(void) bool Vehicle::hilMode(void)
{ {
return _base_mode & MAV_MODE_FLAG_HIL_ENABLED; return _base_mode & MAV_MODE_FLAG_HIL_ENABLED;
@ -1500,6 +1490,16 @@ void Vehicle::emergencyStop(void)
sendMessage(msg); sendMessage(msg);
} }
void Vehicle::setCurrentMissionSequence(int seq)
{
if (!_firmwarePlugin->sendHomePositionToVehicle()) {
seq--;
}
mavlink_message_t msg;
mavlink_msg_mission_set_current_pack(_mavlink->getSystemId(), _mavlink->getComponentId(), &msg, id(), _compID, seq);
sendMessage(msg);
}
void Vehicle::doCommandLong(int component, MAV_CMD command, float param1, float param2, float param3, float param4, float param5, float param6, float param7) void Vehicle::doCommandLong(int component, MAV_CMD command, float param1, float param2, float param3, float param4, float param5, float param6, float param7)
{ {
mavlink_message_t msg; mavlink_message_t msg;
@ -1521,6 +1521,7 @@ void Vehicle::doCommandLong(int component, MAV_CMD command, float param1, float
sendMessage(msg); sendMessage(msg);
} }
const char* VehicleGPSFactGroup::_hdopFactName = "hdop"; const char* VehicleGPSFactGroup::_hdopFactName = "hdop";
const char* VehicleGPSFactGroup::_vdopFactName = "vdop"; const char* VehicleGPSFactGroup::_vdopFactName = "vdop";
const char* VehicleGPSFactGroup::_courseOverGroundFactName = "courseOverGround"; const char* VehicleGPSFactGroup::_courseOverGroundFactName = "courseOverGround";

4
src/Vehicle/Vehicle.h

@ -356,6 +356,9 @@ public:
/// Command vehicle to kill all motors no matter what state /// Command vehicle to kill all motors no matter what state
Q_INVOKABLE void emergencyStop(void); Q_INVOKABLE void emergencyStop(void);
/// Alter the current mission item on the vehicle
Q_INVOKABLE void setCurrentMissionSequence(int seq);
bool guidedModeSupported(void) const; bool guidedModeSupported(void) const;
bool pauseVehicleSupported(void) const; bool pauseVehicleSupported(void) const;
@ -430,7 +433,6 @@ public:
QString flightMode(void) const; QString flightMode(void) const;
void setFlightMode(const QString& flightMode); void setFlightMode(const QString& flightMode);
void setCurrentMissionSequence(int seq);
bool hilMode(void); bool hilMode(void);
void setHilMode(bool hilMode); void setHilMode(bool hilMode);

Loading…
Cancel
Save