Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor: writeConfiguration #3444

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -2278,9 +2278,6 @@
"auxiliaryButtonSave": {
"message": "Save"
},
"auxiliaryEepromSaved": {
"message": "EEPROM <span class=\"message-positive\">saved</span>"
},
"auxiliaryAutoChannelSelect": {
"message": "AUTO"
},
Expand Down Expand Up @@ -2643,9 +2640,6 @@
"transponderDataInvalid": {
"message": "Transponder data is <span class=\"message-negative\">invalid</span>"
},
"transponderEepromSaved": {
"message": "EEPROM <span class=\"message-positive\">saved</span>"
},
"servosFirmwareUpgradeRequired": {
"message": "Servos requires firmware &gt;= 1.10.0. and target support."
},
Expand Down Expand Up @@ -3582,9 +3576,6 @@
"message": "Clear ALL",
"description": "In the LED STRIP, clear all leds"
},
"ledStripEepromSaved": {
"message": "EEPROM <span class=\"message-positive\">saved</span>"
},
"ledStripVtxOverlay": {
"message": "VTX (uses vtx frequency to assign color)"
},
Expand Down
10 changes: 8 additions & 2 deletions src/js/msp/MSPHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@ import huffmanDecodeBuf from "../huffman";
import { defaultHuffmanTree, defaultHuffmanLenIndex } from "../default_huffman_tree";
import { updateTabList } from "../utils/updateTabList";
import { showErrorDialog } from "../utils/showErrorDialog";
import { TABS } from "../gui";
import GUI, { TABS } from "../gui";
import { OSD } from "../tabs/osd";
import { reinitializeConnection } from "../serial_backend";

// Used for LED_STRIP
const ledDirectionLetters = ['n', 'e', 's', 'w', 'u', 'd']; // in LSB bit order
Expand Down Expand Up @@ -2729,11 +2730,16 @@ MspHelper.prototype.sendSerialConfig = function(callback) {
MSP.send_message(mspCode, mspHelper.crunch(mspCode), false, callback);
};

MspHelper.prototype.writeConfiguration = function(callback) {
MspHelper.prototype.writeConfiguration = function(reboot, callback) {
setTimeout(function() {
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function() {
gui_log(i18n.getMessage('configurationEepromSaved'));
console.log('Configuration saved to EEPROM');
if (reboot) {
GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection);
});
}
if (callback) {
callback();
}
Expand Down
5 changes: 1 addition & 4 deletions src/js/tabs/auxiliary.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import FC from '../fc';
import MSP from '../msp';
import MSPCodes from '../msp/MSPCodes';
import adjustBoxNameIfPeripheralWithModeID from '../peripherals';
import { gui_log } from '../gui_log';
import { getTextWidth } from '../utils/common';
import inflection from "inflection";

Expand Down Expand Up @@ -403,9 +402,7 @@ auxiliary.initialize = function (callback) {
mspHelper.sendModeRanges(save_to_eeprom);

function save_to_eeprom() {
mspHelper.writeConfiguration(function () {
gui_log(i18n.getMessage('auxiliaryEepromSaved'));
});
mspHelper.writeConfiguration(false);
}
});

Expand Down
18 changes: 2 additions & 16 deletions src/js/tabs/configuration.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@ import semver from 'semver';
import { i18n } from '../localization';
import GUI, { TABS } from '../gui';
import { tracking } from "../Analytics";
import { reinitializeConnection } from '../serial_backend';
import { mspHelper } from '../msp/MSPHelper';
import FC from '../fc';
import MSP from '../msp';
import MSPCodes from '../msp/MSPCodes';
import { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_45 } from '../data_storage';
import { gui_log } from '../gui_log';
import { updateTabList } from '../utils/updateTabList';

const configuration = {
Expand Down Expand Up @@ -431,10 +429,6 @@ configuration.initialize = function (callback) {
FC.CONFIG.name = $('input[name="craftName"]').val().trim();
}

function save_serial_config() {
mspHelper.sendSerialConfig(save_config);
}

function save_config() {
Promise
.resolve(true)
Expand All @@ -453,18 +447,10 @@ configuration.initialize = function (callback) {
.then(() => semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) ?
MSP.promise(MSPCodes.MSP2_SET_TEXT, mspHelper.crunch(MSPCodes.MSP2_SET_TEXT, MSPCodes.PILOT_NAME)) : Promise.resolve(true))
.then(() => MSP.promise(MSPCodes.MSP_SET_RX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_RX_CONFIG)))
.then(() => mspHelper.writeConfiguration(reboot));
}

function reboot() {
gui_log(i18n.getMessage('configurationEepromSaved'));

GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection);
});
.then(() => mspHelper.writeConfiguration(true));
}

save_serial_config();
mspHelper.sendSerialConfig(save_config);
});

