From 58e81ef66b2cef4bb015718b1cb5655a83553369 Mon Sep 17 00:00:00 2001 From: Jake Dahl Date: Thu, 19 Jul 2018 12:07:32 -0600 Subject: [PATCH] multiply current measurement by -1 to force positive value for current being sunk --- src/drivers/batt_smbus/batt_smbus.cpp | 4 ++-- src/drivers/batt_smbus/batt_smbus_main.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/drivers/batt_smbus/batt_smbus.cpp b/src/drivers/batt_smbus/batt_smbus.cpp index e368ae3adb..0fae8d61eb 100644 --- a/src/drivers/batt_smbus/batt_smbus.cpp +++ b/src/drivers/batt_smbus/batt_smbus.cpp @@ -185,7 +185,7 @@ void BATT_SMBUS::cycle() // Read current. if (read_word(BATT_SMBUS_CURRENT, &tmp) == PX4_OK) { - new_report.current_a = ((float)(*(int16_t *)&tmp)) / 1000.0f; + new_report.current_a = (-1.0f * ((float)(*(int16_t *)&tmp)) / 1000.0f); new_report.current_filtered_a = new_report.current_a; } else { @@ -194,7 +194,7 @@ void BATT_SMBUS::cycle() // Read average current. if (read_word(BATT_SMBUS_AVERAGE_CURRENT, &tmp) == PX4_OK) { - new_report.average_current_a = ((float)(*(int16_t *)&tmp)) / 1000.0f; + new_report.average_current_a = (-1.0f * ((float)(*(int16_t *)&tmp)) / 1000.0f); } else { success = false; diff --git a/src/drivers/batt_smbus/batt_smbus_main.cpp b/src/drivers/batt_smbus/batt_smbus_main.cpp index 680ac76867..4d0fbd070e 100644 --- a/src/drivers/batt_smbus/batt_smbus_main.cpp +++ b/src/drivers/batt_smbus/batt_smbus_main.cpp @@ -54,7 +54,7 @@ struct batt_smbus_bus_option { const char *devpath; BATT_SMBUS_constructor interface_constructor; uint8_t busnum; - BATT_SMBUS *dev; + BATT_SMBUS *dev; } bus_options[] = { { BATT_SMBUS_BUS_I2C_EXTERNAL, "/dev/batt_smbus_ext", &BATT_SMBUS_I2C_interface, PX4_I2C_BUS_EXPANSION, nullptr }, #ifdef PX4_I2C_BUS_ONBOARD