1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-17 13:25:22 +03:00

Motor/Servo Output tab & port usage indicator

This commit is contained in:
cTn 2013-04-10 18:49:25 +02:00
parent 43228abb72
commit 6e2afc6913
9 changed files with 215 additions and 8 deletions

View file

@ -85,6 +85,9 @@ var SENSOR_DATA = {
altitude: 0
};
var MOTOR_DATA = new Array(8);
var SERVO_DATA = new Array(8);
$(document).ready(function() {
port_picker = $('div#port-picker .port select');
baud_picker = $('div#port-picker #baud');
@ -134,6 +137,11 @@ $(document).ready(function() {
clearTimeout(connection_delay);
clearInterval(serial_poll);
clearInterval(port_usage_poll);
// Change port utilization to 0
$('span.port-usage').html('0%');
$(this).text('Connect');
$(this).removeClass('active');
@ -162,6 +170,7 @@ function onOpen(openInfo) {
connection_delay = setTimeout(function() {
// start polling
serial_poll = setInterval(readPoll, 10);
port_usage_poll = setInterval(port_usage, 1000);
// request configuration data
send_message(MSP_codes.MSP_IDENT, MSP_codes.MSP_IDENT);
@ -203,6 +212,7 @@ var message_length_received = 0;
var message_buffer;
var message_buffer_uint8_view;
var message_checksum = 0;
var char_counter = 0;
function onCharRead(readInfo) {
if (readInfo && readInfo.bytesRead > 0 && readInfo.data) {
@ -272,6 +282,8 @@ function onCharRead(readInfo) {
message_state = 0;
break;
}
char_counter++;
}
}
}
@ -326,6 +338,46 @@ function process_message(code, data) {
CONFIG.version = parseFloat((view.getUint8(0) / 100).toFixed(2));
CONFIG.multiType = view.getUint8(1);
$('.software-version').html(CONFIG.version);
// TODO: utilize this info
switch (CONFIG.multiType) {
case 1: // TRI
break;
case 2: // QUAD+
break;
case 3: // QUAD X
break;
case 4: // BI
break;
case 5: // GIMBAL
break;
case 6: // Y6
break;
case 7: // HEX 6
break;
case 8: // FLYING_WING
break;
case 9: // Y4
break;
case 10: // HEX6 X
break;
case 11: // OCTO X8
case 12:
case 13:
break;
case 14: // AIRPLANE
break;
case 15: // Heli 120
break;
case 16: // Heli 90
break;
case 17: // Vtail
break;
case 18: // HEX6 H
break;
}
// IDENT received, show the tab content
$('#tabs li a:first').click();
break;
@ -351,10 +403,20 @@ function process_message(code, data) {
SENSOR_DATA.magnetometer[2] = view.getInt16(16, 1) / 3;
break;
case MSP_codes.MSP_SERVO:
console.log(data);
var needle = 0;
for (var i = 0; i < SERVO_DATA.length; i++) {
SERVO_DATA[i] = view.getUint16(needle, 1);
needle += 2;
}
break;
case MSP_codes.MSP_MOTOR:
console.log(data);
var needle = 0;
for (var i = 0; i < MOTOR_DATA.length; i++) {
MOTOR_DATA[i] = view.getUint16(needle, 1);
needle += 2;
}
break;
case MSP_codes.MSP_RC:
RC.roll = view.getUint16(0, 1);
@ -498,6 +560,14 @@ function process_message(code, data) {
}
}
function port_usage() {
var port_usage = (char_counter * 10 / selected_baud) * 100;
$('span.port-usage').html(parseInt(port_usage) + '%');
// reset counter
char_counter = 0;
}
function sensor_status(sensors_detected) {
var e_sensor_status = $('div#sensor-status');