1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 17:25:20 +03:00

Support AUX1-8 on the 'Auxiliary Configuration' tab.

This commit is contained in:
Dominic Clifton 2014-06-04 19:32:45 +01:00
parent 32c2e76784
commit 7e62e98bac
3 changed files with 98 additions and 31 deletions

View file

@ -286,10 +286,22 @@ MSP.process_data = function(code, message_buffer, message_length) {
// dump previous data (if there was any) // dump previous data (if there was any)
AUX_CONFIG_values = new Array(); AUX_CONFIG_values = new Array();
// fill in current data var boxItems = data.byteLength / 2; // AUX 1-4, 2 bytes per boxItem
for (var i = 0; i < data.byteLength; i += 2) { // + 2 because uint16_t = 2 bytes if (bit_check(CONFIG.capability, 5)) {
AUX_CONFIG_values.push(data.getUint16(i, 1)); boxItems = data.byteLength / 4; // AUX 1-8, 2 bytes per boxItem for AUX 1-4 followed by 2 bytes per boxItem for AUX 5-8
} }
// fill in current data
var offset = 0;
for (var i = 0; offset < data.byteLength && i < boxItems; offset += 2, i ++) { // + 2 because uint16_t = 2 bytes
AUX_CONFIG_values.push(data.getUint16(offset, 1));
}
if (bit_check(CONFIG.capability, 5)) {
for (var i = 0; offset < data.byteLength && i < boxItems; offset += 2, i++) { // + 2 because uint16_t = 2 bytes
AUX_CONFIG_values[i] |= (data.getUint16(offset, 1) << 16);
}
}
break; break;
case MSP_codes.MSP_MISC: // 22 bytes case MSP_codes.MSP_MISC: // 22 bytes
MISC.PowerTrigger1 = data.getInt16(0, 1); MISC.PowerTrigger1 = data.getInt16(0, 1);

View file

@ -2,25 +2,41 @@
<table class="boxes"> <table class="boxes">
<tr class="heads"> <tr class="heads">
<th style="width: 18%"></th> <th style="width: 18%"></th>
<th colspan="3">AUX 1</th> <th class="channel" colspan="3">AUX 1</th>
<th colspan="3">AUX 2</th> <th class="channel" colspan="3">AUX 2</th>
<th colspan="3">AUX 3</th> <th class="channel" colspan="3">AUX 3</th>
<th colspan="3">AUX 4</th> <th class="channel" colspan="3">AUX 4</th>
<th class="channel" colspan="3">AUX 5</th>
<th class="channel" colspan="3">AUX 6</th>
<th class="channel" colspan="3">AUX 7</th>
<th class="channel" colspan="3">AUX 8</th>
</tr> </tr>
<tr class="main"> <tr class="main">
<th i18n="auxiliaryName"></th> <th i18n="auxiliaryName"></th>
<th i18n="auxiliaryLow"></th> <th class="toggle" i18n="auxiliaryLow"></th>
<th i18n="auxiliaryMed"></th> <th class="toggle" i18n="auxiliaryMed"></th>
<th i18n="auxiliaryHigh"></th> <th class="toggle" i18n="auxiliaryHigh"></th>
<th i18n="auxiliaryLow"></th> <th class="toggle" i18n="auxiliaryLow"></th>
<th i18n="auxiliaryMed"></th> <th class="toggle" i18n="auxiliaryMed"></th>
<th i18n="auxiliaryHigh"></th> <th class="toggle" i18n="auxiliaryHigh"></th>
<th i18n="auxiliaryLow"></th> <th class="toggle" i18n="auxiliaryLow"></th>
<th i18n="auxiliaryMed"></th> <th class="toggle" i18n="auxiliaryMed"></th>
<th i18n="auxiliaryHigh"></th> <th class="toggle" i18n="auxiliaryHigh"></th>
<th i18n="auxiliaryLow"></th> <th class="toggle" i18n="auxiliaryLow"></th>
<th i18n="auxiliaryMed"></th> <th class="toggle" i18n="auxiliaryMed"></th>
<th i18n="auxiliaryHigh"></th> <th class="toggle" i18n="auxiliaryHigh"></th>
<th class="toggle" i18n="auxiliaryLow"></th>
<th class="toggle" i18n="auxiliaryMed"></th>
<th class="toggle" i18n="auxiliaryHigh"></th>
<th class="toggle" i18n="auxiliaryLow"></th>
<th class="toggle" i18n="auxiliaryMed"></th>
<th class="toggle" i18n="auxiliaryHigh"></th>
<th class="toggle" i18n="auxiliaryLow"></th>
<th class="toggle" i18n="auxiliaryMed"></th>
<th class="toggle" i18n="auxiliaryHigh"></th>
<th class="toggle" i18n="auxiliaryLow"></th>
<th class="toggle" i18n="auxiliaryMed"></th>
<th class="toggle" i18n="auxiliaryHigh"></th>
</tr> </tr>
</table> </table>
<a class="update" href="#" i18n="auxiliaryButtonSave"></a> <a class="update" href="#" i18n="auxiliaryButtonSave"></a>

