env_sensors = _uam_core_get_env_sensors();
UAM_DBG("Envionmental sensors: 0x%8.8X", env_sensors);
if (0 != env_sensors) {
+ /* Stop PRESENCE detection on envionmental sensors*/
+ ret = _uam_pm_stop_detection(UAM_DETECT_PRESENCE, env_sensors);
+ if (UAM_ERROR_NONE != ret)
+ UAM_ERR("Failed with error: %s (0x%4.4X)",
+ _uam_manager_error_to_str(ret), ret);
+
+ /* Stop ABSENCE detection on envionmental sensors*/
+ ret = _uam_pm_stop_detection(UAM_DETECT_ABSENCE, env_sensors);
+ if (UAM_ERROR_NONE != ret)
+ UAM_ERR("Failed with error: %s (0x%4.4X)",
+ _uam_manager_error_to_str(ret), ret);
+
/* Always Start PRESENCE detection on envionmental sensors*/
ret = _uam_pm_start_detection(UAM_DETECT_PRESENCE, env_sensors);
if (UAM_ERROR_NONE != ret)
UAM_ERR("Failed with error: %s (0x%4.4X)",
_uam_manager_error_to_str(ret), ret);
+
+ /* Always Start ABSENCE detection on envionmental sensors*/
+ ret = _uam_pm_start_detection(UAM_DETECT_ABSENCE, env_sensors);
+ if (UAM_ERROR_NONE != ret)
+ UAM_ERR("Failed with error: %s (0x%4.4X)",
+ _uam_manager_error_to_str(ret), ret);
}
for (l = services; NULL != l; l = g_slist_next(l)) {
sensors = _uam_core_get_active_sensors(UAM_DETECT_ABSENCE);
UAM_DBG("ABSENCE sensors: 0x%8.8X", sensors);
+ /* Remove env sensors from active sensors */
+ sensors &= ~env_sensors;
+ UAM_DBG("Connectivity sensors: 0x%8.8X", sensors);
+
if (0 != sensors) {
/* Start ABSENCE detection */
ret = _uam_pm_start_detection(UAM_DETECT_ABSENCE, sensors);