diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-07-16 14:58:43 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-07-16 14:58:43 +0200 |
commit | c6c9c49823a4c19e156f4ce70bde781890ab04f9 (patch) | |
tree | 87c70e69db1e25f057b4bec1809f08b6b23448b4 | |
parent | 4f4c6df370ae952bd3816a10daca62a6627a6658 (diff) | |
download | px4-firmware-c6c9c49823a4c19e156f4ce70bde781890ab04f9.tar.gz px4-firmware-c6c9c49823a4c19e156f4ce70bde781890ab04f9.tar.bz2 px4-firmware-c6c9c49823a4c19e156f4ce70bde781890ab04f9.zip |
Implement the external mag param in a fashion that retains backward compatibility
-rw-r--r-- | ROMFS/px4fmu_common/init.d/rc.sensors | 34 | ||||
-rw-r--r-- | src/modules/sensors/sensor_params.c | 13 | ||||
-rw-r--r-- | src/modules/systemlib/system_params.c | 11 |
3 files changed, 35 insertions, 23 deletions
diff --git a/ROMFS/px4fmu_common/init.d/rc.sensors b/ROMFS/px4fmu_common/init.d/rc.sensors index f50e9aff7..121dc89d3 100644 --- a/ROMFS/px4fmu_common/init.d/rc.sensors +++ b/ROMFS/px4fmu_common/init.d/rc.sensors @@ -8,33 +8,43 @@ adc start if mpu6000 start then - echo "[init] Using MPU6000" + echo "Internal MPU6000" fi if l3gd20 start then - echo "[init] Using L3GD20(H)" + echo "Internal L3GD20(H)" fi -# Use selected (internal/external) magnetometer -if param compare SYS_EXT_MAG 0 +# MAG selection +if param compare SENS_EXT_MAG 2 then if hmc5883 -I start then - echo "[init] Using internal HMC5883" + echo "Internal HMC5883" fi - - if ver hwcmp PX4FMU_V2 +else + # Use only external as primary + if param compare SENS_EXT_MAG 1 then - if lsm303d start + if hmc5883 -X start + then + echo "External HMC5883" + fi + else + # auto-detect the primary, prefer external + if hmc5883 start then - echo "[init] Using internal LSM303D" + echo "Default HMC5883" fi fi -else - if hmc5883 -X start +fi + +if ver hwcmp PX4FMU_V2 +then + if lsm303d start then - echo "[init] Using external HMC5883" + echo "Internal LSM303D" fi fi diff --git a/src/modules/sensors/sensor_params.c b/src/modules/sensors/sensor_params.c index 38b190761..7ce6ef5ef 100644 --- a/src/modules/sensors/sensor_params.c +++ b/src/modules/sensors/sensor_params.c @@ -292,6 +292,19 @@ PARAM_DEFINE_FLOAT(SENS_BOARD_Z_OFF, 0.0f); */ PARAM_DEFINE_INT32(SENS_EXT_MAG_ROT, 0); +/** +* Set usage of external magnetometer +* +* * Set to 0 (default) to auto-detect (will try to get the external as primary) +* * Set to 1 to force the external magnetometer as primary +* * Set to 2 to force the internal magnetometer as primary +* +* @min 0 +* @max 2 +* @group Sensor Calibration +*/ +PARAM_DEFINE_INT32(SENS_EXT_MAG, 0); + /** * RC Channel 1 Minimum diff --git a/src/modules/systemlib/system_params.c b/src/modules/systemlib/system_params.c index 8cb923620..702e435ac 100644 --- a/src/modules/systemlib/system_params.c +++ b/src/modules/systemlib/system_params.c @@ -82,14 +82,3 @@ PARAM_DEFINE_INT32(SYS_USE_IO, 1); * @group System */ PARAM_DEFINE_INT32(SYS_RESTART_TYPE, 2); - -/** -* Set usage of external magnetometer -* -* Set to 1 to use external magnetometer instead of internal one. -* -* @min 0 -* @max 1 -* @group System -*/ -PARAM_DEFINE_INT32(SYS_EXT_MAG, 0); |