2 * C Implementation: testapp
7 * Author: root <root@ubuntu>, (C) 2008
9 * Copyright: See COPYING file that comes with this distribution
17 #include "tiny_bt_hci_core.h"
18 #include "tiny_bt_hci_cmd.h"
21 bt_address rem_bd_addr_array[HCI_MAX_DEV];
25 connection_hci connection,*p_connection=&connection;
27 void callback_app_read_bd_addr(bt_address *p_address)
29 printf("Read address is :");
31 tiny_bt_read_local_name(&(p_connection->master.name), callback_app_read_local_name);
34 void callback_app_read_local_name(char *p_name)
38 printf("read name is:");
40 for (i = 0; i < 8; i++) {
41 printf("%c", *(p_name+i));
44 tiny_bt_inquiry(&rem_addr, callback_app_inquiry_RSSI, callback_app_inquiry_complete);
47 void callback_app_inquiry_RSSI(bt_address *p_address)
53 rem_bd_addr_array[0] = *p_address;
56 for (i = 0; i < count; i++) {
57 if (compare_bda(p_address, &rem_bd_addr_array[i])) {
63 if (count < HCI_MAX_DEV) {
64 rem_bd_addr_array[count] = *p_address;
65 printf("There is device:");
69 printf("Array full, there is more than 16 devices in surroundig area\n");
74 tiny_bt_inquiry_register_again(&rem_addr, callback_app_inquiry_RSSI);
77 void callback_app_inquiry_complete(void)
81 printf("inquiry complete\n");
83 for (i = 0; i < glob_count; i++) {
85 printba(&rem_bd_addr_array[i]);
89 p_connection->slave.bdaddr = rem_bd_addr_array[0];
90 tiny_bt_connect(&rem_bd_addr_array[0],
91 &p_connection->handle, callback_app_connection_complete);
93 printf("There is no remote device suitable for connect\n");
98 void callback_app_connection_complete(__u16 *p_handle)
100 char ar[6] = {"hallo "};
102 connection_state state = CONNECT;
103 p_connection->con_state = state;
104 printf("Connection complete handle:%d\n", *p_handle);
106 if (tiny_bt_send_data(ar, 6, p_handle) < 0) {
107 printf("unable to send data\n");
110 tiny_bt_disconnect(p_handle, callback_app_disconnect);
113 void callback_app_disconnect(__u16 *p_handle, __u8 *p_reason)
115 printf("disconnection handle %d was completed\n", *p_handle);
124 if (tiny_bt_init(0) < 0) {
125 perror("device impossible to ititialize\n");
128 printf("begin of main\n");
130 if (tiny_bt_read_bd_addr(&p_connection->master.bdaddr, callback_app_read_bd_addr) < 0) {
131 perror("tiny_bt_read_bd_addr error\n");
139 if (tiny_bt_process() < 0) {
140 perror("process error");