2 #include <accel_sensor_device.h>
4 #ifdef ENABLE_BIO_LED_RED
5 #include <bio_led_red_sensor_device.h>
8 #include <geo_sensor_device.h>
11 #include <gyro_sensor_device.h>
14 #include <light_sensor_device.h>
16 #ifdef ENABLE_PRESSURE
17 #include <pressure_sensor_device.h>
20 #include <proxi_sensor_device.h>
23 #include <rv_raw_sensor_device.h>
25 #ifdef ENABLE_TEMPERATURE
26 #include <temperature_sensor_device.h>
28 #ifdef ENABLE_ULTRAVIOLET
29 #include <ultraviolet_sensor_device.h>
32 #include <sensor_common.h>
34 extern "C" sensor_devices* create(void)
36 sensor_devices *devices = new(std::nothrow) sensor_devices;
37 retvm_if(!devices, NULL, "Failed to allocate memory");
40 accel_sensor_device *accel_sensor = NULL;
42 accel_sensor = new(std::nothrow) accel_sensor_device;
44 ERR("Failed to create accel_sensor_device devices, err: %d, cause: %s", err, strerror(err));
47 if (accel_sensor != NULL) {
48 devices->devices.push_back(accel_sensor);
52 #ifdef ENABLE_BIO_LED_RED
53 bio_led_red_sensor_device *bio_led_red_sensor = NULL;
55 bio_led_red_sensor = new(std::nothrow) bio_led_red_sensor_device;
57 ERR("Failed to create bio_led_red_sensor_device devices, err: %d, cause: %s", err, strerror(err));
59 if (bio_led_red_sensor != NULL)
60 devices->devices.push_back(bio_led_red_sensor);
64 geo_sensor_device *geo_sensor = NULL;
66 geo_sensor = new(std::nothrow) geo_sensor_device;
68 ERR("Failed to create geo_sensor_device devices, err: %d, cause: %s", err, strerror(err));
70 if (geo_sensor != NULL)
71 devices->devices.push_back(geo_sensor);
75 gyro_sensor_device *gyro_sensor = NULL;
77 gyro_sensor = new(std::nothrow) gyro_sensor_device;
79 ERR("Failed to create gyro_sensor_device devices, err: %d, cause: %s", err, strerror(err));
81 if (gyro_sensor != NULL)
82 devices->devices.push_back(gyro_sensor);
86 light_sensor_device *light_sensor = NULL;
88 light_sensor = new(std::nothrow) light_sensor_device;
90 ERR("Failed to create light_sensor_device devices, err: %d, cause: %s", err, strerror(err));
92 if (light_sensor != NULL)
93 devices->devices.push_back(light_sensor);
96 #ifdef ENABLE_PRESSURE
97 pressure_sensor_device *pressure_sensor = NULL;
99 pressure_sensor = new(std::nothrow) pressure_sensor_device;
101 ERR("Failed to create pressure_sensor_device devices, err: %d, cause: %s", err, strerror(err));
103 if (pressure_sensor != NULL)
104 devices->devices.push_back(pressure_sensor);
108 proxi_sensor_device *proxi_sensor = NULL;
110 proxi_sensor = new(std::nothrow) proxi_sensor_device;
112 ERR("Failed to create proxi_sensor_device devices, err: %d, cause: %s", err, strerror(err));
114 if (proxi_sensor != NULL)
115 devices->devices.push_back(proxi_sensor);
119 rv_raw_sensor_device *rv_raw_sensor = NULL;
121 rv_raw_sensor = new(std::nothrow) rv_raw_sensor_device;
123 ERR("Failed to create rv_raw_sensor_device devices, err: %d, cause: %s", err, strerror(err));
125 if (rv_raw_sensor != NULL)
126 devices->devices.push_back(rv_raw_sensor);
129 #ifdef ENABLE_TEMPERATURE
130 temperature_sensor_device *temperature_sensor = NULL;
132 temperature_sensor = new(std::nothrow) temperature_sensor_device;
134 ERR("Failed to create temperature_sensor_device devices, err: %d, cause: %s", err, strerror(err));
136 if (temperature_sensor != NULL)
137 devices->devices.push_back(temperature_sensor);
140 #ifdef ENABLE_ULTRAVIOLET
141 ultraviolet_sensor_device *ultraviolet_sensor = NULL;
143 ultraviolet_sensor = new(std::nothrow) ultraviolet_sensor_device;
145 ERR("Failed to create ultraviolet_sensor_device devices, err: %d, cause: %s", err, strerror(err));
147 if (ultraviolet_sensor != NULL)
148 devices->devices.push_back(ultraviolet_sensor);