From c2a38244b41e55b3de444cb952d3724312c2b86e Mon Sep 17 00:00:00 2001 From: Piotr Kosko Date: Fri, 26 Jun 2015 14:25:14 +0200 Subject: [PATCH] [Sensor] Added additional check for HRM sensor [Feature] Added additional 'is supported' check for HRM_RAW sensor. Added returning default values when no available HRM sensors. [Verification] Code compiles without errors. TCT passrate 100%. Change-Id: I77e65de28a97fe8984edb96d42bf4d6396877b2b Signed-off-by: Piotr Kosko --- src/sensor/sensor_service.cc | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/sensor/sensor_service.cc b/src/sensor/sensor_service.cc index f1cfa8e..d23ec67 100644 --- a/src/sensor/sensor_service.cc +++ b/src/sensor/sensor_service.cc @@ -286,6 +286,7 @@ PlatformResult SensorData::IsSupportedImpl(bool* supported) const { return GetSensorPlatformResult(ret, "sensor_is_supported"); } else { *supported = is_supported; + LoggerD("supported: %d", is_supported); return PlatformResult(ErrorCode::NO_ERROR); } } @@ -470,15 +471,23 @@ PlatformResult HrmSensorData::IsSupportedImpl(bool* supported) const { LoggerD("Entered: %s", type_to_string_map[type()].c_str()); bool result = false; + bool hrm_supported = false; + int ret = sensor_is_supported(SENSOR_HRM, &hrm_supported); + if (ret == SENSOR_ERROR_NONE){ + LoggerD("HRM support is: %d", hrm_supported); + result |= hrm_supported; + } + for (const auto& sensor : hrm_sensors_) { bool is_supported = false; auto res = sensor.second->IsSupported(&is_supported); + LoggerD("supported: %d", is_supported); if (!res) { return res; } result |= is_supported; } - + LoggerD("result supported: %d", result); *supported = result; return PlatformResult(ErrorCode::NO_ERROR); } @@ -513,7 +522,16 @@ PlatformResult HrmSensorData::GetSensorData(picojson::object* data) { } } - return PlatformResult(ErrorCode::UNKNOWN_ERR, "There are no supported HRM sensors."); + // use default values when are no available HRM sensors + const sensor_type_e default_sensor_type = SENSOR_HRM_LED_IR; + const double default_sensor_value = 0.0; + + LoggerD("There are no supported HRM sensors - returning default values"); + (*data)["lightType"] = picojson::value(type_to_string_map[default_sensor_type]); + (*data)["lightIntensity"] = picojson::value(default_sensor_value); + (*data)[kListenerId] = picojson::value(kSensorChangedListener); + (*data)[kSensorTypeTag] = picojson::value(type_to_string_map[default_sensor_type]); + return PlatformResult(ErrorCode::NO_ERROR); } SensorService::SensorService(SensorInstance& instance) -- 2.7.4