Adapted to OBCP ENSMM
Dependents: SimpleBLE-ObCP_ENSMM_V2019_Test_BLE_S SimpleBLE-ObCp_test-BLE_envoi SimpleBLE-ObCp_test-BLE Roller_catcher_Envoi ... more
x-nucleo-idb0xa1/bluenrg-hci/ble_hci.h@309:b173b83b9e64, 2021-02-04 (annotated)
- Committer:
- dorianvoydie
- Date:
- Thu Feb 04 16:03:32 2021 +0000
- Revision:
- 309:b173b83b9e64
- Parent:
- 282:27ead63b6cfc
Ce programme correspond a la cellule de depart du systeme "Laser Gate Timer" developpe par Tanguy KESSELY et Dorian VOYDIE. Il utilise une carte Nucleo F411, un shield BLE IDB05A1 et un PCB fait maison
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Wolfgang Betz |
132:51056160fa4a | 1 | /******************** (C) COPYRIGHT 2012 STMicroelectronics ******************** |
Wolfgang Betz |
132:51056160fa4a | 2 | * File Name : hci.h |
Wolfgang Betz |
132:51056160fa4a | 3 | * Author : AMS - HEA&RF BU |
Wolfgang Betz |
132:51056160fa4a | 4 | * Version : V1.0.0 |
Wolfgang Betz |
132:51056160fa4a | 5 | * Date : 19-July-2012 |
Wolfgang Betz |
132:51056160fa4a | 6 | * Description : Constants and functions for HCI layer. See Bluetooth Core |
Wolfgang Betz |
132:51056160fa4a | 7 | * v 4.0, Vol. 2, Part E. |
Wolfgang Betz |
132:51056160fa4a | 8 | ******************************************************************************** |
Wolfgang Betz |
132:51056160fa4a | 9 | * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS |
Wolfgang Betz |
132:51056160fa4a | 10 | * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. |
Wolfgang Betz |
132:51056160fa4a | 11 | * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, |
Wolfgang Betz |
132:51056160fa4a | 12 | * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE |
Wolfgang Betz |
132:51056160fa4a | 13 | * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING |
Wolfgang Betz |
132:51056160fa4a | 14 | * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. |
Wolfgang Betz |
132:51056160fa4a | 15 | *******************************************************************************/ |
Wolfgang Betz |
132:51056160fa4a | 16 | |
Wolfgang Betz |
132:51056160fa4a | 17 | #ifndef __HCI_H_ |
Wolfgang Betz |
132:51056160fa4a | 18 | #define __HCI_H_ |
Wolfgang Betz |
132:51056160fa4a | 19 | |
Vincent Coubard |
282:27ead63b6cfc | 20 | #include "ble_hal_types.h" |
Vincent Coubard |
282:27ead63b6cfc | 21 | #include "ble_link_layer.h" |
Vincent Coubard |
282:27ead63b6cfc | 22 | #include <ble_list.h> |
Wolfgang Betz |
132:51056160fa4a | 23 | |
Wolfgang Betz |
132:51056160fa4a | 24 | #define HCI_READ_PACKET_SIZE 128 //71 |
Wolfgang Betz |
132:51056160fa4a | 25 | |
Wolfgang Betz |
132:51056160fa4a | 26 | /*** Data types ***/ |
Wolfgang Betz |
132:51056160fa4a | 27 | |
Wolfgang Betz |
132:51056160fa4a | 28 | /* structure used to read received data */ |
Wolfgang Betz |
132:51056160fa4a | 29 | typedef struct _tHciDataPacket |
Wolfgang Betz |
132:51056160fa4a | 30 | { |
Wolfgang Betz |
132:51056160fa4a | 31 | tListNode currentNode; |
Wolfgang Betz |
132:51056160fa4a | 32 | uint8_t dataBuff[HCI_READ_PACKET_SIZE]; |
Wolfgang Betz |
132:51056160fa4a | 33 | uint8_t data_len; |
Wolfgang Betz |
132:51056160fa4a | 34 | } tHciDataPacket; |
Wolfgang Betz |
132:51056160fa4a | 35 | |
Wolfgang Betz |
132:51056160fa4a | 36 | typedef enum |
Wolfgang Betz |
132:51056160fa4a | 37 | { |
Wolfgang Betz |
132:51056160fa4a | 38 | BUSY, |
Wolfgang Betz |
132:51056160fa4a | 39 | AVAILABLE |
Wolfgang Betz |
132:51056160fa4a | 40 | } HCI_CMD_STATUS_t; |
Wolfgang Betz |
132:51056160fa4a | 41 | |
Wolfgang Betz |
132:51056160fa4a | 42 | /** |
Wolfgang Betz |
132:51056160fa4a | 43 | * @defgroup HCI_Error_codes HCI Error codes |
Wolfgang Betz |
132:51056160fa4a | 44 | * @{ |
Wolfgang Betz |
132:51056160fa4a | 45 | */ |
Wolfgang Betz |
132:51056160fa4a | 46 | #define HCI_UNKNOWN_COMMAND 0x01 |
Wolfgang Betz |
132:51056160fa4a | 47 | #define HCI_NO_CONNECTION 0x02 |
Wolfgang Betz |
132:51056160fa4a | 48 | #define HCI_HARDWARE_FAILURE 0x03 |
Wolfgang Betz |
132:51056160fa4a | 49 | #define HCI_PAGE_TIMEOUT 0x04 |
Wolfgang Betz |
132:51056160fa4a | 50 | #define HCI_AUTHENTICATION_FAILURE 0x05 |
Wolfgang Betz |
132:51056160fa4a | 51 | #define HCI_PIN_OR_KEY_MISSING 0x06 |
Wolfgang Betz |
132:51056160fa4a | 52 | #define HCI_MEMORY_FULL 0x07 |
Wolfgang Betz |
132:51056160fa4a | 53 | #define HCI_CONNECTION_TIMEOUT 0x08 |
Wolfgang Betz |
132:51056160fa4a | 54 | #define HCI_MAX_NUMBER_OF_CONNECTIONS 0x09 |
Wolfgang Betz |
132:51056160fa4a | 55 | #define HCI_MAX_NUMBER_OF_SCO_CONNECTIONS 0x0a |
Wolfgang Betz |
132:51056160fa4a | 56 | #define HCI_ACL_CONNECTION_EXISTS 0x0b |
Wolfgang Betz |
132:51056160fa4a | 57 | #define HCI_COMMAND_DISALLOWED 0x0c |
Wolfgang Betz |
132:51056160fa4a | 58 | #define HCI_REJECTED_LIMITED_RESOURCES 0x0d |
Wolfgang Betz |
132:51056160fa4a | 59 | #define HCI_REJECTED_SECURITY 0x0e |
Wolfgang Betz |
132:51056160fa4a | 60 | #define HCI_REJECTED_PERSONAL 0x0f |
Wolfgang Betz |
132:51056160fa4a | 61 | #define HCI_HOST_TIMEOUT 0x10 |
Wolfgang Betz |
132:51056160fa4a | 62 | #define HCI_UNSUPPORTED_FEATURE 0x11 |
Wolfgang Betz |
132:51056160fa4a | 63 | #define HCI_INVALID_PARAMETERS 0x12 |
Wolfgang Betz |
132:51056160fa4a | 64 | #define HCI_OE_USER_ENDED_CONNECTION 0x13 |
Wolfgang Betz |
132:51056160fa4a | 65 | #define HCI_OE_LOW_RESOURCES 0x14 |
Wolfgang Betz |
132:51056160fa4a | 66 | #define HCI_OE_POWER_OFF 0x15 |
Wolfgang Betz |
132:51056160fa4a | 67 | #define HCI_CONNECTION_TERMINATED 0x16 |
Wolfgang Betz |
132:51056160fa4a | 68 | #define HCI_REPEATED_ATTEMPTS 0x17 |
Wolfgang Betz |
132:51056160fa4a | 69 | #define HCI_PAIRING_NOT_ALLOWED 0x18 |
Wolfgang Betz |
132:51056160fa4a | 70 | #define HCI_UNKNOWN_LMP_PDU 0x19 |
Wolfgang Betz |
132:51056160fa4a | 71 | #define HCI_UNSUPPORTED_REMOTE_FEATURE 0x1a |
Wolfgang Betz |
132:51056160fa4a | 72 | #define HCI_SCO_OFFSET_REJECTED 0x1b |
Wolfgang Betz |
132:51056160fa4a | 73 | #define HCI_SCO_INTERVAL_REJECTED 0x1c |
Wolfgang Betz |
132:51056160fa4a | 74 | #define HCI_AIR_MODE_REJECTED 0x1d |
Wolfgang Betz |
132:51056160fa4a | 75 | #define HCI_INVALID_LMP_PARAMETERS 0x1e |
Wolfgang Betz |
132:51056160fa4a | 76 | #define HCI_UNSPECIFIED_ERROR 0x1f |
Wolfgang Betz |
132:51056160fa4a | 77 | #define HCI_UNSUPPORTED_LMP_PARAMETER_VALUE 0x20 |
Wolfgang Betz |
132:51056160fa4a | 78 | #define HCI_ROLE_CHANGE_NOT_ALLOWED 0x21 |
Wolfgang Betz |
132:51056160fa4a | 79 | #define HCI_LMP_RESPONSE_TIMEOUT 0x22 |
Wolfgang Betz |
132:51056160fa4a | 80 | #define HCI_LMP_ERROR_TRANSACTION_COLLISION 0x23 |
Wolfgang Betz |
132:51056160fa4a | 81 | #define HCI_LMP_PDU_NOT_ALLOWED 0x24 |
Wolfgang Betz |
132:51056160fa4a | 82 | #define HCI_ENCRYPTION_MODE_NOT_ACCEPTED 0x25 |
Wolfgang Betz |
132:51056160fa4a | 83 | #define HCI_UNIT_LINK_KEY_USED 0x26 |
Wolfgang Betz |
132:51056160fa4a | 84 | #define HCI_QOS_NOT_SUPPORTED 0x27 |
Wolfgang Betz |
132:51056160fa4a | 85 | #define HCI_INSTANT_PASSED 0x28 |
Wolfgang Betz |
132:51056160fa4a | 86 | #define HCI_PAIRING_NOT_SUPPORTED 0x29 |
Wolfgang Betz |
132:51056160fa4a | 87 | #define HCI_TRANSACTION_COLLISION 0x2a |
Wolfgang Betz |
132:51056160fa4a | 88 | #define HCI_QOS_UNACCEPTABLE_PARAMETER 0x2c |
Wolfgang Betz |
132:51056160fa4a | 89 | #define HCI_QOS_REJECTED 0x2d |
Wolfgang Betz |
132:51056160fa4a | 90 | #define HCI_CLASSIFICATION_NOT_SUPPORTED 0x2e |
Wolfgang Betz |
132:51056160fa4a | 91 | #define HCI_INSUFFICIENT_SECURITY 0x2f |
Wolfgang Betz |
132:51056160fa4a | 92 | #define HCI_PARAMETER_OUT_OF_RANGE 0x30 |
Wolfgang Betz |
132:51056160fa4a | 93 | #define HCI_ROLE_SWITCH_PENDING 0x32 |
Wolfgang Betz |
132:51056160fa4a | 94 | #define HCI_SLOT_VIOLATION 0x34 |
Wolfgang Betz |
132:51056160fa4a | 95 | #define HCI_ROLE_SWITCH_FAILED 0x35 |
Wolfgang Betz |
132:51056160fa4a | 96 | #define HCI_EIR_TOO_LARGE 0x36 |
Wolfgang Betz |
132:51056160fa4a | 97 | #define HCI_SIMPLE_PAIRING_NOT_SUPPORTED 0x37 |
Wolfgang Betz |
132:51056160fa4a | 98 | #define HCI_HOST_BUSY_PAIRING 0x38 |
Wolfgang Betz |
132:51056160fa4a | 99 | #define HCI_CONN_REJ_NO_CH_FOUND 0x39 |
Wolfgang Betz |
132:51056160fa4a | 100 | #define HCI_CONTROLLER_BUSY 0x3A |
Wolfgang Betz |
132:51056160fa4a | 101 | #define HCI_UNACCEPTABLE_CONN_INTERV 0x3B |
Wolfgang Betz |
132:51056160fa4a | 102 | #define HCI_DIRECTED_ADV_TIMEOUT 0x3C |
Wolfgang Betz |
132:51056160fa4a | 103 | #define HCI_CONN_TERM_MIC_FAIL 0x3D |
Wolfgang Betz |
132:51056160fa4a | 104 | #define HCI_CONN_FAIL_TO_BE_ESTABL 0x3E |
Wolfgang Betz |
132:51056160fa4a | 105 | #define HCI_MAC_CONN_FAILED 0x3F |
Wolfgang Betz |
132:51056160fa4a | 106 | /** |
Wolfgang Betz |
132:51056160fa4a | 107 | * @} |
Wolfgang Betz |
132:51056160fa4a | 108 | */ |
Wolfgang Betz |
132:51056160fa4a | 109 | |
Wolfgang Betz |
132:51056160fa4a | 110 | |
Wolfgang Betz |
132:51056160fa4a | 111 | /* |
Wolfgang Betz |
132:51056160fa4a | 112 | * HCI library functions. |
Wolfgang Betz |
132:51056160fa4a | 113 | * Each function returns 0 in case of success, otherwise one of the error codes. |
Wolfgang Betz |
132:51056160fa4a | 114 | */ |
Wolfgang Betz |
132:51056160fa4a | 115 | |
Wolfgang Betz |
132:51056160fa4a | 116 | int hci_reset(void); |
Wolfgang Betz |
132:51056160fa4a | 117 | |
Wolfgang Betz |
132:51056160fa4a | 118 | int hci_disconnect(uint16_t handle, uint8_t reason); |
Wolfgang Betz |
132:51056160fa4a | 119 | |
Wolfgang Betz |
132:51056160fa4a | 120 | int hci_le_set_advertise_enable(uint8_t enable); |
Wolfgang Betz |
132:51056160fa4a | 121 | |
Wolfgang Betz |
132:51056160fa4a | 122 | int hci_le_set_advertising_parameters(uint16_t min_interval, uint16_t max_interval, uint8_t advtype, |
Wolfgang Betz |
132:51056160fa4a | 123 | uint8_t own_bdaddr_type, uint8_t direct_bdaddr_type, const tBDAddr direct_bdaddr, uint8_t chan_map, |
Wolfgang Betz |
132:51056160fa4a | 124 | uint8_t filter); |
Wolfgang Betz |
132:51056160fa4a | 125 | |
Wolfgang Betz |
132:51056160fa4a | 126 | int hci_le_set_scan_parameters(uint8_t type, uint16_t interval, |
Wolfgang Betz |
132:51056160fa4a | 127 | uint16_t window, uint8_t own_bdaddr_type, |
Wolfgang Betz |
132:51056160fa4a | 128 | uint8_t filter); |
Wolfgang Betz |
132:51056160fa4a | 129 | |
Wolfgang Betz |
132:51056160fa4a | 130 | int hci_le_set_scan_enable(uint8_t enable, uint8_t filter_dup); |
Wolfgang Betz |
132:51056160fa4a | 131 | |
Wolfgang Betz |
132:51056160fa4a | 132 | int hci_le_set_advertising_data(uint8_t length, const uint8_t data[]); |
Wolfgang Betz |
132:51056160fa4a | 133 | |
Wolfgang Betz |
132:51056160fa4a | 134 | int hci_le_set_scan_resp_data(uint8_t length, const uint8_t data[]); |
Wolfgang Betz |
132:51056160fa4a | 135 | |
Wolfgang Betz |
132:51056160fa4a | 136 | int hci_le_rand(uint8_t random_number[8]); |
Wolfgang Betz |
132:51056160fa4a | 137 | |
Wolfgang Betz |
132:51056160fa4a | 138 | int hci_le_read_advertising_channel_tx_power(int8_t *tx_power_level); |
Wolfgang Betz |
132:51056160fa4a | 139 | |
Wolfgang Betz |
132:51056160fa4a | 140 | int hci_acl_data(const uint8_t * data, uint16_t len); |
Wolfgang Betz |
132:51056160fa4a | 141 | |
Wolfgang Betz |
132:51056160fa4a | 142 | int hci_le_set_random_address(tBDAddr bdaddr); |
Wolfgang Betz |
132:51056160fa4a | 143 | |
Wolfgang Betz |
132:51056160fa4a | 144 | int hci_read_bd_addr(tBDAddr bdaddr); |
Wolfgang Betz |
132:51056160fa4a | 145 | |
Wolfgang Betz |
132:51056160fa4a | 146 | int hci_le_read_white_list_size(uint8_t *size); |
Wolfgang Betz |
132:51056160fa4a | 147 | |
Wolfgang Betz |
132:51056160fa4a | 148 | int hci_le_clear_white_list(void); |
Wolfgang Betz |
132:51056160fa4a | 149 | |
Wolfgang Betz |
132:51056160fa4a | 150 | int hci_le_add_device_to_white_list(uint8_t bdaddr_type, tBDAddr bdaddr); |
Wolfgang Betz |
132:51056160fa4a | 151 | |
Wolfgang Betz |
132:51056160fa4a | 152 | int hci_le_remove_device_from_white_list(uint8_t bdaddr_type, tBDAddr bdaddr); |
Wolfgang Betz |
132:51056160fa4a | 153 | |
Wolfgang Betz |
132:51056160fa4a | 154 | int hci_le_encrypt(uint8_t key[16], uint8_t plaintextData[16], uint8_t encryptedData[16]); |
Wolfgang Betz |
132:51056160fa4a | 155 | |
Wolfgang Betz |
132:51056160fa4a | 156 | int hci_le_ltk_request_reply(uint8_t key[16]); |
Wolfgang Betz |
132:51056160fa4a | 157 | |
Wolfgang Betz |
132:51056160fa4a | 158 | int hci_le_ltk_request_neg_reply(void); |
Wolfgang Betz |
132:51056160fa4a | 159 | |
Wolfgang Betz |
132:51056160fa4a | 160 | int hci_le_read_buffer_size(uint16_t *pkt_len, uint8_t *max_pkt); |
Wolfgang Betz |
132:51056160fa4a | 161 | |
Wolfgang Betz |
132:51056160fa4a | 162 | int hci_le_create_connection(uint16_t interval, uint16_t window, uint8_t initiator_filter, uint8_t peer_bdaddr_type, |
Wolfgang Betz |
132:51056160fa4a | 163 | const tBDAddr peer_bdaddr, uint8_t own_bdaddr_type, uint16_t min_interval, uint16_t max_interval, |
Wolfgang Betz |
132:51056160fa4a | 164 | uint16_t latency, uint16_t supervision_timeout, uint16_t min_ce_length, uint16_t max_ce_length); |
Wolfgang Betz |
132:51056160fa4a | 165 | |
Andrea Palmieri |
229:9981f62cdb1a | 166 | int hci_le_create_connection_cancel(void); |
Andrea Palmieri |
229:9981f62cdb1a | 167 | |
Wolfgang Betz |
132:51056160fa4a | 168 | int hci_read_transmit_power_level(uint16_t *conn_handle, uint8_t type, int8_t *tx_level); |
Wolfgang Betz |
132:51056160fa4a | 169 | |
Wolfgang Betz |
132:51056160fa4a | 170 | int hci_read_rssi(uint16_t *conn_handle, int8_t *rssi); |
Wolfgang Betz |
132:51056160fa4a | 171 | |
Wolfgang Betz |
132:51056160fa4a | 172 | int hci_le_read_local_supported_features(uint8_t *features); |
Wolfgang Betz |
132:51056160fa4a | 173 | |
Wolfgang Betz |
132:51056160fa4a | 174 | int hci_le_read_channel_map(uint16_t conn_handle, uint8_t ch_map[5]); |
Wolfgang Betz |
132:51056160fa4a | 175 | |
Wolfgang Betz |
132:51056160fa4a | 176 | int hci_le_read_supported_states(uint8_t states[8]); |
Wolfgang Betz |
132:51056160fa4a | 177 | |
Wolfgang Betz |
132:51056160fa4a | 178 | int hci_le_receiver_test(uint8_t frequency); |
Wolfgang Betz |
132:51056160fa4a | 179 | |
Wolfgang Betz |
132:51056160fa4a | 180 | int hci_le_transmitter_test(uint8_t frequency, uint8_t length, uint8_t payload); |
Wolfgang Betz |
132:51056160fa4a | 181 | |
Wolfgang Betz |
132:51056160fa4a | 182 | int hci_le_test_end(uint16_t *num_pkts); |
Wolfgang Betz |
132:51056160fa4a | 183 | |
Wolfgang Betz |
132:51056160fa4a | 184 | int hci_le_read_local_version(uint8_t *hci_version, uint16_t *hci_revision, uint8_t *lmp_pal_version, |
Wolfgang Betz |
132:51056160fa4a | 185 | uint16_t *manufacturer_name, uint16_t *lmp_pal_subversion); |
Wolfgang Betz |
132:51056160fa4a | 186 | |
Wolfgang Betz |
132:51056160fa4a | 187 | /** |
Wolfgang Betz |
132:51056160fa4a | 188 | * This function must be used to pass the packet received from the HCI |
Wolfgang Betz |
132:51056160fa4a | 189 | * interface to the BLE Stack HCI state machine. |
Wolfgang Betz |
132:51056160fa4a | 190 | * |
Wolfgang Betz |
132:51056160fa4a | 191 | * @param[in] hciReadPacket The packet that is received from HCI interface. |
Wolfgang Betz |
132:51056160fa4a | 192 | * |
Wolfgang Betz |
132:51056160fa4a | 193 | */ |
Wolfgang Betz |
132:51056160fa4a | 194 | void HCI_Input(tHciDataPacket *hciReadPacket); |
Wolfgang Betz |
132:51056160fa4a | 195 | |
Wolfgang Betz |
132:51056160fa4a | 196 | /** |
Wolfgang Betz |
132:51056160fa4a | 197 | * Initialization function. Must be done before any data can be received from |
Wolfgang Betz |
132:51056160fa4a | 198 | * BLE controller. |
Wolfgang Betz |
132:51056160fa4a | 199 | */ |
Wolfgang Betz |
132:51056160fa4a | 200 | void HCI_Init(void); |
Wolfgang Betz |
132:51056160fa4a | 201 | |
Wolfgang Betz |
132:51056160fa4a | 202 | /** |
Wolfgang Betz |
132:51056160fa4a | 203 | * Callback used to pass events to application. |
Wolfgang Betz |
132:51056160fa4a | 204 | * |
Wolfgang Betz |
132:51056160fa4a | 205 | * @param[in] pckt The event. |
Wolfgang Betz |
132:51056160fa4a | 206 | * |
Wolfgang Betz |
132:51056160fa4a | 207 | */ |
Wolfgang Betz |
132:51056160fa4a | 208 | extern void HCI_Event_CB(void *pckt); |
Wolfgang Betz |
132:51056160fa4a | 209 | |
Wolfgang Betz |
132:51056160fa4a | 210 | /** |
Wolfgang Betz |
132:51056160fa4a | 211 | * Processing function that must be called after an event is received from |
Wolfgang Betz |
132:51056160fa4a | 212 | * HCI interface. Must be called outside ISR. It will call HCI_Event_CB if |
Wolfgang Betz |
132:51056160fa4a | 213 | * necessary. |
Wolfgang Betz |
132:51056160fa4a | 214 | */ |
Wolfgang Betz |
132:51056160fa4a | 215 | void HCI_Process(void); |
Wolfgang Betz |
132:51056160fa4a | 216 | |
Wolfgang Betz |
132:51056160fa4a | 217 | /** |
Wolfgang Betz |
132:51056160fa4a | 218 | * @brief Check if queue of HCI event is empty or not. |
Wolfgang Betz |
132:51056160fa4a | 219 | * @note This funtion can be used to check if the event queue from BlueNRG is empty. This |
Wolfgang Betz |
132:51056160fa4a | 220 | * is useful when checking if it is safe to go to sleep. |
Wolfgang Betz |
132:51056160fa4a | 221 | * @return TRUE if event queue is empty. FALSE otherwhise. |
Wolfgang Betz |
132:51056160fa4a | 222 | */ |
Wolfgang Betz |
132:51056160fa4a | 223 | BOOL HCI_Queue_Empty(void); |
Wolfgang Betz |
132:51056160fa4a | 224 | /** |
Wolfgang Betz |
132:51056160fa4a | 225 | * Iterrupt service routine that must be called when the BlueNRG |
Wolfgang Betz |
132:51056160fa4a | 226 | * reports a packet received or an event to the host through the |
Wolfgang Betz |
132:51056160fa4a | 227 | * BlueNRG interrupt line. |
Wolfgang Betz |
132:51056160fa4a | 228 | */ |
Wolfgang Betz |
132:51056160fa4a | 229 | #ifdef __DMA_LP__ |
Wolfgang Betz |
132:51056160fa4a | 230 | void HCI_Isr(uint8_t *buffer, uint8_t event_payload_len); |
Wolfgang Betz |
132:51056160fa4a | 231 | void HCI_Process_Notification_Request(void); |
Wolfgang Betz |
132:51056160fa4a | 232 | void HCI_Cmd_Status(HCI_CMD_STATUS_t Hci_Cmd_Status); |
Wolfgang Betz |
132:51056160fa4a | 233 | void HCI_Wait_For_Response(void); |
Wolfgang Betz |
132:51056160fa4a | 234 | #else |
Wolfgang Betz |
132:51056160fa4a | 235 | void HCI_Isr(void); |
Wolfgang Betz |
132:51056160fa4a | 236 | #endif /* __DMA_LP__ */ |
Wolfgang Betz |
132:51056160fa4a | 237 | |
Wolfgang Betz |
132:51056160fa4a | 238 | extern tListNode hciReadPktPool; |
Wolfgang Betz |
132:51056160fa4a | 239 | extern tListNode hciReadPktRxQueue; |
Wolfgang Betz |
132:51056160fa4a | 240 | |
Vincent Coubard |
282:27ead63b6cfc | 241 | #endif /* __HCI_H_ */ |