From 1e981d50a49e07f2ce1eb8ef96f0700c0454c795 Mon Sep 17 00:00:00 2001 From: Michel Pastor Date: Thu, 5 Apr 2018 15:37:14 +0200 Subject: [PATCH] Add MSP2_INAV_OUTPUT_MAPPING decoding --- js/fc.js | 5 ++++- js/msp/MSPCodes.js | 1 + js/msp/MSPHelper.js | 23 ++++++++++++++++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/js/fc.js b/js/fc.js index 4d872b03..a12812a7 100644 --- a/js/fc.js +++ b/js/fc.js @@ -52,7 +52,8 @@ var CONFIG, FW_CONFIG, DEBUG_TRACE, MIXER_CONFIG, - BATTERY_CONFIG; + BATTERY_CONFIG, + OUTPUT_MAPPING; var FC = { MAX_SERVO_RATE: 125, @@ -490,6 +491,8 @@ var FC = { }; RXFAIL_CONFIG = []; + + OUTPUT_MAPPING = []; }, getFeatures: function () { var features = [ diff --git a/js/msp/MSPCodes.js b/js/msp/MSPCodes.js index 7a2b7450..9b5a3982 100644 --- a/js/msp/MSPCodes.js +++ b/js/msp/MSPCodes.js @@ -169,6 +169,7 @@ var MSPCodes = { MSPV2_INAV_RATE_PROFILE: 0x2007, MSPV2_INAV_SET_RATE_PROFILE: 0x2008, MSPV2_INAV_AIR_SPEED: 0x2009, + MSPV2_INAV_OUTPUT_MAPPING: 0x200A, MSP2_INAV_MIXER: 0x2010, MSP2_INAV_SET_MIXER: 0x2011, diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index e1e60fe6..5c1e5afc 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -1328,7 +1328,24 @@ var mspHelper = (function (gui) { case MSPCodes.MSP2_INAV_OSD_SET_PREFERENCES: console.log('OSD preferences saved'); break; - + case MSPCodes.MSPV2_INAV_OUTPUT_MAPPING: + OUTPUT_MAPPING = []; + output_usage_values = [ + { usage: 'MC_MOTOR', value: (1<<2) }, + { usage: 'MC_SERVO', value: (1<<3) }, + { usage: 'FW_MOTOR', value: (1<<5) }, + { usage: 'FW_SERVO', value: (1<<6) } + ]; + for (i = 0; i < data.byteLength; ++i) { + output_usage_value = data.getUint8(i); + output_usage = []; + for (usage_value_index = 0; usage_value_index < output_usage_values.length; ++usage_value_index) { + if (output_usage_value & output_usage_values[usage_value_index].value) + output_usage.push(output_usage_values[usage_value_index].usage) + } + OUTPUT_MAPPING.push(output_usage); + } + break; default: console.log('Unknown code detected: ' + dataHandler.code); } else { @@ -2528,6 +2545,10 @@ var mspHelper = (function (gui) { MSP.send_message(MSPCodes.MSPV2_INAV_MISC, false, false, callback); }; + self.loadOutputMapping = function (callback) { + MSP.send_message(MSPCodes.MSPV2_INAV_OUTPUT_MAPPING, false, false, callback); + }; + self.loadBatteryConfig = function (callback) { MSP.send_message(MSPCodes.MSPV2_BATTERY_CONFIG, false, false, callback); };