2 * C Implementation: testapp
7 * Author: root <root@ubuntu>, (C) 2008
9 * Copyright: See COPYING file that comes with this distribution
18 #include "tiny_bt_hci_core.h"
19 #include "tiny_bt_hci_cmd.h"
22 bt_address rem_bd_addr_array[HCI_MAX_DEV];
26 connection_hci connection,*p_connection=&connection;
28 void callback_app_read_bd_addr(bt_address *p_address)
30 printf("Read address is :");
32 tiny_bt_read_local_name(&(p_connection->master.name), callback_app_read_local_name);
35 void callback_app_read_local_name(char *p_name)
39 printf("read name is:");
41 for (i = 0; i < 8; i++) {
42 printf("%c", *(p_name+i));
45 tiny_bt_inquiry(&rem_addr, callback_app_inquiry_RSSI, callback_app_inquiry_complete);
48 void callback_app_inquiry_RSSI(bt_address *p_address)
54 rem_bd_addr_array[0] = *p_address;
55 printf("There is first device:");
59 for (i = 0; i < count; i++) {
60 if (compare_bda(p_address, &rem_bd_addr_array[i])) {
66 if (count < HCI_MAX_DEV) {
67 rem_bd_addr_array[count] = *p_address;
68 printf("There is device:");
72 printf("Array full, there is more than 16 devices in surroundig area\n");
77 tiny_bt_inquiry_register_again(&rem_addr, callback_app_inquiry_RSSI);
80 void callback_app_inquiry_complete(void)
84 printf("inquiry complete\n");
86 for (i = 0; i < glob_count; i++) {
88 printba(&rem_bd_addr_array[i]);
92 p_connection->slave.bdaddr = rem_bd_addr_array[0];
93 tiny_bt_connect(&rem_bd_addr_array[0],
94 &p_connection->handle, callback_app_connection_complete);
96 printf("There is no remote device suitable for connect\n");
102 printf("Application finished\n");
106 void callback_app_connection_complete(__u16 *p_handle)
108 char ar[11] = {"hallo karel"};
109 char w2[15] = {"second messagee"};
111 connection_state state = CONNECT;
112 p_connection->con_state = state;
113 printf("Connection complete handle:%d\n", *p_handle);
115 if (tiny_bt_send_data(ar, 11, p_handle, ACL_START, ACL_PPP) < 0) {
116 printf("unable to send data\n");
119 if (tiny_bt_send_data(w2, 15, p_handle, ACL_CONT, ACL_PPP) < 0) {
120 printf("unable to send data\n");
123 tiny_bt_disconnect(p_handle, callback_app_disconnect);
126 void callback_app_disconnect(__u16 *p_handle, __u8 *p_reason)
128 printf("disconnection handle %d was completed\n", *p_handle);
134 int main(int argc, char* argv[])
138 if (tiny_bt_init(atoi(argv[1])) < 0) {
139 perror("device impossible to ititialize\n");
143 printf("begin of main\n");
145 if (tiny_bt_read_bd_addr(&p_connection->master.bdaddr, callback_app_read_bd_addr) < 0) {
146 perror("tiny_bt_read_bd_addr error\n");
154 if (tiny_bt_process() < 0) {
155 perror("process error");
161 printf("main finished\n");