Implement the external mag param in a fashion that retains backward compatibility

This commit is contained in:
Lorenz Meier
2014-07-16 14:58:43 +02:00
parent 4f4c6df370
commit c6c9c49823
3 changed files with 38 additions and 26 deletions
+25 -15
View File
@@ -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"
fi
if ver hwcmp PX4FMU_V2
then
if lsm303d start
then
echo "[init] Using internal LSM303D"
fi
echo "Internal HMC5883"
fi
else
if hmc5883 -X start
# Use only external as primary
if param compare SENS_EXT_MAG 1
then
echo "[init] Using external HMC5883"
if hmc5883 -X start
then
echo "External HMC5883"
fi
else
# auto-detect the primary, prefer external
if hmc5883 start
then
echo "Default HMC5883"
fi
fi
fi
if ver hwcmp PX4FMU_V2
then
if lsm303d start
then
echo "Internal LSM303D"
fi
fi
+13
View File
@@ -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
-11
View File
@@ -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);