[ITC][sensor][ACR-1531][Add sensor types and enum for new sensors] 69/230869/1
authorABHISHEK JAIN <j.abhishek@samsung.com>
Thu, 9 Apr 2020 06:59:33 +0000 (12:29 +0530)
committerABHISHEK JAIN <j.abhishek@samsung.com>
Wed, 15 Apr 2020 11:04:48 +0000 (11:04 +0000)
Change-Id: I4677b1641c91ea3858646fffd483dc50f15fa5ed
Signed-off-by: ABHISHEK JAIN <j.abhishek@samsung.com>
src/itc/sensor/ITs-sensor-common.c
src/itc/sensor/ITs-sensor-common.h
src/itc/sensor/ITs-sensor-provider.c
src/itc/sensor/ITs-sensor-recorder.c
src/itc/sensor/ITs-sensor.c

index 94e16d904689ecd0c372dcdd5d60e2788aefdb9f..e488ee7212b49178bf971817ce6bb2b137c1871d 100755 (executable)
 */
 char* SensorsGetError(int nRet)
 {
-       char *szErrorVal = NULL;
+       char *szErrorVal = "Unknown error";
 
        switch ( nRet )
        {
-       case SENSOR_ERROR_NONE:                                         szErrorVal = "SENSOR_ERROR_NONE";                                               break;
-       case SENSOR_ERROR_IO_ERROR:                             szErrorVal = "SENSOR_ERROR_IO_ERROR";                                   break;
-       case SENSOR_ERROR_INVALID_PARAMETER:            szErrorVal = "SENSOR_ERROR_INVALID_PARAMETER";                  break;
-       case SENSOR_ERROR_OUT_OF_MEMORY:                        szErrorVal = "SENSOR_ERROR_OUT_OF_MEMORY";                              break;
-       case SENSOR_ERROR_NOT_NEED_CALIBRATION:         szErrorVal = "SENSOR_ERROR_NOT_NEED_CALIBRATION";               break;
-       case SENSOR_ERROR_NOT_SUPPORTED:                        szErrorVal = "SENSOR_ERROR_NOT_SUPPORTED";                              break;
-       case SENSOR_ERROR_OPERATION_FAILED:             szErrorVal = "SENSOR_ERROR_OPERATION_FAILED";                   break;
-       case SENSOR_ERROR_PERMISSION_DENIED:            szErrorVal = "SENSOR_ERROR_PERMISSION_DENIED";                  break;
-       case SENSOR_ERROR_NO_DATA:                                      szErrorVal = "SENSOR_ERROR_NO_DATA";                                    break;
-       case SENSOR_ERROR_NOT_AVAILABLE:                        szErrorVal = "SENSOR_ERROR_NOT_AVAILABLE";                              break;
-       default :                                                                       szErrorVal = "Unknown error";                                                   break;
+               case SENSOR_ERROR_NONE:                                         szErrorVal = "SENSOR_ERROR_NONE";                                               break;
+               case SENSOR_ERROR_IO_ERROR:                             szErrorVal = "SENSOR_ERROR_IO_ERROR";                                   break;
+               case SENSOR_ERROR_INVALID_PARAMETER:            szErrorVal = "SENSOR_ERROR_INVALID_PARAMETER";                  break;
+               case SENSOR_ERROR_OUT_OF_MEMORY:                        szErrorVal = "SENSOR_ERROR_OUT_OF_MEMORY";                              break;
+               case SENSOR_ERROR_NOT_NEED_CALIBRATION:         szErrorVal = "SENSOR_ERROR_NOT_NEED_CALIBRATION";               break;
+               case SENSOR_ERROR_NOT_SUPPORTED:                        szErrorVal = "SENSOR_ERROR_NOT_SUPPORTED";                              break;
+               case SENSOR_ERROR_OPERATION_FAILED:             szErrorVal = "SENSOR_ERROR_OPERATION_FAILED";                   break;
+               case SENSOR_ERROR_PERMISSION_DENIED:            szErrorVal = "SENSOR_ERROR_PERMISSION_DENIED";                  break;
+               case SENSOR_ERROR_NO_DATA:                                      szErrorVal = "SENSOR_ERROR_NO_DATA";                                    break;
+               case SENSOR_ERROR_NOT_AVAILABLE:                        szErrorVal = "SENSOR_ERROR_NOT_AVAILABLE";                              break;
        }
        return szErrorVal;
 }
