add rt_sensor_float_t
This commit is contained in:
parent
df397eb767
commit
953a8c265d
|
@ -322,8 +322,12 @@ config RT_USING_SENSOR
|
|||
|
||||
if RT_USING_SENSOR
|
||||
config RT_USING_SENSOR_CMD
|
||||
bool "Using Sensor cmd"
|
||||
bool "Enable sensor commands"
|
||||
default y
|
||||
|
||||
config RT_USING_SENSOR_DOUBLE_FLOAT
|
||||
bool "Using double floating as sensor data type"
|
||||
default n
|
||||
endif
|
||||
|
||||
config RT_USING_TOUCH
|
||||
|
|
|
@ -30,7 +30,6 @@ extern "C" {
|
|||
#define RT_SENSOR_MODULE_MAX (3) /* The maximum number of members of a sensor module */
|
||||
|
||||
/* Sensor types */
|
||||
|
||||
#define RT_SENSOR_CLASS_NONE (0)
|
||||
#define RT_SENSOR_CLASS_ACCE (1) /* Accelerometer */
|
||||
#define RT_SENSOR_CLASS_GYRO (2) /* Gyroscope */
|
||||
|
@ -55,7 +54,6 @@ extern "C" {
|
|||
#define RT_SENSOR_CLASS_BP (21) /* Blood Pressure */
|
||||
|
||||
/* Sensor vendor types */
|
||||
|
||||
#define RT_SENSOR_VENDOR_UNKNOWN (0)
|
||||
#define RT_SENSOR_VENDOR_STM (1) /* STMicroelectronics */
|
||||
#define RT_SENSOR_VENDOR_BOSCH (2) /* Bosch */
|
||||
|
@ -74,7 +72,6 @@ extern "C" {
|
|||
#define RT_SENSOR_VENDOR_MELEXIS (15) /* Melexis */
|
||||
|
||||
/* Sensor unit types */
|
||||
|
||||
#define RT_SENSOR_UNIT_NONE (0)
|
||||
#define RT_SENSOR_UNIT_MG (1) /* Accelerometer unit: mG */
|
||||
#define RT_SENSOR_UNIT_MDPS (2) /* Gyroscope unit: mdps */
|
||||
|
@ -95,15 +92,14 @@ extern "C" {
|
|||
#define RT_SENSOR_UNIT_DD (17) /* Coordinates unit: DD */
|
||||
#define RT_SENSOR_UNIT_MGM3 (18) /* Concentration unit: mg/m3 */
|
||||
#define RT_SENSOR_UNIT_MMHG (19) /* Blood Pressure unit: mmHg */
|
||||
/* Sensor communication interface types */
|
||||
|
||||
/* Sensor communication interface types */
|
||||
#define RT_SENSOR_INTF_I2C (1 << 0)
|
||||
#define RT_SENSOR_INTF_SPI (1 << 1)
|
||||
#define RT_SENSOR_INTF_UART (1 << 2)
|
||||
#define RT_SENSOR_INTF_ONEWIRE (1 << 3)
|
||||
|
||||
/* Sensor power mode types */
|
||||
|
||||
#define RT_SENSOR_POWER_NONE (0)
|
||||
#define RT_SENSOR_POWER_DOWN (1) /* power down mode */
|
||||
#define RT_SENSOR_POWER_NORMAL (2) /* normal-power mode */
|
||||
|
@ -111,14 +107,12 @@ extern "C" {
|
|||
#define RT_SENSOR_POWER_HIGH (4) /* high-power mode */
|
||||
|
||||
/* Sensor work mode types */
|
||||
|
||||
#define RT_SENSOR_MODE_NONE (0)
|
||||
#define RT_SENSOR_MODE_POLLING (1) /* One shot only read a data */
|
||||
#define RT_SENSOR_MODE_INT (2) /* TODO: One shot interrupt only read a data */
|
||||
#define RT_SENSOR_MODE_FIFO (3) /* TODO: One shot interrupt read all fifo data */
|
||||
|
||||
/* Sensor control cmd types */
|
||||
|
||||
#define RT_SENSOR_CTRL_GET_ID (RT_DEVICE_CTRL_BASE(Sensor) + 0) /* Get device id */
|
||||
#define RT_SENSOR_CTRL_GET_INFO (RT_DEVICE_CTRL_BASE(Sensor) + 1) /* Get sensor info */
|
||||
#define RT_SENSOR_CTRL_SET_RANGE (RT_DEVICE_CTRL_BASE(Sensor) + 2) /* Set the measure range of sensor. unit is info of sensor */
|
||||
|
@ -129,6 +123,13 @@ extern "C" {
|
|||
|
||||
#define RT_SENSOR_CTRL_USER_CMD_START 0x100 /* User commands should be greater than 0x100 */
|
||||
|
||||
/* sensor floating data type */
|
||||
#ifdef RT_USING_SENSOR_DOUBLE_FLOAT
|
||||
typedef double rt_sensor_float_t;
|
||||
#else
|
||||
typedef float rt_sensor_float_t;
|
||||
#endif /* RT_USING_SENSOR_DOUBLE_FLOAT */
|
||||
|
||||
struct rt_sensor_info
|
||||
{
|
||||
rt_uint8_t type; /* The sensor type */
|
||||
|
@ -190,22 +191,22 @@ struct rt_sensor_module
|
|||
/* 3-axis Data Type */
|
||||
struct sensor_3_axis
|
||||
{
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
rt_sensor_float_t x;
|
||||
rt_sensor_float_t y;
|
||||
rt_sensor_float_t z;
|
||||
};
|
||||
|
||||
/* Blood Pressure Data Type */
|
||||
struct sensor_bp
|
||||
{
|
||||
float sbp; /* SBP : systolic pressure */
|
||||
float dbp; /* DBP : diastolic pressure */
|
||||
rt_sensor_float_t sbp; /* SBP : systolic pressure */
|
||||
rt_sensor_float_t dbp; /* DBP : diastolic pressure */
|
||||
};
|
||||
|
||||
struct coordinates
|
||||
{
|
||||
float longitude;
|
||||
float latitude;
|
||||
rt_sensor_float_t longitude;
|
||||
rt_sensor_float_t latitude;
|
||||
};
|
||||
|
||||
struct rt_sensor_data
|
||||
|
@ -219,21 +220,21 @@ struct rt_sensor_data
|
|||
struct sensor_3_axis mag; /* Magnetometer. unit: mGauss */
|
||||
struct coordinates coord; /* Coordinates unit: degrees */
|
||||
struct sensor_bp bp; /* BloodPressure. unit: mmHg */
|
||||
float temp; /* Temperature. unit: dCelsius */
|
||||
float humi; /* Relative humidity. unit: permillage */
|
||||
float baro; /* Pressure. unit: pascal (Pa) */
|
||||
float light; /* Light. unit: lux */
|
||||
float proximity; /* Distance. unit: centimeters */
|
||||
float hr; /* Heart rate. unit: bpm */
|
||||
float tvoc; /* TVOC. unit: permillage */
|
||||
float noise; /* Noise Loudness. unit: HZ */
|
||||
float step; /* Step sensor. unit: 1 */
|
||||
float force; /* Force sensor. unit: mN */
|
||||
float dust; /* Dust sensor. unit: ug/m3 */
|
||||
float eco2; /* eCO2 sensor. unit: ppm */
|
||||
float spo2; /* SpO2 sensor. unit: permillage */
|
||||
float iaq; /* IAQ sensor. unit: 1 */
|
||||
float etoh; /* EtOH sensor. unit: ppm */
|
||||
rt_sensor_float_t temp; /* Temperature. unit: dCelsius */
|
||||
rt_sensor_float_t humi; /* Relative humidity. unit: permillage */
|
||||
rt_sensor_float_t baro; /* Pressure. unit: pascal (Pa) */
|
||||
rt_sensor_float_t light; /* Light. unit: lux */
|
||||
rt_sensor_float_t proximity; /* Distance. unit: centimeters */
|
||||
rt_sensor_float_t hr; /* Heart rate. unit: bpm */
|
||||
rt_sensor_float_t tvoc; /* TVOC. unit: permillage */
|
||||
rt_sensor_float_t noise; /* Noise Loudness. unit: HZ */
|
||||
rt_sensor_float_t step; /* Step sensor. unit: 1 */
|
||||
rt_sensor_float_t force; /* Force sensor. unit: mN */
|
||||
rt_sensor_float_t dust; /* Dust sensor. unit: ug/m3 */
|
||||
rt_sensor_float_t eco2; /* eCO2 sensor. unit: ppm */
|
||||
rt_sensor_float_t spo2; /* SpO2 sensor. unit: permillage */
|
||||
rt_sensor_float_t iaq; /* IAQ sensor. unit: 1 */
|
||||
rt_sensor_float_t etoh; /* EtOH sensor. unit: ppm */
|
||||
} data;
|
||||
};
|
||||
|
||||
|
@ -243,10 +244,10 @@ struct rt_sensor_ops
|
|||
rt_err_t (*control)(rt_sensor_t sensor, int cmd, void *arg);
|
||||
};
|
||||
|
||||
int rt_hw_sensor_register(rt_sensor_t sensor,
|
||||
const char *name,
|
||||
rt_uint32_t flag,
|
||||
void *data);
|
||||
int rt_hw_sensor_register(rt_sensor_t sensor,
|
||||
const char *name,
|
||||
rt_uint32_t flag,
|
||||
void *data);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -421,10 +421,10 @@ const static struct rt_device_ops rt_sensor_ops =
|
|||
/*
|
||||
* sensor register
|
||||
*/
|
||||
int rt_hw_sensor_register(rt_sensor_t sensor,
|
||||
const char *name,
|
||||
rt_uint32_t flag,
|
||||
void *data)
|
||||
int rt_hw_sensor_register(rt_sensor_t sensor,
|
||||
const char *name,
|
||||
rt_uint32_t flag,
|
||||
void *data)
|
||||
{
|
||||
rt_int8_t result;
|
||||
rt_device_t device;
|
||||
|
|
Loading…
Reference in New Issue