// status data pulled via separate timer with static speed
Expand Down
16 changes: 1 addition & 15 deletions src/js/tabs/failsafe.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
import { i18n } from "../localization";
import GUI, { TABS } from '../gui';
import { reinitializeConnection } from "../serial_backend";
import { mspHelper } from "../msp/MSPHelper";
import MSP from "../msp";
import FC from "../fc";
import MSPCodes from "../msp/MSPCodes";
import adjustBoxNameIfPeripheralWithModeID from "../peripherals";
import { API_VERSION_1_43, API_VERSION_1_44, API_VERSION_1_45 } from "../data_storage";
import { gui_log } from "../gui_log";
import semver from 'semver';

const failsafe = {};
Expand Down Expand Up @@ -364,19 +362,7 @@ failsafe.initialize = function (callback) {
}

function save_gps_rescue() {
MSP.send_message(MSPCodes.MSP_SET_GPS_RESCUE, mspHelper.crunch(MSPCodes.MSP_SET_GPS_RESCUE), false, save_to_eeprom);
}

function save_to_eeprom() {
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, reboot);
}

function reboot() {
gui_log(i18n.getMessage('configurationEepromSaved'));

GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection);
});
MSP.send_message(MSPCodes.MSP_SET_GPS_RESCUE, mspHelper.crunch(MSPCodes.MSP_SET_GPS_RESCUE), false, mspHelper.writeConfiguration(true));
}

MSP.send_message(MSPCodes.MSP_SET_RX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_RX_CONFIG), false, save_failssafe_config);
Expand Down
22 changes: 4 additions & 18 deletions src/js/tabs/gps.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,8 @@ import GUI, { TABS } from '../gui';
import FC from '../fc';
import MSP from "../msp";
import MSPCodes from "../msp/MSPCodes";
import { gui_log } from '../gui_log';
import { have_sensor } from "../sensor_helpers";
import { mspHelper } from '../msp/MSPHelper';
import { reinitializeConnection } from '../serial_backend';
import { updateTabList } from '../utils/updateTabList';

const gps = {};
Expand Down Expand Up @@ -344,26 +342,14 @@ gps.initialize = async function (callback) {
frame.contentWindow.postMessage(message, '*');
});

$('a.save').on('click', function() {
$('a.save').on('click', async function() {
// fill some data
FC.GPS_CONFIG.auto_baud = $('input[name="gps_auto_baud"]').is(':checked') ? 1 : 0;
FC.GPS_CONFIG.auto_config = $('input[name="gps_auto_config"]').is(':checked') ? 1 : 0;

async function saveConfiguration() {
await MSP.promise(MSPCodes.MSP_SET_FEATURE_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FEATURE_CONFIG));
await MSP.promise(MSPCodes.MSP_SET_GPS_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_GPS_CONFIG));
await mspHelper.writeConfiguration(reboot);
}

function reboot() {
gui_log(i18n.getMessage('configurationEepromSaved'));

GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection);
});
}

saveConfiguration();
await MSP.promise(MSPCodes.MSP_SET_FEATURE_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FEATURE_CONFIG));
await MSP.promise(MSPCodes.MSP_SET_GPS_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_GPS_CONFIG));
mspHelper.writeConfiguration(true);
});

GUI.content_ready(callback);
Expand Down
5 changes: 1 addition & 4 deletions src/js/tabs/led_strip.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import semver from 'semver';
import MSP from "../msp";
import MSPCodes from "../msp/MSPCodes";
import { API_VERSION_1_46 } from '../data_storage';
import { gui_log } from "../gui_log";

const led_strip = {
wireMode: false,
Expand Down Expand Up @@ -567,9 +566,7 @@ led_strip.initialize = function (callback, scrollPosition) {
}

function save_to_eeprom() {
mspHelper.writeConfiguration(function() {
gui_log(i18n.getMessage('ledStripEepromSaved'));
});
mspHelper.writeConfiguration(false);
}
});

Expand Down
9 changes: 1 addition & 8 deletions src/js/tabs/motors.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import MotorOutputReorderComponent from "../../components/MotorOutputReordering/
import EscDshotDirectionComponent from "../../components/EscDshotDirection/EscDshotDirectionComponent";
import DshotCommand from "../../js/utils/DshotCommand.js";
import { tracking } from "../Analytics";
import { reinitializeConnection } from "../serial_backend";
import { bit_check } from "../bit";
import { mspHelper } from "../msp/MSPHelper";
import FC from "../fc";
Expand All @@ -15,7 +14,6 @@ import { mixerList } from "../model";
import MSPCodes from "../msp/MSPCodes";
import { API_VERSION_1_42, API_VERSION_1_44 } from "../data_storage";
import EscProtocols from "../utils/EscProtocols";
import { gui_log } from "../gui_log";
import { updateTabList } from "../utils/updateTabList";
import { isInt, getMixerImageSrc } from "../utils/common";
import semver from 'semver';
Expand Down Expand Up @@ -1167,7 +1165,7 @@ motors.initialize = async function (callback) {
self.analyticsChanges = {};
self.configHasChanged = false;

mspHelper.writeConfiguration(reboot);
mspHelper.writeConfiguration(true);
});