@@ -54,36 +53,37 @@ char* SensorsGetError(int nRet)
 */
 char* SensorGetType(sensor_type_e nSensorType)
 {
-       char *szErrorVal = NULL;
+       char *szErrorVal = "Unknown Error";
        switch ( nSensorType )
        {
-       case SENSOR_ACCELEROMETER:                                      szErrorVal = "SENSOR_ACCELEROMETER";                                    break;
-       case SENSOR_GRAVITY:                                            szErrorVal = "SENSOR_GRAVITY";                                                  break;
-       case SENSOR_LINEAR_ACCELERATION:                        szErrorVal = "SENSOR_LINEAR_ACCELERATION";                              break;
-       case SENSOR_MAGNETIC:                                           szErrorVal = "SENSOR_MAGNETIC";                                                 break;
-       case SENSOR_ROTATION_VECTOR:                            szErrorVal = "SENSOR_ROTATION_VECTOR";                                  break;
-       case SENSOR_ORIENTATION:                                        szErrorVal = "SENSOR_ORIENTATION";                                              break;
-       case SENSOR_GYROSCOPE:                                          szErrorVal = "SENSOR_GYROSCOPE";                                                break;
-       case SENSOR_LIGHT:                                                      szErrorVal = "SENSOR_LIGHT";                                                    break;
-       case SENSOR_PROXIMITY:                                          szErrorVal = "SENSOR_PROXIMITY";                                                break;
-       case SENSOR_PRESSURE:                                           szErrorVal = "SENSOR_PRESSURE";                                                 break;
-       case SENSOR_ULTRAVIOLET:                                        szErrorVal = "SENSOR_ULTRAVIOLET";                                              break;
-       case SENSOR_TEMPERATURE:                                        szErrorVal = "SENSOR_TEMPERATURE";                                              break;
-       case SENSOR_HUMIDITY:                                           szErrorVal = "SENSOR_HUMIDITY";                                                 break;
-       case SENSOR_HRM:                                                        szErrorVal = "SENSOR_HRM";                                                              break;  /**< Heart Rate Monitor sensor */
-       case SENSOR_HRM_LED_GREEN:                                      szErrorVal = "SENSOR_HRM_LED_GREEN";                                    break;  /**< HRM (LED Green) sensor */
-       case SENSOR_HRM_LED_IR:                                         szErrorVal = "SENSOR_HRM_LED_IR";                                               break;  /**< HRM (LED IR) sensor */
-       case SENSOR_HRM_LED_RED:                                        szErrorVal = "SENSOR_HRM_LED_RED";                                              break;  /**< HRM (LED RED) sensor */
-       case SENSOR_GYROSCOPE_UNCALIBRATED:                     szErrorVal = "SENSOR_GYROSCOPE_UNCALIBRATED";                   break;   /**< Uncalibrated Gyroscope sensor (Since Tizen 2.4) */
-       case SENSOR_GEOMAGNETIC_UNCALIBRATED:           szErrorVal = "SENSOR_GEOMAGNETIC_UNCALIBRATED";                 break;   /**< Uncalibrated Geomagnetic sensor (Since Tizen 2.4) */
-       case SENSOR_GYROSCOPE_ROTATION_VECTOR:          szErrorVal = "SENSOR_GYROSCOPE_ROTATION_VECTOR";                break;   /**< Gyroscope-based rotation vector sensor (Since Tizen 2.4) */
-       case SENSOR_GEOMAGNETIC_ROTATION_VECTOR:        szErrorVal = "SENSOR_GEOMAGNETIC_ROTATION_VECTOR";              break;   /**< Geomagnetic-based rotation vector sensor (Since Tizen 2.4) */
-       case SENSOR_SIGNIFICANT_MOTION:                 szErrorVal = "SENSOR_SIGNIFICANT_MOTION";                       break;
-       case SENSOR_HUMAN_PEDOMETER:                            szErrorVal = "SENSOR_HUMAN_PEDOMETER";                                  break; 
-       case SENSOR_HUMAN_SLEEP_MONITOR :               szErrorVal = "SENSOR_HUMAN_SLEEP_MONITOR";                      break;          
-       case SENSOR_HUMAN_SLEEP_DETECTOR :              szErrorVal = "SENSOR_HUMAN_SLEEP_DETECTOR";                     break;          
-       case SENSOR_HUMAN_STRESS_MONITOR :              szErrorVal = "SENSOR_HUMAN_STRESS_MONITOR";                     break;          
-       default :                                                                       szErrorVal = "Unknown Error";                                                   break;
+               case SENSOR_ACCELEROMETER:                                      szErrorVal = "SENSOR_ACCELEROMETER";                                    break;
+               case SENSOR_GRAVITY:                                            szErrorVal = "SENSOR_GRAVITY";                                                  break;
+               case SENSOR_LINEAR_ACCELERATION:                        szErrorVal = "SENSOR_LINEAR_ACCELERATION";                              break;
+               case SENSOR_MAGNETIC:                                           szErrorVal = "SENSOR_MAGNETIC";                                                 break;
+               case SENSOR_ROTATION_VECTOR:                            szErrorVal = "SENSOR_ROTATION_VECTOR";                                  break;
+               case SENSOR_ORIENTATION:                                        szErrorVal = "SENSOR_ORIENTATION";                                              break;
+               case SENSOR_GYROSCOPE:                                          szErrorVal = "SENSOR_GYROSCOPE";                                                break;
+               case SENSOR_LIGHT:                                                      szErrorVal = "SENSOR_LIGHT";                                                    break;
+               case SENSOR_PROXIMITY:                                          szErrorVal = "SENSOR_PROXIMITY";                                                break;
+               case SENSOR_PRESSURE:                                           szErrorVal = "SENSOR_PRESSURE";                                                 break;
+               case SENSOR_ULTRAVIOLET:                                        szErrorVal = "SENSOR_ULTRAVIOLET";                                              break;
+               case SENSOR_TEMPERATURE:                                        szErrorVal = "SENSOR_TEMPERATURE";                                              break;
+               case SENSOR_HUMIDITY:                                           szErrorVal = "SENSOR_HUMIDITY";                                                 break;
+               case SENSOR_HRM:                                                        szErrorVal = "SENSOR_HRM";                                                              break;  /**< Heart Rate Monitor sensor */
+               case SENSOR_HRM_LED_GREEN:                                      szErrorVal = "SENSOR_HRM_LED_GREEN";                                    break;  /**< HRM (LED Green) sensor */
+               case SENSOR_HRM_LED_IR:                                         szErrorVal = "SENSOR_HRM_LED_IR";                                               break;  /**< HRM (LED IR) sensor */
+               case SENSOR_HRM_LED_RED:                                        szErrorVal = "SENSOR_HRM_LED_RED";                                              break;  /**< HRM (LED RED) sensor */
+               case SENSOR_GYROSCOPE_UNCALIBRATED:                     szErrorVal = "SENSOR_GYROSCOPE_UNCALIBRATED";                   break;   /**< Uncalibrated Gyroscope sensor (Since Tizen 2.4) */
+               case SENSOR_GEOMAGNETIC_UNCALIBRATED:           szErrorVal = "SENSOR_GEOMAGNETIC_UNCALIBRATED";                 break;   /**< Uncalibrated Geomagnetic sensor (Since Tizen 2.4) */
+               case SENSOR_GYROSCOPE_ROTATION_VECTOR:          szErrorVal = "SENSOR_GYROSCOPE_ROTATION_VECTOR";                break;   /**< Gyroscope-based rotation vector sensor (Since Tizen 2.4) */
+               case SENSOR_GEOMAGNETIC_ROTATION_VECTOR:        szErrorVal = "SENSOR_GEOMAGNETIC_ROTATION_VECTOR";              break;   /**< Geomagnetic-based rotation vector sensor (Since Tizen 2.4) */
+               case SENSOR_SIGNIFICANT_MOTION:                 szErrorVal = "SENSOR_SIGNIFICANT_MOTION";                       break;
+               case SENSOR_HUMAN_PEDOMETER:                            szErrorVal = "SENSOR_HUMAN_PEDOMETER";                                  break; 
+               case SENSOR_HUMAN_SLEEP_MONITOR :               szErrorVal = "SENSOR_HUMAN_SLEEP_MONITOR";                      break;          
+               case SENSOR_HUMAN_SLEEP_DETECTOR :              szErrorVal = "SENSOR_HUMAN_SLEEP_DETECTOR";                     break;          
+               case SENSOR_HUMAN_STRESS_MONITOR :              szErrorVal = "SENSOR_HUMAN_STRESS_MONITOR";                     break;
+               case SENSOR_HRM_BATCH :         szErrorVal = "SENSOR_HRM_BATCH";                        break;
+               case SENSOR_HRM_LED_GREEN_BATCH :               szErrorVal = "SENSOR_HRM_LED_GREEN_BATCH";                      break;
        }
        return szErrorVal;
 }
