stop manually defining physical constants

This commit is contained in:
Daniel Agar
2018-04-19 07:24:58 +02:00
committed by Lorenz Meier
parent 7538ea44e3
commit d75fd72c02
27 changed files with 66 additions and 84 deletions
+2 -1
View File
@@ -44,6 +44,7 @@
#include <float.h>
#include <stdio.h>
#include <string.h>
#include <ecl/geo/geo.h>
#include <drivers/device/i2c.h>
#include <drivers/device/ringbuffer.h>
@@ -555,7 +556,7 @@ BATT_SMBUS::cycle()
// read battery temperature and covert to Celsius
if (read_reg(BATT_SMBUS_TEMP, tmp) == OK) {
new_report.temperature = (float)(((float)tmp / 10.0f) - 273.15f);
new_report.temperature = (float)(((float)tmp / 10.0f) + CONSTANTS_ABSOLUTE_NULL_CELSIUS);
}
//Check if remaining % is out of range
+4 -6
View File
@@ -44,7 +44,7 @@
*/
#include <px4_config.h>
#include <ecl/geo/geo.h>
#include <sys/types.h>
#include <stdint.h>
#include <stdbool.h>
@@ -171,8 +171,6 @@
#define ADIS16448_ACCEL_MAX_OUTPUT_RATE 1221
#define ADIS16448_GYRO_MAX_OUTPUT_RATE 1221
#define ADIS16448_ONE_G 9.80665f
#define FW_FILTER false
#define SPI_BUS_SPEED 1000000
@@ -733,8 +731,8 @@ int ADIS16448::reset()
/* Set IMU sample rate */
_set_sample_rate(_sample_rate);
_accel_range_scale = ADIS16448_ONE_G * ACCELINITIALSENSITIVITY;
_accel_range_m_s2 = ADIS16448_ONE_G * ACCELDYNAMICRANGE;
_accel_range_scale = CONSTANTS_ONE_G * ACCELINITIALSENSITIVITY;
_accel_range_m_s2 = CONSTANTS_ONE_G * ACCELDYNAMICRANGE;
_mag_range_scale = MAGINITIALSENSITIVITY;
_mag_range_mgauss = MAGDYNAMICRANGE;
@@ -1140,7 +1138,7 @@ ADIS16448::ioctl(struct file *filp, int cmd, unsigned long arg)
return -EINVAL;
case ACCELIOCGRANGE:
return (unsigned long)((_accel_range_m_s2) / ADIS16448_ONE_G + 0.5f);
return (unsigned long)((_accel_range_m_s2) / CONSTANTS_ONE_G + 0.5f);
case ACCELIOCSELFTEST:
return accel_self_test();
+2 -1
View File
@@ -38,6 +38,7 @@
#include <px4_config.h>
#include <px4_defines.h>
#include <ecl/geo/geo.h>
#include <sys/types.h>
#include <stdint.h>
@@ -575,7 +576,7 @@ BMA180::set_range(unsigned max_g)
}
/* set new range scaling factor */
_accel_range_m_s2 = _current_range * 9.80665f;
_accel_range_m_s2 = _current_range * CONSTANTS_ONE_G;
_accel_range_scale = _accel_range_m_s2 / 8192.0f;
/* enable writing to chip config */
-2
View File
@@ -239,8 +239,6 @@
#define BMI055_GYRO_DEFAULT_DRIVER_FILTER_FREQ 50
#define BMI055_ONE_G 9.80665f
#define BMI055_BUS_SPEED 10*1000*1000
#define BMI055_TIMER_REDUCTION 200
+4 -4
View File
@@ -1,5 +1,5 @@
#include "bmi055.hpp"
#include <ecl/geo/geo.h>
/*
list of registers that will be checked in check_registers(). Note
@@ -463,7 +463,7 @@ BMI055_accel::ioctl(struct file *filp, int cmd, unsigned long arg)
return set_accel_range(arg);
case ACCELIOCGRANGE:
return (unsigned long)((_accel_range_m_s2) / BMI055_ONE_G + 0.5f);
return (unsigned long)((_accel_range_m_s2) / CONSTANTS_ONE_G + 0.5f);
case ACCELIOCSELFTEST:
return accel_self_test();
@@ -535,8 +535,8 @@ BMI055_accel::set_accel_range(unsigned max_g)
return -EINVAL;
}
_accel_range_scale = (BMI055_ONE_G / lsb_per_g);
_accel_range_m_s2 = max_accel_g * BMI055_ONE_G;
_accel_range_scale = (CONSTANTS_ONE_G / lsb_per_g);
_accel_range_m_s2 = max_accel_g * CONSTANTS_ONE_G;
modify_reg(BMI055_ACC_RANGE, clearbits, setbits);
+4 -4
View File
@@ -1,6 +1,6 @@
#include "bmi160.hpp"
#include "bmi160_gyro.hpp"
#include <ecl/geo/geo.h>
/*
list of registers that will be checked in check_registers(). Note
@@ -743,7 +743,7 @@ BMI160::ioctl(struct file *filp, int cmd, unsigned long arg)
return set_accel_range(arg);
case ACCELIOCGRANGE:
return (unsigned long)((_accel_range_m_s2) / BMI160_ONE_G + 0.5f);
return (unsigned long)((_accel_range_m_s2) / CONSTANTS_ONE_G + 0.5f);
case ACCELIOCSELFTEST:
return accel_self_test();
@@ -905,8 +905,8 @@ BMI160::set_accel_range(unsigned max_g)
return -EINVAL;
}
_accel_range_scale = (BMI160_ONE_G / lsb_per_g);
_accel_range_m_s2 = max_accel_g * BMI160_ONE_G;
_accel_range_scale = (CONSTANTS_ONE_G / lsb_per_g);
_accel_range_m_s2 = max_accel_g * CONSTANTS_ONE_G;
modify_reg(BMIREG_ACC_RANGE, clearbits, setbits);
-2
View File
@@ -238,8 +238,6 @@
#define BMI160_GYRO_DEFAULT_ONCHIP_FILTER_FREQ 254.6f
#define BMI160_GYRO_DEFAULT_DRIVER_FILTER_FREQ 50
#define BMI160_ONE_G 9.80665f
#define BMI160_BUS_SPEED 10*1000*1000
#define BMI160_TIMER_REDUCTION 200
+4 -4
View File
@@ -39,6 +39,7 @@
#include <px4_config.h>
#include <px4_defines.h>
#include <ecl/geo/geo.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -137,7 +138,6 @@
#define FXOS8701C_MAG_DEFAULT_RANGE_GA 12 /* It is fixed at 12 G */
#define FXOS8701C_MAG_DEFAULT_RATE 100
#define FXOS8701C_ONE_G 9.80665f
/*
we set the timer interrupt to run a bit faster than the desired
@@ -877,7 +877,7 @@ FXOS8701CQ::ioctl(struct file *filp, int cmd, unsigned long arg)
case ACCELIOCGRANGE:
/* convert to m/s^2 and return rounded in G */
return (unsigned long)((_accel_range_m_s2) / FXOS8701C_ONE_G + 0.5f);
return (unsigned long)((_accel_range_m_s2) / CONSTANTS_ONE_G + 0.5f);
case ACCELIOCGSCALE:
/* copy scale out */
@@ -1135,8 +1135,8 @@ FXOS8701CQ::accel_set_range(unsigned max_g)
max_accel_g = 2;
}
_accel_range_scale = (FXOS8701C_ONE_G / lsb_per_g);
_accel_range_m_s2 = max_accel_g * FXOS8701C_ONE_G;
_accel_range_scale = (CONSTANTS_ONE_G / lsb_per_g);
_accel_range_m_s2 = max_accel_g * CONSTANTS_ONE_G;
modify_reg(FXOS8701CQ_XYZ_DATA_CFG, XYZ_DATA_CFG_FS_MASK, setbits);
+8 -9
View File
@@ -38,6 +38,7 @@
#include <px4_config.h>
#include <px4_defines.h>
#include <ecl/geo/geo.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -206,8 +207,6 @@
#define LSM303D_MAG_DEFAULT_RANGE_GA 2
#define LSM303D_MAG_DEFAULT_RATE 100
#define LSM303D_ONE_G 9.80665f
/*
we set the timer interrupt to run a bit faster than the desired
sample rate and then throw away duplicates using the data ready bit.
@@ -946,7 +945,7 @@ LSM303D::ioctl(struct file *filp, int cmd, unsigned long arg)
case ACCELIOCGRANGE:
/* convert to m/s^2 and return rounded in G */
return (unsigned long)((_accel_range_m_s2) / LSM303D_ONE_G + 0.5f);
return (unsigned long)((_accel_range_m_s2) / CONSTANTS_ONE_G + 0.5f);
case ACCELIOCGSCALE:
/* copy scale out */
@@ -1178,27 +1177,27 @@ LSM303D::accel_set_range(unsigned max_g)
}
if (max_g <= 2) {
_accel_range_m_s2 = 2.0f * LSM303D_ONE_G;
_accel_range_m_s2 = 2.0f * CONSTANTS_ONE_G;
setbits |= REG2_FULL_SCALE_2G_A;
new_scale_g_digit = 0.061e-3f;
} else if (max_g <= 4) {
_accel_range_m_s2 = 4.0f * LSM303D_ONE_G;
_accel_range_m_s2 = 4.0f * CONSTANTS_ONE_G;
setbits |= REG2_FULL_SCALE_4G_A;
new_scale_g_digit = 0.122e-3f;
} else if (max_g <= 6) {
_accel_range_m_s2 = 6.0f * LSM303D_ONE_G;
_accel_range_m_s2 = 6.0f * CONSTANTS_ONE_G;
setbits |= REG2_FULL_SCALE_6G_A;
new_scale_g_digit = 0.183e-3f;
} else if (max_g <= 8) {
_accel_range_m_s2 = 8.0f * LSM303D_ONE_G;
_accel_range_m_s2 = 8.0f * CONSTANTS_ONE_G;
setbits |= REG2_FULL_SCALE_8G_A;
new_scale_g_digit = 0.244e-3f;
} else if (max_g <= 16) {
_accel_range_m_s2 = 16.0f * LSM303D_ONE_G;
_accel_range_m_s2 = 16.0f * CONSTANTS_ONE_G;
setbits |= REG2_FULL_SCALE_16G_A;
new_scale_g_digit = 0.732e-3f;
@@ -1206,7 +1205,7 @@ LSM303D::accel_set_range(unsigned max_g)
return -EINVAL;
}
_accel_range_scale = new_scale_g_digit * LSM303D_ONE_G;
_accel_range_scale = new_scale_g_digit * CONSTANTS_ONE_G;
modify_reg(ADDR_CTRL_REG2, clearbits, setbits);
+6 -5
View File
@@ -56,6 +56,7 @@
*/
#include <px4_config.h>
#include <ecl/geo/geo.h>
#include <sys/types.h>
#include <stdint.h>
@@ -1505,7 +1506,7 @@ MPU6000::ioctl(struct file *filp, int cmd, unsigned long arg)
return set_accel_range(arg);
case ACCELIOCGRANGE:
return (unsigned long)((_accel_range_m_s2) / MPU6000_ONE_G + 0.5f);
return (unsigned long)((_accel_range_m_s2) / CONSTANTS_ONE_G + 0.5f);
case ACCELIOCSELFTEST:
return accel_self_test();
@@ -1645,8 +1646,8 @@ MPU6000::set_accel_range(unsigned max_g_in)
case MPU6000_REV_C4:
case MPU6000_REV_C5:
write_checked_reg(MPUREG_ACCEL_CONFIG, 1 << 3);
_accel_range_scale = (MPU6000_ONE_G / 4096.0f);
_accel_range_m_s2 = 8.0f * MPU6000_ONE_G;
_accel_range_scale = (CONSTANTS_ONE_G / 4096.0f);
_accel_range_m_s2 = 8.0f * CONSTANTS_ONE_G;
return OK;
}
}
@@ -1677,8 +1678,8 @@ MPU6000::set_accel_range(unsigned max_g_in)
}
write_checked_reg(MPUREG_ACCEL_CONFIG, afs_sel << 3);
_accel_range_scale = (MPU6000_ONE_G / lsb_per_g);
_accel_range_m_s2 = max_accel_g * MPU6000_ONE_G;
_accel_range_scale = (CONSTANTS_ONE_G / lsb_per_g);
_accel_range_m_s2 = max_accel_g * CONSTANTS_ONE_G;
return OK;
}
-2
View File
@@ -212,8 +212,6 @@
#define MPU6000_DEFAULT_ONCHIP_FILTER_FREQ 42
#define MPU6000_ONE_G 9.80665f
#ifdef PX4_SPI_BUS_EXT
#define EXTERNAL_BUS PX4_SPI_BUS_EXT
#else
+4 -3
View File
@@ -42,6 +42,7 @@
*/
#include <px4_config.h>
#include <ecl/geo/geo.h>
#include <sys/types.h>
#include <stdint.h>
@@ -918,7 +919,7 @@ MPU9250::ioctl(struct file *filp, int cmd, unsigned long arg)
return set_accel_range(arg);
case ACCELIOCGRANGE:
return (unsigned long)((_accel_range_m_s2) / MPU9250_ONE_G + 0.5f);
return (unsigned long)((_accel_range_m_s2) / CONSTANTS_ONE_G + 0.5f);
case ACCELIOCSELFTEST:
return accel_self_test();
@@ -1086,8 +1087,8 @@ MPU9250::set_accel_range(unsigned max_g_in)
}
write_checked_reg(MPUREG_ACCEL_CONFIG, afs_sel << 3);
_accel_range_scale = (MPU9250_ONE_G / lsb_per_g);
_accel_range_m_s2 = max_accel_g * MPU9250_ONE_G;
_accel_range_scale = (CONSTANTS_ONE_G / lsb_per_g);
_accel_range_m_s2 = max_accel_g * CONSTANTS_ONE_G;
return OK;
}
-2
View File
@@ -190,8 +190,6 @@
#define MPU9250_DEFAULT_ONCHIP_FILTER_FREQ 41
#define MPU9250_ONE_G 9.80665f
#define MPUIOCGIS_I2C (unsigned)(DEVIOCGDEVICEID+100)
@@ -36,9 +36,9 @@ px4_add_module(
STACK_MAIN 1200
COMPILE_FLAGS
SRCS
frsky_data.c
sPort_data.c
frsky_telemetry.c
frsky_data.cpp
sPort_data.cpp
frsky_telemetry.cpp
DEPENDS
platforms__common
)
@@ -47,9 +47,9 @@
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <arch/math.h>
#include <lib/ecl/geo/geo.h>
#include <stdbool.h>
#include <math.h>
#include <uORB/topics/battery_status.h>
#include <uORB/topics/sensor_combined.h>
@@ -79,8 +79,8 @@ static int sPort_open_uart(const char *uart_name, struct termios *uart_config, s
static int set_uart_speed(int uart, struct termios *uart_config, speed_t speed);
static void usage(void);
static int frsky_telemetry_thread_main(int argc, char *argv[]);
__EXPORT int frsky_telemetry_main(int argc, char *argv[]);
extern "C" __EXPORT int frsky_telemetry_main(int argc, char *argv[]);
uint16_t get_telemetry_flight_mode(int px4_flight_mode)
{
@@ -47,7 +47,8 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <arch/math.h>
#include <math.h>
#include <lib/ecl/geo/geo.h>
#include <uORB/topics/battery_status.h>