1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-23 16:25:22 +03:00

Save vtx_table lua file. (#1759)

Save vtx_table lua file.
This commit is contained in:
Michael Keller 2019-10-29 14:29:48 +13:00 committed by GitHub
commit 49c7da5683
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 104 additions and 1 deletions

View file

@ -496,6 +496,10 @@ TABS.vtx.initialize = function (callback) {
save_json();
});
$('a.save_lua').click(function () {
save_lua();
});
$('a.load_file').click(function () {
load_json();
});
@ -512,6 +516,65 @@ TABS.vtx.initialize = function (callback) {
}
function save_lua() {
let suggestedName = 'model01';
let suffix = 'lua';
var filename;
if(CONFIG.name && CONFIG.name.trim() !== '') {
filename = CONFIG.name.trim().replace(' ', '_');
}else{
filename = suggestedName
}
filename += '.' + suffix;
let accepts = [{
description: suffix.toUpperCase() + ' files', extensions: [suffix],
}];
chrome.fileSystem.chooseEntry({type: 'saveFile', suggestedName: filename, accepts: accepts}, function(entry) {
if (chrome.runtime.lastError) {
console.error(chrome.runtime.lastError.message);
return;
}
if (!entry) {
console.log('No file selected');
return;
}
entry.createWriter(function (writer) {
writer.onerror = function(){
console.error('Failed to write VTX table lua file');
GUI.log(i18n.getMessage('vtxSavedFileKo'));
};
writer.onwriteend = function() {
dump_html_to_msp();
let vtxConfig = createVtxConfigInfo();
let text = creatLuaTables(vtxConfig);
let data = new Blob([text], { type: "application/text" });
// we get here at the end of the truncate method, change to the new end
writer.onwriteend = function() {
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'VtxTableLuaSave', text.length);
console.log('Write VTX table lua file end');
GUI.log(i18n.getMessage('vtxSavedFileOk'));
}
writer.write(data);
};
writer.truncate(0);
}, function (){
console.error('Failed to get VTX table lua file writer');
GUI.log(i18n.getMessage('vtxSavedFileKo'));
});
});
}
function save_json() {
let suggestedName = 'vtxtable';
let suffix = 'json';
@ -550,6 +613,7 @@ TABS.vtx.initialize = function (callback) {
// we get here at the end of the truncate method, change to the new end
writer.onwriteend = function() {
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'VtxTableSave', text.length);
console.log(vtxConfig)
console.log('Write VTX file end');
GUI.log(i18n.getMessage('vtxSavedFileOk'));
}
@ -807,6 +871,33 @@ TABS.vtx.initialize = function (callback) {
return vtxConfig;
}
function creatLuaTables(vtxConfig) {
let bandsString = "bandTable = { [0]=\"U\"";
let frequencieString = "frequencyTable = {\n";
let freqBandsString = "frequenciesPerBand = ";
let powersString = "powerTable = { ";
let bands_list = vtxConfig.vtx_table.bands_list;
let power_list = vtxConfig.vtx_table.powerlevels_list;
var index, len, i, l;
for (index = 0, len = bands_list.length; index < len; ++index) {
bandsString += ", \"" + bands_list[index].letter + "\"";
frequencieString += " { ";
for (i = 0, l = bands_list[index].frequencies.length; i < l; ++i) {
frequencieString += bands_list[index].frequencies[i] + ", ";
}
frequencieString += "},\n";
}
bandsString += " }\n";
frequencieString += "}\n";
freqBandsString += bands_list[1].frequencies.length + "\n";
for (index = 0, len = power_list.length; index < len; ++index) {
powersString += "[" + power_list[index].value + "]=" + power_list[index].label + ", ";
}
powersString += "}\n";
let text = frequencieString + freqBandsString + bandsString + powersString;
return text;
}
};
TABS.vtx.cleanup = function (callback) {