You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by vi...@apache.org on 2017/02/16 20:24:53 UTC
[1/3] incubator-mynewt-core git commit: Add power mode command to the
bno055 shell
Repository: incubator-mynewt-core
Updated Branches:
refs/heads/sensors_branch ea2ff6d99 -> 40b9b6b51
Add power mode command to the bno055 shell
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/43179745
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/43179745
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/43179745
Branch: refs/heads/sensors_branch
Commit: 43179745c890e6a195440d5050ec21e32f5ed023
Parents: ea2ff6d
Author: Vipul Rahane <vi...@apache.org>
Authored: Wed Feb 15 16:29:39 2017 -0800
Committer: Vipul Rahane <vi...@apache.org>
Committed: Wed Feb 15 16:29:39 2017 -0800
----------------------------------------------------------------------
.../sensors/bno055/include/bno055/bno055.h | 29 +++++++++-
hw/drivers/sensors/bno055/src/bno055.c | 58 ++++++++++++++++----
hw/drivers/sensors/bno055/src/bno055_shell.c | 50 ++++++++++++++---
3 files changed, 114 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/43179745/hw/drivers/sensors/bno055/include/bno055/bno055.h
----------------------------------------------------------------------
diff --git a/hw/drivers/sensors/bno055/include/bno055/bno055.h b/hw/drivers/sensors/bno055/include/bno055/bno055.h
index 1e30ba2..09fa3ec 100644
--- a/hw/drivers/sensors/bno055/include/bno055/bno055.h
+++ b/hw/drivers/sensors/bno055/include/bno055/bno055.h
@@ -99,13 +99,13 @@ int
bno055_write8(uint8_t reg, uint8_t value);
/**
- * Setting mode for the bno055 sensor
+ * Set operation mode for the bno055 sensor
*
* @param Operation mode for the sensor
* @return 0 on success, non-zero on failure
*/
int
-bno055_set_mode(uint8_t mode);
+bno055_set_opr_mode(uint8_t mode);
#if MYNEWT_VAL(BNO055_CLI)
int bno055_shell_init(void);
@@ -140,8 +140,31 @@ bno055_get_chip_id(uint8_t *id);
* @return mode
*/
uint8_t
-bno055_get_mode(void);
+bno055_get_opr_mode(void);
+/**
+ * Read current power mode of the sensor
+ *
+ * @return mode
+ */
+uint8_t
+bno055_get_pwr_mode(void);
+
+/**
+ * Set power mode for the sensor
+ *
+ * @return mode
+ */
+int
+bno055_set_pwr_mode(uint8_t mode);
+
+/**
+ * Get power mode for the sensor
+ *
+ * @return mode
+ */
+uint8_t
+bno055_get_pwr_mode(void);
#ifdef __cplusplus
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/43179745/hw/drivers/sensors/bno055/src/bno055.c
----------------------------------------------------------------------
diff --git a/hw/drivers/sensors/bno055/src/bno055.c b/hw/drivers/sensors/bno055/src/bno055.c
index 8b31ac6..bcc880d 100644
--- a/hw/drivers/sensors/bno055/src/bno055.c
+++ b/hw/drivers/sensors/bno055/src/bno055.c
@@ -102,7 +102,8 @@ static const struct sensor_driver g_bno055_sensor_driver = {
bno055_sensor_get_config
};
-static uint8_t g_bno055_mode;
+static uint8_t g_bno055_opr_mode;
+static uint8_t g_bno055_pwr_mode;
/**
* Writes a single byte to the specified register
@@ -251,13 +252,13 @@ err:
/**
- * Setting mode for the bno055 sensor
+ * Setting operation mode for the bno055 sensor
*
* @param Operation mode for the sensor
* @return 0 on success, non-zero on failure
*/
int
-bno055_set_mode(uint8_t mode)
+bno055_set_opr_mode(uint8_t mode)
{
int rc;
@@ -273,21 +274,54 @@ bno055_set_mode(uint8_t mode)
os_time_delay(OS_TICKS_PER_SEC/1000 * 7);
}
- g_bno055_mode = mode;
+ g_bno055_opr_mode = mode;
return 0;
err:
return rc;
}
/**
+ * Setting power mode for the bno055 sensor
+ *
+ * @param power mode for the sensor
+ * @return 0 on success, non-zero on failure
+ */
+int
+bno055_set_pwr_mode(uint8_t mode)
+{
+ int rc;
+
+ rc = bno055_write8(BNO055_PWR_MODE_ADDR, mode);
+ if (rc) {
+ goto err;
+ }
+
+ g_bno055_pwr_mode = mode;
+ return 0;
+err:
+ return rc;
+}
+
+/**
+ * Read current power mode of the sensor
+ *
+ * @return mode
+ */
+uint8_t
+bno055_get_pwr_mode(void)
+{
+ return g_bno055_pwr_mode;
+}
+
+/**
* Read current operational mode of the sensor
*
* @return mode
*/
uint8_t
-bno055_get_mode(void)
+bno055_get_opr_mode(void)
{
- return g_bno055_mode;
+ return g_bno055_opr_mode;
}
/**
@@ -384,10 +418,10 @@ bno055_set_ext_xtal_use(uint8_t use_xtal)
int rc;
uint8_t prev_mode;
- prev_mode = g_bno055_mode;
+ prev_mode = g_bno055_opr_mode;
/* Switch to config mode */
- rc = bno055_set_mode(BNO055_OPERATION_MODE_CONFIG);
+ rc = bno055_set_opr_mode(BNO055_OPERATION_MODE_CONFIG);
if (rc) {
goto err;
}
@@ -416,7 +450,7 @@ bno055_set_ext_xtal_use(uint8_t use_xtal)
os_time_delay(OS_TICKS_PER_SEC/1000 * 10);
/* Reset to previous operating mode */
- rc = bno055_set_mode(prev_mode);
+ rc = bno055_set_opr_mode(prev_mode);
if (rc) {
goto err;
}
@@ -436,7 +470,7 @@ bno055_config(struct bno055 *bno055, struct bno055_cfg *cfg)
uint8_t id;
uint8_t prev_mode;
- prev_mode = g_bno055_mode;
+ prev_mode = g_bno055_opr_mode;
/* Check if we can read the chip address */
rc = bno055_get_chip_id(&id);
@@ -464,7 +498,7 @@ bno055_config(struct bno055 *bno055, struct bno055_cfg *cfg)
goto err;
}
- rc = bno055_set_mode(BNO055_OPERATION_MODE_CONFIG);
+ rc = bno055_set_opr_mode(BNO055_OPERATION_MODE_CONFIG);
if (rc) {
goto err;
}
@@ -499,7 +533,7 @@ bno055_config(struct bno055 *bno055, struct bno055_cfg *cfg)
memcpy(&bno055->cfg, cfg, sizeof(*cfg));
/* Change back to previous mode */
- rc = bno055_set_mode(prev_mode);
+ rc = bno055_set_opr_mode(prev_mode);
if (rc) {
goto err;
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/43179745/hw/drivers/sensors/bno055/src/bno055_shell.c
----------------------------------------------------------------------
diff --git a/hw/drivers/sensors/bno055/src/bno055_shell.c b/hw/drivers/sensors/bno055/src/bno055_shell.c
index 919aa48..9de1ed5 100644
--- a/hw/drivers/sensors/bno055/src/bno055_shell.c
+++ b/hw/drivers/sensors/bno055/src/bno055_shell.c
@@ -222,7 +222,7 @@ err:
}
static int
-bno055_shell_cmd_mode(int argc, char **argv)
+bno055_shell_cmd_opr_mode(int argc, char **argv)
{
long val;
int rc;
@@ -233,7 +233,7 @@ bno055_shell_cmd_mode(int argc, char **argv)
/* Display the mode */
if (argc == 2) {
- val = bno055_get_mode();
+ val = bno055_get_opr_mode();
console_printf("%u\n", (unsigned int)val);
}
@@ -247,7 +247,44 @@ bno055_shell_cmd_mode(int argc, char **argv)
return bno055_shell_err_invalid_arg(argv[2]);
}
- rc = bno055_set_mode(val);
+ rc = bno055_set_opr_mode(val);
+ if (rc) {
+ goto err;
+ }
+ }
+
+ return 0;
+err:
+ return rc;
+}
+
+static int
+bno055_shell_cmd_pwr_mode(int argc, char **argv)
+{
+ long val;
+ int rc;
+
+ if (argc > 3) {
+ return bno055_shell_err_too_many_args(argv[1]);
+ }
+
+ /* Display the mode */
+ if (argc == 2) {
+ val = bno055_get_pwr_mode();
+ console_printf("%u\n", (unsigned int)val);
+ }
+
+ /* Update the mode */
+ if (argc == 3) {
+ if (bno055_shell_stol(argv[2], 0, 16, &val)) {
+ return bno055_shell_err_invalid_arg(argv[2]);
+ }
+ /* Make sure mode is */
+ if (val > BNO055_POWER_MODE_SUSPEND) {
+ return bno055_shell_err_invalid_arg(argv[2]);
+ }
+
+ rc = bno055_set_pwr_mode(val);
if (rc) {
goto err;
}
@@ -349,7 +386,7 @@ bno055_shell_cmd(int argc, char **argv)
/* Mode command */
if (argc > 1 && strcmp(argv[1], "mode") == 0) {
- return bno055_shell_cmd_mode(argc, argv);
+ return bno055_shell_cmd_opr_mode(argc, argv);
}
/* Chip ID command */
@@ -366,14 +403,11 @@ bno055_shell_cmd(int argc, char **argv)
return bno055_shell_cmd_reset(argc, argv);
}
-#if 0
/* Power mode command */
if (argc > 1 && strcmp(argv[1], "pmode") == 0) {
- return bno055_shell_cmd_pmode(argc, argv);
+ return bno055_shell_cmd_pwr_mode(argc, argv);
}
-#endif
-
/* Dump Registers command */
if (argc > 1 && strcmp(argv[1], "dumpreg") == 0) {
return bno055_shell_cmd_dumpreg(argc, argv);
[2/3] incubator-mynewt-core git commit: Closing devices seperately
for each sensor
Posted by vi...@apache.org.
Closing devices seperately for each sensor
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/b483d34d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/b483d34d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/b483d34d
Branch: refs/heads/sensors_branch
Commit: b483d34d6f8c936f158ed0a1092384481395132c
Parents: 4317974
Author: Vipul Rahane <vi...@apache.org>
Authored: Wed Feb 15 17:10:09 2017 -0800
Committer: Vipul Rahane <vi...@apache.org>
Committed: Wed Feb 15 17:10:09 2017 -0800
----------------------------------------------------------------------
apps/slinky/src/main.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/b483d34d/apps/slinky/src/main.c
----------------------------------------------------------------------
diff --git a/apps/slinky/src/main.c b/apps/slinky/src/main.c
index aceca28..9eef0c0 100755
--- a/apps/slinky/src/main.c
+++ b/apps/slinky/src/main.c
@@ -264,6 +264,7 @@ config_sensor(void)
os_dev_close(dev);
goto err;
}
+ os_dev_close(dev);
#endif
#if MYNEWT_VAL(LSM303DLHC_PRESENT)
@@ -287,6 +288,7 @@ config_sensor(void)
os_dev_close(dev);
goto err;
}
+ os_dev_close(dev);
#endif
#if MYNEWT_VAL(BNO055_PRESENT)
@@ -308,14 +310,14 @@ config_sensor(void)
//assert(0);
goto err;
}
-#endif
-
os_dev_close(dev);
+#endif
return (0);
err:
return rc;
}
+
#endif
#ifdef ARCH_sim
[3/3] incubator-mynewt-core git commit: Printing sensor data as float
string
Posted by vi...@apache.org.
Printing sensor data as float string
- Making sensor_ftostr() global, so that it can be used by any shell.
- Adding config settings for ACC, MAG, GYRO as per the datasheet
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/40b9b6b5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/40b9b6b5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/40b9b6b5
Branch: refs/heads/sensors_branch
Commit: 40b9b6b511cf624f7a17ba7fc84a6ef4dacc7bf9
Parents: b483d34
Author: Vipul Rahane <vi...@apache.org>
Authored: Thu Feb 16 12:21:21 2017 -0800
Committer: Vipul Rahane <vi...@apache.org>
Committed: Thu Feb 16 12:21:21 2017 -0800
----------------------------------------------------------------------
hw/drivers/sensors/bno055/src/bno055_priv.h | 64 +++++++++++++++++++++++
hw/drivers/sensors/bno055/src/bno055_shell.c | 29 ++++++----
hw/sensor/include/sensor/sensor.h | 3 ++
hw/sensor/src/sensor_shell.c | 20 +++----
4 files changed, 98 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/40b9b6b5/hw/drivers/sensors/bno055/src/bno055_priv.h
----------------------------------------------------------------------
diff --git a/hw/drivers/sensors/bno055/src/bno055_priv.h b/hw/drivers/sensors/bno055/src/bno055_priv.h
index 295e83b..97f4280 100644
--- a/hw/drivers/sensors/bno055/src/bno055_priv.h
+++ b/hw/drivers/sensors/bno055/src/bno055_priv.h
@@ -237,4 +237,68 @@
#define BNO055_GYRO_ANY_MOTION_THRES_ADDR 0X1E
#define BNO055_GYRO_ANY_MOTION_SET_ADDR 0X1F
+/* Accelerometer config */
+#define BNO055_ACC_CFG_2G 0x0
+#define BNO055_ACC_CFG_4G 0x1
+#define BNO055_ACC_CFG_8G 0x2
+#define BNO055_ACC_CFG_16G 0x3
+
+#define BNO055_ACC_CFG_BW_7_81HZ (0x0 << 2)
+#define BNO055_ACC_CFG_BW_15_63HZ (0x1 << 2)
+#define BNO055_ACC_CFG_BW_31_25HZ (0x2 << 2)
+#define BNO055_ACC_CFG_BW_6_25HZ (0x3 << 2)
+#define BNO055_ACC_CFG_BW_125HZ (0x4 << 2)
+#define BNO055_ACC_CFG_BW_250HZ (0x5 << 2)
+#define BNO055_ACC_CFG_BW_500HZ (0x6 << 2)
+#define BNO055_ACC_CFG_BW_1000HZ (0x7 << 2)
+
+#define BNO055_ACC_CFG_OPR_MODE_NORMAL (0x0 << 5)
+#define BNO055_ACC_CFG_OPR_MODE_SUSPEND (0x1 << 5)
+#define BNO055_ACC_CFG_OPR_MODE_LOWPWR1 (0x2 << 5)
+#define BNO055_ACC_CFG_OPR_MODE_STD (0x3 << 5)
+#define BNO055_ACC_CFG_OPR_MODE_LOWPWR2 (0x4 << 5)
+#define BNO055_ACC_CFG_OPR_MODE_DSUSPEND (0x5 << 5)
+
+/* Gyroscope config */
+#define BNO055_GYR_CFG_RNG_2000DPS 0x0
+#define BNO055_GYR_CFG_RNG_1000DPS 0x1
+#define BNO055_GYR_CFG_RNG_500DPS 0x2
+#define BNO055_GYR_CFG_RNG_250DPS 0x3
+#define BNO055_GYR_CFG_RNG_125DPS 0x4
+
+#define BNO055_GYR_CFG_BW_523HZ (0x0 << 3)
+#define BNO055_GYR_CFG_BW_230HZ (0x1 << 3)
+#define BNO055_GYR_CFG_BW_116HZ (0x2 << 3)
+#define BNO055_GYR_CFG_BW_47HZ (0x3 << 3)
+#define BNO055_GYR_CFG_BW_23HZ (0x4 << 3)
+#define BNO055_GYR_CFG_BW_12HZ (0x5 << 3)
+#define BNO055_GYR_CFG_BW_64HZ (0x6 << 3)
+#define BNO055_GYR_CFG_BW_32HZ (0x7 << 3)
+
+#define BNO055_GYR_CFG_OPR_MODE_NORMAL (0x0 << 5)
+#define BNO055_GYR_CFG_OPR_MODE_FAST_PWR_UP (0x1 << 5)
+#define BNO055_GYR_CFG_OPR_MODE_DSUSPEND (0x2 << 5)
+#define BNO055_GYR_CFG_OPR_MODE_SUSPEND (0x3 << 5)
+#define BNO055_GYR_CFG_OPR_MODE_ADV_PWR_SAVE (0x4 << 5)
+
+/* Magnetometer config */
+#define BNO055_MAG_CFG_BW_2HZ 0x0
+#define BNO055_MAG_CFG_BW_6HZ 0x1
+#define BNO055_MAG_CFG_BW_8HZ 0x2
+#define BNO055_MAG_CFG_BW_10HZ 0x3
+#define BNO055_MAG_CFG_BW_15HZ 0x4
+#define BNO055_MAG_CFG_BW_20HZ 0x5
+#define BNO055_MAG_CFG_BW_25HZ 0x6
+#define BNO055_MAG_CFG_BW_30HZ 0x7
+
+#define BNO055_MAG_CFG_OPR_MODE_LOWPWR (0x0 << 3)
+#define BNO055_MAG_CFG_OPR_MODE_REG (0x1 << 3)
+#define BNO055_MAG_CFG_OPR_MODE_EREG (0x2 << 3)
+#define BNO055_MAG_CFG_OPR_MODE_HIGHACC (0x3 << 3)
+
+#define BNO055_MAG_CFG_PWR_MODE_NORMAL (0x0 << 5)
+#define BNO055_MAG_CFG_PWR_MODE_SLEEP (0x1 << 5)
+#define BNO055_MAG_CFG_PWR_MODE_SUSPEND (0x2 << 5)
+#define BNO055_MAG_CFG_PWR_MODE_FORCE_MODE (0x3 << 5)
+
#define BNO055_ID 0xA0
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/40b9b6b5/hw/drivers/sensors/bno055/src/bno055_shell.c
----------------------------------------------------------------------
diff --git a/hw/drivers/sensors/bno055/src/bno055_shell.c b/hw/drivers/sensors/bno055/src/bno055_shell.c
index 9de1ed5..f370655 100644
--- a/hw/drivers/sensors/bno055/src/bno055_shell.c
+++ b/hw/drivers/sensors/bno055/src/bno055_shell.c
@@ -160,6 +160,7 @@ bno055_shell_cmd_read(int argc, char **argv)
struct sensor_euler_data *sed;
struct sensor_accel_data *sad;
int type;
+ char tmpstr[13];
type = 0;
if (argc > 4) {
@@ -192,9 +193,12 @@ bno055_shell_cmd_read(int argc, char **argv)
goto err;
}
sqd = databuf;
- console_printf("x:%u y:%u z:%u w:%u\n", (unsigned int)sqd->sqd_x,
- (unsigned int)sqd->sqd_y, (unsigned int)sqd->sqd_z,
- (unsigned int)sqd->sqd_w);
+
+ console_printf("x:%s ", sensor_ftostr(sqd->sqd_x, tmpstr, 13));
+ console_printf("y:%s ", sensor_ftostr(sqd->sqd_y, tmpstr, 13));
+ console_printf("z:%s ", sensor_ftostr(sqd->sqd_z, tmpstr, 13));
+ console_printf("w:%s\n", sensor_ftostr(sqd->sqd_w, tmpstr, 13));
+
} else if (type == SENSOR_TYPE_EULER) {
rc = bno055_get_vector_data(databuf, type);
if (rc) {
@@ -202,8 +206,11 @@ bno055_shell_cmd_read(int argc, char **argv)
goto err;
}
sed = databuf;
- console_printf("h:%u r:%u p:%u\n", (unsigned int)sed->sed_h,
- (unsigned int)sed->sed_r, (unsigned int)sed->sed_p);
+
+ console_printf("h:%s ", sensor_ftostr(sed->sed_h, tmpstr, 13));
+ console_printf("r:%s ", sensor_ftostr(sed->sed_r, tmpstr, 13));
+ console_printf("p:%s\n", sensor_ftostr(sed->sed_p, tmpstr, 13));
+
} else {
rc = bno055_get_vector_data(databuf, type);
if (rc) {
@@ -211,11 +218,15 @@ bno055_shell_cmd_read(int argc, char **argv)
goto err;
}
sad = databuf;
- console_printf("x:%u y:%u z:%u\n", (unsigned int)sad->sad_x,
- (unsigned int)sad->sad_y, (unsigned int)sad->sad_z);
+
+ console_printf("x:%s ", sensor_ftostr(sad->sad_x, tmpstr, 13));
+ console_printf("y:%s ", sensor_ftostr(sad->sad_y, tmpstr, 13));
+ console_printf("z:%s\n", sensor_ftostr(sad->sad_z, tmpstr, 13));
}
}
+ free(databuf);
+
return 0;
err:
return rc;
@@ -242,7 +253,7 @@ bno055_shell_cmd_opr_mode(int argc, char **argv)
if (bno055_shell_stol(argv[2], 0, 16, &val)) {
return bno055_shell_err_invalid_arg(argv[2]);
}
- /* Make sure mode is */
+ /* Make sure mode is valid */
if (val > BNO055_OPERATION_MODE_NDOF) {
return bno055_shell_err_invalid_arg(argv[2]);
}
@@ -279,7 +290,7 @@ bno055_shell_cmd_pwr_mode(int argc, char **argv)
if (bno055_shell_stol(argv[2], 0, 16, &val)) {
return bno055_shell_err_invalid_arg(argv[2]);
}
- /* Make sure mode is */
+ /* Make sure mode is valid */
if (val > BNO055_POWER_MODE_SUSPEND) {
return bno055_shell_err_invalid_arg(argv[2]);
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/40b9b6b5/hw/sensor/include/sensor/sensor.h
----------------------------------------------------------------------
diff --git a/hw/sensor/include/sensor/sensor.h b/hw/sensor/include/sensor/sensor.h
index d707e2b..769a148 100644
--- a/hw/sensor/include/sensor/sensor.h
+++ b/hw/sensor/include/sensor/sensor.h
@@ -325,6 +325,9 @@ struct sensor *sensor_mgr_find_next(sensor_mgr_compare_func_t, void *,
struct sensor *sensor_mgr_find_next_bytype(sensor_type_t, struct sensor *);
struct sensor *sensor_mgr_find_next_bydevname(char *, struct sensor *);
+char*
+sensor_ftostr(float num, char *fltstr, int len);
+
/**
* }@
*/
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/40b9b6b5/hw/sensor/src/sensor_shell.c
----------------------------------------------------------------------
diff --git a/hw/sensor/src/sensor_shell.c b/hw/sensor/src/sensor_shell.c
index c2c68b1..bd73cfa 100644
--- a/hw/sensor/src/sensor_shell.c
+++ b/hw/sensor/src/sensor_shell.c
@@ -83,10 +83,12 @@ struct sensor_shell_read_ctx {
int num_entries;
};
-static char*
-floattostr(float num, char *fltstr, int len)
+char*
+sensor_ftostr(float num, char *fltstr, int len)
{
- snprintf(fltstr, len, "%s%d.%09ld", num < 0.0 ? "-":"", (int)num,
+ memset(fltstr, 0, len);
+
+ snprintf(fltstr, len, "%s%d.%09ld", num < 0.0 ? "-":"", abs((int)num),
labs((long int)((num - (float)((int)num)) * 1000000000)));
return fltstr;
}
@@ -107,13 +109,13 @@ sensor_shell_read_listener(struct sensor *sensor, void *arg, void *data)
if (ctx->type == SENSOR_TYPE_ACCELEROMETER) {
sad = (struct sensor_accel_data *) data;
if (sad->sad_x != SENSOR_ACCEL_DATA_UNUSED) {
- console_printf("x = %s ", floattostr(sad->sad_x, tmpstr, 13));
+ console_printf("x = %s ", sensor_ftostr(sad->sad_x, tmpstr, 13));
}
if (sad->sad_y != SENSOR_ACCEL_DATA_UNUSED) {
- console_printf("y = %s ", floattostr(sad->sad_y, tmpstr, 13));
+ console_printf("y = %s ", sensor_ftostr(sad->sad_y, tmpstr, 13));
}
if (sad->sad_z != SENSOR_ACCEL_DATA_UNUSED) {
- console_printf("z = %s", floattostr(sad->sad_z, tmpstr, 13));
+ console_printf("z = %s", sensor_ftostr(sad->sad_z, tmpstr, 13));
}
console_printf("\n");
}
@@ -121,13 +123,13 @@ sensor_shell_read_listener(struct sensor *sensor, void *arg, void *data)
if (ctx->type == SENSOR_TYPE_MAGNETIC_FIELD) {
smd = (struct sensor_mag_data *) data;
if (smd->smd_x != SENSOR_MAG_DATA_UNUSED) {
- console_printf("x = %i, ", (int)smd->smd_x);
+ console_printf("x = %s ", sensor_ftostr(smd->smd_x, tmpstr, 13));
}
if (smd->smd_y != SENSOR_MAG_DATA_UNUSED) {
- console_printf("y = %i, ", (int)smd->smd_y);
+ console_printf("y = %s ", sensor_ftostr(smd->smd_y, tmpstr, 13));
}
if (smd->smd_z != SENSOR_MAG_DATA_UNUSED) {
- console_printf("z = %i", (int)smd->smd_z);
+ console_printf("z = %s ", sensor_ftostr(smd->smd_z, tmpstr, 13));
}
console_printf("\n");
}