static bool __rfcomm_record_tx_data(void)
{
- if (bluetooth_get_battery_monitor_state()) {
- if (tx_data > 0) {
- int ret = _bt_common_send_rfcomm_tx_details(tx_data);
- if (ret == BLUETOOTH_ERROR_NONE) {
- tx_data = 0;
- return TRUE;
- } else {
- BT_ERR("RFCOMM tx data could not be registered");
- }
+ if (tx_data > 0) {
+ int ret = _bt_common_send_rfcomm_tx_details(tx_data);
+ if (ret == BLUETOOTH_ERROR_NONE) {
+ tx_data = 0;
+ return TRUE;
+ } else {
+ BT_ERR("RFCOMM tx data could not be registered");
}
}
tx_data = 0;
tx_tag = 0;
+
return FALSE;
}
static bool __rfcomm_record_rx_data(void)
{
- if (bluetooth_get_battery_monitor_state()) {
- if (rx_data) {
- int ret = _bt_common_send_rfcomm_rx_details(rx_data);
- if (ret == BLUETOOTH_ERROR_NONE) {
- rx_data = 0;
- return TRUE;
- } else {
- BT_ERR("RFCOMM rx data could not be registered");
- }
+ if (rx_data) {
+ int ret = _bt_common_send_rfcomm_rx_details(rx_data);
+ if (ret == BLUETOOTH_ERROR_NONE) {
+ rx_data = 0;
+ return TRUE;
+ } else {
+ BT_ERR("RFCOMM rx data could not be registered");
}
}
rx_data = 0;
rx_tag = 0;
- return FALSE;
+
+ return FALSE;
}
static void __bt_free_cb_data(rfcomm_cb_data_t *cb_data)
if (info->rfcomm_conns == NULL)
rfcomm_cb_data_remove(info);
+ if (_bt_common_send_rfcomm_conn_info(RFCOMM_ROLE_CLIENT,
+ FALSE, disconn_info.socket_fd) != BLUETOOTH_ERROR_NONE)
+ BT_ERR("Fail to send the connection info");
+
BT_DBG("-");
}
GIOStatus status = G_IO_STATUS_NORMAL;
GError *err = NULL;
int fd;
- BT_DBG("+");
retv_if(info == NULL, FALSE);
fd = g_io_channel_unix_get_fd(chan);
}
g_free(buffer);
- BT_DBG("-");
return TRUE;
}
conn_info.socket_fd = conn_list_info->fd;
conn_info.server_id = -1;
+ if (_bt_common_send_rfcomm_conn_info(RFCOMM_ROLE_CLIENT,
+ TRUE, conn_info.socket_fd) != BLUETOOTH_ERROR_NONE)
+ BT_ERR("Fail to send the connection info");
+
BT_DBG("Connection Result[%d] BT_ADDRESS[%s] UUID[%s] FD[%d]",
result, conn_list_info->bt_addr, cb_data->uuid, conn_list_info->fd);
_bt_common_event_cb(BLUETOOTH_EVENT_RFCOMM_CONNECTED,
return;
}
+void _bt_rfcomm_client_reset_timer(void)
+{
+ if (rx_tag > 0) {
+ rx_tag = 0;
+ g_source_remove(rx_tag);
+ }
+
+ if (tx_tag > 0) {
+ g_source_remove(tx_tag);
+ tx_tag = 0;
+ }
+
+ rx_data = 0;
+ tx_data = 0;
+}
+
int new_connection(const char *path, int fd, bluetooth_device_address_t *addr)
{
rfcomm_cb_data_t *info;
BT_INFO("Adding rfcomm tx timeout function for battery monitor");
tx_tag = g_timeout_add_seconds(BATTERY_MONITOR_RFCOMM_INTERVAL, (GSourceFunc)__rfcomm_record_tx_data, NULL);
}
- tx_data += length;
+ tx_data += written;
}
return written;
#else
BT_INFO("Adding rfcomm tx timeout function for battery monitor");
tx_tag = g_timeout_add_seconds(BATTERY_MONITOR_RFCOMM_INTERVAL, (GSourceFunc)__rfcomm_record_tx_data, NULL);
}
- tx_data += length;
+ tx_data += written;
}
return result;
#endif