unsigned int sensors;
gboolean start_detection = FALSE;
GSList *l;
- unsigned int presence_env_sensors;
- unsigned int absence_env_sensors;
+ unsigned int env_sensors;
- presence_env_sensors = _uam_core_get_active_env_sensors(UAM_DETECT_PRESENCE);
- UAM_DBG("Presence Envionmental sensors: 0x%8.8X", presence_env_sensors);
+ env_sensors = _uam_core_get_active_env_sensors(UAM_DETECT_PRESENCE) |
+ _uam_core_get_active_env_sensors(UAM_DETECT_ABSENCE);
+ UAM_DBG("Active envionmental sensors: 0x%8.8X", env_sensors);
- absence_env_sensors = _uam_core_get_active_env_sensors(UAM_DETECT_ABSENCE);
- UAM_DBG("Absence Envionmental sensors: 0x%8.8X", absence_env_sensors);
-
- if (0 != presence_env_sensors) {
- /* Stop PRESENCE detection on active envionmental sensors*/
- ret = _uam_pm_stop_detection(UAM_DETECT_PRESENCE, presence_env_sensors);
- if (UAM_ERROR_NONE != ret)
- UAM_ERR("Failed with error: %s (0x%4.4X)",
- _uam_manager_error_to_str(ret), ret);
- }
- if (0 != absence_env_sensors) {
- /* Stop ABSENCE detection on envionmental sensors*/
- ret = _uam_pm_stop_detection(UAM_DETECT_ABSENCE, absence_env_sensors);
+ if (0 != env_sensors) {
+ /* stop detection on active envionmental sensors*/
+ ret = _uam_pm_stop_detection(UAM_DETECT_PRESENCE | 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);
if (!start_detection)
goto done;
- /* Get sensors on which PRESENCE detection to be started */
- sensors = _uam_core_get_active_sensors(UAM_DETECT_PRESENCE);
- UAM_DBG("PRESENCE sensors: 0x%8.8X", sensors);
-
- /* Remove env sensors from active sensors */
- sensors &= ~presence_env_sensors;
- UAM_DBG("Presence Connectivity sensors: 0x%8.8X", sensors);
-
- if (0 != sensors) {
- /* Start PRESENCE detection */
- ret = _uam_pm_start_detection(UAM_DETECT_PRESENCE, sensors);
- if (UAM_ERROR_NONE != ret)
- UAM_ERR("Failed with error: %s (0x%4.4X)",
- _uam_manager_error_to_str(ret), ret);
- }
-
- /* Get sensors on which ABSENCE detection to be started */
- sensors = _uam_core_get_active_sensors(UAM_DETECT_ABSENCE);
- UAM_DBG("ABSENCE sensors: 0x%8.8X", sensors);
+ /* Get sensors on which detection to be started */
+ sensors = _uam_core_get_active_sensors(UAM_DETECT_PRESENCE) |
+ _uam_core_get_active_sensors(UAM_DETECT_ABSENCE);
+ UAM_DBG("Active sensors: 0x%8.8X", sensors);
/* Remove env sensors from active sensors */
- sensors &= ~absence_env_sensors;
- UAM_DBG("ABSENCE Connectivity sensors: 0x%8.8X", sensors);
+ sensors &= ~env_sensors;
+ UAM_DBG("Active connectivity sensors: 0x%8.8X", sensors);
if (0 != sensors) {
- /* Start ABSENCE detection */
- ret = _uam_pm_start_detection(UAM_DETECT_ABSENCE, sensors);
+ /* Start detection */
+ ret = _uam_pm_start_detection(UAM_DETECT_PRESENCE | UAM_DETECT_ABSENCE,
+ sensors);
if (UAM_ERROR_NONE != ret)
UAM_ERR("Failed with error: %s (0x%4.4X)",
_uam_manager_error_to_str(ret), ret);
}
done:
- if (0 != presence_env_sensors) {
- /* Always Start PRESENCE detection on active envionmental sensors*/
- ret = _uam_pm_start_detection(UAM_DETECT_PRESENCE, presence_env_sensors);
- if (UAM_ERROR_NONE != ret)
- UAM_ERR("Failed with error: %s (0x%4.4X)",
- _uam_manager_error_to_str(ret), ret);
- }
- if (0 != absence_env_sensors) {
- /* Always Start ABSENCE detection on active envionmental sensors*/
- ret = _uam_pm_start_detection(UAM_DETECT_ABSENCE, absence_env_sensors);
+ if (0 != env_sensors) {
+ /* continuous monitoring
+ * always start detection on active envionmental sensors */
+ ret = _uam_pm_start_detection(UAM_DETECT_PRESENCE | 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);