Microchip® Advanced Software Framework

hci_cmd.h File Reference
#include "bluetooth.h"
#include "btstack_defines.h"
#include <stdint.h>
#include <stdarg.h>

Data Structures

struct  hci_cmd_t
 compact HCI Command packet description More...
 

Enumerations

enum  HCI_POWER_MODE {
  HCI_POWER_OFF = 0,
  HCI_POWER_ON,
  HCI_POWER_SLEEP
}
 Hardware state of Bluetooth controller. More...
 
enum  HCI_STATE {
  HCI_STATE_OFF = 0,
  HCI_STATE_INITIALIZING,
  HCI_STATE_WORKING,
  HCI_STATE_HALTING,
  HCI_STATE_SLEEPING,
  HCI_STATE_FALLING_ASLEEP
}
 State of BTstack. More...
 

Functions

uint16_t hci_cmd_create_from_template (uint8_t *hci_cmd_buffer, const hci_cmd_t *cmd, va_list argptr)
 construct HCI Command based on template More...
 

Variables

const hci_cmd_t hci_accept_connection_request
 
const hci_cmd_t hci_accept_synchronous_connection
 
const hci_cmd_t hci_authentication_requested
 
const hci_cmd_t hci_bcm_write_sco_pcm_int
 Configure SCO Routing (BCM) More...
 
const hci_cmd_t hci_change_connection_link_key
 
const hci_cmd_t hci_change_connection_packet_type
 
const hci_cmd_t hci_create_connection
 
const hci_cmd_t hci_create_connection_cancel
 
const hci_cmd_t hci_delete_stored_link_key
 
const hci_cmd_t hci_disconnect
 
const hci_cmd_t hci_enable_device_under_test_mode
 
const hci_cmd_t hci_enhanced_accept_synchronous_connection
 
const hci_cmd_t hci_enhanced_setup_synchronous_connection
 
const hci_cmd_t hci_flush
 
const hci_cmd_t hci_host_buffer_size
 
const hci_cmd_t hci_inquiry
 Link Control Commands. More...
 
const hci_cmd_t hci_inquiry_cancel
 
const hci_cmd_t hci_io_capability_request_negative_reply
 
const hci_cmd_t hci_io_capability_request_reply
 
const hci_cmd_t hci_le_add_device_to_white_list
 
const hci_cmd_t hci_le_clear_white_list
 
const hci_cmd_t hci_le_connection_update
 
const hci_cmd_t hci_le_create_connection
 
const hci_cmd_t hci_le_create_connection_cancel
 
const hci_cmd_t hci_le_encrypt
 
const hci_cmd_t hci_le_generate_dhkey
 
const hci_cmd_t hci_le_long_term_key_negative_reply
 
const hci_cmd_t hci_le_long_term_key_request_reply
 
const hci_cmd_t hci_le_rand
 
const hci_cmd_t hci_le_read_advertising_channel_tx_power
 
const hci_cmd_t hci_le_read_buffer_size
 
const hci_cmd_t hci_le_read_channel_map
 
const hci_cmd_t hci_le_read_local_p256_public_key
 
const hci_cmd_t hci_le_read_maximum_data_length
 
const hci_cmd_t hci_le_read_remote_used_features
 
const hci_cmd_t hci_le_read_suggested_default_data_length
 
const hci_cmd_t hci_le_read_supported_features
 
const hci_cmd_t hci_le_read_supported_states
 
const hci_cmd_t hci_le_read_white_list_size
 
const hci_cmd_t hci_le_receiver_test
 
const hci_cmd_t hci_le_remove_device_from_white_list
 
const hci_cmd_t hci_le_set_advertise_enable
 
const hci_cmd_t hci_le_set_advertising_data
 
const hci_cmd_t hci_le_set_advertising_parameters
 
const hci_cmd_t hci_le_set_data_length
 
const hci_cmd_t hci_le_set_event_mask
 
const hci_cmd_t hci_le_set_host_channel_classification
 
const hci_cmd_t hci_le_set_random_address
 
const hci_cmd_t hci_le_set_scan_enable
 
const hci_cmd_t hci_le_set_scan_parameters
 
const hci_cmd_t hci_le_set_scan_response_data
 
const hci_cmd_t hci_le_start_encryption
 
const hci_cmd_t hci_le_test_end
 
const hci_cmd_t hci_le_transmitter_test
 
const hci_cmd_t hci_le_write_suggested_default_data_length
 
const hci_cmd_t hci_link_key_request_negative_reply
 
const hci_cmd_t hci_link_key_request_reply
 
