return 0;
}
-//& purpose: To get sensor data
+//& purpose: To read the current sensor data list via a given sensor listener.
//& type: auto
/**
-* @testcase ITc_sensor_listener_read_data_p
+* @testcase ITc_sensor_listener_read_data_list_p
* @type auto
-* @author SRID(gupta.sanjay)
-* @reviewer SRID(ravi.kumar2)
-* @since_tizen 2.3
-* @description To get sensor data
-* @scenario Get the listener handle\n
-* Get event information
-* @apicovered sensor_listener_read_data
-* @passcase When sensor_listener_read_data is successful
-* @failcase If target API sensor_listener_read_data fails or any precondition API fails
-* @precondition Sensor handle must be created
+* @author SRID(priya.kohli)
+* @reviewer SRID(shobhit.v)
+* @since_tizen 6.0
+* @description Reads the current sensor data list via a given sensor listener.
+* @scenario This function synchronously reads the sensor reading of the corresponding sensor, if available.
+* Otherwise, if the sensor is not ready to report its values, this function fails and returns
+* @apicovered sensor_listener_read_data_list
+* @passcase When sensor_listener_read_data_list is successful
+* @failcase If target API sensor_listener_read_data_list fails
+* @precondition NA
* @postcondition NA
*/
-int ITc_sensor_listener_read_data_p(void)
+int ITc_sensor_listener_read_data_list_p(void)
{
START_TEST;
int nSensorTimeoutId = 0;
+ int nRet = -1;
for ( enum_counter=0; enum_counter<enum_size; enum_counter++ )
{
}
else if ( eFeatureCheck == FEATURE_SUPPORTED )
{
- int nRet = sensor_get_default_sensor(stSensor[enum_counter].eSensorType, &g_pstSensorHandle);
- if ( nRet != SENSOR_ERROR_NONE )
- {
- FPRINTF("[Line : %d][%s] sensor_get_default_sensor failed for sensor %s, error returned = %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), SensorsGetError(nRet));
- return 1;
- }
+ nRet = sensor_get_default_sensor(stSensor[enum_counter].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);
- if ( nRet != SENSOR_ERROR_NONE )
- {
- FPRINTF("[Line : %d][%s] Support API sensor_create_listener failed for sensor %s, error returned = %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), SensorsGetError(nRet));
- return 1;
- }
- if ( g_pstSensorListener == NULL)
- {
- FPRINTF("[Line : %d][%s] Support API sensor_create_listener failed to create listener of sensor %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType));
- return 1;
- }
+ PRINT_RESULT(SENSOR_ERROR_NONE, nRet, "sensor_create_listener", SensorsGetError(nRet));
+ CHECK_HANDLE(g_pstSensorHandle, "sensor_create_listener");
nRet = sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_ALWAYS_ON);
- if ( nRet != SENSOR_ERROR_NONE )
- {
- FPRINTF("[Line : %d][%s] Support API sensor_listener_set_option is failed for sensor %s, error returned = %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), SensorsGetError(nRet));
- sensor_destroy_listener(g_pstSensorListener);
- return 1;
- }
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_set_option", SensorsGetError(nRet), sensor_destroy_listener(g_pstSensorListener));
nRet = sensor_listener_set_events_cb(g_pstSensorListener, SensorEventCallback, NULL);
- if ( nRet != SENSOR_ERROR_NONE )
- {
- FPRINTF("[Line : %d][%s] Support API sensor_listener_set_events_cb failed for sensor %s, error returned = %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), SensorsGetError(nRet));
- sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
- sensor_destroy_listener(g_pstSensorListener);
- return 1;
- }
+ 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);
- if ( nRet != SENSOR_ERROR_NONE )
- {
- FPRINTF("[Line : %d][%s] Support API sensor_listener_start failed for sensor %s, error returned = %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), SensorsGetError(nRet));
- sensor_listener_unset_events_cb(g_pstSensorListener);
- sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
- sensor_destroy_listener(g_pstSensorListener);
- return 1;
- }
+ 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;
- sensor_event_s pstSensorEvent;
- pstSensorEvent.accuracy = -1;
- pstSensorEvent.timestamp = 0;
- pstSensorEvent.value_count = -1;
+ sensor_event_s *pstSensorEvent;
+ int nCount = 0;
// Target API
- nRet = sensor_listener_read_data(g_pstSensorListener, &pstSensorEvent);
- if ( nRet != SENSOR_ERROR_NONE )
- {
- FPRINTF("[Line : %d][%s] sensor_listener_read_data failed for sensor %s, error returned = %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), SensorsGetError(nRet));
- 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;
- }
- else if ( pstSensorEvent.accuracy < SENSOR_DATA_ACCURACY_UNDEFINED
- || pstSensorEvent.accuracy > SENSOR_DATA_ACCURACY_VERYGOOD
- || pstSensorEvent.value_count < 0 )
+ nRet = sensor_listener_read_data_list(g_pstSensorListener, &pstSensorEvent, &nCount);//check for nCount
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_read_data_list", SensorsGetError(nRet), 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));
+
+ if ( pstSensorEvent->accuracy < SENSOR_DATA_ACCURACY_UNDEFINED
+ || pstSensorEvent->accuracy > SENSOR_DATA_ACCURACY_VERYGOOD
+ || pstSensorEvent->value_count < 0
+ || nCount <= 0 )
{
- FPRINTF("[Line : %d][%s] sensor_listener_read_data retrieved wrong pstSensorEvent for sensor %s: accuracy = %d, timestamp = %llu, value_count = %d, values = %f\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), pstSensorEvent.accuracy, pstSensorEvent.timestamp, pstSensorEvent.value_count, *(pstSensorEvent.values));
+ FPRINTF("[Line : %d][%s] sensor_listener_read_data_list retrieved wrong pstSensorEvent for sensor %s: accuracy = %d, timestamp = %llu, value_count = %d, values = %f, nCount = %d\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), pstSensorEvent->accuracy, pstSensorEvent->timestamp, pstSensorEvent->value_count, *(pstSensorEvent->values), nCount);
sensor_listener_stop(g_pstSensorListener);
sensor_listener_unset_events_cb(g_pstSensorListener);
sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
}
nRet = sensor_listener_stop(g_pstSensorListener);
- if ( nRet != SENSOR_ERROR_NONE )
- {
- FPRINTF("[Line : %d][%s] Support API sensor_listener_stop failed for sensor %s, error returned = %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), SensorsGetError(nRet));
- sensor_listener_unset_events_cb(g_pstSensorListener);
- sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
- sensor_destroy_listener(g_pstSensorListener);
- return 1;
- }
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_stop", SensorsGetError(nRet), sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);sensor_listener_unset_events_cb(g_pstSensorListener);sensor_destroy_listener(g_pstSensorListener));
nRet = sensor_listener_unset_events_cb(g_pstSensorListener);
- if ( nRet != SENSOR_ERROR_NONE )
- {
- FPRINTF("[Line : %d][%s] Support API sensor_listener_unset_events_cb failed for sensor %s, error returned = %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), SensorsGetError(nRet));
- sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
- sensor_destroy_listener(g_pstSensorListener);
- return 1;
- }
+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));
//Reset option
nRet = sensor_listener_set_option(g_pstSensorListener, SENSOR_OPTION_DEFAULT);
- if ( nRet != SENSOR_ERROR_NONE )
- {
- FPRINTF("[Line : %d][%s] Support API sensor_listener_set_option is failed for sensor %s, error returned = %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), SensorsGetError(nRet));
- sensor_destroy_listener(g_pstSensorListener);
- return 1;
- }
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_set_option", SensorsGetError(nRet), sensor_destroy_listener(g_pstSensorListener));
nRet = sensor_destroy_listener(g_pstSensorListener);
- if ( nRet != SENSOR_ERROR_NONE )
- {
- FPRINTF("[Line : %d][%s] Support API sensor_destroy_listener failed for sensor %s, error returned = %s\\n", __LINE__, API_NAMESPACE, SensorGetType(stSensor[enum_counter].eSensorType), SensorsGetError(nRet));
- return 1;
- }
+ PRINT_RESULT(SENSOR_ERROR_NONE, nRet, "sensor_destroy_listener", SensorsGetError(nRet));
+ }
+ }
+
+ return 0;
+}
+
+//& purpose: To flush stored data of a sensor.
+//& type: auto
+/**
+* @testcase ITc_sensor_listener_flush_p
+* @type auto
+* @author SRID(priya.kohli)
+* @reviewer SRID(shobhit.v)
+* @since_tizen 6.0
+* @description Flushes stored data of a sensor.
+* @scenario Flushes all data of a sensor as if the max batch latency has expired.
+* Data is delivered in the usual way through the event callback function.
+* In case of non-batching sensors, this function does nothing and returns #SENSOR_ERROR_NONE.
+* @apicovered sensor_listener_flush
+* @passcase When sensor_listener_flush is successful
+* @failcase If target API sensor_listener_flush fails
+* @precondition NA
+* @postcondition NA
+*/
+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++ )
+ {
+ if ( SENSOR_PROXIMITY == stSensor[enum_counter].eSensorType )
+ {
+ //For SENSOR_PROXIMITY type sensor, sensor_listener_read_data() will not return the sensor_event_s
+ //Instead read the value of sensor_proximity_e in some way
+ continue;
+ }
+
+ feature_check_e eFeatureCheck = SensorCheckFeature(stSensor[enum_counter].eSensorType, stSensor[enum_counter].szFeature);
+ if ( eFeatureCheck == FEATURE_MISMATCH )
+ {
+ return 1;
+ }
+ else if ( eFeatureCheck == FEATURE_UNSUPPORTED )
+ {
+ continue;
+ }
+ else if ( eFeatureCheck == FEATURE_SUPPORTED )
+ {
+ nRet = sensor_get_default_sensor(stSensor[enum_counter].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_pstSensorHandle, "sensor_create_listener");
+
+ nRet = sensor_listener_start(g_pstSensorListener);
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_start", SensorsGetError(nRet), sensor_destroy_listener(g_pstSensorListener));
+
+ nRet = sensor_listener_flush(g_pstSensorListener);
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_flush", SensorsGetError(nRet), sensor_destroy_listener(g_pstSensorListener));
+
+ nRet = sensor_listener_stop(g_pstSensorListener);
+ PRINT_RESULT_CLEANUP(SENSOR_ERROR_NONE, nRet, "sensor_listener_stop", SensorsGetError(nRet), sensor_destroy_listener(g_pstSensorListener));
+
+ nRet = sensor_destroy_listener(g_pstSensorListener);
+ PRINT_RESULT(SENSOR_ERROR_NONE, nRet, "sensor_destroy_listener", SensorsGetError(nRet));
}
}