diff --git a/src/js/port_usage.js b/src/js/port_usage.js index 8100983d..adfe9521 100644 --- a/src/js/port_usage.js +++ b/src/js/port_usage.js @@ -1,13 +1,13 @@ 'use strict'; -var PortUsage = { +const PortUsage = { previous_received: 0, previous_sent: 0, port_usage_down: 0, port_usage_up: 0, initialize: function() { - var self = this; + const self = this; self.main_timer_reference = setInterval(function() { self.update(); @@ -15,8 +15,8 @@ var PortUsage = { }, update: function() { if (serial.bitrate) { - var port_usage_down = parseInt(((serial.bytesReceived - this.previous_received) * 10 / serial.bitrate) * 100); - var port_usage_up = parseInt(((serial.bytesSent - this.previous_sent) * 10 / serial.bitrate) * 100); + const port_usage_down = parseInt(((serial.bytesReceived - this.previous_received) * 10 / serial.bitrate) * 100); + const port_usage_up = parseInt(((serial.bytesSent - this.previous_sent) * 10 / serial.bitrate) * 100); this.previous_received = serial.bytesReceived; this.previous_sent = serial.bytesSent; @@ -35,4 +35,4 @@ var PortUsage = { this.port_usage_down = 0; this.port_usage_up = 0; } -}; \ No newline at end of file +}; diff --git a/src/js/serial.js b/src/js/serial.js index dfc3718f..2b838275 100644 --- a/src/js/serial.js +++ b/src/js/serial.js @@ -46,15 +46,15 @@ const serial = { case 'system_error': // we might be able to recover from this one if (!self.failed++) { chrome.serial.setPaused(self.connectionId, false, function () { - self.getInfo(function (info) { - if (info) { - if (!info.paused) { + self.getInfo(function (getInfo) { + if (getInfo) { + if (!getInfo.paused) { console.log(`${self.connectionType}: connection recovered from last onReceiveError`); self.failed = 0; } else { console.log(`${self.connectionType}: connection did not recover from last onReceiveError, disconnecting`); GUI.log(i18n.getMessage('serialUnrecoverable')); - self.errorHandler(info.error, 'receive'); + self.errorHandler(getInfo.error, 'receive'); } } else { self.checkChromeRunTimeError(); @@ -69,13 +69,13 @@ const serial = { self.error = info.error; setTimeout(function() { chrome.serial.setPaused(info.connectionId, false, function() { - self.getInfo(function (info) { - if (info) { - if (info.paused) { + self.getInfo(function (_info) { + if (_info) { + if (_info.paused) { // assume unrecoverable, disconnect console.log(`${self.connectionType}: connection did not recover from ${self.error} condition, disconnecting`); GUI.log(i18n.getMessage('serialUnrecoverable')); - self.errorHandler(info.error, 'receive'); + self.errorHandler(_info.error, 'receive'); } else { console.log(`${self.connectionType}: connection recovered from ${self.error} condition`); @@ -94,6 +94,8 @@ const serial = { case 'frame_error': case 'parity_error': GUI.log(i18n.getMessage('serialError' + inflection.camelize(info.error))); + self.errorHandler(info.error, 'receive'); + break; case 'break': // This seems to be the error that is thrown under NW.js in Windows when the device reboots after typing 'exit' in CLI case 'disconnected': case 'device_lost': @@ -299,7 +301,7 @@ const serial = { if (self.outputBuffer.length) { // keep the buffer withing reasonable limits if (self.outputBuffer.length > 100) { - var counter = 0; + let counter = 0; while (self.outputBuffer.length > 100) { self.outputBuffer.pop(); diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index c675f506..009b14b7 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -1,11 +1,11 @@ 'use strict'; -var mspHelper; -var connectionTimestamp; +let mspHelper; +let connectionTimestamp; function initializeSerialBackend() { GUI.updateManualPortVisibility = function(){ - var selected_port = $('div#port-picker #port option:selected'); + const selected_port = $('div#port-picker #port option:selected'); if (selected_port.data().isManual) { $('#port-override-option').show(); } @@ -37,16 +37,16 @@ function initializeSerialBackend() { $('div.connect_controls a.connect').click(function () { if (GUI.connect_lock != true) { // GUI control overrides the user control - var thisElement = $(this); - var clicks = thisElement.data('clicks'); + const thisElement = $(this); + const clicks = thisElement.data('clicks'); - var toggleStatus = function() { + const toggleStatus = function() { thisElement.data("clicks", !clicks); }; GUI.configuration_loaded = false; - var selected_baud = parseInt($('div#port-picker #baud').val()); + const selected_baud = parseInt($('div#port-picker #baud').val()); const selectedPort = $('div#port-picker #port option:selected'); let portName; @@ -60,7 +60,7 @@ function initializeSerialBackend() { $('select#baud').hide(); } else if (portName !== '0') { if (!clicks) { - console.log(`Connecting to: ${portName}`); + console.log(`${serial.connectionType}: connecting to: ${portName}`); GUI.connecting_to = portName; // lock port select & baud while we are connecting / connected @@ -148,14 +148,12 @@ function finishClose(finishedCallback) { UI_PHONES.reset(); } - var wasConnected = CONFIGURATOR.connectionValid; + const wasConnected = CONFIGURATOR.connectionValid; analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Disconnected'); if (connectionTimestamp) { - var connectedTime = Date.now() - connectionTimestamp; + const connectedTime = Date.now() - connectionTimestamp; analytics.sendTiming(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected', connectedTime); - - connectedTime = undefined; } // close reset to custom defaults dialog $('#dialogResetToCustomDefaults')[0].close(); @@ -229,14 +227,12 @@ function onOpen(openInfo) { }); serial.onReceive.addListener(read_serial); - setConnectionTimeout(); - FC.resetState(); mspHelper = new MspHelper(); MSP.listen(mspHelper.process_data.bind(mspHelper)); console.log(`Requesting configuration data`); - // request configuration data + MSP.send_message(MSPCodes.MSP_API_VERSION, false, false, function () { analytics.setFlightControllerData(analytics.DATA.API_VERSION, FC.CONFIG.apiVersion); @@ -262,7 +258,7 @@ function onOpen(openInfo) { } else { analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'ConnectionRefusedFirmwareType', FC.CONFIG.flightControllerIdentifier); - var dialog = $('.dialogConnectWarning')[0]; + const dialog = $('.dialogConnectWarning')[0]; $('.dialogConnectWarning-content').html(i18n.getMessage('firmwareTypeNotSupported')); @@ -278,7 +274,7 @@ function onOpen(openInfo) { } else { analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'ConnectionRefusedFirmwareVersion', FC.CONFIG.apiVersion); - var dialog = $('.dialogConnectWarning')[0]; + const dialog = $('.dialogConnectWarning')[0]; $('.dialogConnectWarning-content').html(i18n.getMessage('firmwareVersionNotSupported', [CONFIGURATOR.API_VERSION_ACCEPTED])); @@ -322,12 +318,12 @@ function processBoardInfo() { GUI.log(i18n.getMessage('boardInfoReceived', [FC.getHardwareName(), FC.CONFIG.boardVersion])); if (bit_check(FC.CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.SUPPORTS_CUSTOM_DEFAULTS) && bit_check(FC.CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.HAS_CUSTOM_DEFAULTS) && FC.CONFIG.configurationState === FC.CONFIGURATION_STATES.DEFAULTS_BARE) { - var dialog = $('#dialogResetToCustomDefaults')[0]; + const dialog = $('#dialogResetToCustomDefaults')[0]; $('#dialogResetToCustomDefaults-acceptbtn').click(function() { analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'AcceptResetToCustomDefaults'); - var buffer = []; + const buffer = []; buffer.push(mspHelper.RESET_TYPES.CUSTOM_DEFAULTS); MSP.send_message(MSPCodes.MSP_RESET_CONF, buffer, false); @@ -409,7 +405,7 @@ function checkReportProblems() { function processUid() { MSP.send_message(MSPCodes.MSP_UID, false, false, function () { - var uniqueDeviceIdentifier = FC.CONFIG.uid[0].toString(16) + FC.CONFIG.uid[1].toString(16) + FC.CONFIG.uid[2].toString(16); + const uniqueDeviceIdentifier = FC.CONFIG.uid[0].toString(16) + FC.CONFIG.uid[1].toString(16) + FC.CONFIG.uid[2].toString(16); analytics.setFlightControllerData(analytics.DATA.MCU_ID, objectHash.sha1(uniqueDeviceIdentifier)); analytics.sendEvent(analytics.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected'); @@ -480,14 +476,14 @@ function onConnect() { // show only appropriate tabs $('#tabs ul.mode-connected li').hide(); $('#tabs ul.mode-connected li').filter(function (index) { - var classes = $(this).attr("class").split(/\s+/); - var found = false; - $.each(GUI.allowedTabs, function (index, value) { - var tabName = "tab_" + value; - if ($.inArray(tabName, classes) >= 0) { - found = true; - } - }); + const classes = $(this).attr("class").split(/\s+/); + let found = false; + $.each(GUI.allowedTabs, (_index, value) => { + const tabName = `tab_${value}`; + if ($.inArray(tabName, classes) >= 0) { + found = true; + } + }); if (FC.CONFIG.boardType == 0) { if (classes.indexOf("osd-required") >= 0) { @@ -517,13 +513,13 @@ function onConnect() { } } - var sensor_state = $('#sensor-status'); - sensor_state.show(); + const sensorState = $('#sensor-status'); + sensorState.show(); - var port_picker = $('#portsinput'); - port_picker.hide(); + const portPicker = $('#portsinput'); + portPicker.hide(); - var dataflash = $('#dataflash_wrapper_global'); + const dataflash = $('#dataflash_wrapper_global'); dataflash.show(); } @@ -538,16 +534,16 @@ function onClosed(result) { $('#tabs ul.mode-connected-cli').hide(); $('#tabs ul.mode-disconnected').show(); - var sensor_state = $('#sensor-status'); - sensor_state.hide(); + const sensorState = $('#sensor-status'); + sensorState.hide(); - var port_picker = $('#portsinput'); - port_picker.show(); + const portPicker = $('#portsinput'); + portPicker.show(); - var dataflash = $('#dataflash_wrapper_global'); + const dataflash = $('#dataflash_wrapper_global'); dataflash.hide(); - var battery = $('#quad-status_wrapper'); + const battery = $('#quad-status_wrapper'); battery.hide(); MSP.clearListeners(); @@ -579,55 +575,55 @@ function sensor_status(sensors_detected) { // set current value sensor_status.previous_sensors_detected = sensors_detected; - var e_sensor_status = $('div#sensor-status'); + const eSensorStatus = $('div#sensor-status'); if (have_sensor(sensors_detected, 'acc')) { - $('.accel', e_sensor_status).addClass('on'); - $('.accicon', e_sensor_status).addClass('active'); + $('.accel', eSensorStatus).addClass('on'); + $('.accicon', eSensorStatus).addClass('active'); } else { - $('.accel', e_sensor_status).removeClass('on'); - $('.accicon', e_sensor_status).removeClass('active'); + $('.accel', eSensorStatus).removeClass('on'); + $('.accicon', eSensorStatus).removeClass('active'); } if ((FC.CONFIG.boardType == 0 || FC.CONFIG.boardType == 2) && have_sensor(sensors_detected, 'gyro')) { - $('.gyro', e_sensor_status).addClass('on'); - $('.gyroicon', e_sensor_status).addClass('active'); + $('.gyro', eSensorStatus).addClass('on'); + $('.gyroicon', eSensorStatus).addClass('active'); } else { - $('.gyro', e_sensor_status).removeClass('on'); - $('.gyroicon', e_sensor_status).removeClass('active'); + $('.gyro', eSensorStatus).removeClass('on'); + $('.gyroicon', eSensorStatus).removeClass('active'); } if (have_sensor(sensors_detected, 'baro')) { - $('.baro', e_sensor_status).addClass('on'); - $('.baroicon', e_sensor_status).addClass('active'); + $('.baro', eSensorStatus).addClass('on'); + $('.baroicon', eSensorStatus).addClass('active'); } else { - $('.baro', e_sensor_status).removeClass('on'); - $('.baroicon', e_sensor_status).removeClass('active'); + $('.baro', eSensorStatus).removeClass('on'); + $('.baroicon', eSensorStatus).removeClass('active'); } if (have_sensor(sensors_detected, 'mag')) { - $('.mag', e_sensor_status).addClass('on'); - $('.magicon', e_sensor_status).addClass('active'); + $('.mag', eSensorStatus).addClass('on'); + $('.magicon', eSensorStatus).addClass('active'); } else { - $('.mag', e_sensor_status).removeClass('on'); - $('.magicon', e_sensor_status).removeClass('active'); + $('.mag', eSensorStatus).removeClass('on'); + $('.magicon', eSensorStatus).removeClass('active'); } if (have_sensor(sensors_detected, 'gps')) { - $('.gps', e_sensor_status).addClass('on'); - $('.gpsicon', e_sensor_status).addClass('active'); + $('.gps', eSensorStatus).addClass('on'); + $('.gpsicon', eSensorStatus).addClass('active'); } else { - $('.gps', e_sensor_status).removeClass('on'); - $('.gpsicon', e_sensor_status).removeClass('active'); + $('.gps', eSensorStatus).removeClass('on'); + $('.gpsicon', eSensorStatus).removeClass('active'); } if (have_sensor(sensors_detected, 'sonar')) { - $('.sonar', e_sensor_status).addClass('on'); - $('.sonaricon', e_sensor_status).addClass('active'); + $('.sonar', eSensorStatus).addClass('on'); + $('.sonaricon', eSensorStatus).addClass('active'); } else { - $('.sonar', e_sensor_status).removeClass('on'); - $('.sonaricon', e_sensor_status).removeClass('active'); + $('.sonar', eSensorStatus).removeClass('on'); + $('.sonaricon', eSensorStatus).removeClass('active'); } } @@ -660,7 +656,7 @@ function startLiveDataRefreshTimer() { function update_live_status() { - var statuswrapper = $('#quad-status_wrapper'); + const statuswrapper = $('#quad-status_wrapper'); $(".quad-status-contents").css({ display: 'inline-block' @@ -676,33 +672,35 @@ function update_live_status() { MSP.send_message(MSPCodes.MSP_ANALOG, false, false); } - var active = ((Date.now() - FC.ANALOG.last_received_timestamp) < 300); + const active = ((Date.now() - FC.ANALOG.last_received_timestamp) < 300); - for (var i = 0; i < FC.AUX_CONFIG.length; i++) { - if (FC.AUX_CONFIG[i] == 'ARM') { - if (bit_check(FC.CONFIG.mode, i)) - $(".armedicon").addClass('active'); - else - $(".armedicon").removeClass('active'); - } - if (FC.AUX_CONFIG[i] == 'FAILSAFE') { - if (bit_check(FC.CONFIG.mode, i)) - $(".failsafeicon").addClass('active'); - else - $(".failsafeicon").removeClass('active'); - } + for (let i = 0; i < FC.AUX_CONFIG.length; i++) { + if (FC.AUX_CONFIG[i] === 'ARM') { + if (bit_check(FC.CONFIG.mode, i)) { + $(".armedicon").addClass('active'); + } else { + $(".armedicon").removeClass('active'); + } + } + } + if (FC.AUX_CONFIG[index] === 'FAILSAFE') { + if (bit_check(FC.CONFIG.mode, i)) { + $(".failsafeicon").addClass('active'); + } else { + $(".failsafeicon").removeClass('active'); + } } if (FC.ANALOG != undefined) { - var nbCells = Math.floor(FC.ANALOG.voltage / FC.BATTERY_CONFIG.vbatmaxcellvoltage) + 1; + let nbCells = Math.floor(FC.ANALOG.voltage / FC.BATTERY_CONFIG.vbatmaxcellvoltage) + 1; if (FC.ANALOG.voltage == 0) { nbCells = 1; } - var min = FC.BATTERY_CONFIG.vbatmincellvoltage * nbCells; - var max = FC.BATTERY_CONFIG.vbatmaxcellvoltage * nbCells; - var warn = FC.BATTERY_CONFIG.vbatwarningcellvoltage * nbCells; + const min = FC.BATTERY_CONFIG.vbatmincellvoltage * nbCells; + const max = FC.BATTERY_CONFIG.vbatmaxcellvoltage * nbCells; + const warn = FC.BATTERY_CONFIG.vbatwarningcellvoltage * nbCells; const NO_BATTERY_VOLTAGE_MAXIMUM = 1.8; // Maybe is better to add a call to MSP_BATTERY_STATE but is not available for all versions @@ -713,7 +711,7 @@ function update_live_status() { }); } else { $(".battery-status").css({ - width: ((FC.ANALOG.voltage - min) / (max - min) * 100) + "%", + width: `${((FC.ANALOG.voltage - min) / (max - min) * 100)}%`, }); if (FC.ANALOG.voltage < warn) { @@ -757,18 +755,18 @@ function update_dataflash_global() { if (bytes < 1024) { return bytes + "B"; } - var kilobytes = bytes / 1024; + const kilobytes = bytes / 1024; if (kilobytes < 1024) { return Math.round(kilobytes) + "kB"; } - var megabytes = kilobytes / 1024; + const megabytes = kilobytes / 1024; return megabytes.toFixed(1) + "MB"; } - var supportsDataflash = FC.DATAFLASH.totalSize > 0; + const supportsDataflash = FC.DATAFLASH.totalSize > 0; if (supportsDataflash){ $(".noflash_global").css({