const hci_cmd_t hci_pin_code_request_negative_reply
 
const hci_cmd_t hci_pin_code_request_reply
 
const hci_cmd_t hci_qos_setup
 
const hci_cmd_t hci_read_bd_addr
 
const hci_cmd_t hci_read_buffer_size
 
const hci_cmd_t hci_read_le_host_supported
 
const hci_cmd_t hci_read_link_policy_settings
 
const hci_cmd_t hci_read_link_supervision_timeout
 
const hci_cmd_t hci_read_local_extended_ob_data
 
const hci_cmd_t hci_read_local_extended_oob_data
 
const hci_cmd_t hci_read_local_name
 
const hci_cmd_t hci_read_local_oob_data
 
const hci_cmd_t hci_read_local_supported_commands
 
const hci_cmd_t hci_read_local_supported_features
 
const hci_cmd_t hci_read_local_version_information
 Informational Parameters. More...
 
const hci_cmd_t hci_read_loopback_mode
 Testing Commands. More...
 
const hci_cmd_t hci_read_num_broadcast_retransmissions
 
const hci_cmd_t hci_read_remote_supported_features_command
 
const hci_cmd_t hci_read_rssi
 Status Paramters. More...
 
const hci_cmd_t hci_reject_connection_request
 
const hci_cmd_t hci_remote_name_request
 
const hci_cmd_t hci_remote_name_request_cancel
 
const hci_cmd_t hci_remote_oob_data_request_negative_reply
 
const hci_cmd_t hci_remote_oob_data_request_reply
 
const hci_cmd_t hci_reset
 
const hci_cmd_t hci_role_discovery
 
const hci_cmd_t hci_set_connection_encryption
 
const hci_cmd_t hci_set_controller_to_host_flow_control
 
const hci_cmd_t hci_set_event_mask
 Controller & Baseband Commands. More...
 
const hci_cmd_t hci_setup_synchronous_connection
 
const hci_cmd_t hci_sniff_mode
 Link Policy Commands. More...
 
const hci_cmd_t hci_switch_role_command
 
const hci_cmd_t hci_user_confirmation_request_negative_reply
 
const hci_cmd_t hci_user_confirmation_request_reply
 
const hci_cmd_t hci_user_passkey_request_negative_reply
 
const hci_cmd_t hci_user_passkey_request_reply
 
const hci_cmd_t hci_write_authentication_enable
 
const hci_cmd_t hci_write_class_of_device
 
const hci_cmd_t hci_write_default_erroneous_data_reporting
 
const hci_cmd_t hci_write_extended_inquiry_response
 
const hci_cmd_t hci_write_inquiry_mode
 
const hci_cmd_t hci_write_le_host_supported
 
const hci_cmd_t hci_write_link_policy_settings
 
const hci_cmd_t hci_write_link_supervision_timeout
 
const hci_cmd_t hci_write_local_name
 
const hci_cmd_t hci_write_loopback_mode
 
const hci_cmd_t hci_write_num_broadcast_retransmissions
 
const hci_cmd_t hci_write_page_timeout
 
const hci_cmd_t hci_write_scan_enable
 
const hci_cmd_t hci_write_secure_connections_test_mode
 
const hci_cmd_t hci_write_simple_pairing_debug_mode
 
const hci_cmd_t hci_write_simple_pairing_mode
 
const hci_cmd_t hci_write_synchronous_flow_control_enable
 

Hardware state of Bluetooth controller.

Enumerator
HCI_POWER_OFF 
HCI_POWER_ON 
HCI_POWER_SLEEP 
enum HCI_STATE

State of BTstack.

Enumerator
HCI_STATE_OFF 
HCI_STATE_INITIALIZING 
HCI_STATE_WORKING 
HCI_STATE_HALTING 
HCI_STATE_SLEEPING 
HCI_STATE_FALLING_ASLEEP 

uint16_t hci_cmd_create_from_template ( uint8_t *  hci_cmd_buffer,
const hci_cmd_t cmd,
va_list  argptr 
)

construct HCI Command based on template

Format: 1,2,3,4: one to four byte value H: HCI connection handle B: Bluetooth Baseband Address (BD_ADDR) D: 8 byte data block E: Extended Inquiry Result N: Name up to 248 chars, \0 terminated P: 16 byte Pairing code A: 31 bytes advertising data S: Service Record (Data Element Sequence)

Format: 1,2,3,4: one to four byte value H: HCI connection handle B: Bluetooth Baseband Address (BD_ADDR) D: 8 byte data block E: Extended Inquiry Result N: Name up to 248 chars, \0 terminated P: 16 byte data block. Pairing code, Simple Pairing Hash and Randomizer A: 31 bytes advertising data S: Service Record (Data Element Sequence) Q: 32 byte data block, e.g. for X and Y coordinates of P-256 public key

References de_get_len(), hci_cmd_t::format, hci_cmd_t::opcode, and reverse_bytes().

Referenced by hci_send_cmd_va_arg().

const hci_cmd_t hci_accept_connection_request
Parameters
bd_addr
role(become master, stay slave)

Referenced by hci_run().

const hci_cmd_t hci_accept_synchronous_connection
Parameters
bd_addr
transmit_bandwidth
receive_bandwidth
max_latency
voice_settings
retransmission_effort
packet_type

Referenced by hci_send_cmd_packet().

const hci_cmd_t hci_authentication_requested
Parameters
handle

Referenced by hci_run().

const hci_cmd_t hci_bcm_write_sco_pcm_int

Configure SCO Routing (BCM)

Parameters
sco_routingis 0 for PCM, 1 for Transport, 2 for Codec and 3 for I2S
pcm_interface_rateis 0 for 128KBps, 1 for 256 KBps, 2 for 512KBps, 3 for 1024KBps, and 4 for 2048Kbps
frame_typeis 0 for short and 1 for long
sync_modeis 0 for slave and 1 for master
clock_modeis 0 for slabe and 1 for master

Referenced by hci_initializing_run().

const hci_cmd_t hci_change_connection_link_key
Parameters
handle
const hci_cmd_t hci_change_connection_packet_type
Parameters
handle
packet_type
const hci_cmd_t hci_create_connection
Parameters
bd_addr
packet_type
page_scan_repetition_mode
reserved
clock_offset
allow_role_switch

Referenced by hci_run(), hci_send_cmd_packet(), and l2cap_run().

const hci_cmd_t hci_create_connection_cancel
Parameters
bd_addr

Referenced by l2cap_hci_event_handler().

const hci_cmd_t hci_delete_stored_link_key
Parameters
bd_addr
delete_all_flags

Referenced by hci_send_cmd_packet().

const hci_cmd_t hci_disconnect
Parameters
handle
reason(0x05, 0x13-0x15, 0x1a, 0x29, see Errors Codes in BT Spec Part D)

Referenced by hci_run(), and l2cap_hci_event_handler().

const hci_cmd_t hci_enable_device_under_test_mode
const hci_cmd_t hci_enhanced_accept_synchronous_connection
Parameters
bd_addr
transmit_bandwidth
receive_bandwidth
transmit_coding_format_type
transmit_coding_format_company
transmit_coding_format_codec
receive_coding_format_type
receive_coding_format_company
receive_coding_format_codec
transmit_coding_frame_size
receive_coding_frame_size
input_bandwidth
output_bandwidth
input_coding_format_type
input_coding_format_company
input_coding_format_codec
output_coding_format_type
output_coding_format_company
output_coding_format_codec
input_coded_data_size
outupt_coded_data_size
input_pcm_data_format
output_pcm_data_format
input_pcm_sample_payload_msb_position
output_pcm_sample_payload_msb_position
input_data_path
output_data_path
input_transport_unit_size
output_transport_unit_size
max_latency
packet_type
retransmission_effort
const hci_cmd_t hci_enhanced_setup_synchronous_connection
Parameters
handle
transmit_bandwidth
receive_bandwidth
transmit_coding_format_type
transmit_coding_format_company
transmit_coding_format_codec
receive_coding_format_type
receive_coding_format_company
receive_coding_format_codec
transmit_coding_frame_size
receive_coding_frame_size
input_bandwidth
output_bandwidth
input_coding_format_type
input_coding_format_company
input_coding_format_codec
output_coding_format_type
output_coding_format_company
output_coding_format_codec
input_coded_data_size
outupt_coded_data_size
input_pcm_data_format
output_pcm_data_format
input_pcm_sample_payload_msb_position
output_pcm_sample_payload_msb_position
input_data_path
output_data_path
input_transport_unit_size
output_transport_unit_size
max_latency
packet_type
retransmission_effort
const hci_cmd_t hci_flush
Parameters
handle
const hci_cmd_t hci_host_buffer_size

Referenced by hci_initializing_run().

const hci_cmd_t hci_inquiry

Link Control Commands.

Parameters
lap
inquiry_length
num_responses

Referenced by hci_run().

const hci_cmd_t hci_inquiry_cancel

Referenced by event_handler(), and hci_run().

const hci_cmd_t hci_io_capability_request_negative_reply
Parameters
bd_addr
reason(Part D, Error codes)

Referenced by hci_run().

const hci_cmd_t hci_io_capability_request_reply
Parameters
bd_addr
IO_capability
OOB_data_present
authentication_requirements

Referenced by hci_run().

const hci_cmd_t hci_le_add_device_to_white_list

Referenced by hci_run().

const hci_cmd_t hci_le_clear_white_list
const hci_cmd_t hci_le_connection_update

Referenced by hci_run().

const hci_cmd_t hci_le_create_connection

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_le_create_connection_cancel

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_le_encrypt
const hci_cmd_t hci_le_generate_dhkey

Referenced by sm_run().

const hci_cmd_t hci_le_long_term_key_negative_reply

Referenced by sm_run().

const hci_cmd_t hci_le_long_term_key_request_reply

Referenced by sm_run().

const hci_cmd_t hci_le_rand
const hci_cmd_t hci_le_read_advertising_channel_tx_power
const hci_cmd_t hci_le_read_buffer_size
const hci_cmd_t hci_le_read_channel_map
const hci_cmd_t hci_le_read_local_p256_public_key

Referenced by sm_run().

const hci_cmd_t hci_le_read_maximum_data_length
const hci_cmd_t hci_le_read_remote_used_features
const hci_cmd_t hci_le_read_suggested_default_data_length
const hci_cmd_t hci_le_read_supported_features
const hci_cmd_t hci_le_read_supported_states
const hci_cmd_t hci_le_read_white_list_size
const hci_cmd_t hci_le_receiver_test
const hci_cmd_t hci_le_remove_device_from_white_list

Referenced by hci_run().

const hci_cmd_t hci_le_set_advertise_enable

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_le_set_advertising_data

Referenced by hci_run().

const hci_cmd_t hci_le_set_advertising_parameters

Referenced by hci_run().

const hci_cmd_t hci_le_set_data_length
const hci_cmd_t hci_le_set_event_mask

Referenced by hci_initializing_run().

const hci_cmd_t hci_le_set_host_channel_classification
const hci_cmd_t hci_le_set_random_address

Referenced by hci_send_cmd_packet(), and sm_run().

const hci_cmd_t hci_le_set_scan_enable

Referenced by hci_run().

const hci_cmd_t hci_le_set_scan_parameters

Referenced by hci_initializing_run(), and hci_run().

const hci_cmd_t hci_le_set_scan_response_data

Referenced by hci_run().

const hci_cmd_t hci_le_start_encryption

Referenced by sm_run().

const hci_cmd_t hci_le_test_end
const hci_cmd_t hci_le_transmitter_test
const hci_cmd_t hci_le_write_suggested_default_data_length

Referenced by hci_initializing_run().

const hci_cmd_t hci_link_key_request_negative_reply
Parameters
bd_addr

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_link_key_request_reply
Parameters
bd_addr
link_key

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_pin_code_request_negative_reply
Parameters
bd_addr

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_pin_code_request_reply
Parameters
bd_addr
pin_length
pin(c-string)

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_qos_setup
Parameters
handle
flags
service_type
token_rate(bytes/s)
peak_bandwith(bytes/s)
latency(us)
delay_variation(us)
const hci_cmd_t hci_read_bd_addr
const hci_cmd_t hci_read_buffer_size
const hci_cmd_t hci_read_le_host_supported
const hci_cmd_t hci_read_link_policy_settings
Parameters
handle
const hci_cmd_t hci_read_link_supervision_timeout
Parameters
handle
const hci_cmd_t hci_read_local_extended_ob_data
const hci_cmd_t hci_read_local_extended_oob_data
const hci_cmd_t hci_read_local_name
const hci_cmd_t hci_read_local_oob_data
const hci_cmd_t hci_read_local_supported_features
const hci_cmd_t hci_read_local_version_information

Informational Parameters.

Referenced by event_handler(), and hci_initializing_run().

const hci_cmd_t hci_read_loopback_mode

Testing Commands.

const hci_cmd_t hci_read_num_broadcast_retransmissions
const hci_cmd_t hci_read_remote_supported_features_command
Parameters
handle

Referenced by hci_run().

const hci_cmd_t hci_read_rssi

Status Paramters.

Parameters
handle
const hci_cmd_t hci_reject_connection_request
Parameters
bd_addr
reason(e.g. CONNECTION REJECTED DUE TO LIMITED RESOURCES (0x0d))

Referenced by hci_run().

