int bt_device_unset_trusted_profile_cb(void);
/**
+ * @internal
+ * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
+ * @brief Gets the rssi value when link loss occurs.
+ * @since_tizen 6.0
+ *
+ * @remarks This function should be called in bt_device_connection_state_changed_cb
+ * when the device is disconnected
+ *
+ * @param[out] progress Link loss rssi
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed
+ *
+ * @see bt_device_set_connection_state_changed_cb()
+ * @see bt_device_connection_state_changed_cb()
+ */
+int bt_device_get_link_loss_rssi(int *rssi);
+
+/**
* @deprecated Deprecated since 4.0. Use bt_gatt_client_request_att_mtu_change instead.
* @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
* @brief Request to change ATT MTU value
int _bt_get_ad_data_by_type(char *in_data, int in_len,
char in_type, char **data, int *data_len);
+int _bt_get_link_loss_rssi(void);
+
/**
* @internal
* @brief Free bt_device_info_s.
static bool is_initialized = false;
static bool is_le_initialized = false;
+static int dbfw_rssi;
static bt_event_sig_event_slot_s bt_event_slot_container[BT_EVENT_MAX] = { {NULL, NULL}, };
}
/* LCOV_EXCL_STOP */
+int _bt_get_link_loss_rssi(void)
+{
+ return dbfw_rssi;
+}
+
int _bt_convert_address_to_string(char **addr_str, bluetooth_device_address_t *addr_hex)
{
char address[18] = { 0, };
(*dest)->disconn_reason = BT_DEVICE_DISCONNECT_REASON_UNKNOWN;
break;
}
-
BT_INFO("Disconnected reason to app [0x%x]", (*dest)->disconn_reason);
+
+ dbfw_rssi = source->rssi;
+
return BT_ERROR_NONE;
}
((bt_device_connection_state_changed_cb)bt_event_slot_container[event_index].callback)
(false, conn_info, bt_event_slot_container[event_index].user_data);
__bt_free_bt_device_connection_info_s(conn_info);
+ dbfw_rssi = 0;
}
break;
case BLUETOOTH_EVENT_RSSI_ENABLED:
return BT_ERROR_NONE;
}
+
+int bt_device_get_link_loss_rssi(int *rssi)
+{
+ BT_CHECK_INPUT_PARAMETER(rssi);
+
+ int value = _bt_get_link_loss_rssi();
+ if (value == 0)
+ return BT_ERROR_OPERATION_FAILED;
+
+ *rssi = value;
+ return BT_ERROR_NONE;
+}
+
/* LCOV_EXCL_STOP */
TC_PRT("__bt_device_connection_state_changed_cb [%d]", connected);
TC_PRT("address [%s]", conn_info->remote_address);
TC_PRT("link type [%d]", conn_info->link);
- if (!connected)
+ if (!connected) {
+ int rssi;
TC_PRT("disconnection reason [%d]", conn_info->disconn_reason);
+ if (bt_device_get_link_loss_rssi(&rssi) == BT_ERROR_NONE)
+ TC_PRT("RSSI = %d", rssi);
+ }
}
void __bt_device_att_mtu_changed_cb(int result, bt_device_att_mtu_info_s *mtu_info, void *user_data)