gap_dedicated_bonding.c 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * Copyright (C) 2014 BlueKitchen GmbH
  3. *
  4. * Redistribution and use in source and binary forms, with or without
  5. * modification, are permitted provided that the following conditions
  6. * are met:
  7. *
  8. * 1. Redistributions of source code must retain the above copyright
  9. * notice, this list of conditions and the following disclaimer.
  10. * 2. Redistributions in binary form must reproduce the above copyright
  11. * notice, this list of conditions and the following disclaimer in the
  12. * documentation and/or other materials provided with the distribution.
  13. * 3. Neither the name of the copyright holders nor the names of
  14. * contributors may be used to endorse or promote products derived
  15. * from this software without specific prior written permission.
  16. * 4. Any redistribution, use, or modification is done solely for
  17. * personal benefit and not for any commercial purpose or for
  18. * monetary gain.
  19. *
  20. * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
  21. * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  22. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  23. * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
  24. * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  25. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  26. * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  27. * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  28. * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  29. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
  30. * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31. * SUCH DAMAGE.
  32. *
  33. * Please inquire about commercial licensing options at
  34. * contact@bluekitchen-gmbh.com
  35. *
  36. */
  37. #define BTSTACK_FILE__ "gap_dedicated_bonding.c"
  38. #include <stdint.h>
  39. #include <stdio.h>
  40. #include <stdlib.h>
  41. #include <string.h>
  42. #include "btstack.h"
  43. static bd_addr_t remote = {0x84, 0x38, 0x35, 0x65, 0xD1, 0x15};
  44. static btstack_packet_callback_registration_t hci_event_callback_registration;
  45. static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
  46. UNUSED(channel);
  47. UNUSED(size);
  48. if (packet_type != HCI_EVENT_PACKET) return;
  49. switch (hci_event_packet_get_type(packet)) {
  50. case BTSTACK_EVENT_STATE:
  51. // BTstack activated, get started
  52. if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
  53. gap_dedicated_bonding(remote, 1);
  54. }
  55. break;
  56. case GAP_EVENT_DEDICATED_BONDING_COMPLETED:
  57. printf("GAP Dedicated Bonding Complete, status %u\n", packet[2]);
  58. default:
  59. break;
  60. }
  61. }
  62. int btstack_main(int argc, const char * argv[]);
  63. int btstack_main(int argc, const char * argv[]){
  64. (void)argc;
  65. (void)argv;
  66. hci_event_callback_registration.callback = &packet_handler;
  67. hci_add_event_handler(&hci_event_callback_registration);
  68. // turn on!
  69. hci_power_control(HCI_POWER_ON);
  70. return 0;
  71. }