const hci_cmd_t hci_remote_name_request
Parameters
bd_addr
page_scan_repetition_mode
reserved
clock_offset

Referenced by hci_run().

const hci_cmd_t hci_remote_name_request_cancel
Parameters
bd_addr
const hci_cmd_t hci_remote_oob_data_request_negative_reply
Parameters
bd_addr
const hci_cmd_t hci_remote_oob_data_request_reply
Parameters
bd_addr
cSimple Pairing Hash C
rSimple Pairing Randomizer R
const hci_cmd_t hci_role_discovery
Parameters
handle
const hci_cmd_t hci_set_connection_encryption
Parameters
handle
encryption_enable

Referenced by hci_run().

const hci_cmd_t hci_set_controller_to_host_flow_control

Referenced by hci_initializing_run().

const hci_cmd_t hci_set_event_mask

Controller & Baseband Commands.

Parameters
event_mask_lover_octets
event_mask_higher_octets

Referenced by hci_initializing_run().

const hci_cmd_t hci_setup_synchronous_connection
Parameters
handle
transmit_bandwidth8000(64kbps)
receive_bandwidth8000(64kbps)
max_latency>= 7ms for eSCO, 0xFFFF do not care
voice_settingse.g. CVSD, Input Coding: Linear, Input Data Format: 2’s complement, data 16bit: 00011000000 == 0x60
retransmission_efforte.g. 0xFF do not care
packet_typeat least EV3 for eSCO

Referenced by hci_send_cmd_packet().

const hci_cmd_t hci_sniff_mode

Link Policy Commands.

Parameters
handle
sniff_max_interval
sniff_min_interval
sniff_attempt
sniff_timeout
const hci_cmd_t hci_switch_role_command
Parameters
bd_addr
role(0=master,1=slave)
const hci_cmd_t hci_user_confirmation_request_negative_reply
Parameters
bd_addr

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_user_confirmation_request_reply
Parameters
bd_addr

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_user_passkey_request_negative_reply
Parameters
bd_addr

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_user_passkey_request_reply
Parameters
bd_addr
numeric_value

Referenced by hci_run(), and hci_send_cmd_packet().

const hci_cmd_t hci_write_authentication_enable
Parameters
authentication_enable
const hci_cmd_t hci_write_class_of_device
Parameters
class_of_device

Referenced by hci_initializing_run().

const hci_cmd_t hci_write_default_erroneous_data_reporting
Parameters
mode(0 = off, 1 = on)

Referenced by hci_initializing_run().

const hci_cmd_t hci_write_extended_inquiry_response
Parameters
fec_required
exstended_inquiry_response

Referenced by hci_initializing_run().

const hci_cmd_t hci_write_inquiry_mode
Parameters
inquiry_mode(0x00 = standard, 0x01 = with RSSI, 0x02 = extended)

Referenced by hci_initializing_run().

const hci_cmd_t hci_write_le_host_supported
Parameters
le_supported_host
simultaneous_le_host

Referenced by hci_initializing_run().

const hci_cmd_t hci_write_link_policy_settings
Parameters
handle
settings
const hci_cmd_t hci_write_link_supervision_timeout
Parameters
handle
timeout(0x0001 - 0xFFFF Time -> Range: 0.625ms - 40.9 sec)
const hci_cmd_t hci_write_local_name

Referenced by hci_initializing_run().

const hci_cmd_t hci_write_loopback_mode
Parameters
loopback_mode

Referenced by hci_send_cmd_packet().

const hci_cmd_t hci_write_num_broadcast_retransmissions
Parameters
num_broadcast_retransmissions(e.g. 0 for a single broadcast)
const hci_cmd_t hci_write_page_timeout
Parameters
page_timeout(* 0.625 ms)

Referenced by hci_initializing_run().

const hci_cmd_t hci_write_scan_enable
Parameters
scan_enable(no, inq, page, inq+page)

Referenced by event_handler(), hci_initializing_run(), and hci_run().

const hci_cmd_t hci_write_secure_connections_test_mode
Parameters
handle
dm1_acl_u_mode
esco_loopback_mode
const hci_cmd_t hci_write_simple_pairing_debug_mode
Parameters
simple_pairing_debug_mode
const hci_cmd_t hci_write_simple_pairing_mode
Parameters
mode(0 = off, 1 = on)

Referenced by hci_initializing_run().

const hci_cmd_t hci_write_synchronous_flow_control_enable
Parameters
synchronous_flow_control_enable- if yes, num completed packet everts are sent for SCO packets

Referenced by event_handler(), and hci_initializing_run().