From 449d51aae851d360c5cfb7e9c3bea3a503c99968 Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sun, 13 May 2018 12:53:18 +0200 Subject: [PATCH] Some dev changes - Only have 1 baro - Add MPU9250 beginnings - print type of baro - add i2c_dumpregs() to the i2c_scanner() --- src/main.c | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/main.c b/src/main.c index 2f1f39d..619d7fa 100644 --- a/src/main.c +++ b/src/main.c @@ -28,9 +28,11 @@ #include #include -#define I2CBUSNR 5 +#define I2CBUSNR 7 -static void i2c_scanner(struct mgos_i2c *i2c) { +bool i2c_dumpregs(struct mgos_i2c *i2c, uint8_t i2caddr); + +static void i2c_scanner(struct mgos_i2c *i2c, bool dumpregs) { int i; if (!i2c) { @@ -43,11 +45,11 @@ static void i2c_scanner(struct mgos_i2c *i2c) { ret = mgos_i2c_read(i2c, i, NULL, 0, true); if (ret) { LOG(LL_INFO, ("I2C Address 0x%02x %s", i, ret ? "true" : "false")); + if (dumpregs) i2c_dumpregs(i2c, i); } } } -bool i2c_dumpregs(struct mgos_i2c *i2c, uint8_t i2caddr); bool i2c_dumpregs(struct mgos_i2c *i2c, uint8_t i2caddr) { uint16_t reg; int value; @@ -169,7 +171,7 @@ static bool do_baro(struct mgos_barometer *sensor) { if (!mgos_barometer_get_temperature(sensor, &temperature)) temperature=NAN; - LOG(LL_INFO, ("temperature=%.2fC pressure=%.0fPa", temperature, pressure)); + LOG(LL_INFO, ("type=%s temperature=%.2fC pressure=%.0fPa", mgos_barometer_get_device_name(sensor), temperature, pressure)); return true; } @@ -182,7 +184,7 @@ int main(int argc, char **argv, char **environ) { struct mgos_mcp9808 *mcp9808 = NULL; struct mgos_ccs811 * ccs811 = NULL; struct mgos_mpu9250 *mpu9250 = NULL; - struct mgos_barometer *baro1 = NULL, *baro2 = NULL; + struct mgos_barometer *baro = NULL; if (!mgos_i2c_open(I2CBUSNR)) { LOG(LL_ERROR, ("Cannot open I2C bus %u", I2CBUSNR)); @@ -193,7 +195,7 @@ int main(int argc, char **argv, char **environ) { return -2; } - i2c_scanner(i2c); + i2c_scanner(i2c, true); /* * if (!(sht31 = mgos_sht31_create(i2c, 0x44))) @@ -208,7 +210,7 @@ int main(int argc, char **argv, char **environ) { * LOG(LL_ERROR, ("Cannot create CCS811 device")); */ - /* + if (!(mpu9250 = mgos_mpu9250_create(i2c, 0x68))) { LOG(LL_ERROR, ("Cannot create MPU9250 device")); } else { @@ -217,17 +219,11 @@ int main(int argc, char **argv, char **environ) { mgos_mpu9250_set_magnetometer_scale(mpu9250, SCALE_14_BITS); mgos_mpu9250_set_magnetometer_speed(mpu9250, MAG_100_HZ); } - */ - if (!(baro1=mgos_barometer_create_i2c(i2c, 0x60, BARO_MPL3115))) { - LOG(LL_ERROR, ("Cannot create barometer")); - } else { - mgos_barometer_set_cache_ttl(baro1, 1000); - } - if (!(baro2=mgos_barometer_create_i2c(i2c, 0x76, BARO_BME280))) { + if (!(baro=mgos_barometer_create_i2c(i2c, 0x76, BARO_BME280))) { LOG(LL_ERROR, ("Cannot create barometer")); } else { - mgos_barometer_set_cache_ttl(baro2, 1000); + mgos_barometer_set_cache_ttl(baro, 1000); } for (;;) { @@ -237,8 +233,7 @@ int main(int argc, char **argv, char **environ) { do_mcp9808(mcp9808); do_ccs811(ccs811); do_mpu9250(mpu9250); - do_baro(baro1); - do_baro(baro2); + do_baro(baro); sleep(1); } @@ -248,8 +243,7 @@ int main(int argc, char **argv, char **environ) { mgos_mcp9808_destroy(&mcp9808); mgos_ccs811_destroy(&ccs811); mgos_mpu9250_destroy(&mpu9250); - mgos_barometer_destroy(&baro1); - mgos_barometer_destroy(&baro2); + mgos_barometer_destroy(&baro); return 0; (void)argc;