int main(void){ int acl_buffer_size; uint8_t acl_buffer[27]; att_set_db(profile_data); att_dump_attributes(); uint8_t uuid_1[] = { 0x00, 0x18}; acl_buffer_size = handle_find_by_type_value_request2(acl_buffer, 19, 0, 0xffff, 0x2800, 2, (uint8_t *) &uuid_1); hexdump(acl_buffer, acl_buffer_size); uint8_t uuid_3[] = { 0x00, 0x2a}; acl_buffer_size = handle_read_by_type_request2(acl_buffer, 19, 0, 0xffff, 2, (uint8_t *) &uuid_3); hexdump(acl_buffer, acl_buffer_size); acl_buffer_size = handle_find_by_type_value_request2(acl_buffer, 19, 0, 0xffff, 0x2800, 2, (uint8_t *) &uuid_1); hexdump(acl_buffer, acl_buffer_size); uint8_t uuid_4[] = { 0x00, 0x28}; acl_buffer_size = handle_read_by_group_type_request2(acl_buffer, 20, 0, 0xffff, 2, (uint8_t *) &uuid_4); hexdump(acl_buffer, acl_buffer_size); acl_buffer_size = handle_find_information_request2(acl_buffer, 20, 0, 0xffff); hexdump(acl_buffer, acl_buffer_size); acl_buffer_size = handle_find_information_request2(acl_buffer, 20, 3, 0xffff); hexdump(acl_buffer, acl_buffer_size); acl_buffer_size = handle_find_information_request2(acl_buffer, 20, 5, 0xffff); hexdump(acl_buffer, acl_buffer_size); acl_buffer_size = handle_read_request2(acl_buffer, 19, 0x0003); hexdump(acl_buffer, acl_buffer_size); return 0; }
void setup(void){ /// GET STARTED with BTstack /// btstack_memory_init(); run_loop_init(RUN_LOOP_POSIX); // use logger: format HCI_DUMP_PACKETLOGGER, HCI_DUMP_BLUEZ or HCI_DUMP_STDOUT hci_dump_open("/tmp/hci_dump.pklg", HCI_DUMP_PACKETLOGGER); // init HCI hci_transport_t * transport = hci_transport_usb_instance(); hci_uart_config_t * config = NULL; bt_control_t * control = NULL; remote_device_db_t * remote_db = (remote_device_db_t *) &remote_device_db_memory; hci_init(transport, config, control, remote_db); // set up l2cap_le l2cap_init(); l2cap_register_fixed_channel(att_packet_handler, L2CAP_CID_ATTRIBUTE_PROTOCOL); l2cap_register_fixed_channel(sm_packet_handler, L2CAP_CID_SECURITY_MANAGER_PROTOCOL); l2cap_register_packet_handler(packet_handler); // set up ATT att_set_db(profile_data); att_set_write_callback(att_write_callback); att_dump_attributes(); att_connection.mtu = 27; }
// main int main(void) { /// GET STARTED with BTstack /// btstack_memory_init(); run_loop_init(RUN_LOOP_POSIX); // init HCI hci_transport_t * transport = hci_transport_usb_instance(); bt_control_t * control = NULL; hci_uart_config_t * config = NULL; remote_device_db_t * remote_db = (remote_device_db_t *) &remote_device_db_memory; hci_init(transport, config, control, remote_db); // set up l2cap_le l2cap_init(); l2cap_register_fixed_channel(att_packet_handler, L2CAP_CID_ATTRIBUTE_PROTOCOL); l2cap_register_packet_handler(packet_handler); // set up ATT att_set_db(profile_data); att_set_write_callback(att_write_callback); att_dump_attributes(); att_connection.mtu = 27; printf("Run...\n\r"); // turn on! hci_power_control(HCI_POWER_ON); // go! run_loop_execute(); // happy compiler! return 0; }
void att_server_init(uint8_t const * db, att_read_callback_t read_callback, att_write_callback_t write_callback){ sm_register_packet_handler(att_event_packet_handler); att_dispatch_register_server(att_packet_handler); att_server_state = ATT_SERVER_IDLE; att_set_db(db); att_set_read_callback(read_callback); att_set_write_callback(write_callback); }
void att_server_init(uint8_t const * db, att_read_callback_t read_callback, att_write_callback_t write_callback){ // store callbacks att_server_client_read_callback = read_callback; att_server_client_write_callback = write_callback; // register for HCI Events hci_event_callback_registration.callback = &att_event_packet_handler; hci_add_event_handler(&hci_event_callback_registration); // register for SM events sm_event_callback_registration.callback = &att_event_packet_handler; sm_add_event_handler(&sm_event_callback_registration); // and L2CAP ATT Server PDUs att_dispatch_register_server(att_packet_handler); att_set_db(db); att_set_read_callback(att_server_read_callback); att_set_write_callback(att_server_write_callback); }