index f678c7a5654ef83055b7bc0a60646a299db497ef..09ac34111c88a0c21b31ceb80c1668ac72ec6fed 100755 (executable)
@@ -28,7 +28,6 @@
 */
 #define API_NAMESPACE                          "SENSOR_ITC"
 #define PATH_LEN                                       1024
-#define TIMEOUT_CB                                     2000
 #define MICROSECONDS_PER_SECOND                1000000
 #define TIME_1_HOUR_SEC 3600
 #define TIME_1_DAY_SEC (TIME_1_HOUR_SEC * 24)
@@ -57,7 +56,7 @@ typedef enum FeatureCheck {
 
 #define RUN_POLLING_LOOP {\
        g_pSensorMainLoop = g_main_loop_new(NULL, false);\
-       nSensorTimeoutId = g_timeout_add(TIMEOUT_CB, SensorTimeout, g_pSensorMainLoop);\
+       nSensorTimeoutId = g_timeout_add(nTimeOutCB, SensorTimeout, g_pSensorMainLoop);\
        g_main_loop_run(g_pSensorMainLoop);\
        g_source_remove(nSensorTimeoutId);\
        g_pSensorMainLoop = NULL;\
index d58cdbc19a2de2ac60b12fc33d8a04b8bd584fc0..8b99361b11d2c79b4ebda42df8191533bd1d1202 100755 (executable)
@@ -564,6 +564,7 @@ int ITc_sensor_add_remove_sensor_added_cb_p(void)
        START_TEST;
        sensor_provider_h hSensorProvider;
        int nSensorTimeoutId = 0;
+       int nTimeOutCB = 2000;
        g_bSensorAddCallback = false;
 
        int nRet = sensor_create_provider(TEST_SENSOR_URI, &hSensorProvider);
@@ -622,6 +623,7 @@ int ITc_sensor_add_remove_sensor_removed_cb_p(void)
        START_TEST;
        sensor_provider_h hSensorProvider;
        int nSensorTimeoutId = 0;
+       int nTimeOutCB = 2000;
        g_bSensorAddCallback = false;
 
        int nRet = sensor_create_provider(TEST_SENSOR_URI, &hSensorProvider);
@@ -681,6 +683,7 @@ int ITc_sensor_provider_set_start_cb_p(void)
        sensor_provider_h hSensorProvider;
        sensor_listener_h hlistener;
        int nSensorTimeoutId = 0;
+       int nTimeOutCB = 2000;
        g_bSensorAddCallback = false;
 
        int nRet = sensor_create_provider(TEST_SENSOR_URI, &hSensorProvider);
@@ -740,6 +743,7 @@ int ITc_sensor_provider_set_stop_cb_p(void)
        sensor_provider_h hSensorProvider;
        sensor_listener_h hlistener;
        int nSensorTimeoutId = 0;
+       int nTimeOutCB = 2000;
        g_bSensorAddCallback = false;
 
        int nRet = sensor_create_provider(TEST_SENSOR_URI, &hSensorProvider);
@@ -800,6 +804,7 @@ int ITc_sensor_provider_set_interval_changed_cb_p(void)
        sensor_provider_h hSensorProvider;
        sensor_listener_h hlistener;
        int nSensorTimeoutId = 0;
+       int nTimeOutCB = 2000;
        g_bSensorAddCallback = false;
 
        int nRet = sensor_create_provider(TEST_SENSOR_URI, &hSensorProvider);
@@ -860,6 +865,7 @@ int ITc_sensor_provider_publish_events_p(void)
        sensor_provider_h hSensorProvider;
        sensor_listener_h hlistener;
        int nSensorTimeoutId = 0;
+       int nTimeOutCB = 2000;
        g_bSensorAddCallback = false;
 
        int nRet = sensor_create_provider(TEST_SENSOR_URI, &hSensorProvider);
index 5811e757fa70ba630a0c69f18130458cc5f37157..7676b2777d060162a4b8c891e3523b47e578333e 100755 (executable)
@@ -15,8 +15,7 @@
 //
 #include "ITs-sensor-common.h"
 
-
-static bool sensor_recorder_supported[24];
+static bool sensor_recorder_supported[30]; //This needs to be increased, with addition of new sensors in "Sensor[]".
 static bool g_bCallbackHit = false;
 static int g_nRet;
 static bool g_bStatus;
@@ -47,8 +46,9 @@ SensorFeature Sensor[] = {
        {SENSOR_GEOMAGNETIC_ROTATION_VECTOR, "http://tizen.org/feature/sensor.geomagnetic_rotation_vector"},
        {SENSOR_HUMAN_SLEEP_MONITOR, "http://tizen.org/feature/sensor.sleep_monitor"},
        {SENSOR_HUMAN_SLEEP_DETECTOR, "http://tizen.org/feature/sensor.sleep_monitor"},
-       {SENSOR_HUMAN_STRESS_MONITOR, "http://tizen.org/feature/sensor.stress_monitor"}
-       
+       {SENSOR_HUMAN_STRESS_MONITOR, "http://tizen.org/feature/sensor.stress_monitor"},
+       {SENSOR_HRM_BATCH, "http://tizen.org/feature/sensor.heart_rate_monitor.batch"},
+       {SENSOR_HRM_LED_GREEN_BATCH, "http://tizen.org/feature/sensor.heart_rate_monitor.led_green.batch"}
 };
 
 
@@ -779,7 +779,8 @@ int ITc_sensor_recorder_query_set_time_p(void)
 int ITc_sensor_recorder_read_p(void)
 {
        START_TEST;
-       int nSensorTimeoutId = 0;       
+       int nSensorTimeoutId = 0;
+       int nTimeOutCB = 2000;
        time_t now;
        time_t start, end;
        time_t anchor;
@@ -820,7 +821,10 @@ int ITc_sensor_recorder_read_p(void)
                        continue;
 
                g_bCallbackHit = false;
-               
+               if(Sensor[i].eSensorType == SENSOR_HRM_BATCH || Sensor[i].eSensorType == SENSOR_HRM_LED_GREEN_BATCH)
+               {
+                       nTimeOutCB = 30000;
+               }
                //Target API
                nRet = sensor_recorder_read(Sensor[i].eSensorType, query, SensorRecorderDatacb, NULL);
                PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_recorder_read", SensorsGetError(nRet),sensor_recorder_destroy_query(query));
index f4d04417b900af5de497f5251f4e2b7b71ee76f9..e9ab97f37956acfb5f823ddf5aa8738c81fa7c25 100755 (executable)
@@ -46,7 +46,8 @@ SensorFeature stSensor[] = {
        {SENSOR_GYROSCOPE_ROTATION_VECTOR, "http://tizen.org/feature/sensor.gyroscope_rotation_vector"},
        {SENSOR_GEOMAGNETIC_ROTATION_VECTOR, "http://tizen.org/feature/sensor.geomagnetic_rotation_vector"},
        {SENSOR_SIGNIFICANT_MOTION, "http://tizen.org/feature/sensor.significant_motion"},
-
+       {SENSOR_HRM_BATCH, "http://tizen.org/feature/sensor.heart_rate_monitor.batch"},
+       {SENSOR_HRM_LED_GREEN_BATCH, "http://tizen.org/feature/sensor.heart_rate_monitor.led_green.batch"}
 };
 
 const char *stUriTypes[] = {
@@ -73,6 +74,8 @@ const char *stUriTypes[] = {
        "http://tizen.org/sensor/healthinfo/human_pedometer",              /**< Pedometer
                                                                                @if MOBILE (Since 3.0) @elseif WEARABLE (Since 2.3.2) @endif
                                                                                @n Privilege : http://tizen.org/privilege/healthinfo */
+       "http://tizen.org/sensor/healthinfo/heart_rate_monitor.batch",           /**< Heart Rate Monitor Batch sensor */
+       "http://tizen.org/sensor/healthinfo/heart_rate_monitor.led_green.batch" /**< HRM (LED Green) Batch sensor */
 };
 
 int enum_size = sizeof(stSensor) / sizeof(stSensor[0]);
@@ -1212,6 +1215,7 @@ int ITc_sensor_listener_read_data_list_p(void)
        START_TEST;
 
        int nSensorTimeoutId = 0;
+       int nTimeOutCB = 2000;
        int nRet = -1;
 
        for ( enum_counter=0; enum_counter<enum_size; enum_counter++ )
@@ -1223,6 +1227,11 @@ int ITc_sensor_listener_read_data_list_p(void)
                        continue;
                }
 
+               if(stSensor[enum_counter].eSensorType == SENSOR_HRM_BATCH || stSensor[enum_counter].eSensorType == SENSOR_HRM_LED_GREEN_BATCH)
+               {
+                       nTimeOutCB = 30000;
+               }
+
                feature_check_e eFeatureCheck = SensorCheckFeature(stSensor[enum_counter].eSensorType, stSensor[enum_counter].szFeature);
                if ( eFeatureCheck == FEATURE_MISMATCH )
                {
@@ -1313,7 +1322,6 @@ int ITc_sensor_listener_flush_p(void)
 {
        START_TEST;
 
-       int nSensorTimeoutId = 0;
        int nRet = -1;
 
        for ( enum_counter=0; enum_counter<enum_size; enum_counter++ )
@@ -1436,6 +1444,11 @@ int ITc_sensor_listener_set_unset_events_cb_p(void)
                        g_bSensorEventCallback = false;
 
                        int nSensorTimeoutId = 0;
+                       int nTimeOutCB = 2000;
+                       if(stSensor[enum_counter].eSensorType == SENSOR_HRM_BATCH || stSensor[enum_counter].eSensorType == SENSOR_HRM_LED_GREEN_BATCH)
+                       {
+                               nTimeOutCB = 30000;
+                       }
 
                        // Target API
                        nRet = sensor_listener_set_events_cb(g_pstSensorListener, SensorEventCallback, NULL);