diff options
author | Pawel Spychalski (DzikuVx) <pspychalski@gmail.com> | 2019-02-26 10:46:09 +0300 |
---|---|---|
committer | Pawel Spychalski (DzikuVx) <pspychalski@gmail.com> | 2019-02-26 10:46:09 +0300 |
commit | 91e947fc5c286c9a4b8b249d12774d2c5004a0bb (patch) | |
tree | 6f0b445049a4f7611a75bfda300935504adc57df /js | |
parent | 529c40e556612faead0020f928f019776857d411 (diff) | |
parent | 4c59b7dc436e4c3c86882d3a8085be1761ee8b53 (diff) |
Merge remote-tracking branch 'origin/master' into dzikuvx-old-version-cleanup
Diffstat (limited to 'js')
-rw-r--r-- | js/appUpdater.js | 20 | ||||
-rw-r--r-- | js/boards.js | 57 | ||||
-rwxr-xr-x | js/data_storage.js | 2 | ||||
-rw-r--r-- | js/fc.js | 1 | ||||
-rw-r--r-- | js/msp/MSPCodes.js | 9 | ||||
-rw-r--r-- | js/msp/MSPHelper.js | 75 | ||||
-rw-r--r-- | js/periodicStatusUpdater.js | 10 | ||||
-rw-r--r-- | js/serial.js | 4 | ||||
-rwxr-xr-x | js/serial_backend.js | 16 |
9 files changed, 104 insertions, 90 deletions
diff --git a/js/appUpdater.js b/js/appUpdater.js index 1aff6f7c..74044ef2 100644 --- a/js/appUpdater.js +++ b/js/appUpdater.js @@ -7,19 +7,15 @@ appUpdater.checkRelease = function (currVersion) { $.get('https://api.github.com/repos/iNavFlight/inav-configurator/releases', function (releaseData) { GUI.log('Loaded release information from GitHub.'); //Git return sorted list, 0 - last release - if (semver.gt(releaseData[0].tag_name, currVersion)) { - GUI.log(releaseData[0].tag_name, chrome.runtime.getManifest().version); - GUI.log(currVersion); - //For download zip - // releaseData[0].assets.forEach(function(item, i) { - // if (str.indexOf(item.name) !== -1) { - // console.log(item); - // downloadUrl = item.browser_download_url; - // } - // }); + let newVersion = releaseData[0].tag_name; + let newPrerelase = releaseData[0].prerelease; + + if (newPrerelase == false && semver.gt(newVersion, currVersion)) { + GUI.log(newVersion, chrome.runtime.getManifest().version); + GUI.log(currVersion); - GUI.log('New version aviable!'); + GUI.log('New version available!'); modalStart = new jBox('Modal', { width: 400, height: 200, @@ -37,4 +33,4 @@ appUpdater.checkRelease = function (currVersion) { $('#update-notification-download').on('click', function () { modalStart.close(); }); -};
\ No newline at end of file +}; diff --git a/js/boards.js b/js/boards.js index 6c6070c3..a4d40a40 100644 --- a/js/boards.js +++ b/js/boards.js @@ -2,10 +2,6 @@ var BOARD_DEFINITIONS = [ { - name: "CC3D", - identifier: "CC3D", - vcp: true - }, { name: "ChebuzzF3", identifier: "CHF3", vcp: false @@ -33,64 +29,29 @@ var BOARD_DEFINITIONS = [ identifier: "103R", vcp: false }, { - name: "Sparky", - identifier: "SPKY", - vcp: true - }, { - name: "STM32F3Discovery", - identifier: "SDF3", - vcp: true - }, { - name: "Colibri Race", - identifier: "CLBR", - vcp: true - }, { name: "SP Racing F3", identifier: "SRF3", vcp: false - }, { - name: "SP Racing F3 Mini", - identifier: "SRFM", - vcp: true - }, { - name: "MotoLab", - identifier: "MOTO", - vcp: true - }, { - name: "Omnibus", - identifier: "OMNI", - vcp: true - }, { - name: "Airbot F4", - identifier: "ABF4", - vcp: true - }, { - name: "Revolution", - identifier: "REVO", - vcp: true - }, { - name: "Omnibus F4", - identifier: "OBF4", - vcp: true - }, { - name: "Omnibus F4 Pro", - identifier: "OBSD", - vcp: true } ]; var DEFAULT_BOARD_DEFINITION = { name: "Unknown", identifier: "????", - vcp: false + vcp: true }; var BOARD = { }; -BOARD.find_board_definition = function (identifier) { - for (var i = 0; i < BOARD_DEFINITIONS.length; i++) { - var candidate = BOARD_DEFINITIONS[i]; +BOARD.hasVcp = function (identifier) { + let board = BOARD.findDefinition(identifier); + return !!board.vcp; +} + +BOARD.findDefinition = function (identifier) { + for (let i = 0; i < BOARD_DEFINITIONS.length; i++) { + let candidate = BOARD_DEFINITIONS[i]; if (candidate.identifier == identifier) { return candidate; diff --git a/js/data_storage.js b/js/data_storage.js index ae454037..4b3a0a20 100755 --- a/js/data_storage.js +++ b/js/data_storage.js @@ -2,7 +2,7 @@ var CONFIGURATOR = { // all versions are specified and compared using semantic versioning http://semver.org/ - 'firmwareVersionAccepted': '1.9.0', + 'firmwareVersionAccepted': '2.0.0', 'connectionValid': false, 'connectionValidCliOnly': false, 'cliActive': false, @@ -198,6 +198,7 @@ var FC = { sonar: 0, air_speed: 0, kinematics: [0.0, 0.0, 0.0], + temperature: [0, 0, 0, 0, 0, 0, 0, 0], debug: [0, 0, 0, 0] }; diff --git a/js/msp/MSPCodes.js b/js/msp/MSPCodes.js index 290f362f..77fe20e9 100644 --- a/js/msp/MSPCodes.js +++ b/js/msp/MSPCodes.js @@ -194,5 +194,12 @@ var MSPCodes = { MSP2_INAV_SELECT_BATTERY_PROFILE: 0x2018, - MSP2_INAV_DEBUG: 0x2019 + MSP2_INAV_DEBUG: 0x2019, + + MSP2_BLACKBOX_CONFIG: 0x201A, + MSP2_SET_BLACKBOX_CONFIG: 0x201B, + + MSP2_INAV_TEMP_SENSOR_CONFIG: 0x201C, + MSP2_INAV_SET_TEMP_SENSOR_CONFIG: 0x201D, + MSP2_INAV_TEMPERATURES: 0x201E }; diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index 198e3065..20d8f3b0 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -491,14 +491,27 @@ var mspHelper = (function (gui) { case MSPCodes.MSP_SERVO_MIX_RULES: SERVO_RULES.flush(); - if (data.byteLength % 7 === 0) { - for (i = 0; i < data.byteLength; i += 7) { - SERVO_RULES.put(new ServoMixRule( - data.getInt8(i), - data.getInt8(i + 1), - data.getInt8(i + 2), - data.getInt8(i + 3) - )); + if (semver.gte(CONFIG.flightControllerVersion, "2.1.0")) { + if (data.byteLength % 8 === 0) { + for (i = 0; i < data.byteLength; i += 8) { + SERVO_RULES.put(new ServoMixRule( + data.getInt8(i), + data.getInt8(i + 1), + data.getInt16(i + 2, true), + data.getInt8(i + 4) + )); + } + } + } else { + if (data.byteLength % 7 === 0) { + for (i = 0; i < data.byteLength; i += 7) { + SERVO_RULES.put(new ServoMixRule( + data.getInt8(i), + data.getInt8(i + 1), + data.getInt8(i + 2), + data.getInt8(i + 3) + )); + } } } SERVO_RULES.cleanup(); @@ -1427,6 +1440,22 @@ var mspHelper = (function (gui) { case MSPCodes.MSP2_INAV_SET_MC_BRAKING: console.log('Braking config saved'); break; + case MSPCodes.MSP2_BLACKBOX_CONFIG: + BLACKBOX.supported = (data.getUint8(0) & 1) != 0; + BLACKBOX.blackboxDevice = data.getUint8(1); + BLACKBOX.blackboxRateNum = data.getUint16(2); + BLACKBOX.blackboxRateDenom = data.getUint16(4); + break; + case MSPCodes.MSP2_SET_BLACKBOX_CONFIG: + console.log("Blackbox config saved"); + break; + + case MSPCodes.MSP2_INAV_TEMPERATURES: + for (i = 0; i < 8; ++i) { + temp_decidegrees = data.getInt16(i * 2, true); + SENSOR_DATA.temperature[i] = temp_decidegrees / 10; // °C + } + break; default: console.log('Unknown code detected: ' + dataHandler.code); @@ -2124,15 +2153,22 @@ var mspHelper = (function (gui) { }; self.sendBlackboxConfiguration = function (onDataCallback) { - var message = [ - BLACKBOX.blackboxDevice & 0xFF, - BLACKBOX.blackboxRateNum & 0xFF, - BLACKBOX.blackboxRateDenom & 0xFF - ]; - + var buffer = []; + var messageId = MSPCodes.MSP_SET_BLACKBOX_CONFIG; + buffer.push(BLACKBOX.blackboxDevice & 0xFF); + if (semver.gte(CONFIG.apiVersion, "2.3.0")) { + messageId = MSPCodes.MSP2_SET_BLACKBOX_CONFIG; + buffer.push(lowByte(BLACKBOX.blackboxRateNum)); + buffer.push(highByte(BLACKBOX.blackboxRateNum)); + buffer.push(lowByte(BLACKBOX.blackboxRateDenom)); + buffer.push(highByte(BLACKBOX.blackboxRateDenom)); + } else { + buffer.push(BLACKBOX.blackboxRateNum & 0xFF); + buffer.push(BLACKBOX.blackboxRateDenom & 0xFF); + } //noinspection JSUnusedLocalSymbols - MSP.send_message(MSPCodes.MSP_SET_BLACKBOX_CONFIG, message, false, function (response) { - onDataCallback(); + MSP.send_message(messageId, buffer, false, function (response) { + onDataCallback(); }); }; @@ -2213,7 +2249,12 @@ var mspHelper = (function (gui) { buffer.push(servoIndex); buffer.push(servoRule.getTarget()); buffer.push(servoRule.getInput()); - buffer.push(servoRule.getRate()); + if (semver.gte(CONFIG.flightControllerVersion, "2.1.0")) { + buffer.push(lowByte(servoRule.getRate())); + buffer.push(highByte(servoRule.getRate())); + } else { + buffer.push(servoRule.getRate()); + } buffer.push(servoRule.getSpeed()); buffer.push(0); buffer.push(0); diff --git a/js/periodicStatusUpdater.js b/js/periodicStatusUpdater.js index 750de1d6..7768a0fc 100644 --- a/js/periodicStatusUpdater.js +++ b/js/periodicStatusUpdater.js @@ -19,15 +19,11 @@ helper.periodicStatusUpdater = (function () { } if (baudSpeed >= 115200) { - return 200; + return 300; } else if (baudSpeed >= 57600) { - return 400; - } else if (baudSpeed >= 38400) { - return 500; - } else if (baudSpeed >= 19200) { return 600; - } else if (baudSpeed >= 9600) { - return 750; + } else if (baudSpeed >= 38400) { + return 800; } else { return 1000; } diff --git a/js/serial.js b/js/serial.js index 5fe661be..98a1f9ae 100644 --- a/js/serial.js +++ b/js/serial.js @@ -300,9 +300,9 @@ var serial = { */ getTimeout: function () { if (serial.bitrate >= 57600) { - return 1500; + return 3000; } else { - return 2500; + return 4000; } } diff --git a/js/serial_backend.js b/js/serial_backend.js index 2226d030..677c7704 100755 --- a/js/serial_backend.js +++ b/js/serial_backend.js @@ -22,7 +22,18 @@ $(document).ready(function () { GUI.handleReconnect = function ($tabElement) { - if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect + let modal; + + if (BOARD.hasVcp(CONFIG.boardIdentifier)) { // VCP-based flight controls may crash old drivers, we catch and reconnect + + modal = new jBox('Modal', { + width: 400, + height: 100, + animation: false, + closeOnClick: false, + closeOnEsc: false, + content: $('#modal-reconnect') + }).open(); /* Disconnect @@ -35,6 +46,7 @@ $(document).ready(function () { Connect again */ setTimeout(function start_connection() { + modal.close(); $('a.connect').click(); /* @@ -46,7 +58,7 @@ $(document).ready(function () { }, 500); } - }, 5000); + }, 7000); } else { helper.timeout.add('waiting_for_bootup', function waiting_for_bootup() { |