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

Sonar clean vtx.js

This commit is contained in:
Miguel Angel Mulero Martinez 2020-01-02 13:38:22 +01:00
parent 9278e8ed77
commit d8e3b9ee44

View file

@ -14,9 +14,9 @@ TABS.vtx = {
}; };
TABS.vtx.initialize = function (callback) { TABS.vtx.initialize = function (callback) {
var self = this; const self = this;
if (GUI.active_tab != 'vtx') { if (GUI.active_tab !== 'vtx') {
GUI.active_tab = 'vtx'; GUI.active_tab = 'vtx';
} }
@ -64,7 +64,7 @@ TABS.vtx.initialize = function (callback) {
vtxtable_bands.counter++; vtxtable_bands.counter++;
} }
let buffer = []; const buffer = [];
buffer.push8(vtxtable_bands.counter); buffer.push8(vtxtable_bands.counter);
if (vtxtable_bands.counter <= VTX_CONFIG.vtx_table_bands) { if (vtxtable_bands.counter <= VTX_CONFIG.vtx_table_bands) {
@ -87,7 +87,7 @@ TABS.vtx.initialize = function (callback) {
vtxtable_powerlevels.counter++; vtxtable_powerlevels.counter++;
} }
let buffer = []; const buffer = [];
buffer.push8(vtxtable_powerlevels.counter); buffer.push8(vtxtable_powerlevels.counter);
if (vtxtable_powerlevels.counter <= VTX_CONFIG.vtx_table_powerlevels) { if (vtxtable_powerlevels.counter <= VTX_CONFIG.vtx_table_powerlevels) {
@ -191,10 +191,9 @@ TABS.vtx.initialize = function (callback) {
}); });
// Supported? // Supported?
let vtxSupported = VTX_CONFIG.vtx_type != 0 && VTX_CONFIG.vtx_type != 255; const vtxSupported = VTX_CONFIG.vtx_type !== 0 && VTX_CONFIG.vtx_type !== 255;
let vtxTableNotConfigured = vtxSupported && VTX_CONFIG.vtx_table_available && (VTX_CONFIG.vtx_table_bands == 0 || const vtxTableNotConfigured = vtxSupported && VTX_CONFIG.vtx_table_available &&
VTX_CONFIG.vtx_table_channels == 0 || (VTX_CONFIG.vtx_table_bands === 0 || VTX_CONFIG.vtx_table_channels === 0 || VTX_CONFIG.vtx_table_powerlevels === 0);
VTX_CONFIG.vtx_table_powerlevels == 0);
$(".vtx_supported").toggle(vtxSupported); $(".vtx_supported").toggle(vtxSupported);
$(".vtx_not_supported").toggle(!vtxSupported); $(".vtx_not_supported").toggle(!vtxSupported);
@ -223,18 +222,18 @@ TABS.vtx.initialize = function (callback) {
$("#vtx_low_power_disarm").val(VTX_CONFIG.vtx_low_power_disarm); $("#vtx_low_power_disarm").val(VTX_CONFIG.vtx_low_power_disarm);
// Values of the current values // Values of the current values
let yesMessage = i18n.getMessage("yes"); const yesMessage = i18n.getMessage("yes");
let noMessage = i18n.getMessage("no"); const noMessage = i18n.getMessage("no");
$("#vtx_device_ready_description").text(VTX_CONFIG.vtx_device_ready ? yesMessage : noMessage); $("#vtx_device_ready_description").text(VTX_CONFIG.vtx_device_ready ? yesMessage : noMessage);
$("#vtx_type_description").text(i18n.getMessage("vtxType_" + VTX_CONFIG.vtx_type)); $("#vtx_type_description").text(i18n.getMessage(`vtxType_${VTX_CONFIG.vtx_type}`));
$("#vtx_channel_description").text(VTX_CONFIG.vtx_channel); $("#vtx_channel_description").text(VTX_CONFIG.vtx_channel);
$("#vtx_frequency_description").text(VTX_CONFIG.vtx_frequency); $("#vtx_frequency_description").text(VTX_CONFIG.vtx_frequency);
$("#vtx_pit_mode_description").text(VTX_CONFIG.vtx_pit_mode ? yesMessage : noMessage); $("#vtx_pit_mode_description").text(VTX_CONFIG.vtx_pit_mode ? yesMessage : noMessage);
$("#vtx_pit_mode_frequency_description").text(VTX_CONFIG.vtx_pit_mode_frequency); $("#vtx_pit_mode_frequency_description").text(VTX_CONFIG.vtx_pit_mode_frequency);
$("#vtx_low_power_disarm_description").text(i18n.getMessage("vtxLowPowerDisarmOption_" + VTX_CONFIG.vtx_low_power_disarm)); $("#vtx_low_power_disarm_description").text(i18n.getMessage(`vtxLowPowerDisarmOption_${VTX_CONFIG.vtx_low_power_disarm}`));
if (VTX_CONFIG.vtx_band == 0) { if (VTX_CONFIG.vtx_band === 0) {
$("#vtx_band_description").text(i18n.getMessage("vtxBand_0")); $("#vtx_band_description").text(i18n.getMessage("vtxBand_0"));
} else { } else {
if (VTX_CONFIG.vtx_table_available && TABS.vtx.VTXTABLE_BAND_LIST[VTX_CONFIG.vtx_band - 1]) { if (VTX_CONFIG.vtx_table_available && TABS.vtx.VTXTABLE_BAND_LIST[VTX_CONFIG.vtx_band - 1]) {
@ -248,7 +247,7 @@ TABS.vtx.initialize = function (callback) {
} }
} }
if (VTX_CONFIG.vtx_power == 0) { if (VTX_CONFIG.vtx_power === 0) {
$("#vtx_power_description").text(i18n.getMessage("vtxPower_0")); $("#vtx_power_description").text(i18n.getMessage("vtxPower_0"));
} else { } else {
if (VTX_CONFIG.vtx_table_available) { if (VTX_CONFIG.vtx_table_available) {
@ -258,7 +257,7 @@ TABS.vtx.initialize = function (callback) {
} }
$("#vtx_power_description").text(powerLevel); $("#vtx_power_description").text(powerLevel);
} else { } else {
let levelText = i18n.getMessage('vtxPower_X', {powerLevel: VTX_CONFIG.vtx_power}); const levelText = i18n.getMessage('vtxPower_X', {powerLevel: VTX_CONFIG.vtx_power});
$("#vtx_power_description").text(levelText); $("#vtx_power_description").text(levelText);
} }
} }
@ -267,8 +266,8 @@ TABS.vtx.initialize = function (callback) {
// Populate power levels // Populate power levels
for (let i = 1; i <= TABS.vtx.VTXTABLE_POWERLEVEL_LIST.length; i++) { for (let i = 1; i <= TABS.vtx.VTXTABLE_POWERLEVEL_LIST.length; i++) {
$("#vtx_table_powerlevels_" + i).val(TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_value); $(`#vtx_table_powerlevels_${i}`).val(TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_value);
$("#vtx_table_powerlabels_" + i).val(TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_label); $(`#vtx_table_powerlabels_${i}`).val(TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_label);
} }
$("#vtx_table_bands").val(VTX_CONFIG.vtx_table_bands); $("#vtx_table_bands").val(VTX_CONFIG.vtx_table_bands);
@ -276,18 +275,18 @@ TABS.vtx.initialize = function (callback) {
// Populate VTX Table // Populate VTX Table
for (let i = 1; i <= TABS.vtx.VTXTABLE_BAND_LIST.length; i++) { for (let i = 1; i <= TABS.vtx.VTXTABLE_BAND_LIST.length; i++) {
$("#vtx_table_band_name_" + i).val(TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_name); $(`#vtx_table_band_name_${i}`).val(TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_name);
$("#vtx_table_band_letter_" + i).val(TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_letter); $(`#vtx_table_band_letter_${i}`).val(TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_letter);
$("#vtx_table_band_factory_" + i).prop("checked",TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_is_factory_band); $(`#vtx_table_band_factory_${i}`).prop("checked",TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_is_factory_band);
for (let j = 1; j <= TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_frequencies.length; j++) { for (let j = 1; j <= TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_frequencies.length; j++) {
$("#vtx_table_band_channel_" + i + "_" + j).val(TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_frequencies[j - 1]); $(`#vtx_table_band_channel_${i}_${j}`).val(TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_frequencies[j - 1]);
} }
} }
// Actions and other // Actions and other
function frequencyOrBandChannel() { function frequencyOrBandChannel() {
let frequencyEnabled = $(this).prop('checked'); const frequencyEnabled = $(this).prop('checked');
if (frequencyEnabled) { if (frequencyEnabled) {
$(".field.vtx_channel").slideUp(100, function() { $(".field.vtx_channel").slideUp(100, function() {
@ -305,7 +304,7 @@ TABS.vtx.initialize = function (callback) {
} }
} }
$("#vtx_frequency_channel").prop('checked', VTX_CONFIG.vtx_band == 0 && VTX_CONFIG.vtx_frequency > 0).change(frequencyOrBandChannel); $("#vtx_frequency_channel").prop('checked', VTX_CONFIG.vtx_band === 0 && VTX_CONFIG.vtx_frequency > 0).change(frequencyOrBandChannel);
if ($("#vtx_frequency_channel").prop('checked')) { if ($("#vtx_frequency_channel").prop('checked')) {
$(".field.vtx_channel").hide(); $(".field.vtx_channel").hide();
@ -318,30 +317,30 @@ TABS.vtx.initialize = function (callback) {
} }
function showHidePowerlevels() { function showHidePowerlevels() {
let powerlevelsValue = $(this).val(); const powerlevelsValue = $(this).val();
for (let i = 1; i <= TABS.vtx.MAX_POWERLEVEL_VALUES; i++) { for (let i = 1; i <= TABS.vtx.MAX_POWERLEVEL_VALUES; i++) {
$(".vtx_table_powerlevels_table td:nth-child(" + i +")").toggle(i <= powerlevelsValue); $(`.vtx_table_powerlevels_table td:nth-child(${i})`).toggle(i <= powerlevelsValue);
} }
} }
$("#vtx_table_powerlevels").on('input', showHidePowerlevels).trigger('input'); $("#vtx_table_powerlevels").on('input', showHidePowerlevels).trigger('input');
function showHideBands() { function showHideBands() {
let bandsValue = $(this).val(); const bandsValue = $(this).val();
for (let i = 1; i <= TABS.vtx.MAX_BAND_VALUES; i++) { for (let i = 1; i <= TABS.vtx.MAX_BAND_VALUES; i++) {
$(".vtx_table_bands_table tr:nth-child(" + (i + 1) +")").toggle(i <= bandsValue); $(`.vtx_table_bands_table tr:nth-child(${(i + 1)})`).toggle(i <= bandsValue);
} }
} }
$("#vtx_table_bands").on('input', showHideBands).trigger('input'); $("#vtx_table_bands").on('input', showHideBands).trigger('input');
function showHideBandChannels() { function showHideBandChannels() {
let channelsValue = $(this).val(); const channelsValue = $(this).val();
for (let i = 1; i <= TABS.vtx.MAX_BAND_CHANNELS_VALUES; i++) { for (let i = 1; i <= TABS.vtx.MAX_BAND_CHANNELS_VALUES; i++) {
$(".vtx_table_bands_table td:nth-child(" + (i + 3) +")").toggle(i <= channelsValue); $(`.vtx_table_bands_table td:nth-child(${(i + 3)})`).toggle(i <= channelsValue);
} }
} }
@ -359,76 +358,75 @@ TABS.vtx.initialize = function (callback) {
function loadPowerLevelsTemplate() { function loadPowerLevelsTemplate() {
// Power levels title // Power levels title
let powerlevelstitle_e = $(".vtx_table_powerlevels_table .vtx_table_powerlevels_title"); const powerLevelsTitleEle = $(".vtx_table_powerlevels_table .vtx_table_powerlevels_title");
for (let i = 1; i <= TABS.vtx.MAX_POWERLEVEL_VALUES; i++) { for (let i = 1; i <= TABS.vtx.MAX_POWERLEVEL_VALUES; i++) {
powerlevelstitle_e.append("<td><span>" + i + "</span></td>"); powerLevelsTitleEle.append(`<td><span>${i}</span></td>`);
} }
// Power levels // Power levels
let powerlevelsrow_e = $(".vtx_table_powerlevels_table .vtx_table_powerlevels_values"); const powerLevelsRowEle = $(".vtx_table_powerlevels_table .vtx_table_powerlevels_values");
let powervalues_e = $("#tab-vtx-templates #tab-vtx-powerlevel-values td"); const powerValuesEle = $("#tab-vtx-templates #tab-vtx-powerlevel-values td");
for (let i = 1; i <= TABS.vtx.MAX_POWERLEVEL_VALUES; i++) { for (let i = 1; i <= TABS.vtx.MAX_POWERLEVEL_VALUES; i++) {
let newPowerValues_e = powervalues_e.clone(); const newPowerValuesEle = powerValuesEle.clone();
$(newPowerValues_e).find('input').attr('id', 'vtx_table_powerlevels_' + i); $(newPowerValuesEle).find('input').attr('id', `vtx_table_powerlevels_${i}`);
powerlevelsrow_e.append(newPowerValues_e); powerLevelsRowEle.append(newPowerValuesEle);
} }
powerlevelsrow_e.append("<td><span>" + i18n.getMessage('vtxTablePowerLevelsValue') + "</span></td>"); powerLevelsRowEle.append(`<td><span>${i18n.getMessage('vtxTablePowerLevelsValue')}</span></td>`);
// Power labels // Power labels
let powerlabelsrow_e = $(".vtx_table_powerlevels_table .vtx_table_powerlevels_labels"); const powerLabelsRowEle = $(".vtx_table_powerlevels_table .vtx_table_powerlevels_labels");
let powerlabels_e = $("#tab-vtx-templates #tab-vtx-powerlevel-labels td"); const powerLabelsEle = $("#tab-vtx-templates #tab-vtx-powerlevel-labels td");
for (let i = 1; i <= TABS.vtx.MAX_POWERLEVEL_VALUES; i++) { for (let i = 1; i <= TABS.vtx.MAX_POWERLEVEL_VALUES; i++) {
let newPowerLabels_e = powerlabels_e.clone(); const newPowerLabelsEle = powerLabelsEle.clone();
$(newPowerLabels_e).find('input').attr('id', 'vtx_table_powerlabels_' + i); $(newPowerLabelsEle).find('input').attr('id', `vtx_table_powerlabels_${i}`);
powerlabelsrow_e.append(newPowerLabels_e); powerLabelsRowEle.append(newPowerLabelsEle);
} }
powerlabelsrow_e.append("<td><span>" + i18n.getMessage('vtxTablePowerLevelsLabel') + "</span></td>"); powerLabelsRowEle.append(`<td><span>${i18n.getMessage('vtxTablePowerLevelsLabel')}</span></td>`);
} }
function loadBandsChannelsTemplate() { function loadBandsChannelsTemplate() {
let bandstable_e = $(".vtx_table_bands_table tbody"); const bandsTableEle = $(".vtx_table_bands_table tbody");
// Title // Title
let title_e = $("#tab-vtx-templates #tab-vtx-bands-title tr"); const titleEle = $("#tab-vtx-templates #tab-vtx-bands-title tr");
for (let i = 1; i <= TABS.vtx.MAX_BAND_VALUES; i++) { for (let i = 1; i <= TABS.vtx.MAX_BAND_VALUES; i++) {
title_e.append("<td><span>" + i + "</span></td>"); titleEle.append(`<td><span>${i}</span></td>`);
} }
bandstable_e.append(title_e); bandsTableEle.append(titleEle);
// Bands // Bands
let band_e = $("#tab-vtx-templates #tab-vtx-bands tr"); const bandEle = $("#tab-vtx-templates #tab-vtx-bands tr");
let channel_e = $("#tab-vtx-templates #tab-vtx-channels td"); const channelEle = $("#tab-vtx-templates #tab-vtx-channels td");
for (let i = 1; i <= TABS.vtx.MAX_BAND_VALUES; i++) { for (let i = 1; i <= TABS.vtx.MAX_BAND_VALUES; i++) {
let newBand_e = band_e.clone(); const newBandEle = bandEle.clone();
$(newBand_e).find('#vtx_table_band_name').attr('id', 'vtx_table_band_name_' + i); $(newBandEle).find('#vtx_table_band_name').attr('id', `vtx_table_band_name_${i}`);
$(newBand_e).find('#vtx_table_band_letter').attr('id', 'vtx_table_band_letter_' + i); $(newBandEle).find('#vtx_table_band_letter').attr('id', `vtx_table_band_letter_${i}`);
$(newBand_e).find('#vtx_table_band_factory').attr('id', 'vtx_table_band_factory_' + i); $(newBandEle).find('#vtx_table_band_factory').attr('id', `vtx_table_band_factory_${i}`);
// Channels // Channels
let newChannel_e;
for (let j = 1; j <= TABS.vtx.MAX_BAND_CHANNELS_VALUES; j++) { for (let j = 1; j <= TABS.vtx.MAX_BAND_CHANNELS_VALUES; j++) {
newChannel_e = channel_e.clone(); const newChannelEle = channelEle.clone();
$(newChannel_e).find('input').attr('id', 'vtx_table_band_channel_' + i + '_' + j); $(newChannelEle).find('input').attr('id', `vtx_table_band_channel_${i}_${j}`);
newBand_e.append(newChannel_e); newBandEle.append(newChannelEle);
} }
// Append to the end an index of the band // Append to the end an index of the band
newBand_e.append("<td><span>" + i18n.getMessage("vtxBand_X", {bandName: i}) + "</span></td>") newBandEle.append(`<td><span>${i18n.getMessage("vtxBand_X", {bandName: i})}</span></td>`);
bandstable_e.append(newBand_e); bandsTableEle.append(newBandEle);
} }
} }
function populateBandSelect() { function populateBandSelect() {
let selectBand = $(".field #vtx_band"); const selectBand = $(".field #vtx_band");
selectBand.append(new Option(i18n.getMessage('vtxBand_0'), 0)) selectBand.append(new Option(i18n.getMessage('vtxBand_0'), 0));
if (VTX_CONFIG.vtx_table_available) { if (VTX_CONFIG.vtx_table_available) {
for (let i = 1; i <= VTX_CONFIG.vtx_table_bands; i++) { for (let i = 1; i <= VTX_CONFIG.vtx_table_bands; i++) {
let bandName = TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_name; let bandName = TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_name;
@ -446,16 +444,16 @@ TABS.vtx.initialize = function (callback) {
function populateChannelSelect() { function populateChannelSelect() {
let selectChannel = $(".field #vtx_channel"); const selectChannel = $(".field #vtx_channel");
let selectedBand = $("#vtx_band").val(); const selectedBand = $("#vtx_band").val();
selectChannel.empty(); selectChannel.empty();
selectChannel.append(new Option(i18n.getMessage('vtxChannel_0'), 0)) selectChannel.append(new Option(i18n.getMessage('vtxChannel_0'), 0));
if (VTX_CONFIG.vtx_table_available) { if (VTX_CONFIG.vtx_table_available) {
if (TABS.vtx.VTXTABLE_BAND_LIST[selectedBand - 1]) { if (TABS.vtx.VTXTABLE_BAND_LIST[selectedBand - 1]) {
for (let i = 1; i <= TABS.vtx.VTXTABLE_BAND_LIST[selectedBand - 1].vtxtable_band_frequencies.length; i++) { for (let i = 1; i <= TABS.vtx.VTXTABLE_BAND_LIST[selectedBand - 1].vtxtable_band_frequencies.length; i++) {
let channelName = TABS.vtx.VTXTABLE_BAND_LIST[selectedBand - 1].vtxtable_band_frequencies[i - 1]; const channelName = TABS.vtx.VTXTABLE_BAND_LIST[selectedBand - 1].vtxtable_band_frequencies[i - 1];
if (channelName > 0) { if (channelName > 0) {
selectChannel.append(new Option(i18n.getMessage('vtxChannel_X', {channelName: i}), i)); selectChannel.append(new Option(i18n.getMessage('vtxChannel_X', {channelName: i}), i));
} }
@ -469,10 +467,10 @@ TABS.vtx.initialize = function (callback) {
} }
function populatePowerSelect() { function populatePowerSelect() {
let selectPower = $(".field #vtx_power"); const selectPower = $(".field #vtx_power");
if (VTX_CONFIG.vtx_table_available) { if (VTX_CONFIG.vtx_table_available) {
selectPower.append(new Option(i18n.getMessage('vtxPower_0'), 0)) selectPower.append(new Option(i18n.getMessage('vtxPower_0'), 0));
for (let i = 1; i <= VTX_CONFIG.vtx_table_powerlevels; i++) { for (let i = 1; i <= VTX_CONFIG.vtx_table_powerlevels; i++) {
let powerLevel = TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_label; let powerLevel = TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_label;
if (powerLevel.trim() === '') { if (powerLevel.trim() === '') {
@ -481,10 +479,10 @@ TABS.vtx.initialize = function (callback) {
selectPower.append(new Option(powerLevel, i)); selectPower.append(new Option(powerLevel, i));
} }
} else { } else {
let powerMaxMinValues = getPowerValues(VTX_CONFIG.vtx_type); const powerMaxMinValues = getPowerValues(VTX_CONFIG.vtx_type);
for (let i = powerMaxMinValues.min; i <= powerMaxMinValues.max; i++) { for (let i = powerMaxMinValues.min; i <= powerMaxMinValues.max; i++) {
if (i == 0) { if (i === 0) {
selectPower.append(new Option(i18n.getMessage('vtxPower_0'), 0)) selectPower.append(new Option(i18n.getMessage('vtxPower_0'), 0));
} else { } else {
selectPower.append(new Option(i18n.getMessage('vtxPower_X', {bandName: i}), i)); selectPower.append(new Option(i18n.getMessage('vtxPower_X', {bandName: i}), i));
} }
@ -498,7 +496,7 @@ TABS.vtx.initialize = function (callback) {
let powerMinMax = {}; let powerMinMax = {};
if (VTX_CONFIG.vtx_table_available) { if (VTX_CONFIG.vtx_table_available) {
powerMinMax = {min: 1, max: VTX_CONFIG.vtx_table_powerlevels} powerMinMax = {min: 1, max: VTX_CONFIG.vtx_table_powerlevels};
} else { } else {
switch (vtxType) { switch (vtxType) {
@ -553,22 +551,22 @@ TABS.vtx.initialize = function (callback) {
} }
function save_lua() { function save_lua() {
let suggestedName = 'model01'; const suggestedName = 'model01';
let suffix = 'lua'; const suffix = 'lua';
var filename; let filename;
if(CONFIG.name && CONFIG.name.trim() !== '') { if(CONFIG.name && CONFIG.name.trim() !== '') {
filename = CONFIG.name.trim().replace(' ', '_'); filename = CONFIG.name.trim().replace(' ', '_');
}else{ }else{
filename = suggestedName filename = suggestedName;
} }
filename += '.' + suffix; filename += `.${suffix}`;
let accepts = [{ const accepts = [{
description: suffix.toUpperCase() + ' files', extensions: [suffix], description: `${suffix.toUpperCase()} files`, extensions: [suffix],
}]; }];
chrome.fileSystem.chooseEntry({type: 'saveFile', suggestedName: filename, accepts: accepts}, function(entry) { chrome.fileSystem.chooseEntry({type: 'saveFile', suggestedName: filename, accepts}, function(entry) {
if (chrome.runtime.lastError) { if (chrome.runtime.lastError) {
console.error(chrome.runtime.lastError.message); console.error(chrome.runtime.lastError.message);
@ -589,16 +587,16 @@ TABS.vtx.initialize = function (callback) {
writer.onwriteend = function() { writer.onwriteend = function() {
dump_html_to_msp(); dump_html_to_msp();
let vtxConfig = createVtxConfigInfo(); const vtxConfig = createVtxConfigInfo();
let text = creatLuaTables(vtxConfig); const text = creatLuaTables(vtxConfig);
let data = new Blob([text], { type: "application/text" }); const data = new Blob([text], { type: "application/text" });
// we get here at the end of the truncate method, change to the new end // we get here at the end of the truncate method, change to the new end
writer.onwriteend = function() { writer.onwriteend = function() {
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'VtxTableLuaSave', text.length); analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'VtxTableLuaSave', text.length);
console.log('Write VTX table lua file end'); console.log('Write VTX table lua file end');
GUI.log(i18n.getMessage('vtxSavedFileOk')); GUI.log(i18n.getMessage('vtxSavedFileOk'));
} };
writer.write(data); writer.write(data);
}; };
@ -612,16 +610,16 @@ TABS.vtx.initialize = function (callback) {
}); });
} }
function save_json() { function save_json() {
let suggestedName = 'vtxtable'; const suggestedName = 'vtxtable';
let suffix = 'json'; const suffix = 'json';
var filename = generateFilename(suggestedName, suffix); const filename = generateFilename(suggestedName, suffix);
let accepts = [{ const accepts = [{
description: suffix.toUpperCase() + ' files', extensions: [suffix], description: `${suffix.toUpperCase()} files`, extensions: [suffix],
}]; }];
chrome.fileSystem.chooseEntry({type: 'saveFile', suggestedName: filename, accepts: accepts}, function(entry) { chrome.fileSystem.chooseEntry({type: 'saveFile', suggestedName: filename, accepts}, function(entry) {
if (chrome.runtime.lastError) { if (chrome.runtime.lastError) {
console.error(chrome.runtime.lastError.message); console.error(chrome.runtime.lastError.message);
@ -642,17 +640,17 @@ TABS.vtx.initialize = function (callback) {
writer.onwriteend = function() { writer.onwriteend = function() {
dump_html_to_msp(); dump_html_to_msp();
let vtxConfig = createVtxConfigInfo(); const vtxConfig = createVtxConfigInfo();
let text = JSON.stringify(vtxConfig, null, 4); const text = JSON.stringify(vtxConfig, null, 4);
let data = new Blob([text], { type: "application/json" }); const data = new Blob([text], { type: "application/json" });
// we get here at the end of the truncate method, change to the new end // we get here at the end of the truncate method, change to the new end
writer.onwriteend = function() { writer.onwriteend = function() {
analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'VtxTableSave', text.length); analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'VtxTableSave', text.length);
console.log(vtxConfig) console.log(vtxConfig);
console.log('Write VTX file end'); console.log('Write VTX file end');
GUI.log(i18n.getMessage('vtxSavedFileOk')); GUI.log(i18n.getMessage('vtxSavedFileOk'));
} };
writer.write(data); writer.write(data);
}; };
@ -668,13 +666,13 @@ TABS.vtx.initialize = function (callback) {
function load_json() { function load_json() {
let suffix = 'json'; const suffix = 'json';
let accepts = [{ const accepts = [{
description: suffix.toUpperCase() + ' files', extensions: [suffix], description: `${suffix.toUpperCase()} files`, extensions: [suffix],
}]; }];
chrome.fileSystem.chooseEntry({type: 'openFile', accepts: accepts}, function(entry) { chrome.fileSystem.chooseEntry({type: 'openFile', accepts}, function(entry) {
if (chrome.runtime.lastError) { if (chrome.runtime.lastError) {
console.error(chrome.runtime.lastError.message); console.error(chrome.runtime.lastError.message);
@ -688,14 +686,14 @@ TABS.vtx.initialize = function (callback) {
entry.file(function(file) { entry.file(function(file) {
let reader = new FileReader(); const reader = new FileReader();
reader.onload = function(e) { reader.onload = function(e) {
let text = e.target.result; const text = e.target.result;
try { try {
let vtxConfig = JSON.parse(text); const vtxConfig = JSON.parse(text);
validateVtxJson( validateVtxJson(
vtxConfig, vtxConfig,
@ -745,7 +743,7 @@ TABS.vtx.initialize = function (callback) {
console.log('Pasted content: ', text); console.log('Pasted content: ', text);
let vtxConfig = JSON.parse(text); const vtxConfig = JSON.parse(text);
validateVtxJson( validateVtxJson(
vtxConfig, vtxConfig,
@ -777,7 +775,7 @@ TABS.vtx.initialize = function (callback) {
); );
} catch (err) { } catch (err) {
console.error('Failed loading VTX file config: ' + err); console.error(`Failed loading VTX file config: ${err}`);
GUI.log(i18n.getMessage('vtxLoadClipboardKo')); GUI.log(i18n.getMessage('vtxLoadClipboardKo'));
} }
@ -845,7 +843,7 @@ TABS.vtx.initialize = function (callback) {
TABS.vtx.vtxTableSavePending = false; TABS.vtx.vtxTableSavePending = false;
var oldText = $("#save_button").text(); const oldText = $("#save_button").text();
$("#save_button").html(i18n.getMessage('vtxButtonSaved')); $("#save_button").html(i18n.getMessage('vtxButtonSaved'));
setTimeout(function () { setTimeout(function () {
$("#save_button").html(oldText); $("#save_button").html(oldText);
@ -858,7 +856,7 @@ TABS.vtx.initialize = function (callback) {
function dump_html_to_msp() { function dump_html_to_msp() {
// General config // General config
let frequencyEnabled = $("#vtx_frequency_channel").prop('checked'); const frequencyEnabled = $("#vtx_frequency_channel").prop('checked');
if (frequencyEnabled) { if (frequencyEnabled) {
VTX_CONFIG.vtx_frequency = parseInt($("#vtx_frequency").val()); VTX_CONFIG.vtx_frequency = parseInt($("#vtx_frequency").val());
VTX_CONFIG.vtx_band = 0; VTX_CONFIG.vtx_band = 0;
@ -885,8 +883,8 @@ TABS.vtx.initialize = function (callback) {
for (let i = 1; i <= VTX_CONFIG.vtx_table_powerlevels; i++) { for (let i = 1; i <= VTX_CONFIG.vtx_table_powerlevels; i++) {
TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1] = {}; TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1] = {};
TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_number = i; TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_number = i;
TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_value = parseInt($("#vtx_table_powerlevels_" + i).val()); TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_value = parseInt($(`#vtx_table_powerlevels_${i}`).val());
TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_label = $("#vtx_table_powerlabels_" + i).val(); TABS.vtx.VTXTABLE_POWERLEVEL_LIST[i - 1].vtxtable_powerlevel_label = $(`#vtx_table_powerlabels_${i}`).val();
} }
// Bands and channels // Bands and channels
@ -896,13 +894,13 @@ TABS.vtx.initialize = function (callback) {
for (let i = 1; i <= VTX_CONFIG.vtx_table_bands; i++) { for (let i = 1; i <= VTX_CONFIG.vtx_table_bands; i++) {
TABS.vtx.VTXTABLE_BAND_LIST[i - 1] = {}; TABS.vtx.VTXTABLE_BAND_LIST[i - 1] = {};
TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_number = i; TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_number = i;
TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_name = $("#vtx_table_band_name_" + i).val(); TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_name = $(`#vtx_table_band_name_${i}`).val();
TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_letter = $("#vtx_table_band_letter_" + i).val(); TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_letter = $(`#vtx_table_band_letter_${i}`).val();
TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_is_factory_band = $("#vtx_table_band_factory_" + i).prop('checked'); TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_is_factory_band = $(`#vtx_table_band_factory_${i}`).prop('checked');
TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_frequencies = []; TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_frequencies = [];
for (let j = 1; j <= VTX_CONFIG.vtx_table_channels; j++) { for (let j = 1; j <= VTX_CONFIG.vtx_table_channels; j++) {
TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_frequencies.push(parseInt($("#vtx_table_band_channel_" + i + "_" + j).val())); TABS.vtx.VTXTABLE_BAND_LIST[i - 1].vtxtable_band_frequencies.push(parseInt($(`#vtx_table_band_channel_${i}_${j}`).val()));
} }
} }
@ -911,10 +909,10 @@ TABS.vtx.initialize = function (callback) {
// Copies from the MSP data to the vtxInfo object (JSON) // Copies from the MSP data to the vtxInfo object (JSON)
function createVtxConfigInfo() { function createVtxConfigInfo() {
let vtxConfig = {}; const vtxConfig = {
description: "Betaflight VTX Config file",
vtxConfig.description = "Betaflight VTX Config file"; version: "1.0",
vtxConfig.version = "1.0"; };
vtxConfig.vtx_table = {}; vtxConfig.vtx_table = {};
@ -938,28 +936,31 @@ TABS.vtx.initialize = function (callback) {
} }
function creatLuaTables(vtxConfig) { function creatLuaTables(vtxConfig) {
let bandsString = "bandTable = { [0]=\"U\""; let bandsString = "bandTable = { [0]=\"U\"";
let frequenciesString = "frequencyTable = {\n"; let frequenciesString = "frequencyTable = {\n";
let freqBandsString = "frequenciesPerBand = ";
let powersString = "powerTable = { "; const bandsList = vtxConfig.vtx_table.bands_list;
let bands_list = vtxConfig.vtx_table.bands_list; for (let index = 0, len = bandsList.length; index < len; ++index) {
let power_list = vtxConfig.vtx_table.powerlevels_list; bandsString += `, "${bandsList[index].letter}"`;
var index, len, i, l;
for (index = 0, len = bands_list.length; index < len; ++index) {
bandsString += ", \"" + bands_list[index].letter + "\"";
frequenciesString += " { "; frequenciesString += " { ";
for (i = 0, l = bands_list[index].frequencies.length; i < l; ++i) { for (let i = 0, l = bandsList[index].frequencies.length; i < l; ++i) {
frequenciesString += bands_list[index].frequencies[i] + ", "; frequenciesString += `${bandsList[index].frequencies[i]}, `;
} }
frequenciesString += "},\n"; frequenciesString += "},\n";
} }
bandsString += " },\n"; bandsString += " },\n";
frequenciesString += " },\n"; frequenciesString += " },\n";
freqBandsString += bands_list[1].frequencies.length + ",\n";
for (index = 0, len = power_list.length; index < len; ++index) { const freqBandsString = `frequenciesPerBand = ${bandsList[1].frequencies.length},\n`;
powersString += "[" + (index + 1) + "]=" + power_list[index].label + ", ";
const powerList = vtxConfig.vtx_table.powerlevels_list;
let powersString = "powerTable = { ";
for (let index = 0, len = powerList.length; index < len; ++index) {
powersString += `[${(index + 1)}]=${powerList[index].label}, `;
} }
powersString += "},\n"; powersString += "},\n";
return `return {\n ${frequenciesString} ${freqBandsString} ${bandsString} ${powersString}}`; return `return {\n ${frequenciesString} ${freqBandsString} ${bandsString} ${powersString}}`;
} }