Enable continuous monitoring for envionmental sensors accepted/tizen/unified/20190917.034055 submit/tizen/20190916.120818
authorAbhay agarwal <ay.agarwal@samsung.com>
Mon, 2 Sep 2019 09:29:33 +0000 (14:59 +0530)
committersaerome.kim <saerome.kim@samsung.com>
Mon, 16 Sep 2019 12:02:12 +0000 (21:02 +0900)
Change-Id: Ib96df58d03eb615dad246beee28f12130fc999ec
Signed-off-by: Abhay agarwal <ay.agarwal@samsung.com>
packaging/ua-manager.spec
ua-daemon/include/ua-manager-core.h
ua-daemon/src/ua-manager-core.c

index 9f2cdec..cb09dad 100644 (file)
@@ -1,6 +1,6 @@
 Name:       ua-manager
 Summary:    User awareness manager
-Version:    0.7.4
+Version:    0.9.0
 Release:    1
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
index 54d1350..d0287c5 100644 (file)
@@ -37,12 +37,12 @@ typedef enum {
        UAM_ADDR_TYPE_MAX
 } uam_addr_type_e;
 
-#define UAM_DETECTION_WINDOW_DEFAULT 60 /* 60 seconds */
-#define UAM_DETECTION_WINDOW_MAX 290 /* 290 seconds */
-#define UAM_DETECTION_WINDOW_STEP 10 /* 10 seconds */
+#define UAM_DETECTION_WINDOW_DEFAULT 55 /* 55 seconds */
+#define UAM_DETECTION_WINDOW_MAX  55 /* 55 seconds */
+#define UAM_DETECTION_WINDOW_STEP 5 /* 5 seconds */
 
-#define UAM_DETECTION_CYCLE_DEFAULT 900 /* 900 seconds */
-#define UAM_DETECTION_CYCLE_MIN 300 /* 300 seconds */
+#define UAM_DETECTION_CYCLE_DEFAULT 60 /* 60 seconds */
+#define UAM_DETECTION_CYCLE_MIN 60 /* 60 seconds */
 
 typedef struct {
        char *name;
index 5b81d54..c4b12fa 100644 (file)
@@ -594,6 +594,18 @@ unsigned int _uam_core_get_active_sensors(int detection_mode)
        return sensors;
 }
 
+unsigned int _uam_core_get_env_sensors()
+{
+       FUNC_ENTRY;
+       unsigned int sensors = 0;
+
+       sensors |= UAM_SENSOR_BITMASK_MOTION;
+       sensors |= UAM_SENSOR_BITMASK_LIGHT;
+
+       FUNC_EXIT;
+       return sensors;
+}
+
 static GSList *__convert_db_svc_list_to_uam_svc_list(GSList *db_svc_list)
 {
        FUNC_ENTRY;
@@ -1702,6 +1714,17 @@ static gboolean __start_detection(gpointer data)
        unsigned int sensors;
        gboolean start_detection = FALSE;
        GSList *l;
+       unsigned int env_sensors;
+
+       env_sensors = _uam_core_get_env_sensors();
+       UAM_DBG("Envionmental sensors: 0x%8.8X", env_sensors);
+       if (0 != env_sensors) {
+               /* 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);
+       }
 
        for (l = services; NULL != l; l = g_slist_next(l)) {
                service = l->data;
@@ -1724,6 +1747,10 @@ static gboolean __start_detection(gpointer data)
        sensors = _uam_core_get_active_sensors(UAM_DETECT_PRESENCE);
        UAM_DBG("PRESENCE sensors: 0x%8.8X", sensors);
 
+       /* Remove env sensors from active sensors */
+       sensors &= ~env_sensors;
+       UAM_DBG("PRESENCE sensors: 0x%8.8X", sensors);
+
        if (0 != sensors) {
                /* Start PRESENCE detection */
                ret = _uam_pm_start_detection(UAM_DETECT_PRESENCE, sensors);