int uwb_node_get_range(uwb_node_h node, int *range);
int uwb_node_get_aoa(uwb_node_h node, int *aoa);
int uwb_node_get_pdoa(uwb_node_h node, int *pdoa);
+int uwb_node_get_filtered_range(uwb_node_h node, int *range);
+int uwb_node_get_filtered_aoa(uwb_node_h node, int *aoa);
#ifdef __cplusplus
}
Name: capi-network-uwb
Summary: UWB CAPI
-Version: 0.2.0
+Version: 0.2.1
Release: 0
Group: Network & Connectivity/API
License: Apache-2.0
int range;
int aoa;
int pdoa;
+ int filtered_range;
+ int filtered_aoa;
} uwb_node_s;
typedef struct {
node->aoa = g_variant_get_int32(key_value);
else if (g_strcmp0(key, "Pdoa") == 0)
node->pdoa = g_variant_get_int32(key_value);
+ else if (g_strcmp0(key, "FilteredRange") == 0)
+ node->filtered_range = g_variant_get_int32(key_value);
+ else if (g_strcmp0(key, "FilteredAoa") == 0)
+ node->filtered_aoa = g_variant_get_int32(key_value);
}
g_variant_iter_free(iter);
_dst->range = _src->range;
_dst->aoa = _src->aoa;
_dst->pdoa = _src->pdoa;
+ _dst->filtered_range = _src->filtered_range;
+ _dst->filtered_aoa = _src->filtered_aoa;
_END();
return ret;
}
+
EXPORT_API int uwb_node_get_range(uwb_node_h node, int *range)
{
int ret = UWB_ERROR_NONE;
return ret;
}
+EXPORT_API int uwb_node_get_filtered_range(uwb_node_h node, int *range)
+{
+ int ret = UWB_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(UWB_FEATURE);
+
+ _BEGIN();
+
+ uwb_check_null_ret_error("node", node, UWB_ERROR_INVALID_PARAMETER);
+ uwb_check_null_ret_error("range", range, UWB_ERROR_INVALID_PARAMETER);
+ *range = ((uwb_node_s *)node)->filtered_range;
+
+ _END();
+
+ return ret;
+}
+
+EXPORT_API int uwb_node_get_filtered_aoa(uwb_node_h node, int *aoa)
+{
+ int ret = UWB_ERROR_NONE;
+
+ CHECK_FEATURE_SUPPORTED(UWB_FEATURE);
+
+ _BEGIN();
+
+ uwb_check_null_ret_error("node", node, UWB_ERROR_INVALID_PARAMETER);
+ uwb_check_null_ret_error("aoa", aoa, UWB_ERROR_INVALID_PARAMETER);
+
+ *aoa = ((uwb_node_s *)node)->filtered_aoa;
+
+ _END();
+
+ return ret;
+}
+
static void __get_network_cb(GObject *source_object, GAsyncResult *res, gpointer user_data)
{
int ret = UWB_ERROR_NONE;
int range;
int aoa;
int pdoa;
+ int filtered_range;
+ int filtered_aoa;
} aoa_data_s;
typedef void (*free_data_func)(void * user_data);
if (aoa_data_file == -1)
return;
- ret = snprintf(buffer, sizeof(buffer), "%d,%d,%d,%d\n", aoa_data->node_id, aoa_data->range, aoa_data->aoa, aoa_data->pdoa);
+ ret = snprintf(buffer, sizeof(buffer), "%d,%d,%d,%d,%d,%d\n",
+ aoa_data->node_id,
+ aoa_data->range,
+ aoa_data->aoa,
+ aoa_data->pdoa,
+ aoa_data->filtered_range,
+ aoa_data->filtered_aoa);
if (ret == 0)
return;
uwb_node_h remote_node, void *user_data)
{
uint64_t node_id;
- int range, aoa, pdoa;
+ int range, aoa, pdoa, filtered_range, filtered_aoa;
if (remote_node == NULL || user_data == NULL)
return true;
uwb_node_get_range(remote_node, &range);
uwb_node_get_aoa(remote_node, &aoa);
uwb_node_get_pdoa(remote_node, &pdoa);
+ uwb_node_get_filtered_range(remote_node, &filtered_range);
+ uwb_node_get_filtered_aoa(remote_node, &filtered_aoa);
printf("AoA related Node ID [%lld] range: %d aoa: %d pdoa: %d\n", node_id, range, aoa, pdoa);
+ printf("AoA filtered values [%lld] range: %d aoa: %d\n", node_id, filtered_range, filtered_aoa);
monitor_ctx_s *monitor = (monitor_ctx_s *)user_data;
aoa_data_s *data = (aoa_data_s *)calloc(1, sizeof(aoa_data_s));
data->range = range;
data->aoa = aoa;
data->pdoa = pdoa;
+ data->filtered_range = filtered_range;
+ data->filtered_aoa = filtered_aoa;
sync_queue_push(&monitor->aoa_data_queue, data, free_aoa_data);