From 5c26f60e8b209503549e92fde6c67fc8fb5b27f4 Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Sat, 17 Dec 2016 10:27:39 +0100 Subject: [PATCH] sensor status fix --- js/msp/MSPHelper.js | 18 +++++++++++++++--- js/serial_backend.js | 9 +++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index 782301f0..93710f2d 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -55,7 +55,15 @@ var mspHelper = (function (gui) { CONFIG.profile = data.getUint8(10); gui.updateProfileChange(); gui.updateStatusBar(); - sensor_status(CONFIG.activeSensors); + + /* + * Update sensor status only for older firmwares + * Newer firmwares use MSP_STATUS_EX instead + */ + if (semver.lt(CONFIG.flightControllerVersion, "1.5.0")) { + sensor_status(CONFIG.activeSensors); + } + break; case MSPCodes.MSP_STATUS_EX: CONFIG.cycleTime = data.getUint16(0, 1); @@ -65,7 +73,9 @@ var mspHelper = (function (gui) { CONFIG.profile = data.getUint8(10); CONFIG.cpuload = data.getUint16(11, 1); - sensor_status(CONFIG.activeSensors); + if (semver.lt(CONFIG.flightControllerVersion, "1.5.0")) { + sensor_status(CONFIG.activeSensors); + } gui.updateStatusBar(); break; @@ -79,7 +89,9 @@ var mspHelper = (function (gui) { SENSOR_STATUS.rangeHwStatus = data.getUint8(6); SENSOR_STATUS.speedHwStatus = data.getUint8(7); SENSOR_STATUS.flowHwStatus = data.getUint8(8); - sensor_status_ex(SENSOR_STATUS); + if (semver.gte(CONFIG.flightControllerVersion, "1.5.0")) { + sensor_status_ex(SENSOR_STATUS); + } break; case MSPCodes.MSP_RAW_IMU: diff --git a/js/serial_backend.js b/js/serial_backend.js index 265f2930..0b4225bc 100755 --- a/js/serial_backend.js +++ b/js/serial_backend.js @@ -308,6 +308,10 @@ function read_serial(info) { } } +/** + * Sensor handler used in INAV >= 1.5 + * @param hw_status + */ function sensor_status_ex(hw_status) { var statusHash = sensor_status_hash(hw_status); @@ -363,6 +367,11 @@ function sensor_status_hash(hw_status) hw_status.flowHwStatus; } +/** + * Legacy sensor handler used in INAV < 1.5 versions + * @param sensors_detected + * @deprecated + */ function sensor_status(sensors_detected) { SENSOR_STATUS.isHardwareHealthy = 1; SENSOR_STATUS.gyroHwStatus = have_sensor(sensors_detected, 'gyro') ? 1 : 0;