#ifndef __SENSOR_DATA_H__
#define __SENSOR_DATA_H__
+#include <stdbool.h>
+
typedef enum {
SENSOR_DATA_TYPE_NONE = 0,
SENSOR_DATA_TYPE_INT,
SENSOR_DATA_TYPE_UINT,
+ SENSOR_DATA_TYPE_BOOL,
SENSOR_DATA_TYPE_DOUBLE,
SENSOR_DATA_TYPE_STR,
} sensor_data_type_e;
int sensor_data_set_int(sensor_data *data, int value);
int sensor_data_set_uint(sensor_data *data, unsigned int value);
+int sensor_data_set_bool(sensor_data *data, bool value);
int sensor_data_set_double(sensor_data *data, double value);
int sensor_data_set_string(sensor_data *data, const char *value, unsigned int size);
int sensor_data_get_int(sensor_data *data, int *value);
int sensor_data_get_uint(sensor_data *data, unsigned int *value);
+int sensor_data_get_bool(sensor_data *data, bool *value);
int sensor_data_get_double(sensor_data *data, double *value);
int sensor_data_get_string(sensor_data *data, const char **value);
union {
int int_val;
unsigned int uint_val;
+ bool b_val;
double d_val;
char *str_val;
} value;
return 0;
}
+int sensor_data_set_bool(sensor_data *data, bool value)
+{
+ retv_if(!data, -1);
+ retv_if(data->type != SENSOR_DATA_TYPE_BOOL, -1);
+
+ pthread_mutex_lock(&data->mutex);
+ data->value.b_val = value;
+ pthread_mutex_unlock(&data->mutex);
+
+ return 0;
+}
+
int sensor_data_set_double(sensor_data *data, double value)
{
retv_if(!data, -1);
return 0;
}
+int sensor_data_get_bool(sensor_data *data, bool *value)
+{
+ retv_if(!data, -1);
+ retv_if(!value, -1);
+ retv_if(data->type != SENSOR_DATA_TYPE_BOOL, -1);
+
+ pthread_mutex_lock(&data->mutex);
+ *value = data->value.b_val;
+ pthread_mutex_unlock(&data->mutex);
+
+ return 0;
+}
+
int sensor_data_get_double(sensor_data *data, double *value)
{
retv_if(!data, -1);