mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-16 21:05:35 +03:00
resolving callback hell in backup routine
This commit is contained in:
parent
dcdccd683d
commit
985d5233a2
1 changed files with 61 additions and 28 deletions
|
@ -1,24 +1,55 @@
|
||||||
function configuration_backup() {
|
function configuration_backup() {
|
||||||
// request configuration data (one by one)
|
// request configuration data (one by one)
|
||||||
send_message(MSP_codes.MSP_IDENT, MSP_codes.MSP_IDENT, false, function() {
|
|
||||||
send_message(MSP_codes.MSP_STATUS, MSP_codes.MSP_STATUS, false, function() {
|
|
||||||
send_message(MSP_codes.MSP_PID, MSP_codes.MSP_PID, false, function() {
|
|
||||||
send_message(MSP_codes.MSP_RC_TUNING, MSP_codes.MSP_RC_TUNING, false, function() {
|
|
||||||
send_message(MSP_codes.MSP_BOXNAMES, MSP_codes.MSP_BOXNAMES, false, function() {
|
|
||||||
send_message(MSP_codes.MSP_BOX, MSP_codes.MSP_BOX, false, function() {
|
|
||||||
send_message(MSP_codes.MSP_ACC_TRIM, MSP_codes.MSP_ACC_TRIM, false, function() {
|
|
||||||
send_message(MSP_codes.MSP_MISC, MSP_codes.MSP_MISC, false, function() {
|
|
||||||
backup();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
var backup = function() {
|
function get_ident_data() {
|
||||||
|
send_message(MSP_codes.MSP_IDENT, MSP_codes.MSP_IDENT, false, function() {
|
||||||
|
get_status_data();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_status_data() {
|
||||||
|
send_message(MSP_codes.MSP_STATUS, MSP_codes.MSP_STATUS, false, function() {
|
||||||
|
get_pid_data();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_pid_data() {
|
||||||
|
send_message(MSP_codes.MSP_PID, MSP_codes.MSP_PID, false, function() {
|
||||||
|
get_rc_tuning_data();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_rc_tuning_data() {
|
||||||
|
send_message(MSP_codes.MSP_RC_TUNING, MSP_codes.MSP_RC_TUNING, false, function() {
|
||||||
|
get_box_names_data();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_box_names_data() {
|
||||||
|
send_message(MSP_codes.MSP_BOXNAMES, MSP_codes.MSP_BOXNAMES, false, function() {
|
||||||
|
get_box_data();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_box_data() {
|
||||||
|
send_message(MSP_codes.MSP_BOX, MSP_codes.MSP_BOX, false, function() {
|
||||||
|
get_acc_trim_data();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_acc_trim_data() {
|
||||||
|
send_message(MSP_codes.MSP_ACC_TRIM, MSP_codes.MSP_ACC_TRIM, false, function() {
|
||||||
|
get_misc_data();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_misc_data() {
|
||||||
|
send_message(MSP_codes.MSP_MISC, MSP_codes.MSP_MISC, false, function() {
|
||||||
|
backup();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function backup() {
|
||||||
var chosenFileEntry = null;
|
var chosenFileEntry = null;
|
||||||
|
|
||||||
var accepts = [{
|
var accepts = [{
|
||||||
|
@ -95,7 +126,10 @@ function configuration_backup() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
|
||||||
|
// begin fetching latest data
|
||||||
|
get_ident_data();
|
||||||
}
|
}
|
||||||
|
|
||||||
function configuration_restore() {
|
function configuration_restore() {
|
||||||
|
@ -208,7 +242,7 @@ function configuration_upload() {
|
||||||
rc_tuning();
|
rc_tuning();
|
||||||
});
|
});
|
||||||
|
|
||||||
var rc_tuning = function() {
|
function rc_tuning() {
|
||||||
// RC Tuning section
|
// RC Tuning section
|
||||||
var RC_tuning_buffer_out = new Array();
|
var RC_tuning_buffer_out = new Array();
|
||||||
RC_tuning_buffer_out[0] = parseInt(RC_tuning.RC_RATE * 100);
|
RC_tuning_buffer_out[0] = parseInt(RC_tuning.RC_RATE * 100);
|
||||||
|
@ -223,9 +257,9 @@ function configuration_upload() {
|
||||||
send_message(MSP_codes.MSP_SET_RC_TUNING, RC_tuning_buffer_out, false, function() {
|
send_message(MSP_codes.MSP_SET_RC_TUNING, RC_tuning_buffer_out, false, function() {
|
||||||
aux();
|
aux();
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
|
||||||
var aux = function() {
|
function aux() {
|
||||||
// AUX section
|
// AUX section
|
||||||
var AUX_val_buffer_out = new Array();
|
var AUX_val_buffer_out = new Array();
|
||||||
|
|
||||||
|
@ -239,11 +273,10 @@ function configuration_upload() {
|
||||||
send_message(MSP_codes.MSP_SET_BOX, AUX_val_buffer_out, false, function() {
|
send_message(MSP_codes.MSP_SET_BOX, AUX_val_buffer_out, false, function() {
|
||||||
trim();
|
trim();
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
// Trim section
|
// Trim section
|
||||||
var trim = function() {
|
function trim() {
|
||||||
var buffer_out = new Array();
|
var buffer_out = new Array();
|
||||||
buffer_out[0] = lowByte(CONFIG.accelerometerTrims[0]);
|
buffer_out[0] = lowByte(CONFIG.accelerometerTrims[0]);
|
||||||
buffer_out[1] = highByte(CONFIG.accelerometerTrims[0]);
|
buffer_out[1] = highByte(CONFIG.accelerometerTrims[0]);
|
||||||
|
@ -254,9 +287,9 @@ function configuration_upload() {
|
||||||
send_message(MSP_codes.MSP_SET_ACC_TRIM, buffer_out, false, function() {
|
send_message(MSP_codes.MSP_SET_ACC_TRIM, buffer_out, false, function() {
|
||||||
misc();
|
misc();
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
|
||||||
var misc = function() {
|
function misc() {
|
||||||
// MISC
|
// MISC
|
||||||
// we also have to fill the unsupported bytes
|
// we also have to fill the unsupported bytes
|
||||||
var buffer_out = new Array();
|
var buffer_out = new Array();
|
||||||
|
@ -290,5 +323,5 @@ function configuration_upload() {
|
||||||
GUI.log('EEPROM <span style="color: green">saved</span>');
|
GUI.log('EEPROM <span style="color: green">saved</span>');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue