#define HAL_EV_ACL_STATE_CHANGED 0x8A
struct hal_ev_acl_state_changed {
- uint8_t status;
+ uint8_t status; /* Error code */
uint8_t bdaddr[6];
- uint8_t state;
+ uint8_t state; /* Link state */
} __attribute__((packed));
#define HAL_DEVICE_TRUSTED 0x00
bt_bdaddr_t bd_addr;
memcpy(bd_addr.address, ev->bdaddr, 6);
- INFO("ACL status[0x%x], state[0x%x]: XX:XX:XX:XX:XX:%02X", ev->status, ev->state, bd_addr.address[5]);
+ DBG("ACL status[0x%x], Link state[0x%x] XX:XX:XX:XX:%02X:%02X",
+ ev->status, ev->state, bd_addr.address[4], bd_addr.address[5]);
if (!bt_hal_cbacks->acl_state_changed_cb) {
ERR("HAL User acl_state_changed_cb is not set!!");
memcpy(bd_addr.address, ev->bdaddr, 6);
- DBG("LE conn Status [0x%x] State [0x%x] [%02X:%02X:%02X:%02X:%02X:%02X]", ev->status, ev->state,
- bd_addr.address[0], bd_addr.address[1], bd_addr.address[2],
- bd_addr.address[3], bd_addr.address[4], bd_addr.address[5]);
+ DBG("ACL status[0x%x], Link state[0x%x] XX:XX:XX:XX:%02X:%02X",
+ ev->status, ev->state, bd_addr.address[4], bd_addr.address[5]);
#ifdef TIZEN_BT_HAL
if (!bt_hal_cbacks->le_conn_state_changed_cb) {
__bt_hal_handle_bond_state_changed_event(buf, len);
break;
case HAL_EV_ACL_STATE_CHANGED:
- DBG("Event: HAL_ACL_STATE_CONNECTED or Disconnected");
__bt_hal_handle_device_acl_state_changed_event(buf, len);
break;
case HAL_EV_LE_CONN_STATE_CHANGED:
}
}
-int _bt_hal_convert_disc_reason_to_status(int reason)
-{
- switch (reason) {
- case 1:
- return BT_STATUS_CONN_TOUT; //"Link loss"
- case 2:
- return BT_STATUS_CONN_TERM_LOCAL_HOST; //"Connection terminated by local host";
- case 3:
- return BT_STATUS_CONN_TERM_RMT_HOST; //"Connection terminated by local host";
- case 0:
- default:
- return BT_STATUS_FAIL;
- }
-}
-
void _bt_hal_logging_connection(gboolean connect, int addr_type)
{
static int le_conn = 0;
char * _bt_hal_convert_disc_reason_to_string(int reason);
- int _bt_hal_convert_disc_reason_to_status(int reason);
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
static void __bt_hal_send_device_acl_connection_state_event(int status, gboolean connected, const char *address)
{
- DBG("+");
struct hal_ev_acl_state_changed ev;
ev.status = status;
disc_reason, _bt_hal_convert_disc_reason_to_string(disc_reason), address, name);
if (!addr_type)
- __bt_hal_send_device_acl_connection_state_event(_bt_hal_convert_disc_reason_to_status(disc_reason), FALSE, address);
+ __bt_hal_send_device_acl_connection_state_event(disc_reason, FALSE, address);
else
- __bt_hal_send_device_le_connection_state_event(_bt_hal_convert_disc_reason_to_status(disc_reason), FALSE, address);
+ __bt_hal_send_device_le_connection_state_event(disc_reason, FALSE, address);
g_free(address);
} else if (strcasecmp(member, "ProfileStateChanged") == 0) {
int state = 0;
bt_acl_state_t state)
{
event_dev_conn_status_t * conn_status = g_new0(event_dev_conn_status_t, 1);
- //bt_address_t * address = g_new0(bt_address_t, 1);
oal_event_t event;
gsize size = 0;
- BT_DBG("ACL State:%d, state: %d", status, state);
-
memcpy(conn_status->address.addr, bd_addr->address, 6);
#ifdef TIZEN_BT_HAL
- conn_status->status = convert_to_oal_status(status);
+ conn_status->status = status;
#else
if (BT_STATUS_SUCCESS != status) {
/* At present only timeout will cause non-success status, later we can add more */
memcpy(conn_status->address.addr, bd_addr->address, 6);
#endif
- BT_INFO("ACL STATE :%d, conn_status->status :%d, BT_ACL_STATE: %d", status, conn_status->status, state);
+ BT_INFO("[ACL] Status: %d, State: %d", conn_status->status, state);
switch (state) {
case BT_ACL_STATE_CONNECTED:
bt_le_conn_state_t state)
{
event_dev_conn_status_t * conn_status = g_new0(event_dev_conn_status_t, 1);
- //bt_address_t * address = g_new0(bt_address_t, 1);
oal_event_t event;
gsize size = 0;
- BT_DBG("LE conn status:%d, state: %d", status, state);
memcpy(conn_status->address.addr, bd_addr->address, 6);
- conn_status->status = convert_to_oal_status(status);
+ conn_status->status = status;
+ BT_INFO("[LE ACL] Status: %d, State: %d", conn_status->status, state);
switch (state) {
case BT_LE_CONN_STATE_CONNECTED:
break;
}
case OAL_EVENT_DEVICE_ACL_CONNECTED: {
- BT_INFO("ACL Connected event Received");
- event_dev_conn_status_t* param = event_data;
- __bt_device_acl_state_changed_callback(param, TRUE, 0);
+ BT_DBG("ACL Connected event Received");
+ __bt_device_acl_state_changed_callback((event_dev_conn_status_t *)event_data, TRUE, 0);
break;
}
case OAL_EVENT_DEVICE_ACL_DISCONNECTED: {
- BT_INFO("ACL Disconnected event Received");
+ BT_DBG("ACL Disconnected event Received");
__bt_device_acl_state_changed_callback((event_dev_conn_status_t *)event_data, FALSE, 0);
break;
}
case OAL_EVENT_DEVICE_LE_CONNECTED: {
- BT_INFO("LE Connected event Received");
- event_dev_conn_status_t* param = event_data;
- __bt_device_acl_state_changed_callback(param, TRUE, 1);
+ BT_DBG("LE Connected event Received");
+ __bt_device_acl_state_changed_callback((event_dev_conn_status_t *)event_data, TRUE, 1);
break;
}
case OAL_EVENT_DEVICE_LE_DISCONNECTED: {
- BT_INFO("LE Disconnected event Received");
+ BT_DBG("LE Disconnected event Received");
__bt_device_acl_state_changed_callback((event_dev_conn_status_t *)event_data, FALSE, 1);
break;
}
BT_DBG("-");
}
-static int __bt_oal_status_to_bt_error(int oal_status)
-{
- int ret = 0;
-
- switch (oal_status) {
- case OAL_STATUS_SUCCESS:
- ret = BLUETOOTH_ERROR_NONE;
- break;
- case OAL_STATUS_CONN_TIMEOUT:
- case OAL_STATUS_LINK_LOSS:
- BT_INFO("Connection Timeout");
- ret = BLUETOOTH_ERROR_CONNECTION_TIMEOUT;
- break;
-#ifdef TIZEN_BT_HAL
- case OAL_STATUS_CONN_TERM_LOCAL_HOST:
- ret = BLUETOOTH_ERROR_LOCAL_HOST_TERM;
- break;
- case OAL_STATUS_CONN_TERM_RMT_HOST:
- ret = BLUETOOTH_ERROR_REMOTE_USER_TERM;
- break;
-#endif
- case OAL_STATUS_INTERNAL_ERROR:
- ret = BLUETOOTH_ERROR_INTERNAL;
- break;
- default:
- ret = BLUETOOTH_ERROR_INTERNAL;
- break;
- }
- return ret;
-}
-
static void __bt_device_acl_state_changed_callback(event_dev_conn_status_t *acl_event,
gboolean connected, unsigned char type)
{
gchar address[BT_ADDRESS_STR_LEN];
- int result = BLUETOOTH_ERROR_NONE;
+ int disc_reason = 0;
GVariant *param = NULL;
bt_device_conn_info_t conn_info;
_bt_logging_connection(connected, type);
- result = __bt_oal_status_to_bt_error(acl_event->status);
- BT_DBG("Result [0x%x]", result);
+ disc_reason = acl_event->status;
if (connected) {
- param = g_variant_new("(isy)", result, address, type);
+ BT_PERMANENT_LOG("Connected %s %s", !type ? "EDR" : "LE", address + 12);
+ param = g_variant_new("(isy)", BLUETOOTH_ERROR_NONE, address, type);
_bt_send_event(BT_DEVICE_EVENT,
BLUETOOTH_EVENT_DEVICE_CONNECTED,
param);
} else {
- param = g_variant_new("(isyi)", result, address, type, dbfw_rssi);
+ BT_PERMANENT_LOG("Disconnected %s(%d) %s", !type ? "EDR" : "LE", disc_reason, address + 12);
+ param = g_variant_new("(isyi)", disc_reason, address, type, dbfw_rssi);
_bt_send_event(BT_DEVICE_EVENT,
BLUETOOTH_EVENT_DEVICE_DISCONNECTED,
param);
}
- BT_PERMANENT_LOG("%sonnected %s %s",
- connected ? "C" : "Disc", !type ? "EDR" : "LE", address + 12);
conn_info.connected = connected;
conn_info.type = type;