diff --git a/js/fc.js b/js/fc.js index 9656303e..79d280f1 100644 --- a/js/fc.js +++ b/js/fc.js @@ -221,7 +221,11 @@ var FC = { amperage: 0, power: 0, cell_count: 0, - battery_percentage: 0 + battery_percentage: 0, + battery_full_when_plugged_in: false, + use_capacity_thresholds: false, + battery_remaining_capacity: 0, + battery_flags: 0 }; ARMING_CONFIG = { @@ -253,7 +257,7 @@ var FC = { battery_capacity: 0, battery_capacity_warning: 0, battery_capacity_critical: 0, - battery_capacity_unit: 0 + battery_capacity_unit: 'mAh' }; BATTERY_CONFIG = { diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index a8188eb7..9c37a864 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -251,6 +251,12 @@ var mspHelper = (function (gui) { offset += 2; ANALOG.amperage = data.getInt16(offset, true) / 100; // A offset += 2; + var battery_flags = data.getUint8(offset++); + ANALOG.battery_full_when_plugged_in = (battery_flags & 1 ? true : false); + ANALOG.use_capacity_thresholds = ((battery_flags & 2) >> 1 ? true : false); + ANALOG.battery_state = (battery_flags & 12) >> 2; + ANALOG.battery_remaining_capacity = data.getUint32(offset, true); + offset += 4; //noinspection JSValidateTypes dataHandler.analog_last_received_timestamp = Date.now(); break; @@ -330,7 +336,6 @@ var mspHelper = (function (gui) { MISC.sensors_baudrate = data.getUint8(offset++); MISC.gps_ubx_sbas = data.getInt8(offset++); MISC.rssi_channel = data.getUint8(offset++); - MISC.placeholder2 = data.getUint8(offset++); MISC.mag_declination = data.getInt16(offset, 1) / 10; // -18000-18000 offset += 2; MISC.vbatscale = data.getUint16(offset, true); @@ -347,7 +352,7 @@ var mspHelper = (function (gui) { offset += 4; MISC.battery_capacity_critical = data.getUint32(offset, true); offset += 4; - MISC.battery_capacity_unit = data.getUint8(offset++); + MISC.battery_capacity_unit = (data.getUint8(offset++) ? 'Wh' : 'mAh'); break; case MSPCodes.MSPV2_INAV_BATTERY_CONFIG: BATTERY_CONFIG.vbatscale = data.getUint16(offset, true); @@ -1379,9 +1384,7 @@ var mspHelper = (function (gui) { buffer.push(MISC.gps_type); buffer.push(MISC.sensors_baudrate); buffer.push(MISC.gps_ubx_sbas); - buffer.push(MISC.multiwiicurrentoutput); buffer.push(MISC.rssi_channel); - buffer.push(MISC.placeholder2); buffer.push(lowByte(Math.round(MISC.mag_declination * 10))); buffer.push(highByte(Math.round(MISC.mag_declination * 10))); buffer.push(lowByte(MISC.vbatscale));