diff options
author | Darren Lines <darren@darrenlines.uk> | 2022-08-15 21:03:15 +0300 |
---|---|---|
committer | Darren Lines <darren@darrenlines.uk> | 2022-08-15 21:03:15 +0300 |
commit | 7afbc5c97c68a9dcef583be70038a628dfa6f55b (patch) | |
tree | 5ee925741eb45d3a19ae70cc5d874bed7661594e | |
parent | 4f2fbb2c7169a74db53317cdddff101158bf8f8c (diff) |
Set specific defaults on all profilesMrD_Set-platform-defaults-on-all-profiles
-rw-r--r-- | js/defaults_dialog.js | 59 |
1 files changed, 50 insertions, 9 deletions
diff --git a/js/defaults_dialog.js b/js/defaults_dialog.js index 19bca033..c6e733c3 100644 --- a/js/defaults_dialog.js +++ b/js/defaults_dialog.js @@ -404,7 +404,7 @@ helper.defaultsDialog = (function () { { "title": 'Airplane without a Tail (Wing, Delta, etc)', "notRecommended": false, - "id": 3, + "id": 4, "reboot": true, "mixerToApply": 8, "settings": [ @@ -418,7 +418,7 @@ helper.defaultsDialog = (function () { }, { key: "applied_defaults", - value: 3 + value: 4 }, { key: "gyro_hardware_lpf", @@ -718,7 +718,9 @@ helper.defaultsDialog = (function () { GUI.tab_switch_cleanup(function () { MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, function () { //noinspection JSUnresolvedVariable - savingDefaultsModal.close(); + if (typeof savingDefaultsModal !== 'undefined') { + savingDefaultsModal.close(); + } GUI.log(chrome.i18n.getMessage('deviceRebooting')); GUI.handleReconnect(); }); @@ -728,13 +730,21 @@ helper.defaultsDialog = (function () { }; privateScope.setSettings = function (selectedDefaultPreset) { + var currentControlProfile = parseInt($("#profilechange").val()); + var currentBatteryProfile = parseInt($("#batteryprofilechange").val()); //Save analytics googleAnalytics.sendEvent('Setting', 'Defaults', selectedDefaultPreset.title); Promise.mapSeries(selectedDefaultPreset.settings, function (input, ii) { return mspHelper.getSetting(input.key); }).then(function () { Promise.mapSeries(selectedDefaultPreset.settings, function (input, ii) { - return mspHelper.setSetting(input.key, input.value); + if (FC.isControlProfileParameter(input.key)) { + return privateScope.setSettingForAllControlProfiles(input.key, input.value); + } else if (FC.isBatteryProfileParameter(input.key)) { + return privateScope.setSettingForAllBatteryProfiles(input.key, input.value); + } else { + return mspHelper.setSetting(input.key, input.value); + } }).then(function () { // If default preset is associated to a mixer, apply the mixer as well @@ -751,17 +761,48 @@ helper.defaultsDialog = (function () { mspHelper.sendServoMixer(function () { mspHelper.sendMotorMixer(function () { - privateScope.finalize(selectedDefaultPreset); - }) + MSP.send_message(MSPCodes.MSP_SELECT_SETTING, [currentControlProfile], false, function() { + MSP.send_message(MSPCodes.MSP2_INAV_SELECT_BATTERY_PROFILE, [currentBatteryProfile], false, privateScope.finalize(selectedDefaultPreset)); + }); + }); }); } else { - privateScope.finalize(selectedDefaultPreset); + MSP.send_message(MSPCodes.MSP_SELECT_SETTING, [currentControlProfile], false, function() { + MSP.send_message(MSPCodes.MSP2_INAV_SELECT_BATTERY_PROFILE, [currentBatteryProfile], false, privateScope.finalize(selectedDefaultPreset)); + }); } + }) + }); + }; - + privateScope.setSettingForAllControlProfiles = function (key, value) { + MSP.send_message(MSPCodes.MSP_SELECT_SETTING, [0], false, function () { + mspHelper.setSetting(key, value, function() { + MSP.send_message(MSPCodes.MSP_SELECT_SETTING, [1], false, function () { + mspHelper.setSetting(key, value, function() { + MSP.send_message(MSPCodes.MSP_SELECT_SETTING, [2], false, function () { + mspHelper.setSetting(key, value); + }); + }); + }); + }); + }); + return; + }; - }) + privateScope.setSettingForAllBatteryProfiles = function (key, value) { + MSP.send_message(MSPCodes.MSP2_INAV_SELECT_BATTERY_PROFILE, [0], false, function () { + mspHelper.setSetting(key, value, function() { + MSP.send_message(MSPCodes.MSP2_INAV_SELECT_BATTERY_PROFILE, [1], false, function () { + mspHelper.setSetting(key, value, function() { + MSP.send_message(MSPCodes.MSP2_INAV_SELECT_BATTERY_PROFILE, [2], false, function () { + mspHelper.setSetting(key, value); + }); + }); + }); + }); }); + return; }; privateScope.onPresetClick = function (event) { |