View file

@ -60,7 +60,23 @@ function tab_initialize_auxiliary_configuration() {
box_check(AUX_CONFIG_values[i], 9) + box_check(AUX_CONFIG_values[i], 9) +
box_check(AUX_CONFIG_values[i], 10) + box_check(AUX_CONFIG_values[i], 10) +
box_check(AUX_CONFIG_values[i], 11) + box_check(AUX_CONFIG_values[i], 11) +
'</tr>'
box_check(AUX_CONFIG_values[i], 16) +
box_check(AUX_CONFIG_values[i], 17) +
box_check(AUX_CONFIG_values[i], 18) +
box_check(AUX_CONFIG_values[i], 19) +
box_check(AUX_CONFIG_values[i], 20) +
box_check(AUX_CONFIG_values[i], 21) +
box_check(AUX_CONFIG_values[i], 22) +
box_check(AUX_CONFIG_values[i], 23) +
box_check(AUX_CONFIG_values[i], 24) +
box_check(AUX_CONFIG_values[i], 25) +
box_check(AUX_CONFIG_values[i], 26) +
box_check(AUX_CONFIG_values[i], 27) +
'</tr>'
); );
} }
@ -69,18 +85,29 @@ function tab_initialize_auxiliary_configuration() {
// catch the input changes // catch the input changes
var main_needle = 0; var main_needle = 0;
var needle = 0; var needle = 0;
var boxCountFor4AuxChannels = 3 * 4;
var boxCountPerLine = boxCountFor4AuxChannels;
if (bit_check(CONFIG.capability, 5)) {
boxCountPerLine = boxCountFor4AuxChannels * 2;
}
$('.boxes input').each(function() { $('.boxes input').each(function() {
var bitIndex = needle;
if (bit_check(CONFIG.capability, 5) && needle >= boxCountFor4AuxChannels) {
bitIndex += 4; // 0-11 bits for aux 1-4, 16-27 for aux 5-8
}
if ($(this).is(':checked')) { if ($(this).is(':checked')) {
AUX_CONFIG_values[main_needle] = bit_set(AUX_CONFIG_values[main_needle], needle); AUX_CONFIG_values[main_needle] = bit_set(AUX_CONFIG_values[main_needle], bitIndex);
} else { } else {
AUX_CONFIG_values[main_needle] = bit_clear(AUX_CONFIG_values[main_needle], needle); AUX_CONFIG_values[main_needle] = bit_clear(AUX_CONFIG_values[main_needle], bitIndex);
} }
needle++; needle++;
if (needle >= 12) { // 4 aux * 3 checkboxes = 12 bits per line if (needle >= boxCountPerLine) {
main_needle++; main_needle++;
needle = 0; needle = 0;
} }
}); });
@ -90,10 +117,16 @@ function tab_initialize_auxiliary_configuration() {
var needle = 0; var needle = 0;
for (var i = 0; i < AUX_CONFIG_values.length; i++) { 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++] = lowByte(AUX_CONFIG_values[i] & 0xFFF);
AUX_val_buffer_out[needle++] = highByte(AUX_CONFIG_values[i]); AUX_val_buffer_out[needle++] = highByte(AUX_CONFIG_values[i] & 0xFFF);
} }
if (bit_check(CONFIG.capability, 5)) {
for (var i = 0; i < AUX_CONFIG_values.length; i++) {
AUX_val_buffer_out[needle++] = lowByte((AUX_CONFIG_values[i] >> 16) & 0xFFF);
AUX_val_buffer_out[needle++] = highByte((AUX_CONFIG_values[i] >> 16) & 0xFFF);
}
}
MSP.send_message(MSP_codes.MSP_SET_BOX, AUX_val_buffer_out, false, save_to_eeprom); MSP.send_message(MSP_codes.MSP_SET_BOX, AUX_val_buffer_out, false, save_to_eeprom);
function save_to_eeprom() { function save_to_eeprom() {
@ -128,10 +161,16 @@ function tab_initialize_auxiliary_configuration() {
} }
} }
box_highlight(RC.channels[4], 2); // aux 1 box_highlight(RC.channels[4], 2); // aux 1
box_highlight(RC.channels[5], 5); // aux 2 box_highlight(RC.channels[5], 5); // aux 2
box_highlight(RC.channels[6], 8); // aux 3 box_highlight(RC.channels[6], 8); // aux 3
box_highlight(RC.channels[7], 11); // aux 4 box_highlight(RC.channels[7], 11); // aux 4
if (RC.active_channels > 8) {
box_highlight(RC.channels[8], 14); // aux 5
box_highlight(RC.channels[9], 17); // aux 6
box_highlight(RC.channels[10], 20); // aux 7
box_highlight(RC.channels[11], 23); // aux 8
}
} }
// enable data pulling // enable data pulling