mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-15 12:25:13 +03:00
Bug fixes, added active mission setting,
This commit is contained in:
parent
7f45ec5d68
commit
cc05ab4f44
5 changed files with 103 additions and 57 deletions
|
@ -3488,6 +3488,9 @@
|
||||||
"missionSafehomeHead": {
|
"missionSafehomeHead": {
|
||||||
"message": "Safe Home manager"
|
"message": "Safe Home manager"
|
||||||
},
|
},
|
||||||
|
"missionMultiMissionHead": {
|
||||||
|
"message": "Multi Missions"
|
||||||
|
},
|
||||||
"missionTemplateHead": {
|
"missionTemplateHead": {
|
||||||
"message": "Mission template"
|
"message": "Mission template"
|
||||||
},
|
},
|
||||||
|
@ -3512,6 +3515,9 @@
|
||||||
"confirm_overwrite_multimission_file_load_option": {
|
"confirm_overwrite_multimission_file_load_option": {
|
||||||
"message": "This will over write current multi mission.\nContinue?"
|
"message": "This will over write current multi mission.\nContinue?"
|
||||||
},
|
},
|
||||||
|
"multimission_active_index_saved_eeprom": {
|
||||||
|
"message": "Mission active index saved"
|
||||||
|
},
|
||||||
"no_waypoints_to_load": {
|
"no_waypoints_to_load": {
|
||||||
"message": "No waypoints to load !"
|
"message": "No waypoints to load !"
|
||||||
},
|
},
|
||||||
|
|
|
@ -3213,9 +3213,9 @@ var mspHelper = (function (gui) {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setSetting = function (name, value) {
|
self.setSetting = function (name, value, callback) {
|
||||||
this.encodeSetting(name, value).then(function (data) {
|
this.encodeSetting(name, value).then(function (data) {
|
||||||
return MSP.promise(MSPCodes.MSPV2_SET_SETTING, data);
|
return MSP.promise(MSPCodes.MSPV2_SET_SETTING, data).then(callback);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -149,7 +149,7 @@ let WaypointCollection = function () {
|
||||||
data = tmpData;
|
data = tmpData;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.update = function (bMWPfile=false, bReverse=false) {
|
self.update = function (singleMission = true, bMWPfile=false, bReverse=false) {
|
||||||
let oldWPNumber = 0;
|
let oldWPNumber = 0;
|
||||||
let optionIdx = 0;
|
let optionIdx = 0;
|
||||||
let idx = 0;
|
let idx = 0;
|
||||||
|
@ -180,7 +180,8 @@ let WaypointCollection = function () {
|
||||||
optionIdx = 0;
|
optionIdx = 0;
|
||||||
idx++;
|
idx++;
|
||||||
}
|
}
|
||||||
if (!(bMWPfile && bReverse)) {
|
|
||||||
|
if (singleMission) {
|
||||||
if (element.getNumber() == self.get().length - 1) {
|
if (element.getNumber() == self.get().length - 1) {
|
||||||
element.setEndMission(0xA5);
|
element.setEndMission(0xA5);
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
|
|
||||||
<div id="missionPlannerMultiMission" class="gui_box grey" style="display: none">
|
<div id="missionPlannerMultiMission" class="gui_box grey" style="display: none">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title i18n-replaced" data-i18n="missionSafehomeHead">Multi Mission Manager</div>
|
<div class="spacer_box_title i18n-replaced" data-i18n="missionMultiMissionHead">Multi Missions</div>
|
||||||
<div class="btnMenu btnMenuIcon save_btn">
|
<div class="btnMenu btnMenuIcon save_btn">
|
||||||
<div id="showHideMultimissionButton">
|
<div id="showHideMultimissionButton">
|
||||||
<a class="ic_hide" href="#" title="Hide"></a>
|
<a class="ic_hide" href="#" title="Hide"></a>
|
||||||
|
@ -100,24 +100,34 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer" id="multimissionContent">
|
<div class="spacer" id="multimissionContent">
|
||||||
<div style="display: inline-block">
|
<div class="btn btnTable btnTableIcon save_btn">
|
||||||
<label>Missions Info: </label>
|
<div>
|
||||||
|
<span>Missions Info:</span>
|
||||||
<span id="multimissionInfo">None</span>
|
<span id="multimissionInfo">None</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div style="margin-top: 5px">
|
||||||
|
<span>Active Mission:</span>
|
||||||
|
<span id="activeNissionIndex">1</span>
|
||||||
|
<a class="ic_save disabled" id="setActiveMissionButton" href="#" title="Set Active"></a>
|
||||||
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="btn btnTable btnTableIcon save_btn" style="display: inline-block">
|
<div style="display: inline-block">
|
||||||
<label for="multimissionOptionList">Mission Number </label>
|
<label for="multimissionOptionList">Mission No.</label>
|
||||||
<select name="Number" id="multimissionOptionList">
|
<select name="Number" id="multimissionOptionList" style="width: 50px">
|
||||||
<option value="0">ALL</option>
|
<option value="0">ALL</option>
|
||||||
</select>
|
</select>
|
||||||
<a class="ic_save disabled" id="updateMultimissionButton" href="#" title="Update All" style="float: right"></a>
|
<div style="float: right">
|
||||||
|
<span>Update All</span>
|
||||||
|
<a class="ic_save disabled" id="updateMultimissionButton" href="#" title="Update All"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btnTable btnTableIcon save_btn" style="padding-top: 4px; float: left">
|
<div style="margin-bottom: 5px; margin-top: 5px">
|
||||||
<label for="addMultimissionButton">Add New Mission</label>
|
<label for="addMultimissionButton">Add New Mission</label>
|
||||||
<a class="ic_add disabled" id="addMultimissionButton" href="#" title="Add"></a>
|
<a class="ic_add disabled" id="addMultimissionButton" href="#" title="Add"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="missionPlanerHome" class="gui_box grey" style="display: none">
|
<div id="missionPlanerHome" class="gui_box grey" style="display: none">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
|
|
|
@ -767,11 +767,12 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
$('#multimissionOptionList').append($('<option>', {value: i, text: i}));
|
$('#multimissionOptionList').append($('<option>', {value: i, text: i}));
|
||||||
}
|
}
|
||||||
updateMultimissionState();
|
updateMultimissionState();
|
||||||
|
$('#activeNissionIndex').text(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateMultimissionState() {
|
function updateMultimissionState() {
|
||||||
if (!mission.isEmpty() || multimissionCount) {
|
if (!mission.isEmpty() || multimissionCount) {
|
||||||
if (multimissionCount < maxMultimissionCount) {
|
if ((!multimissionCount || (multimissionCount && !mission.isEmpty())) && multimissionCount < maxMultimissionCount) {
|
||||||
$("#addMultimissionButton").removeClass('disabled');
|
$("#addMultimissionButton").removeClass('disabled');
|
||||||
} else {
|
} else {
|
||||||
$("#addMultimissionButton").addClass('disabled');
|
$("#addMultimissionButton").addClass('disabled');
|
||||||
|
@ -781,26 +782,38 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
if (multimissionAllWPLoaded()) {
|
if (multimissionAllWPLoaded()) {
|
||||||
$('#missionDistance').text('N/A');
|
$('#missionDistance').text('N/A');
|
||||||
totalmultimissionWPs = mission.get().length;
|
totalmultimissionWPs = mission.get().length;
|
||||||
$("#updateMultimissionButton").addClass('disabled');
|
|
||||||
$("#editMission").show();
|
$("#editMission").show();
|
||||||
|
$("#updateMultimissionButton").addClass('disabled');
|
||||||
|
$("#setActiveMissionButton").addClass('disabled');
|
||||||
} else {
|
} else {
|
||||||
totalmultimissionWPs = multimission.get().length + mission.get().length;
|
totalmultimissionWPs = multimission.get().length + mission.get().length;
|
||||||
$("#updateMultimissionButton").removeClass('disabled');
|
$("#updateMultimissionButton").removeClass('disabled');
|
||||||
|
$("#setActiveMissionButton").removeClass('disabled');
|
||||||
}
|
}
|
||||||
$('#multimissionInfo').text(multimissionCount + ' missions (' + totalmultimissionWPs + '/' + mission.getMaxWaypoints() + ' WPs)');
|
$('#multimissionInfo').text(multimissionCount + ' missions (' + totalmultimissionWPs + '/' + mission.getMaxWaypoints() + ' WPs)');
|
||||||
document.getElementById('multimissionInfo').style.color = totalmultimissionWPs > mission.getMaxWaypoints() ? "#FF0000" : "#303030";
|
document.getElementById('multimissionInfo').style.color = totalmultimissionWPs > mission.getMaxWaypoints() ? "#FF0000" : "#303030";
|
||||||
} else {
|
} else {
|
||||||
$('#multimissionInfo').text('No multi missions loaded');
|
|
||||||
$('#cancelMultimission').trigger('click');
|
$('#cancelMultimission').trigger('click');
|
||||||
|
$('#multimissionInfo').text('No multi missions loaded');
|
||||||
$("#updateMultimissionButton").addClass('disabled');
|
$("#updateMultimissionButton").addClass('disabled');
|
||||||
|
$("#setActiveMissionButton").addClass('disabled');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$("#addMultimissionButton").addClass('disabled');
|
$("#addMultimissionButton").addClass('disabled');
|
||||||
|
$("#setActiveMissionButton").addClass('disabled');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isSingleMission() {
|
||||||
|
return !multimissionCount || !multimissionAllWPLoaded();
|
||||||
|
}
|
||||||
|
|
||||||
|
function multimissionAllWPLoaded() {
|
||||||
|
return multimissionCount && Number($('#multimissionOptionList').val()) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
function updateAllMultimission(missionDelete = false) {
|
function updateAllMultimission(missionDelete = false) {
|
||||||
// flag if new MM mission empty at update
|
// flag if new MM mission empty on update
|
||||||
let missionIsEmptyOnUpdate = mission.isEmpty() ? true : false;
|
let missionIsEmptyOnUpdate = mission.isEmpty() ? true : false;
|
||||||
|
|
||||||
/* copy active single mission into MM on update so MM contains all missions.
|
/* copy active single mission into MM on update so MM contains all missions.
|
||||||
|
@ -818,12 +831,12 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
element.setNumber(i);
|
element.setNumber(i);
|
||||||
i++;
|
i++;
|
||||||
});
|
});
|
||||||
multimission.update();
|
multimission.update(false);
|
||||||
// multimission.missionDisplayDebug();
|
// multimission.missionDisplayDebug();
|
||||||
|
|
||||||
mission.reinit();
|
mission.reinit();
|
||||||
mission.copy(multimission);
|
mission.copy(multimission);
|
||||||
mission.update();
|
mission.update(false);
|
||||||
// mission.missionDisplayDebug();
|
// mission.missionDisplayDebug();
|
||||||
|
|
||||||
/* Remove empty missions on update.
|
/* Remove empty missions on update.
|
||||||
|
@ -866,7 +879,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
mission.reinit();
|
mission.reinit();
|
||||||
tempMissionData = multimission.get().slice(startWPCount, endWPCount + 1); // copy selected single mission from MM
|
tempMissionData = multimission.get().slice(startWPCount, endWPCount + 1); // copy selected single mission from MM
|
||||||
let i = 0;
|
let i = 0;
|
||||||
tempMissionData.forEach(function (element) { // write copied mission to active map mission
|
tempMissionData.forEach(function (element) { // write mission copy to active map mission
|
||||||
mission.put(element);
|
mission.put(element);
|
||||||
mission.get()[i].setNumber(i);
|
mission.get()[i].setNumber(i);
|
||||||
i++;
|
i++;
|
||||||
|
@ -950,10 +963,6 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function multimissionAllWPLoaded() {
|
|
||||||
return multimissionCount && Number($('#multimissionOptionList').val()) == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* disable mission/WP edit when all missions displayed on map, true = edit disabled */
|
/* disable mission/WP edit when all missions displayed on map, true = edit disabled */
|
||||||
function setMultimissionEditControl(enabled = true) {
|
function setMultimissionEditControl(enabled = true) {
|
||||||
disableMarkerEdit = enabled;
|
disableMarkerEdit = enabled;
|
||||||
|
@ -1857,13 +1866,13 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
tempWp.setAlt(checkAltElevSanity(false, settings.alt, elevationAtWP, 0));
|
tempWp.setAlt(checkAltElevSanity(false, settings.alt, elevationAtWP, 0));
|
||||||
|
|
||||||
mission.insertWaypoint(tempWp, tempMarker.number);
|
mission.insertWaypoint(tempWp, tempMarker.number);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
refreshLayers();
|
refreshLayers();
|
||||||
plotElevation();
|
plotElevation();
|
||||||
})()
|
})()
|
||||||
} else {
|
} else {
|
||||||
mission.insertWaypoint(tempWp, tempMarker.number);
|
mission.insertWaypoint(tempWp, tempMarker.number);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
refreshLayers();
|
refreshLayers();
|
||||||
plotElevation();
|
plotElevation();
|
||||||
}
|
}
|
||||||
|
@ -1892,13 +1901,13 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
tempWp.setAlt(checkAltElevSanity(false, settings.alt, elevationAtWP, 0));
|
tempWp.setAlt(checkAltElevSanity(false, settings.alt, elevationAtWP, 0));
|
||||||
|
|
||||||
mission.put(tempWp);
|
mission.put(tempWp);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
refreshLayers();
|
refreshLayers();
|
||||||
plotElevation();
|
plotElevation();
|
||||||
})()
|
})()
|
||||||
} else {
|
} else {
|
||||||
mission.put(tempWp);
|
mission.put(tempWp);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
refreshLayers();
|
refreshLayers();
|
||||||
plotElevation();
|
plotElevation();
|
||||||
}
|
}
|
||||||
|
@ -2038,7 +2047,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
else {$('#pointP'+String(j).slice(-1)+'class').fadeOut(300);}
|
else {$('#pointP'+String(j).slice(-1)+'class').fadeOut(300);}
|
||||||
}
|
}
|
||||||
mission.updateWaypoint(selectedMarker);
|
mission.updateWaypoint(selectedMarker);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
redrawLayer();
|
redrawLayer();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2047,7 +2056,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
if (selectedMarker) {
|
if (selectedMarker) {
|
||||||
selectedMarker.setLat(Math.round(Number($('#pointLat').val()) * 10000000));
|
selectedMarker.setLat(Math.round(Number($('#pointLat').val()) * 10000000));
|
||||||
mission.updateWaypoint(selectedMarker);
|
mission.updateWaypoint(selectedMarker);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
refreshLayers();
|
refreshLayers();
|
||||||
selectedFeature = markers[selectedMarker.getLayerNumber()].getSource().getFeatures()[0];
|
selectedFeature = markers[selectedMarker.getLayerNumber()].getSource().getFeatures()[0];
|
||||||
selectedFeature.setStyle(getWaypointIcon(selectedMarker, true));
|
selectedFeature.setStyle(getWaypointIcon(selectedMarker, true));
|
||||||
|
@ -2059,7 +2068,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
if (selectedMarker) {
|
if (selectedMarker) {
|
||||||
selectedMarker.setLon(Math.round(Number($('#pointLon').val()) * 10000000));
|
selectedMarker.setLon(Math.round(Number($('#pointLon').val()) * 10000000));
|
||||||
mission.updateWaypoint(selectedMarker);
|
mission.updateWaypoint(selectedMarker);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
refreshLayers();
|
refreshLayers();
|
||||||
selectedFeature = markers[selectedMarker.getLayerNumber()].getSource().getFeatures()[0];
|
selectedFeature = markers[selectedMarker.getLayerNumber()].getSource().getFeatures()[0];
|
||||||
selectedFeature.setStyle(getWaypointIcon(selectedMarker, true));
|
selectedFeature.setStyle(getWaypointIcon(selectedMarker, true));
|
||||||
|
@ -2073,7 +2082,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
const returnAltitude = checkAltElevSanity(true, Number($('#pointAlt').val()), elevationAtWP, selectedMarker.getP3());
|
const returnAltitude = checkAltElevSanity(true, Number($('#pointAlt').val()), elevationAtWP, selectedMarker.getP3());
|
||||||
selectedMarker.setAlt(returnAltitude);
|
selectedMarker.setAlt(returnAltitude);
|
||||||
mission.updateWaypoint(selectedMarker);
|
mission.updateWaypoint(selectedMarker);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
redrawLayer();
|
redrawLayer();
|
||||||
plotElevation();
|
plotElevation();
|
||||||
}
|
}
|
||||||
|
@ -2083,7 +2092,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
if (selectedMarker) {
|
if (selectedMarker) {
|
||||||
selectedMarker.setP1(Number($('#pointP1').val()));
|
selectedMarker.setP1(Number($('#pointP1').val()));
|
||||||
mission.updateWaypoint(selectedMarker);
|
mission.updateWaypoint(selectedMarker);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
redrawLayer();
|
redrawLayer();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2092,7 +2101,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
if (selectedMarker) {
|
if (selectedMarker) {
|
||||||
selectedMarker.setP2(Number($('#pointP2').val()));
|
selectedMarker.setP2(Number($('#pointP2').val()));
|
||||||
mission.updateWaypoint(selectedMarker);
|
mission.updateWaypoint(selectedMarker);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
redrawLayer();
|
redrawLayer();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2126,7 +2135,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
$('#altitudeInMeters').text(` ${altitudeMeters}m`);
|
$('#altitudeInMeters').text(` ${altitudeMeters}m`);
|
||||||
|
|
||||||
mission.updateWaypoint(selectedMarker);
|
mission.updateWaypoint(selectedMarker);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
redrawLayer();
|
redrawLayer();
|
||||||
plotElevation();
|
plotElevation();
|
||||||
})()
|
})()
|
||||||
|
@ -2241,7 +2250,6 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
mission.updateWaypoint(selectedMarker);
|
mission.updateWaypoint(selectedMarker);
|
||||||
}
|
}
|
||||||
|
|
||||||
mission.update();
|
|
||||||
redrawLayer();
|
redrawLayer();
|
||||||
plotElevation();
|
plotElevation();
|
||||||
})()
|
})()
|
||||||
|
@ -2255,23 +2263,28 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
if (multimissionAllWPLoaded()) {
|
if (multimissionAllWPLoaded()) {
|
||||||
updateAllMultimission();
|
updateAllMultimission();
|
||||||
|
|
||||||
$("#updateMultimissionButton").addClass('disabled');
|
|
||||||
setMultimissionEditControl(multimissionCount ? true : false);
|
setMultimissionEditControl(multimissionCount ? true : false);
|
||||||
updateMultimissionState();
|
updateMultimissionState();
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
// only update all missions when a single mission is loaded on map
|
// updateAllMultimission when a single mission is loaded on map
|
||||||
var missions = 0;
|
// or new mission is empty.
|
||||||
|
if (mission.isEmpty()) {
|
||||||
|
updateAllMultimission();
|
||||||
|
setMultimissionEditControl(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let missions = 0;
|
||||||
mission.get().forEach(function (element) {
|
mission.get().forEach(function (element) {
|
||||||
missions += element.getEndMission() == 0xA5 ? 1 : 0;
|
missions += element.getEndMission() == 0xA5 ? 1 : 0;
|
||||||
});
|
});
|
||||||
if (missions == 1) updateAllMultimission();
|
if (missions == 1) updateAllMultimission();
|
||||||
|
|
||||||
$("#updateMultimissionButton").removeClass('disabled');
|
|
||||||
setMultimissionEditControl(false);
|
setMultimissionEditControl(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
editMultimission();
|
editMultimission();
|
||||||
|
updateMultimissionState();
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#addMultimissionButton').on('click', function () {
|
$('#addMultimissionButton').on('click', function () {
|
||||||
|
@ -2286,6 +2299,10 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
$('#missionPlannerMultiMission').fadeOut(300);
|
$('#missionPlannerMultiMission').fadeOut(300);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#setActiveMissionButton').on('click', function () {
|
||||||
|
$('#activeNissionIndex').text(Number($('#multimissionOptionList').val()));
|
||||||
|
});
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
// Callback for Remove buttons
|
// Callback for Remove buttons
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
|
@ -2309,11 +2326,11 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
if (confirm(chrome.i18n.getMessage('confirm_delete_point_with_options'))) {
|
if (confirm(chrome.i18n.getMessage('confirm_delete_point_with_options'))) {
|
||||||
mission.getAttachedFromWaypoint(selectedMarker).forEach(function (element) {
|
mission.getAttachedFromWaypoint(selectedMarker).forEach(function (element) {
|
||||||
mission.dropWaypoint(element);
|
mission.dropWaypoint(element);
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
});
|
});
|
||||||
mission.dropWaypoint(selectedMarker);
|
mission.dropWaypoint(selectedMarker);
|
||||||
selectedMarker = null;
|
selectedMarker = null;
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
clearEditForm();
|
clearEditForm();
|
||||||
refreshLayers();
|
refreshLayers();
|
||||||
plotElevation();
|
plotElevation();
|
||||||
|
@ -2322,7 +2339,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
else {
|
else {
|
||||||
mission.dropWaypoint(selectedMarker);
|
mission.dropWaypoint(selectedMarker);
|
||||||
selectedMarker = null;
|
selectedMarker = null;
|
||||||
mission.update();
|
mission.update(isSingleMission());
|
||||||
clearEditForm();
|
clearEditForm();
|
||||||
refreshLayers();
|
refreshLayers();
|
||||||
plotElevation();
|
plotElevation();
|
||||||
|
@ -2413,7 +2430,6 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Load/Save MWP File Toolbox
|
// Load/Save MWP File Toolbox
|
||||||
|
@ -2517,14 +2533,14 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// update Attached Waypoints (i.e non Map Markers)
|
|
||||||
mission.update(true);
|
|
||||||
|
|
||||||
if (missionEndFlagCount > 1) {
|
if (missionEndFlagCount > 1) {
|
||||||
if (multimissionCount && !confirm(chrome.i18n.getMessage('confirm_multimission_file_load'))) {
|
if (multimissionCount && !confirm(chrome.i18n.getMessage('confirm_multimission_file_load'))) {
|
||||||
mission.flush();
|
mission.flush();
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
|
// update Attached Waypoints (i.e non Map Markers)
|
||||||
|
mission.update(false, true);
|
||||||
multimissionCount = missionEndFlagCount;
|
multimissionCount = missionEndFlagCount;
|
||||||
multimission.reinit();
|
multimission.reinit();
|
||||||
multimission.copy(mission);
|
multimission.copy(mission);
|
||||||
|
@ -2532,6 +2548,10 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
$('#missionPlannerMultiMission').fadeIn(300);
|
$('#missionPlannerMultiMission').fadeIn(300);
|
||||||
setMultimissionEditControl(true);
|
setMultimissionEditControl(true);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// update Attached Waypoints (i.e non Map Markers)
|
||||||
|
mission.update(true, true);
|
||||||
|
setMultimissionEditControl(false);
|
||||||
}
|
}
|
||||||
updateMultimissionState();
|
updateMultimissionState();
|
||||||
|
|
||||||
|
@ -2633,8 +2653,9 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
}
|
}
|
||||||
mission.reinit();
|
mission.reinit();
|
||||||
mission.copy(MISSION_PLANER);
|
mission.copy(MISSION_PLANER);
|
||||||
mission.update(true);
|
mission.update(false, true);
|
||||||
|
|
||||||
|
setMultimissionEditControl(false);
|
||||||
multimissionCount = 0;
|
multimissionCount = 0;
|
||||||
let missionEndFlagCount = 0;
|
let missionEndFlagCount = 0;
|
||||||
mission.get().forEach(function (element) {
|
mission.get().forEach(function (element) {
|
||||||
|
@ -2662,13 +2683,13 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
function sendWaypointsToFC(saveEeprom) {
|
function sendWaypointsToFC(saveEeprom) {
|
||||||
MISSION_PLANER.reinit();
|
MISSION_PLANER.reinit();
|
||||||
MISSION_PLANER.copy(mission);
|
MISSION_PLANER.copy(mission);
|
||||||
MISSION_PLANER.update(true, true);
|
MISSION_PLANER.update(false, true, true);
|
||||||
mspHelper.saveWaypoints(function() {
|
mspHelper.saveWaypoints(function() {
|
||||||
GUI.log('End send point');
|
GUI.log('End send point');
|
||||||
if (saveEeprom) {
|
if (saveEeprom) {
|
||||||
$('#saveEepromMissionButton').removeClass('disabled');
|
$('#saveEepromMissionButton').removeClass('disabled');
|
||||||
GUI.log(chrome.i18n.getMessage('eeprom_saved_ok'));
|
GUI.log(chrome.i18n.getMessage('eeprom_saved_ok'));
|
||||||
MSP.send_message(MSPCodes.MSP_WP_MISSION_SAVE, [0], false);
|
MSP.send_message(MSPCodes.MSP_WP_MISSION_SAVE, [0], false, setMissionIndex);
|
||||||
} else {
|
} else {
|
||||||
$('#saveMissionButton').removeClass('disabled');
|
$('#saveMissionButton').removeClass('disabled');
|
||||||
}
|
}
|
||||||
|
@ -2678,10 +2699,18 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
updateTotalInfo();
|
updateTotalInfo();
|
||||||
mission.reinit();
|
mission.reinit();
|
||||||
mission.copy(MISSION_PLANER);
|
mission.copy(MISSION_PLANER);
|
||||||
mission.update(true);
|
mission.update(false, true);
|
||||||
refreshLayers();
|
refreshLayers();
|
||||||
$('#MPeditPoint').fadeOut(300);
|
$('#MPeditPoint').fadeOut(300);
|
||||||
});
|
});
|
||||||
|
function setMissionIndex() {
|
||||||
|
let activeIndex = multimissionAllWPLoaded() ? $('#activeNissionIndex').text() : 1;
|
||||||
|
mspHelper.setSetting("nav_wp_multi_mission_index", activeIndex, function () {
|
||||||
|
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () {
|
||||||
|
GUI.log(chrome.i18n.getMessage('multimission_active_index_saved_eeprom'));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateTotalInfo() {
|
function updateTotalInfo() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue