for ( enum_counter=0; enum_counter<enum_size; enum_counter++ )
{
- if ( SENSOR_PROXIMITY == stSensor[enum_counter].eSensorType )
+ if ( SENSOR_PROXIMITY == stSensor[enum_counter].eSensorType || SENSOR_HRM_LED_GREEN_BATCH == stSensor[enum_counter].eSensorType )
{
//For SENSOR_PROXIMITY type sensor, callback sensor_event_cb will not be invoked
//Instead read the value of sensor_proximity_e in some way
+ // For SENSOR_HRM_LED_GREEN_BATCH type sensor, callback sensor_event_cb will be invoked in another TC
continue;
}
int nSensorTimeoutId = 0;
int nTimeOutCB = 2000;
- if(stSensor[enum_counter].eSensorType == SENSOR_HRM_BATCH || stSensor[enum_counter].eSensorType == SENSOR_HRM_LED_GREEN_BATCH)
+ if(stSensor[enum_counter].eSensorType == SENSOR_HRM_BATCH)
{
nTimeOutCB = 30000;
}
return 0;
}
+
+//& purpose: To register and unregister a callback function to be invoked when SENSOR_HRM_LED_GREEN_BATCH sensor event occurs.
+//& type: auto
+/**
+* @testcase ITc_sensor_listener_set_unset_events_cb_led_green_batch_p
+* @type auto
+* @author SRID(j.abhishek)
+* @reviewer SRID(shobhit.v)
+* @since_tizen 5.5
+* @description To register and un-register a callback function to be invoked when SENSOR_HRM_LED_GREEN_BATCH sensor event occurs.
+* @scenario Get the handle to the Sensor\n
+* Get the listener handle\n
+* Register the callback function\n
+* Check the user data received in callback function
+* @apicovered sensor_listener_set_events_cb,sensor_listener_unset_events_cb
+* @passcase When sensor_listener_set_events_cb and sensor_listener_unset_events_cb is successful
+* @failcase If target API sensor_listener_set_events_cb fails or callback or any precondition API fails
+* @precondition Sensor handle must be created
+* @postcondition NA
+*/
+int ITc_sensor_listener_set_unset_events_cb_led_green_batch_p(void)
+{
+ START_TEST;
+
+ int nRet = SENSOR_ERROR_NONE;
+ SensorFeature stSensorBatch = {SENSOR_HRM_LED_GREEN_BATCH, "http://tizen.org/feature/sensor.heart_rate_monitor.led_green.batch"};
+
+ feature_check_e eFeatureCheck = SensorCheckFeature(stSensorBatch.eSensorType, stSensorBatch.szFeature);
+ if ( eFeatureCheck == FEATURE_MISMATCH )
+ {
+ return 1;
+ }
+ else if ( eFeatureCheck == FEATURE_UNSUPPORTED )
+ {
+ return 0;
+ }
+ else if ( eFeatureCheck == FEATURE_SUPPORTED )
+ {
+ int nSensorTimeoutId = 0;
+ int nTimeOutCB = 30000;
+
+ nRet = sensor_get_default_sensor(stSensorBatch.eSensorType, &g_pstSensorHandle);
+ PRINT_RESULT(SENSOR_ERROR_NONE, nRet, "sensor_get_default_sensor", SensorsGetError(nRet));
+ CHECK_HANDLE(g_pstSensorHandle, "sensor_get_default_sensor");
+
+ nRet = sensor_create_listener(g_pstSensorHandle, &g_pstSensorListener);
+ PRINT_RESULT(SENSOR_ERROR_NONE, nRet, "sensor_create_listener", SensorsGetError(nRet));
+ CHECK_HANDLE(g_pstSensorListener, "sensor_create_listener");
+
+ nRet = sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_ALWAYS_ON);
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_set_option", SensorsGetError(nRet), sensor_destroy_listener(g_pstSensorListener));
+
+ usleep(200);
+ g_bSensorEventCallback = false;
+
+ // Target API
+ nRet = sensor_listener_set_events_cb(g_pstSensorListener, SensorEventCallback, NULL);
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_set_events_cb", SensorsGetError(nRet), sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+ nRet = sensor_listener_start(g_pstSensorListener);
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_start", SensorsGetError(nRet), sensor_listener_unset_events_cb(g_pstSensorListener); sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+ RUN_POLLING_LOOP;
+
+ if ( !g_bSensorEventCallback )
+ {
+ FPRINTF("[Line : %d][%s] sensor_listener_set_events_cb failed to invoke callback\\n", __LINE__, API_NAMESPACE);
+ sensor_listener_stop(g_pstSensorListener);
+ sensor_listener_unset_events_cb(g_pstSensorListener);
+ sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
+ sensor_destroy_listener(g_pstSensorListener);
+ return 1;
+ }
+
+ nRet = sensor_listener_stop(g_pstSensorListener);
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_stop", SensorsGetError(nRet), sensor_listener_unset_events_cb(g_pstSensorListener); sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+ g_bSensorEventCallback = false;
+
+ // Target API
+ nRet = sensor_listener_unset_events_cb(g_pstSensorListener);
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_unset_events_cb", SensorsGetError(nRet), sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+ nRet = sensor_listener_start(g_pstSensorListener);
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_start", SensorsGetError(nRet), sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+ RUN_POLLING_LOOP;
+
+ if ( g_bSensorEventCallback )
+ {
+ FPRINTF("[Line : %d][%s] sensor_listener_unset_events_cb failed to stop callback invocation\\n", __LINE__, API_NAMESPACE);
+ sensor_listener_stop(g_pstSensorListener);
+ sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
+ sensor_destroy_listener(g_pstSensorListener);
+ return 1;
+ }
+
+ nRet = sensor_listener_stop(g_pstSensorListener);
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_stop", SensorsGetError(nRet), sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT); sensor_destroy_listener(g_pstSensorListener));
+
+ nRet = sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
+ PRINT_RESULT_NORETURN(SENSOR_ERROR_NONE, nRet, "sensor_listener_set_option", SensorsGetError(nRet));
+
+ nRet = sensor_destroy_listener(g_pstSensorListener);
+ PRINT_RESULT_NORETURN(SENSOR_ERROR_NONE, nRet, "sensor_destroy_listener", SensorsGetError(nRet));
+ }
+ return 0;
+}
/** @} */
/** @} */