Some dev changes
- Only have 1 baro - Add MPU9250 beginnings - print type of baro - add i2c_dumpregs() to the i2c_scanner()
This commit is contained in:
32
src/main.c
32
src/main.c
@ -28,9 +28,11 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
|
|
||||||
#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;
|
int i;
|
||||||
|
|
||||||
if (!i2c) {
|
if (!i2c) {
|
||||||
@ -43,11 +45,11 @@ static void i2c_scanner(struct mgos_i2c *i2c) {
|
|||||||
ret = mgos_i2c_read(i2c, i, NULL, 0, true);
|
ret = mgos_i2c_read(i2c, i, NULL, 0, true);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
LOG(LL_INFO, ("I2C Address 0x%02x %s", i, ret ? "true" : "false"));
|
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) {
|
bool i2c_dumpregs(struct mgos_i2c *i2c, uint8_t i2caddr) {
|
||||||
uint16_t reg;
|
uint16_t reg;
|
||||||
int value;
|
int value;
|
||||||
@ -169,7 +171,7 @@ static bool do_baro(struct mgos_barometer *sensor) {
|
|||||||
if (!mgos_barometer_get_temperature(sensor, &temperature))
|
if (!mgos_barometer_get_temperature(sensor, &temperature))
|
||||||
temperature=NAN;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
@ -182,7 +184,7 @@ int main(int argc, char **argv, char **environ) {
|
|||||||
struct mgos_mcp9808 *mcp9808 = NULL;
|
struct mgos_mcp9808 *mcp9808 = NULL;
|
||||||
struct mgos_ccs811 * ccs811 = NULL;
|
struct mgos_ccs811 * ccs811 = NULL;
|
||||||
struct mgos_mpu9250 *mpu9250 = NULL;
|
struct mgos_mpu9250 *mpu9250 = NULL;
|
||||||
struct mgos_barometer *baro1 = NULL, *baro2 = NULL;
|
struct mgos_barometer *baro = NULL;
|
||||||
|
|
||||||
if (!mgos_i2c_open(I2CBUSNR)) {
|
if (!mgos_i2c_open(I2CBUSNR)) {
|
||||||
LOG(LL_ERROR, ("Cannot open I2C bus %u", I2CBUSNR));
|
LOG(LL_ERROR, ("Cannot open I2C bus %u", I2CBUSNR));
|
||||||
@ -193,7 +195,7 @@ int main(int argc, char **argv, char **environ) {
|
|||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
i2c_scanner(i2c);
|
i2c_scanner(i2c, true);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* if (!(sht31 = mgos_sht31_create(i2c, 0x44)))
|
* 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"));
|
* LOG(LL_ERROR, ("Cannot create CCS811 device"));
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
if (!(mpu9250 = mgos_mpu9250_create(i2c, 0x68))) {
|
if (!(mpu9250 = mgos_mpu9250_create(i2c, 0x68))) {
|
||||||
LOG(LL_ERROR, ("Cannot create MPU9250 device"));
|
LOG(LL_ERROR, ("Cannot create MPU9250 device"));
|
||||||
} else {
|
} 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_scale(mpu9250, SCALE_14_BITS);
|
||||||
mgos_mpu9250_set_magnetometer_speed(mpu9250, MAG_100_HZ);
|
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"));
|
LOG(LL_ERROR, ("Cannot create barometer"));
|
||||||
} else {
|
} else {
|
||||||
mgos_barometer_set_cache_ttl(baro2, 1000);
|
mgos_barometer_set_cache_ttl(baro, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
@ -237,8 +233,7 @@ int main(int argc, char **argv, char **environ) {
|
|||||||
do_mcp9808(mcp9808);
|
do_mcp9808(mcp9808);
|
||||||
do_ccs811(ccs811);
|
do_ccs811(ccs811);
|
||||||
do_mpu9250(mpu9250);
|
do_mpu9250(mpu9250);
|
||||||
do_baro(baro1);
|
do_baro(baro);
|
||||||
do_baro(baro2);
|
|
||||||
sleep(1);
|
sleep(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -248,8 +243,7 @@ int main(int argc, char **argv, char **environ) {
|
|||||||
mgos_mcp9808_destroy(&mcp9808);
|
mgos_mcp9808_destroy(&mcp9808);
|
||||||
mgos_ccs811_destroy(&ccs811);
|
mgos_ccs811_destroy(&ccs811);
|
||||||
mgos_mpu9250_destroy(&mpu9250);
|
mgos_mpu9250_destroy(&mpu9250);
|
||||||
mgos_barometer_destroy(&baro1);
|
mgos_barometer_destroy(&baro);
|
||||||
mgos_barometer_destroy(&baro2);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
(void)argc;
|
(void)argc;
|
||||||
|
Reference in New Issue
Block a user