$('a.stop').on('click', () => motorsEnableTestModeElement.prop('checked', false).trigger('change'));
Expand All @@ -1188,11 +1186,6 @@ motors.initialize = async function (callback) {
content_ready();
}

function reboot() {
gui_log(i18n.getMessage('configurationEepromSaved'));
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection);
}

function showDialogMixerReset(message) {
const dialogMixerReset = $('#dialog-mixer-reset')[0];

Expand Down
15 changes: 1 addition & 14 deletions src/js/tabs/onboard_logging.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { i18n } from "../localization";
import GUI, { TABS } from '../gui';
import { tracking } from "../Analytics";
import { reinitializeConnection } from "../serial_backend";
import { mspHelper } from "../msp/MSPHelper";
import FC from "../fc";
import MSP from "../msp";
Expand Down Expand Up @@ -58,18 +57,6 @@ onboard_logging.initialize = function (callback) {
return gcd(b, a % b);
}

function save_to_eeprom() {
mspHelper.writeConfiguration(reboot);
}

function reboot() {
gui_log(i18n.getMessage('configurationEepromSaved'));

GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection);
});
}

function load_html() {
$('#content').load("./tabs/onboard_logging.html", function() {
// translate to user-selected language
Expand Down Expand Up @@ -142,7 +129,7 @@ onboard_logging.initialize = function (callback) {
await MSP.promise(MSPCodes.MSP_SET_ADVANCED_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_ADVANCED_CONFIG));
}

save_to_eeprom();
mspHelper.writeConfiguration(true);
});
}

Expand Down
5 changes: 1 addition & 4 deletions src/js/tabs/power.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import { mspHelper } from '../msp/MSPHelper';
import FC from '../fc';
import MSP from '../msp';
import MSPCodes from '../msp/MSPCodes';
import { gui_log } from '../gui_log';
import jBox from 'jbox';

const power = {
Expand Down Expand Up @@ -500,12 +499,10 @@ power.initialize = function (callback) {
}

function save_to_eeprom() {
mspHelper.writeConfiguration(save_completed);
mspHelper.writeConfiguration(false, save_completed);
}

function save_completed() {
gui_log(i18n.getMessage('configurationEepromSaved'));

TABS.power.initialize();
}

Expand Down
12 changes: 1 addition & 11 deletions src/js/tabs/receiver.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { i18n } from "../localization";
import GUI, { TABS } from '../gui';
import { get as getConfig, set as setConfig } from '../ConfigStorage';
import { tracking } from "../Analytics";
import { reinitializeConnection } from "../serial_backend";
import { bit_check } from "../bit";
import { mspHelper } from "../msp/MSPHelper";
import FC from "../fc";
Expand Down Expand Up @@ -520,16 +519,7 @@ receiver.initialize = function (callback) {
}

function save_to_eeprom() {
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, reboot);
}

function reboot() {
gui_log(i18n.getMessage('configurationEepromSaved'));
if (boot) {
GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection);
});
}
mspHelper.writeConfiguration(boot);
}

tracking.sendSaveAndChangeEvents(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, tab.analyticsChanges, 'receiver');
Expand Down
10 changes: 1 addition & 9 deletions src/js/tabs/transponder.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { i18n } from "../localization";
import GUI, { TABS } from '../gui';
import { reinitializeConnection } from "../serial_backend";
import { mspHelper } from '../msp/MSPHelper';
import FC from "../fc";
import MSP from "../msp";
Expand Down Expand Up @@ -302,14 +301,7 @@ transponder.initialize = function(callback) {
}

function save_to_eeprom() {
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function() {
gui_log(i18n.getMessage('transponderEepromSaved'));
if ( $(_this).hasClass('reboot') ) {
GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection);
});
}
});
mspHelper.writeConfiguration($(_this).hasClass('reboot'));
}

if (FC.TRANSPONDER.provider !== "0" && FC.TRANSPONDER.data.length !== FC.TRANSPONDER.providers.find(function(provider) {
Expand Down
4 changes: 1 addition & 3 deletions src/js/tabs/vtx.js
Original file line number Diff line number Diff line change
Expand Up @@ -903,12 +903,10 @@ vtx.initialize = function (callback) {
}

function save_to_eeprom() {
mspHelper.writeConfiguration(save_completed);
mspHelper.writeConfiguration(false, save_completed);
}

function save_completed() {
gui_log(i18n.getMessage('configurationEepromSaved'));

TABS.vtx.vtxTableSavePending = false;

const saveButton = $("#save_button");
Expand Down