[sensor] 增加新传感器类型和单位

This commit is contained in:
Meco Man 2022-12-12 21:00:16 -05:00 committed by Man, Jianting (Meco)
parent 2aa600e01b
commit 9860b168b8
2 changed files with 78 additions and 42 deletions

View File

@ -76,39 +76,47 @@ extern "C" {
#define RT_SENSOR_CLASS_ETOH_STR "EtOH" #define RT_SENSOR_CLASS_ETOH_STR "EtOH"
#define RT_SENSOR_CLASS_BP (21) #define RT_SENSOR_CLASS_BP (21)
#define RT_SENSOR_CLASS_BP_STR "Blood Pressure" #define RT_SENSOR_CLASS_BP_STR "Blood Pressure"
#define RT_SENSOR_CLASS_VOLTAGE (22)
#define RT_SENSOR_CLASS_VOLTAGE_STR "Voltage"
#define RT_SENSOR_CLASS_CURRENT (23)
#define RT_SENSOR_CLASS_CURRENT_STR "Current"
/* Sensor vendor types */ /* Sensor vendor types */
#define RT_SENSOR_VENDOR_UNKNOWN (0) #define RT_SENSOR_VENDOR_UNKNOWN (0)
#define RT_SENSOR_VENDOR_UNKNOWN_STR "Vendor Unknown" #define RT_SENSOR_VENDOR_UNKNOWN_STR "Unknown"
#define RT_SENSOR_VENDOR_STM (1) #define RT_SENSOR_VENDOR_VIRTUAL (1)
#define RT_SENSOR_VENDOR_VIRTUAL_STR "Virtual Sensor"
#define RT_SENSOR_VENDOR_ONCHIP (2)
#define RT_SENSOR_VENDOR_ONCHIP_STR "OnChip"
#define RT_SENSOR_VENDOR_STM (3)
#define RT_SENSOR_VENDOR_STM_STR "STMicroelectronics" #define RT_SENSOR_VENDOR_STM_STR "STMicroelectronics"
#define RT_SENSOR_VENDOR_BOSCH (2) #define RT_SENSOR_VENDOR_BOSCH (4)
#define RT_SENSOR_VENDOR_BOSCH_STR "Bosch" #define RT_SENSOR_VENDOR_BOSCH_STR "Bosch"
#define RT_SENSOR_VENDOR_INVENSENSE (3) #define RT_SENSOR_VENDOR_INVENSENSE (5)
#define RT_SENSOR_VENDOR_INVENSENSE_STR "Invensense" #define RT_SENSOR_VENDOR_INVENSENSE_STR "Invensense"
#define RT_SENSOR_VENDOR_SEMTECH (4) #define RT_SENSOR_VENDOR_SEMTECH (6)
#define RT_SENSOR_VENDOR_SEMTECH_STR "Semtech" #define RT_SENSOR_VENDOR_SEMTECH_STR "Semtech"
#define RT_SENSOR_VENDOR_GOERTEK (5) #define RT_SENSOR_VENDOR_GOERTEK (7)
#define RT_SENSOR_VENDOR_GOERTEK_STR "Goertek" #define RT_SENSOR_VENDOR_GOERTEK_STR "Goertek"
#define RT_SENSOR_VENDOR_MIRAMEMS (6) #define RT_SENSOR_VENDOR_MIRAMEMS (8)
#define RT_SENSOR_VENDOR_MIRAMEMS_STR "MiraMEMS" #define RT_SENSOR_VENDOR_MIRAMEMS_STR "MiraMEMS"
#define RT_SENSOR_VENDOR_DALLAS (7) #define RT_SENSOR_VENDOR_DALLAS (9)
#define RT_SENSOR_VENDOR_DALLAS_STR "Dallas" #define RT_SENSOR_VENDOR_DALLAS_STR "Dallas"
#define RT_SENSOR_VENDOR_ASAIR (8) #define RT_SENSOR_VENDOR_ASAIR (10)
#define RT_SENSOR_VENDOR_ASAIR_STR "Aosong" #define RT_SENSOR_VENDOR_ASAIR_STR "Aosong"
#define RT_SENSOR_VENDOR_SHARP (9) #define RT_SENSOR_VENDOR_SHARP (11)
#define RT_SENSOR_VENDOR_SHARP_STR "Sharp" #define RT_SENSOR_VENDOR_SHARP_STR "Sharp"
#define RT_SENSOR_VENDOR_SENSIRION (10) #define RT_SENSOR_VENDOR_SENSIRION (12)
#define RT_SENSOR_VENDOR_SENSIRION_STR "Sensirion" #define RT_SENSOR_VENDOR_SENSIRION_STR "Sensirion"
#define RT_SENSOR_VENDOR_TI (11) #define RT_SENSOR_VENDOR_TI (13)
#define RT_SENSOR_VENDOR_TI_STR "Texas Instruments" #define RT_SENSOR_VENDOR_TI_STR "Texas Instruments"
#define RT_SENSOR_VENDOR_PLANTOWER (12) #define RT_SENSOR_VENDOR_PLANTOWER (14)
#define RT_SENSOR_VENDOR_PLANTOWER_STR "Plantower" #define RT_SENSOR_VENDOR_PLANTOWER_STR "Plantower"
#define RT_SENSOR_VENDOR_AMS (13) #define RT_SENSOR_VENDOR_AMS (15)
#define RT_SENSOR_VENDOR_AMS_STR "ams-OSRAM AG" #define RT_SENSOR_VENDOR_AMS_STR "ams-OSRAM AG"
#define RT_SENSOR_VENDOR_MAXIM (14) #define RT_SENSOR_VENDOR_MAXIM (16)
#define RT_SENSOR_VENDOR_MAXIM_STR "Maxim Integrated" #define RT_SENSOR_VENDOR_MAXIM_STR "Maxim Integrated"
#define RT_SENSOR_VENDOR_MELEXIS (15) #define RT_SENSOR_VENDOR_MELEXIS (17)
#define RT_SENSOR_VENDOR_MELEXIS_STR "Melexis" #define RT_SENSOR_VENDOR_MELEXIS_STR "Melexis"
/* Sensor unit types */ /* Sensor unit types */
@ -122,41 +130,51 @@ extern "C" {
#define RT_SENSOR_UNIT_MGAUSS_STR "mGauss" #define RT_SENSOR_UNIT_MGAUSS_STR "mGauss"
#define RT_SENSOR_UNIT_LUX (4) /* Ambient light unit: lux */ #define RT_SENSOR_UNIT_LUX (4) /* Ambient light unit: lux */
#define RT_SENSOR_UNIT_LUX_STR "lux" #define RT_SENSOR_UNIT_LUX_STR "lux"
#define RT_SENSOR_UNIT_CM (5) /* Distance unit: cm */ #define RT_SENSOR_UNIT_M (5) /* Distance unit: m */
#define RT_SENSOR_UNIT_M_STR "m"
#define RT_SENSOR_UNIT_CM (6) /* Distance unit: cm */
#define RT_SENSOR_UNIT_CM_STR "cm" #define RT_SENSOR_UNIT_CM_STR "cm"
#define RT_SENSOR_UNIT_MM (6) /* Distance unit: mm */ #define RT_SENSOR_UNIT_MM (7) /* Distance unit: mm */
#define RT_SENSOR_UNIT_MM_STR "mm" #define RT_SENSOR_UNIT_MM_STR "mm"
#define RT_SENSOR_UNIT_PA (7) /* Barometer unit: Pa */ #define RT_SENSOR_UNIT_PA (8) /* Barometer unit: Pa */
#define RT_SENSOR_UNIT_PA_STR "Pa" #define RT_SENSOR_UNIT_PA_STR "Pa"
#define RT_SENSOR_UNIT_MMHG (8) /* Blood Pressure unit: mmHg */ #define RT_SENSOR_UNIT_MMHG (9) /* Blood Pressure unit: mmHg */
#define RT_SENSOR_UNIT_MMHG_STR "mmHg" #define RT_SENSOR_UNIT_MMHG_STR "mmHg"
#define RT_SENSOR_UNIT_PERMILLAGE (9) /* Relative Humidity unit: permillage */
#define RT_SENSOR_UNIT_PERMILLAGE_STR "‰"
#define RT_SENSOR_UNIT_PERCENTAGE (10) /* Relative Humidity unit: percentage */ #define RT_SENSOR_UNIT_PERCENTAGE (10) /* Relative Humidity unit: percentage */
#define RT_SENSOR_UNIT_PERCENTAGE_STR "%" #define RT_SENSOR_UNIT_PERCENTAGE_STR "%"
#define RT_SENSOR_UNIT_CELSIUS (11) /* Temperature unit: Celsius ℃ */ #define RT_SENSOR_UNIT_PERMILLAGE (11) /* Relative Humidity unit: permillage */
#define RT_SENSOR_UNIT_PERMILLAGE_STR "‰"
#define RT_SENSOR_UNIT_CELSIUS (12) /* Temperature unit: Celsius ℃ */
#define RT_SENSOR_UNIT_CELSIUS_STR "℃" #define RT_SENSOR_UNIT_CELSIUS_STR "℃"
#define RT_SENSOR_UNIT_FAHRENHEIT (12) /* Temperature unit: Fahrenheit ℉ */ #define RT_SENSOR_UNIT_FAHRENHEIT (13) /* Temperature unit: Fahrenheit ℉ */
#define RT_SENSOR_UNIT_FAHRENHEIT_STR "℉" #define RT_SENSOR_UNIT_FAHRENHEIT_STR "℉"
#define RT_SENSOR_UNIT_KELVIN (13) /* Temperature unit: K */ #define RT_SENSOR_UNIT_KELVIN (14) /* Temperature unit: Kelvin K */
#define RT_SENSOR_UNIT_KELVIN_STR "K" #define RT_SENSOR_UNIT_KELVIN_STR "K"
#define RT_SENSOR_UNIT_HZ (14) /* Frequency unit: Hz */ #define RT_SENSOR_UNIT_HZ (15) /* Frequency unit: Hz */
#define RT_SENSOR_UNIT_HZ_STR "Hz" #define RT_SENSOR_UNIT_HZ_STR "Hz"
#define RT_SENSOR_UNIT_BPM (15) /* Heart rate unit: bpm */ #define RT_SENSOR_UNIT_V (16) /* Voltage unit: V */
#define RT_SENSOR_UNIT_BPM_STR "bpm" #define RT_SENSOR_UNIT_V_STR "V"
#define RT_SENSOR_UNIT_MN (16) /* Force unit: mN */ #define RT_SENSOR_UNIT_MV (17) /* Voltage unit: mV */
#define RT_SENSOR_UNIT_MN_STR "mN" #define RT_SENSOR_UNIT_MV_STR "mV"
#define RT_SENSOR_UNIT_N (17) /* Force unit: N */ #define RT_SENSOR_UNIT_A (18) /* Current unit: A */
#define RT_SENSOR_UNIT_A_STR "A"
#define RT_SENSOR_UNIT_MA (19) /* Current unit: mA */
#define RT_SENSOR_UNIT_MA_STR "mA"
#define RT_SENSOR_UNIT_N (20) /* Force unit: N */
#define RT_SENSOR_UNIT_N_STR "N" #define RT_SENSOR_UNIT_N_STR "N"
#define RT_SENSOR_UNIT_PPM (18) /* Concentration unit: ppm */ #define RT_SENSOR_UNIT_MN (21) /* Force unit: mN */
#define RT_SENSOR_UNIT_MN_STR "mN"
#define RT_SENSOR_UNIT_BPM (22) /* Heart rate unit: bpm */
#define RT_SENSOR_UNIT_BPM_STR "bpm"
#define RT_SENSOR_UNIT_PPM (23) /* Concentration unit: ppm */
#define RT_SENSOR_UNIT_PPM_STR "ppm" #define RT_SENSOR_UNIT_PPM_STR "ppm"
#define RT_SENSOR_UNIT_PPB (19) /* Concentration unit: ppb */ #define RT_SENSOR_UNIT_PPB (24) /* Concentration unit: ppb */
#define RT_SENSOR_UNIT_PPB_STR "ppb" #define RT_SENSOR_UNIT_PPB_STR "ppb"
#define RT_SENSOR_UNIT_DMS (20) /* Coordinates unit: DMS */ #define RT_SENSOR_UNIT_DMS (25) /* Coordinates unit: DMS */
#define RT_SENSOR_UNIT_DMS_STR "DMS" #define RT_SENSOR_UNIT_DMS_STR "DMS"
#define RT_SENSOR_UNIT_DD (21) /* Coordinates unit: DD */ #define RT_SENSOR_UNIT_DD (26) /* Coordinates unit: DD */
#define RT_SENSOR_UNIT_DD_STR "DD" #define RT_SENSOR_UNIT_DD_STR "DD"
#define RT_SENSOR_UNIT_MGM3 (22) /* Concentration unit: mg/m3 */ #define RT_SENSOR_UNIT_MGM3 (27) /* Concentration unit: mg/m3 */
#define RT_SENSOR_UNIT_MGM3_STR "mg/m3" #define RT_SENSOR_UNIT_MGM3_STR "mg/m3"
/* Sensor communication interface types */ /* Sensor communication interface types */

View File

@ -67,6 +67,10 @@ static const char *sensor_get_type_name(rt_sensor_info_t info)
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_CLASS_ETOH); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_CLASS_ETOH);
case RT_SENSOR_CLASS_BP: case RT_SENSOR_CLASS_BP:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_CLASS_BP); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_CLASS_BP);
case RT_SENSOR_CLASS_VOLTAGE:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_CLASS_VOLTAGE);
case RT_SENSOR_CLASS_CURRENT:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_CLASS_CURRENT);
case RT_SENSOR_CLASS_NONE: case RT_SENSOR_CLASS_NONE:
default: default:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_CLASS_NONE); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_CLASS_NONE);
@ -77,6 +81,10 @@ static const char *sensor_get_vendor_name(rt_sensor_info_t info)
{ {
switch(info->vendor) switch(info->vendor)
{ {
case RT_SENSOR_VENDOR_VIRTUAL:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_VENDOR_VIRTUAL);
case RT_SENSOR_VENDOR_ONCHIP:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_VENDOR_ONCHIP);
case RT_SENSOR_VENDOR_STM: case RT_SENSOR_VENDOR_STM:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_VENDOR_STM); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_VENDOR_STM);
case RT_SENSOR_VENDOR_BOSCH: case RT_SENSOR_VENDOR_BOSCH:
@ -125,6 +133,8 @@ static const char *sensor_get_unit_name(rt_sensor_info_t info)
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_MGAUSS); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_MGAUSS);
case RT_SENSOR_UNIT_LUX: case RT_SENSOR_UNIT_LUX:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_LUX); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_LUX);
case RT_SENSOR_UNIT_M:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_M);
case RT_SENSOR_UNIT_CM: case RT_SENSOR_UNIT_CM:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_CM); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_CM);
case RT_SENSOR_UNIT_MM: case RT_SENSOR_UNIT_MM:
@ -133,10 +143,10 @@ static const char *sensor_get_unit_name(rt_sensor_info_t info)
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_PA); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_PA);
case RT_SENSOR_UNIT_MMHG: case RT_SENSOR_UNIT_MMHG:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_MMHG); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_MMHG);
case RT_SENSOR_UNIT_PERMILLAGE:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_PERMILLAGE);
case RT_SENSOR_UNIT_PERCENTAGE: case RT_SENSOR_UNIT_PERCENTAGE:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_PERCENTAGE); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_PERCENTAGE);
case RT_SENSOR_UNIT_PERMILLAGE:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_PERMILLAGE);
case RT_SENSOR_UNIT_CELSIUS: case RT_SENSOR_UNIT_CELSIUS:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_CELSIUS); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_CELSIUS);
case RT_SENSOR_UNIT_FAHRENHEIT: case RT_SENSOR_UNIT_FAHRENHEIT:
@ -145,12 +155,20 @@ static const char *sensor_get_unit_name(rt_sensor_info_t info)
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_KELVIN); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_KELVIN);
case RT_SENSOR_UNIT_HZ: case RT_SENSOR_UNIT_HZ:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_HZ); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_HZ);
case RT_SENSOR_UNIT_BPM: case RT_SENSOR_UNIT_V:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_BPM); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_V);
case RT_SENSOR_UNIT_MN: case RT_SENSOR_UNIT_MV:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_MN); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_MV);
case RT_SENSOR_UNIT_A:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_A);
case RT_SENSOR_UNIT_MA:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_MA);
case RT_SENSOR_UNIT_N: case RT_SENSOR_UNIT_N:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_N); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_N);
case RT_SENSOR_UNIT_MN:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_MN);
case RT_SENSOR_UNIT_BPM:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_BPM);
case RT_SENSOR_UNIT_PPM: case RT_SENSOR_UNIT_PPM:
return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_PPM); return RT_SENSOR_MACRO_GET_NAME(RT_SENSOR_UNIT_PPM);
case RT_SENSOR_UNIT_PPB: case RT_SENSOR_UNIT_PPB: