From 520c1161ad010a015a5f025e460303a09a3ce494 Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sun, 13 May 2018 20:26:57 +0200 Subject: [PATCH] Refactor after ff6be09 upstream --- src/main.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/main.c b/src/main.c index dcdc818..6589d6a 100644 --- a/src/main.c +++ b/src/main.c @@ -31,8 +31,9 @@ #define I2CBUSNR 7 bool i2c_dumpregs(struct mgos_i2c *i2c, uint8_t i2caddr); +void i2c_scanner(struct mgos_i2c *i2c, bool dumpregs); -static void i2c_scanner(struct mgos_i2c *i2c, bool dumpregs) { +void i2c_scanner(struct mgos_i2c *i2c, bool dumpregs) { int i; if (!i2c) { @@ -167,16 +168,14 @@ static bool do_imu(struct mgos_imu *sensor) { if (!sensor) { return false; } - mgos_imu_read(sensor); - - if (mgos_imu_get_accelerometer(sensor, &ax, &ay, &az)) { - LOG(LL_INFO, ("type=%s Accel X=%.2f Y=%.2f Z=%.2f", mgos_imu_get_magnetometer_name(sensor), ax, ay, az)); + if (mgos_imu_accelerometer_get(sensor, &ax, &ay, &az)) { + LOG(LL_INFO, ("type=%-10s Accel X=%.2f Y=%.2f Z=%.2f", mgos_imu_accelerometer_get_name(sensor), ax, ay, az)); } - if (mgos_imu_get_gyroscope(sensor, &gx, &gy, &gz)) { - LOG(LL_INFO, ("type=%s Gyro X=%.2f Y=%.2f Z=%.2f", mgos_imu_get_magnetometer_name(sensor), gx, gy, gz)); + if (mgos_imu_gyroscope_get(sensor, &gx, &gy, &gz)) { + LOG(LL_INFO, ("type=%-10s Gyro X=%.2f Y=%.2f Z=%.2f", mgos_imu_gyroscope_get_name(sensor), gx, gy, gz)); } - if (mgos_imu_get_magnetometer(sensor, &mx, &my, &mz)) { - LOG(LL_INFO, ("type=%s Mag X=%.2f Y=%.2f Z=%.2f", mgos_imu_get_magnetometer_name(sensor), mx, my, mz)); + if (mgos_imu_magnetometer_get(sensor, &mx, &my, &mz)) { + LOG(LL_INFO, ("type=%-10s Mag X=%.2f Y=%.2f Z=%.2f", mgos_imu_magnetometer_get_name(sensor), mx, my, mz)); } return true; } @@ -207,7 +206,7 @@ int main(int argc, char **argv, char **environ) { struct mgos_ccs811 * ccs811 = NULL; struct mgos_mpu9250 *mpu9250 = NULL; struct mgos_barometer *baro = NULL; - struct mgos_imu *imu = NULL; + struct mgos_imu *imu = NULL, *imu2 = NULL; if (!mgos_i2c_open(I2CBUSNR)) { LOG(LL_ERROR, ("Cannot open I2C bus %u", I2CBUSNR)); @@ -218,7 +217,7 @@ int main(int argc, char **argv, char **environ) { return -2; } - i2c_scanner(i2c, true); +// i2c_scanner(i2c, true); /* * if (!(sht31 = mgos_sht31_create(i2c, 0x44))) @@ -247,11 +246,18 @@ int main(int argc, char **argv, char **environ) { if (!(imu=mgos_imu_create())) { LOG(LL_ERROR, ("Cannot create IMU")); } else { - if (!mgos_imu_create_accelerometer_i2c(imu, i2c, 0x68, ACC_MPU9250)) + if (!mgos_imu_accelerometer_create_i2c(imu, i2c, 0x68, ACC_MPU9250)) LOG(LL_ERROR, ("Cannot create accelerometer on IMU")); - if (!mgos_imu_create_gyroscope_i2c(imu, i2c, 0x68, GYRO_MPU9250)) + if (!mgos_imu_gyroscope_create_i2c(imu, i2c, 0x68, GYRO_MPU9250)) LOG(LL_ERROR, ("Cannot create gyroscope on IMU")); - if (!mgos_imu_create_magnetometer_i2c(imu, i2c, 0x0C, MAG_AK8963)) + if (!mgos_imu_magnetometer_create_i2c(imu, i2c, 0x0C, MAG_AK8963)) + LOG(LL_ERROR, ("Cannot create magnetometer on IMU")); + } + + if (!(imu2=mgos_imu_create())) { + LOG(LL_ERROR, ("Cannot create IMU")); + } else { + if (!mgos_imu_magnetometer_create_i2c(imu2, i2c, 0x0E, MAG_MAG3110)) LOG(LL_ERROR, ("Cannot create magnetometer on IMU")); } @@ -270,6 +276,7 @@ int main(int argc, char **argv, char **environ) { do_mpu9250(mpu9250); do_baro(baro); do_imu(imu); + do_imu(imu2); sleep(1); }