This is an automated email from the ASF dual-hosted git repository. jerpelea pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
commit b3cf222836bea1a97fc2c5d49596850459c99b9d Author: raiden00pl <[email protected]> AuthorDate: Sun Mar 29 17:46:22 2026 +0200 system/sensorscope: support for fixe16 data system/sensorscope: support for fixe16 data Signed-off-by: raiden00pl <[email protected]> --- system/sensorscope/sensorscope_main.c | 57 +++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/system/sensorscope/sensorscope_main.c b/system/sensorscope/sensorscope_main.c index 1bb5e044d..9430ab08c 100644 --- a/system/sensorscope/sensorscope_main.c +++ b/system/sensorscope/sensorscope_main.c @@ -50,6 +50,12 @@ #define SENSOR_PATH_MAX 62 #define SENSOR_CHNAME_MAX 16 +#ifdef CONFIG_SENSORS_USE_B16 +# define NXSCOPE_DATA_TYPE NXSCOPE_TYPE_B16 +#else +# define NXSCOPE_DATA_TYPE NXSCOPE_TYPE_FLOAT +#endif + /**************************************************************************** * Private Types ****************************************************************************/ @@ -98,24 +104,41 @@ struct nxscope_thr_env_s struct nxsensor_info_s g_nxsensor[] = { - {"accel", sizeof(struct sensor_accel), 0, 3, NXSCOPE_TYPE_FLOAT}, - {"mag", sizeof(struct sensor_mag), 0, 3, NXSCOPE_TYPE_FLOAT}, - {"gyro", sizeof(struct sensor_gyro), 0, 3, NXSCOPE_TYPE_FLOAT}, - {"light", sizeof(struct sensor_light), 0, 2, NXSCOPE_TYPE_FLOAT}, - {"baro", sizeof(struct sensor_baro), 0, 2, NXSCOPE_TYPE_FLOAT}, - {"prox", sizeof(struct sensor_prox), 0, 1, NXSCOPE_TYPE_FLOAT}, - {"humi", sizeof(struct sensor_humi), 0, 1, NXSCOPE_TYPE_FLOAT}, - {"temp", sizeof(struct sensor_temp), 0, 1, NXSCOPE_TYPE_FLOAT}, - {"rgb", sizeof(struct sensor_rgb), 0, 3, NXSCOPE_TYPE_FLOAT}, + {"accel", sizeof(struct sensor_accel), 0, 3, NXSCOPE_DATA_TYPE}, + {"mag", sizeof(struct sensor_mag), 0, 3, NXSCOPE_DATA_TYPE}, + {"gyro", sizeof(struct sensor_gyro), 0, 3, NXSCOPE_DATA_TYPE}, + {"light", sizeof(struct sensor_light), 0, 2, NXSCOPE_DATA_TYPE}, + {"baro", sizeof(struct sensor_baro), 0, 2, NXSCOPE_DATA_TYPE}, + {"prox", sizeof(struct sensor_prox), 0, 1, NXSCOPE_DATA_TYPE}, + {"humi", sizeof(struct sensor_humi), 0, 1, NXSCOPE_DATA_TYPE}, + {"temp", sizeof(struct sensor_temp), 0, 1, NXSCOPE_DATA_TYPE}, + {"rgb", sizeof(struct sensor_rgb), 0, 3, NXSCOPE_DATA_TYPE}, {"hall", sizeof(struct sensor_hall), 0, 1, NXSCOPE_TYPE_INT32}, - {"ir", sizeof(struct sensor_ir), 0, 1, NXSCOPE_TYPE_FLOAT}, - {"gas", sizeof(struct sensor_gas), 0, 1, NXSCOPE_TYPE_FLOAT}, + {"ir", sizeof(struct sensor_ir), 0, 1, NXSCOPE_DATA_TYPE}, + {"gas", sizeof(struct sensor_gas), 0, 1, NXSCOPE_DATA_TYPE}, }; /**************************************************************************** * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: nxscope_samples_put + ****************************************************************************/ + +static void nxscope_samples_put(FAR struct nxscope_thr_env_s *envp, + FAR struct listen_object_s *tmp, + size_t offset) +{ +#ifdef CONFIG_SENSORS_USE_B16 + FAR b16_t *data = (b16_t *)&tmp->data[offset]; + nxscope_put_vb16(&envp->nxs, tmp->chanid, data, tmp->info->dim); +#else + FAR float *data = (float *)&tmp->data[offset]; + nxscope_put_vfloat(&envp->nxs, tmp->chanid, data, tmp->info->dim); +#endif +} + /**************************************************************************** * Name: nxscope_samples_thr ****************************************************************************/ @@ -124,9 +147,7 @@ static FAR void *nxscope_samples_thr(FAR void *arg) { FAR struct nxscope_thr_env_s *envp = arg; FAR struct listen_object_s *tmp; - FAR float *data; int ret; - size_t offset; DEBUGASSERT(envp); @@ -147,11 +168,9 @@ static FAR void *nxscope_samples_thr(FAR void *arg) { /* Get vector from a given offset */ - offset = tmp->info->data_offset + sizeof(uint64_t); - data = (float *)&tmp->data[offset]; - - nxscope_put_vfloat(&envp->nxs, tmp->chanid, data, - tmp->info->dim); + nxscope_samples_put(envp, tmp, + tmp->info->data_offset + + sizeof(uint64_t)); } } @@ -363,7 +382,7 @@ static int nxscope_channels(FAR struct nxscope_thr_env_s *envp) /* Register nxscope channel */ - u.s.dtype = NXSCOPE_TYPE_FLOAT; + u.s.dtype = NXSCOPE_DATA_TYPE; u.s._res = 0; u.s.cri = 0;
