Board_config.h will provide the BOARD_BATTERYx_V_DIV

Prep to distrubte the magic numbers assgined in parameters.cpp
  to the board_config.h

  common/board_common.h will define:
  1) BOARD_BATTERY[1|2]_V_DIV as 0.0f if not defined to ensure
      the missing default trips a low voltage lockdown

  2) BOARD_BATTERY[1|2]_A_PER_V as 0.0f if not defined to ensure
     the default leads to an unrealistic current value.
This commit is contained in:
David Sidrane
2017-01-19 11:21:19 -10:00
committed by Lorenz Meier
parent 1c3ebadb85
commit a8b9c906f6
3 changed files with 31 additions and 7 deletions
+23
View File
@@ -132,6 +132,29 @@
# define BOARD_EEPROM_WP_CTRL(on_true)
#endif
/* Define an overridable default of 0.0f V for batery v div
* This is done to ensure the missing default trips a low
* voltage lockdown
*/
#if !defined(BOARD_BATTERY1_V_DIV)
#define BOARD_BATTERY1_V_DIV 0.0f
#endif
#if !defined(BOARD_BATTERY2_V_DIV)
#define BOARD_BATTERY2_V_DIV 0.0f
#endif
/* Define an overridable default of 0.0f for A per V
* This is done to ensure the default leads to an
* unrealistic current value
*/
#if !defined(BOARD_BATTERY1_A_PER_V)
#define BOARD_BATTERY1_A_PER_V 0.0f
#endif
#if !defined(BOARD_BATTERY2_A_PER_V)
#define BOARD_BATTERY2_A_PER_V 0.0f
#endif
/* Conditional use of FMU GPIO
* If the board use the PX4FMU driver and the board provides
+7 -6
View File
@@ -416,6 +416,9 @@ int update_parameters(const ParameterHandles &parameter_handles, Parameters &par
} else if (parameters.battery_v_div <= 0.0f) {
/* apply scaling according to defaults if set to default */
parameters.battery_v_div = BOARD_BATTERY1_V_DIV;
#if defined (CONFIG_ARCH_BOARD_PX4FMU_V4)
parameters.battery_v_div = 13.653333333f;
#elif defined (CONFIG_ARCH_BOARD_PX4FMU_V2) || defined ( CONFIG_ARCH_BOARD_MINDPX_V2 )
@@ -430,9 +433,6 @@ int update_parameters(const ParameterHandles &parameter_handles, Parameters &par
parameters.battery_v_div = 9.0f;
#elif defined (CONFIG_ARCH_BOARD_AEROFC_V1)
parameters.battery_v_div = 9.0f;
#else
/* ensure a missing default trips a low voltage lockdown */
parameters.battery_v_div = 0.0f;
#endif
param_set(parameter_handles.battery_v_div, &parameters.battery_v_div);
}
@@ -443,17 +443,18 @@ int update_parameters(const ParameterHandles &parameter_handles, Parameters &par
} else if (parameters.battery_a_per_v <= 0.0f) {
/* apply scaling according to defaults if set to default */
parameters.battery_a_per_v = BOARD_BATTERY1_A_PER_V;
#if defined (CONFIG_ARCH_BOARD_PX4FMU_V4)
/* current scaling for ACSP4 */
parameters.battery_a_per_v = 36.367515152f;
#elif defined (CONFIG_ARCH_BOARD_PX4FMU_V2) || defined (CONFIG_ARCH_BOARD_MINDPX_V2) || defined (CONFIG_ARCH_BOARD_AEROCORE) || defined (CONFIG_ARCH_BOARD_PX4FMU_V1)
/* current scaling for 3DR power brick */
parameters.battery_a_per_v = 15.391030303f;
#elif defined (CONFIG_ARCH_BOARD_SITL)
parameters.battery_a_per_v = 15.391030303f;
#else
/* ensure a missing default leads to an unrealistic current value */
parameters.battery_a_per_v = 0.0f;
#endif
param_set(parameter_handles.battery_a_per_v, &parameters.battery_a_per_v);
}
+1 -1
View File
@@ -40,7 +40,7 @@
*
* @author Beat Kueng <beat-kueng@gmx.net>
*/
#include <px4_config.h>
#include <drivers/drv_rc_input.h>
#include <systemlib/param/param.h>