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