diff --git a/js/serial_backend.js b/js/serial_backend.js index 171543e0e2..55b4ada65f 100644 --- a/js/serial_backend.js +++ b/js/serial_backend.js @@ -445,8 +445,10 @@ function process_message(code, data, bytes) { $('.software-version').html(CONFIG.version); // IDENT received, show the tab content - configuration_received = true; - $('#tabs li a:first').click(); + if (!configuration_received) { + configuration_received = true; + $('#tabs li a:first').click(); + } break; case MSP_codes.MSP_STATUS: CONFIG.cycleTime = view.getUint16(0, 1); diff --git a/tabs/initial_setup.js b/tabs/initial_setup.js index af0a7d4c0d..7696811c22 100644 --- a/tabs/initial_setup.js +++ b/tabs/initial_setup.js @@ -60,6 +60,15 @@ function tab_initialize_initial_setup() { case 18: // HEX6 H str = 'HEX6 H'; break; + case 19: // PPM to SERVO + str = 'PPM to SERVO'; + break; + case 20: // Dualcopter + str = 'Dualcopter'; + break; + case 21: // + str = 'Singlecopter'; + break; } $('span.model').html('Model: ' + str); diff --git a/tabs/servos.html b/tabs/servos.html index 87a9f9dfef..9fa0afc152 100644 --- a/tabs/servos.html +++ b/tabs/servos.html @@ -1,3 +1,79 @@ +
- servos + Model: + + + + + + + + + +
NameMIDMINMAXThrot | Roll | Pitch | Yaw | AUX1 | AUX2 | AUX3 | AUX4Reverse Direction
+ Save
\ No newline at end of file diff --git a/tabs/servos.js b/tabs/servos.js index 15ca4d3854..96303427a7 100644 --- a/tabs/servos.js +++ b/tabs/servos.js @@ -1,6 +1,115 @@ function tab_initialize_servos() { ga_tracker.sendAppView('Servos'); - // request current Servo Config + // request current Servos Config + send_message(MSP_codes.MSP_IDENT, MSP_codes.MSP_IDENT); send_message(MSP_codes.MSP_SERVO_CONF, MSP_codes.MSP_SERVO_CONF); + + var model = $('div.tab-servos strong.model'); + var servos = []; + + setTimeout(function() { + switch (CONFIG.multiType) { + case 1: // TRI + model.html('TRI'); + + process_servos('Rear', SERVO_CONFIG[5], 5); + + servos = [5]; + break; + case 4: // BI + model.html('BI'); + + process_servos('Left', SERVO_CONFIG[4], 4); + process_servos('Right', SERVO_CONFIG[5], 5); + + servos = [4, 5]; + break; + case 5: // Gimbal + model.html('Gimbal'); + + process_servos('Pitch Servo', SERVO_CONFIG[0], 0); + process_servos('Roll Servo', SERVO_CONFIG[1], 1); + + servos = [0, 1]; + break; + case 8: // Flying Wing + model.html('Flying Wing'); + + process_servos('Left', SERVO_CONFIG[3], 3); + process_servos('Right', SERVO_CONFIG[4], 4); + + servos = [3, 4]; + break; + case 14: // Airplane + model.html('Airplane'); + + process_servos('Wing 1', SERVO_CONFIG[3], 3); + process_servos('Wing 2', SERVO_CONFIG[4], 4); + process_servos('Rudd', SERVO_CONFIG[5], 5); + process_servos('Elev', SERVO_CONFIG[6], 6); + process_servos('Thro', SERVO_CONFIG[7], 7); + + servos = [2, 3, 4, 5, 6, 7]; + break; + case 20: // Dualcopter + model.html('Dualcopter'); + + process_servos('Pitch', SERVO_CONFIG[4], 4); + process_servos('Roll', SERVO_CONFIG[5], 5); + process_servos('M 1', SERVO_CONFIG[6], 6); + process_servos('M 0', SERVO_CONFIG[7], 7); + + servos = [4, 5, 6, 7]; + break; + case 21: // Singlecopter + model.html('Singlecopter'); + + process_servos('Right', SERVO_CONFIG[3], 3); + process_servos('Left', SERVO_CONFIG[4], 4); + process_servos('Front', SERVO_CONFIG[5], 5); + process_servos('Rear', SERVO_CONFIG[6], 6); + process_servos('Motor', SERVO_CONFIG[7], 7); + + servos = [3, 4, 5, 6, 7]; + break; + } + }, 50); +} + +function process_servos(name, obj, pos) { + $('div.tab-servos table.fields').append('\ + \ + ' + name + '\ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + ' + ); + + if (obj.middle <= 7) { + $('div.tab-servos table.fields tr:last td.channel').find('input').eq(obj.middle).prop('checked', true); + } + + // UI hooks + $('div.tab-servos table.fields tr:last td.channel').find('input').click(function() { + if($(this).is(':checked')) { + $(this).parent().parent().parent().find('td.middle input').prop('disabled', true); + $('div.tab-servos table.fields tr:last td.channel').find('input').not($(this)).prop('checked', false); + } else { + $(this).parent().parent().parent().find('td.middle input').prop('disabled', false); + } + }); } \ No newline at end of file