95 lines
3.5 KiB
C
95 lines
3.5 KiB
C
#ifndef _BT_HCI_H
|
|
#define _BT_HCI_H
|
|
|
|
/* HCI Command OGF */
|
|
#define HCI_LINK_CTRL_OGF 0x01
|
|
#define HCI_LINK_POLICY_OGF 0x02
|
|
#define HCI_HC_BB_OGF 0x03
|
|
#define HCI_INFO_PARAM_OGF 0x04
|
|
|
|
/* HCI Command OCF */
|
|
#define HCI_DISCONN_OCF 0x06
|
|
#define HCI_ACCEPT_CONN_REQ_OCF 0x09
|
|
#define HCI_RESET_OCF 0x03
|
|
#define HCI_W_SCAN_EN_OCF 0x1A
|
|
#define HCI_R_COD_OCF 0x23
|
|
#define HCI_W_COD_OCF 0x24
|
|
#define HCI_H_BUF_SIZE_OCF 0x33
|
|
#define HCI_H_NUM_COMPL_OCF 0x35
|
|
#define HCI_R_BUF_SIZE_OCF 0x05
|
|
#define HCI_R_BD_ADDR_OCF 0x09
|
|
#define HCI_W_LOCAL_NAME_OCF 0x13
|
|
#define HCI_PIN_CODE_REQ_REP_OCF 0x0D
|
|
#define HCI_R_STORED_LINK_KEY_OCF 0x0D
|
|
#define HCI_W_STORED_LINK_KEY_OCF 0x11
|
|
#define HCI_LINK_KEY_REQ_REP_OCF 0x0B
|
|
#define HCI_SNIFF_MODE_OCF 0x03
|
|
|
|
#define HCI_COMMAND_PACKET 0x01
|
|
#define HCI_ACL_DATA_PACKET 0x02
|
|
#define HCI_SCO_DATA_PACKET 0x03
|
|
#define HCI_EVENT_PACKET 0x04
|
|
|
|
#define HCI_EVENT_INQUIRY_COMPLETE 0x01
|
|
#define HCI_EVENT_INQUIRY_RESULT 0x02
|
|
#define HCI_EVENT_CONNECTION_COMPLETE 0x03
|
|
#define HCI_EVENT_CONNECTION_REQUEST 0x04
|
|
#define HCI_EVENT_DISCONNECTION_COMPLETE 0x05
|
|
#define HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT 0x06
|
|
#define HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 0x07
|
|
#define HCI_EVENT_ENCRYPTION_CHANGE 0x08
|
|
#define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 0x09
|
|
#define HCI_EVENT_MASTER_LINK_KEY_COMPLETE 0x0A
|
|
#define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE 0x0B
|
|
#define HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C
|
|
#define HCI_EVENT_QOS_SETUP_COMPLETE 0x0D
|
|
#define HCI_EVENT_COMMAND_COMPLETE 0x0E
|
|
#define HCI_EVENT_COMMAND_STATUS 0x0F
|
|
#define HCI_EVENT_HARDWARE_ERROR 0x10
|
|
#define HCI_EVENT_FLUSH_OCCURED 0x11
|
|
#define HCI_EVENT_ROLE_CHANGE 0x12
|
|
#define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS 0x13
|
|
#define HCI_EVENT_MODE_CHANGE_EVENT 0x14
|
|
#define HCI_EVENT_RETURN_LINK_KEYS 0x15
|
|
#define HCI_EVENT_PIN_CODE_REQUEST 0x16
|
|
#define HCI_EVENT_LINK_KEY_REQUEST 0x17
|
|
#define HCI_EVENT_LINK_KEY_NOTIFICATION 0x18
|
|
#define HCI_EVENT_DATA_BUFFER_OVERFLOW 0x1A
|
|
#define HCI_EVENT_MAX_SLOTS_CHANGED 0x1B
|
|
#define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 0x1C
|
|
#define HCI_EVENT_PACKET_TYPE_CHANGED 0x1D
|
|
#define HCI_EVENT_PAGE_SCAN_REPETION_MODE_CHANGE 0x20
|
|
#define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 0x22
|
|
#define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 0x2F
|
|
#define HCI_EVENT_LE_META 0x3E
|
|
#define HCI_EVENT_VENDOR_SPECIFIC 0xFF
|
|
|
|
#define HCI_SUBEVENT_LE_CONNECTION_COMPLETE 0x01
|
|
#define HCI_SUBEVENT_LE_ADVERTISING_REPORT 0x02
|
|
#define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 0x03
|
|
#define HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 0x04
|
|
#define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 0x05
|
|
|
|
#define HCI_LINK_TYPE_SCO 0x00
|
|
#define HCI_LINK_TYPE_ACL 0x01
|
|
#define HCI_LINK_TYPE_ESCO 0x02
|
|
|
|
#define HCI_BB_SCAN_NOSCAN 0x00
|
|
#define HCI_BB_SCAN_INQUIRY 0x01
|
|
#define HCI_BB_SCAN_PAGE 0x02
|
|
|
|
/* CC256x specific eHCILL */
|
|
#define EHCILL_GO_TO_SLEEP_IND 0x30
|
|
#define EHCILL_GO_TO_SLEEP_ACK 0x31
|
|
#define EHCILL_WAKE_UP_IND 0x32
|
|
#define EHCILL_WAKE_UP_ACK 0x33
|
|
|
|
#define BT_PIN "4312"
|
|
|
|
void bt_hci_init(void);
|
|
void bt_hci_cmd(const uint8_t OGF, const uint8_t OCF, const uint8_t data_len, const void *data);
|
|
void bt_hci_set_sniff_mode(const uint16_t acl_handle, const uint16_t max_interval, const uint16_t min_interval, const uint16_t sniff_attempt, const uint16_t sniff_timeout);
|
|
void bt_acl_send(const uint16_t handle, const uint8_t PB, const uint8_t BC, const uint16_t channel, const uint16_t len, const void *dat);
|
|
uint8_t *bt_hci_get_local_bdaddr(void);
|
|
void bt_hci_ehcill_wake(void);
|
|
#endif
|