ua_sensor_info_s *sensor_info,
ua_sensor_h * sensor_handle);
+/**
+ * @ingroup CAPI_NETWORK_UA_MODULE
+ * @brief Gets sensor handle by sensor info.
+ * @since_tizen 5.5
+ *
+ * @remarks The @a sensor_handle should not be released.
+ * @remarks The @a sensor_handle can be used only in the function.
+ *
+ * @param[in] sensor_bitmask The detected sensors bitmask
+ * @param[out] sensor_handle The sensor handles list
+ *
+ * @return 0 on success, otherwise a negative error value
+ * @retval #UA_ERROR_NONE Successful
+ * @retval #UA_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #UA_ERROR_OUT_OF_MEMORY Out of memory
+ *
+ * @exception
+ * @pre
+ * @post
+ *
+ */
+GSList *ua_sensor_get_sensor_handle_list(
+ unsigned int sensor_bitmask);
+
/**
* @ingroup CAPI_NETWORK_UA_MODULE
* @brief Releases sensor info.
ua_monitor_h handle,
ua_user_h user_handle,
GSList *device_handles,
+ GSList *sensor_handle,
void *user_data);
/**
ua_sensor_h sensor_handle,
long int *timestamp);
+/**
+ * @ingroup CAPI_NETWORK_UA_MODULE
+ * @brief Gets sensor's timestamp.
+ * @since_tizen 5.5
+ *
+ * @param[in] sensor_handle The sensor handle
+ * @param[out] bitmask The sensor's bitmask.
+ *
+ * @return 0 on success, otherwise a negative error value
+ * @retval #UA_ERROR_NONE Successful
+ * @retval #UA_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @exception
+ * @pre
+ * @post
+ *
+ */
+int ua_sensor_get_bitmask(
+ ua_sensor_h sensor_handle,
+ ua_sensor_e *bitmask);
+
/**
* @ingroup CAPI_NETWORK_UA_MODULE
* @brief Gets sensor's information values count.
Name: capi-network-ua
Summary: User Awareness Framework CAPI
-Version: 0.11.0
+Version: 0.11.1
Release: 1
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
gboolean or_condition = 0;
gboolean condition_result = 0;
ua_dev_info_s *dev = 0;
+ GSList *sensors = 0;
ret_if(NULL == user_state);
return;
}
+ /** Get sensor list*/
+ sensors = ua_sensor_get_sensor_handle_list(monitor->presence_detected_bitmask);
+
/**
* Filter the list of found_devices according to sensors mentioned in
* AND/OR conditions.
((ua_presence_user_detected_cb)monitor->presence_user_cb.callback)(
UA_ERROR_NONE, monitor, user_handle,
- devices,
+ devices, sensors,
monitor->presence_user_cb.user_data);
user_state->cb_sent = TRUE;
g_slist_free(devices);
+ g_slist_free(sensors);
FUNC_EXIT;
return;
return ret;
}
+GSList *ua_sensor_get_sensor_handle_list(
+ unsigned int bitmask)
+{
+ FUNC_ENTRY;
+ GSList *sensors = NULL;
+ GSList *l;
+ ua_sensor_info_s *sensor;
+
+ for (l = ua_sensors_list; NULL != l; l = g_slist_next(l)) {
+ sensor = (ua_sensor_info_s *)l->data;
+
+ if (bitmask & sensor->bitmask) {
+ UA_INFO("Sensor info found, sensor bitmask[%d]", sensor->bitmask);
+ sensors = g_slist_append(sensors, sensor->handle);
+ }
+ }
+
+ FUNC_EXIT;
+ return sensors;
+}
+
int ua_sensor_get_timestamp(
ua_sensor_h sensor_handle,
long int *timestamp)
return UA_ERROR_NONE;
}
+int ua_sensor_get_bitmask(
+ ua_sensor_h sensor_handle,
+ ua_sensor_e *bitmask)
+{
+ FUNC_ENTRY;
+ ua_sensor_info_s *sensor;
+
+ UA_VALIDATE_INPUT_PARAMETER(sensor_handle);
+ UA_INFO("Sensor Handle [%p]", sensor_handle);
+ sensor = (ua_sensor_info_s *)sensor_handle;
+
+ *bitmask = sensor->bitmask;
+
+ FUNC_EXIT;
+ return UA_ERROR_NONE;
+}
+
int ua_sensor_get_info_count(
ua_sensor_h sensor_handle,
int *count)
g_free(mac);
}
+static void __user_presence_detected_foreach_sensors(gpointer data,
+ gpointer user_data)
+{
+ int ret;
+ char buf[MENU_DATA_SIZE] = {0, };
+ char final_buf[MENU_DATA_SIZE * 4] = {0, };
+ long int timestamp;
+ int info_count = 0;
+ GSList *values = NULL;
+ double *value;
+ GSList *l = 0;
+ ua_sensor_e bitmask;
+ ua_device_h sensor_handle = (ua_sensor_h)data;
+
+ ret = ua_sensor_get_bitmask(sensor_handle, &bitmask);
+ if (UA_ERROR_NONE != ret) {
+ msg(" - ua_sensor_get_bitmask() ret: [0x%X] [%s]",
+ ret, uat_get_error_str(ret));
+ }
+
+ ret = ua_sensor_get_timestamp(sensor_handle, ×tamp);
+ if (UA_ERROR_NONE != ret) {
+ msg(" - ua_sensor_get_timestamp() ret: [0x%X] [%s]",
+ ret, uat_get_error_str(ret));
+ }
+
+ ret = ua_sensor_get_info_count(sensor_handle, &info_count);
+ if (UA_ERROR_NONE != ret) {
+ msg(" - ua_sensor_get_info_count() ret: [0x%X] [%s]",
+ ret, uat_get_error_str(ret));
+ }
+
+ values = ua_sensor_get_info_values(sensor_handle);
+ if (NULL == values) {
+ msg(" - ua_sensor_get_info_values() failed");
+ }
+
+ for (l = values; l; l = g_slist_next(l)) {
+ value = (double *)l->data;
+ snprintf(buf, MENU_DATA_SIZE, "%lF ", *value);
+ strncat(final_buf, buf, sizeof(buf) - strlen(buf) - 1);
+ memset(buf, 0, MENU_DATA_SIZE);
+ }
+ msgb("[%s] information detected at timestamp [%ld] value [%s]",
+ uat_get_sensor_bitmask_str(bitmask), timestamp,
+ final_buf);
+
+ g_slist_free(values);
+}
+
static void __user_presence_detected_cb(int result, ua_monitor_h monitor,
- ua_user_h user_handle, GSList *device_handles,
+ ua_user_h user_handle, GSList *device_handles, GSList *sensor_handles,
void *user_data)
{
int ret;
__user_presence_detected_foreach_devices,
account);
+ g_slist_foreach(sensor_handles,
+ __user_presence_detected_foreach_sensors, NULL);
+
g_free(account);
}