Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FatFileSystem TB6612FNG2 mbed
BTstack/hci_transport.h@0:de03cbbcd0ff, 2015-11-30 (annotated)
- Committer:
- mbed_Cookbook_SE
- Date:
- Mon Nov 30 09:32:15 2015 +0000
- Revision:
- 0:de03cbbcd0ff
??
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 1 | /* | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 2 | * Copyright (C) 2009-2012 by Matthias Ringwald | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 3 | * | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 4 | * Redistribution and use in source and binary forms, with or without | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 5 | * modification, are permitted provided that the following conditions | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 6 | * are met: | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 7 | * | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 8 | * 1. Redistributions of source code must retain the above copyright | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 9 | * notice, this list of conditions and the following disclaimer. | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 10 | * 2. Redistributions in binary form must reproduce the above copyright | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 11 | * notice, this list of conditions and the following disclaimer in the | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 12 | * documentation and/or other materials provided with the distribution. | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 13 | * 3. Neither the name of the copyright holders nor the names of | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 14 | * contributors may be used to endorse or promote products derived | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 15 | * from this software without specific prior written permission. | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 16 | * 4. Any redistribution, use, or modification is done solely for | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 17 | * personal benefit and not for any commercial purpose or for | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 18 | * monetary gain. | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 19 | * | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 20 | * THIS SOFTWARE IS PROVIDED BY MATTHIAS RINGWALD AND CONTRIBUTORS | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 21 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 22 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 23 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 24 | * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 25 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 26 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 27 | * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 28 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 29 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 30 | * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 31 | * SUCH DAMAGE. | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 32 | * | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 33 | * Please inquire about commercial licensing options at btstack@ringwald.ch | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 34 | * | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 35 | */ | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 36 | |
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 37 | /* | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 38 | * hci_transport.h | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 39 | * | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 40 | * HCI Transport API -- allows BT Daemon to use different transport protcols | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 41 | * | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 42 | * Created by Matthias Ringwald on 4/29/09. | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 43 | * | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 44 | */ | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 45 | #pragma once | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 46 | |
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 47 | #include <stdint.h> | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 48 | #include <btstack/run_loop.h> | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 49 | |
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 50 | #if defined __cplusplus | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 51 | extern "C" { | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 52 | #endif | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 53 | |
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 54 | /* HCI packet types */ | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 55 | typedef struct { | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 56 | int (*open)(void *transport_config); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 57 | int (*close)(void *transport_config); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 58 | int (*send_packet)(uint8_t packet_type, uint8_t *packet, int size); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 59 | void (*register_packet_handler)(void (*handler)(uint8_t packet_type, uint8_t *packet, uint16_t size)); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 60 | const char * (*get_transport_name)(void); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 61 | // custom extension for UART transport implementations | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 62 | int (*set_baudrate)(uint32_t baudrate); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 63 | // support async transport layers, e.g. IRQ driven without buffers | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 64 | int (*can_send_packet_now)(uint8_t packet_type); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 65 | } hci_transport_t; | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 66 | |
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 67 | typedef struct { | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 68 | const char *device_name; | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 69 | uint32_t baudrate_init; // initial baud rate | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 70 | uint32_t baudrate_main; // = 0: same as initial baudrate | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 71 | int flowcontrol; // | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 72 | } hci_uart_config_t; | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 73 | |
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 74 | |
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 75 | // inline various hci_transport_X.h files | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 76 | extern hci_transport_t * hci_transport_h4_instance(void); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 77 | extern hci_transport_t * hci_transport_h4_dma_instance(void); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 78 | extern hci_transport_t * hci_transport_h4_iphone_instance(void); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 79 | extern hci_transport_t * hci_transport_h5_instance(void); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 80 | extern hci_transport_t * hci_transport_usb_instance(void); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 81 | |
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 82 | // support for "enforece wake device" in h4 - used by iOS power management | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 83 | extern void hci_transport_h4_iphone_set_enforce_wake_device(char *path); | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 84 | |
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 85 | #if defined __cplusplus | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 86 | } | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 87 | #endif | 
| mbed_Cookbook_SE | 0:de03cbbcd0ff | 88 |