From 607abbd04625ef3aed8d4669f6b9fce392a610f3 Mon Sep 17 00:00:00 2001 From: cTn Date: Thu, 5 Dec 2013 09:54:49 +0100 Subject: [PATCH] moving request for MSP_BOXNAMES & MSP_BOX to aux tab, as the content can dynamically change (while changing configuration via CLI) #12 --- js/serial_backend.js | 5 +- tabs/auxiliary_configuration.js | 138 ++++++++++++++++---------------- 2 files changed, 72 insertions(+), 71 deletions(-) diff --git a/js/serial_backend.js b/js/serial_backend.js index 6cd9a4e63e..f55e5ebad0 100644 --- a/js/serial_backend.js +++ b/js/serial_backend.js @@ -202,10 +202,7 @@ function onOpen(openInfo) { send_message(MSP_codes.MSP_IDENT, MSP_codes.MSP_IDENT); send_message(MSP_codes.MSP_STATUS, MSP_codes.MSP_STATUS); send_message(MSP_codes.MSP_PID, MSP_codes.MSP_PID); - send_message(MSP_codes.MSP_RC_TUNING, MSP_codes.MSP_RC_TUNING); - send_message(MSP_codes.MSP_BOXNAMES, MSP_codes.MSP_BOXNAMES); - send_message(MSP_codes.MSP_BOX, MSP_codes.MSP_BOX); - + send_message(MSP_codes.MSP_RC_TUNING, MSP_codes.MSP_RC_TUNING); }, connection_delay * 1000); } else { console.log('Failed to open serial port'); diff --git a/tabs/auxiliary_configuration.js b/tabs/auxiliary_configuration.js index a8fb038675..57a90932d1 100644 --- a/tabs/auxiliary_configuration.js +++ b/tabs/auxiliary_configuration.js @@ -1,79 +1,83 @@ function tab_initialize_auxiliary_configuration() { ga_tracker.sendAppView('Auxiliary Configuration'); GUI.active_tab = 'auxiliary_configuration'; - - // generate table from the supplied AUX names and AUX data - for (var i = 0; i < AUX_CONFIG.length; i++) { - $('.tab-auxiliary_configuration .boxes > tbody:last').append( - '' + - '' + AUX_CONFIG[i] + '' + - box_check(AUX_CONFIG_values[i], 0) + - box_check(AUX_CONFIG_values[i], 1) + - box_check(AUX_CONFIG_values[i], 2) + - - box_check(AUX_CONFIG_values[i], 3) + - box_check(AUX_CONFIG_values[i], 4) + - box_check(AUX_CONFIG_values[i], 5) + - box_check(AUX_CONFIG_values[i], 6) + - box_check(AUX_CONFIG_values[i], 7) + - box_check(AUX_CONFIG_values[i], 8) + + send_message(MSP_codes.MSP_BOXNAMES, MSP_codes.MSP_BOXNAMES, false, function() { + send_message(MSP_codes.MSP_BOX, MSP_codes.MSP_BOX, false, function() { + // generate table from the supplied AUX names and AUX data + for (var i = 0; i < AUX_CONFIG.length; i++) { + $('.tab-auxiliary_configuration .boxes > tbody:last').append( + '' + + '' + AUX_CONFIG[i] + '' + + box_check(AUX_CONFIG_values[i], 0) + + box_check(AUX_CONFIG_values[i], 1) + + box_check(AUX_CONFIG_values[i], 2) + + + box_check(AUX_CONFIG_values[i], 3) + + box_check(AUX_CONFIG_values[i], 4) + + box_check(AUX_CONFIG_values[i], 5) + - box_check(AUX_CONFIG_values[i], 9) + - box_check(AUX_CONFIG_values[i], 10) + - box_check(AUX_CONFIG_values[i], 11) + - '' - ); - } - - // UI Hooks - $('.tab-auxiliary_configuration .boxes input').change(function() { - // if any of the fields changed, unlock update button - $('a.update').addClass('active'); - }); - - $('.tab-auxiliary_configuration a.update').click(function() { - if ($(this).hasClass('active')) { - // catch the input changes - var main_needle = 0; - var needle = 0; - $('.tab-auxiliary_configuration .boxes input').each(function() { - if ($(this).is(':checked')) { - AUX_CONFIG_values[main_needle] = bit_set(AUX_CONFIG_values[main_needle], needle); - } else { - AUX_CONFIG_values[main_needle] = bit_clear(AUX_CONFIG_values[main_needle], needle); - } - - needle++; - - if (needle >= 12) { // 4 aux * 3 checkboxes = 12 bits per line - main_needle++; - - needle = 0; - } - }); - - // send over the data - var AUX_val_buffer_out = new Array(); - - var needle = 0; - for (var i = 0; i < AUX_CONFIG_values.length; i++) { - AUX_val_buffer_out[needle++] = lowByte(AUX_CONFIG_values[i]); - AUX_val_buffer_out[needle++] = highByte(AUX_CONFIG_values[i]); + box_check(AUX_CONFIG_values[i], 6) + + box_check(AUX_CONFIG_values[i], 7) + + box_check(AUX_CONFIG_values[i], 8) + + + box_check(AUX_CONFIG_values[i], 9) + + box_check(AUX_CONFIG_values[i], 10) + + box_check(AUX_CONFIG_values[i], 11) + + '' + ); } - send_message(MSP_codes.MSP_SET_BOX, AUX_val_buffer_out); - - // Save changes to EEPROM - send_message(MSP_codes.MSP_EEPROM_WRITE, MSP_codes.MSP_EEPROM_WRITE); + // UI Hooks + $('.tab-auxiliary_configuration .boxes input').change(function() { + // if any of the fields changed, unlock update button + $('a.update').addClass('active'); + }); - // remove the active status - $(this).removeClass('active'); - } - }); + $('.tab-auxiliary_configuration a.update').click(function() { + if ($(this).hasClass('active')) { + // catch the input changes + var main_needle = 0; + var needle = 0; + $('.tab-auxiliary_configuration .boxes input').each(function() { + if ($(this).is(':checked')) { + AUX_CONFIG_values[main_needle] = bit_set(AUX_CONFIG_values[main_needle], needle); + } else { + AUX_CONFIG_values[main_needle] = bit_clear(AUX_CONFIG_values[main_needle], needle); + } + + needle++; + + if (needle >= 12) { // 4 aux * 3 checkboxes = 12 bits per line + main_needle++; + + needle = 0; + } + }); + + // send over the data + var AUX_val_buffer_out = new Array(); + + var needle = 0; + for (var i = 0; i < AUX_CONFIG_values.length; i++) { + AUX_val_buffer_out[needle++] = lowByte(AUX_CONFIG_values[i]); + AUX_val_buffer_out[needle++] = highByte(AUX_CONFIG_values[i]); + } + + send_message(MSP_codes.MSP_SET_BOX, AUX_val_buffer_out); - // enable data pulling - timers.push(setInterval(aux_data_poll, 50)); + // Save changes to EEPROM + send_message(MSP_codes.MSP_EEPROM_WRITE, MSP_codes.MSP_EEPROM_WRITE); + + // remove the active status + $(this).removeClass('active'); + } + }); + + // enable data pulling + GUI.interval_add('aux_data_poll', aux_data_poll, 50, true); + }); + }); } function aux_data_poll() {