+void tiny_bt_disconnect_register(void(*callback_app_disconnect)(__u16 *p_handle, __u8 *p_reason))
+{
+ expect_evt evt, *p_evt = &evt;
+ req_state status = ESTABLISHED;
+ disconnect_data *p_data;
+
+ memset(p_evt, 0, sizeof(evt));
+ p_evt->actual_status = status;
+ p_evt->id = evt_id++;
+ p_evt->evt_type = EVT_DISCONN_COMPLETE;
+ p_evt->p_callback = callback_hci_disconnect;
+
+ p_data = malloc(sizeof(disconnect_data));
+ p_data->callback_app_disconnect = callback_app_disconnect;
+ p_evt->p_data = (void *) p_data;
+
+ add_evt_toarray(p_evt);
+}
+
+int tiny_bt_disconnect(__u16 *p_handle, void(*callback_app_disconnect)(__u16 *p_handle, __u8 *p_reason))
+{
+ expect_evt evt, *p_evt = &evt;
+ req_state status = ESTABLISHED;
+ disconnect_data *p_data;
+
+ memset(p_evt, 0, sizeof(evt));
+ p_evt->actual_status = status;
+ p_evt->id = evt_id++;
+ p_evt->evt_type = EVT_DISCONN_COMPLETE;
+ p_evt->p_callback = callback_hci_disconnect;
+
+ p_data = malloc(sizeof(disconnect_data));
+ p_data->callback_app_disconnect = callback_app_disconnect;
+ p_evt->p_data = (void *) p_data;
+
+ add_evt_toarray(p_evt);
+
+ if (send_hci_disconnect_cmd(*p_handle) < 0) {
+ perror ("send_hci_cmd error\n");
+ return -1;
+ }
+ return 0;
+
+}
+
+int tiny_bt_send_data(char *p_data, __u16 lenght, __u16 *p_chandle)
+{
+ if (send_hci_data(p_data, lenght, p_chandle) < 0) {
+ perror ("send_hci_cmd error\n");
+ return -1;
+ }
+ return 0;
+}
+
+