读取BLE蓝牙特征命令

LE Read Local Supported Features Command

  代码路径:

   system\bt\stack\include\hcidefs.h

/*
**   LE features encoding - page 0 (the only page for now)
*/
/* LE Encryption */
#define HCI_LE_FEATURE_LE_ENCRYPTION_MASK       0x01
#define HCI_LE_FEATURE_LE_ENCRYPTION_OFF        0
#define HCI_LE_ENCRYPTION_SUPPORTED(x) ((x)[HCI_LE_FEATURE_LE_ENCRYPTION_OFF] & HCI_LE_FEATURE_LE_ENCRYPTION_MASK)

/* Connection Parameters Request Procedure */
#define HCI_LE_FEATURE_CONN_PARAM_REQ_MASK       0x02
#define HCI_LE_FEATURE_CONN_PARAM_REQ_OFF        0
#define HCI_LE_CONN_PARAM_REQ_SUPPORTED(x) ((x)[HCI_LE_FEATURE_CONN_PARAM_REQ_OFF] & HCI_LE_FEATURE_CONN_PARAM_REQ_MASK)

/* Extended Reject Indication */
#define HCI_LE_FEATURE_EXT_REJ_IND_MASK       0x04
#define HCI_LE_FEATURE_EXT_REJ_IND_OFF        0
#define HCI_LE_EXT_REJ_IND_SUPPORTED(x) ((x)[HCI_LE_FEATURE_EXT_REJ_IND_OFF] & HCI_LE_FEATURE_EXT_REJ_IND_MASK)

/* Slave-initiated Features Exchange */
#define HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_MASK       0x08
#define HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_OFF        0
#define HCI_LE_SLAVE_INIT_FEAT_EXC_SUPPORTED(x) ((x)[HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_OFF] & HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_MASK)

/* Enhanced privacy Feature: bit 6 */
#define HCI_LE_FEATURE_ENHANCED_PRIVACY_MASK       0x40
#define HCI_LE_FEATURE_ENHANCED_PRIVACY_OFF        0
#define HCI_LE_ENHANCED_PRIVACY_SUPPORTED(x) ((x)[HCI_LE_FEATURE_ENHANCED_PRIVACY_OFF] & HCI_LE_FEATURE_ENHANCED_PRIVACY_MASK)

/* Extended scanner filter policy : 7 */
#define HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_MASK       0x80
#define HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_OFF        0
#define HCI_LE_EXT_SCAN_FILTER_POLICY_SUPPORTED(x) ((x)[HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_OFF] & HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_MASK)

/* Slave-initiated Features Exchange */
#define HCI_LE_FEATURE_DATA_LEN_EXT_MASK       0x20
#define HCI_LE_FEATURE_DATA_LEN_EXT_OFF        0
#define HCI_LE_DATA_LEN_EXT_SUPPORTED(x) ((x)[HCI_LE_FEATURE_DATA_LEN_EXT_OFF] & HCI_LE_FEATURE_DATA_LEN_EXT_MASK)

  system\bt\device\src\controller.c

// Represents a page of device feature enabled/disabled bits returned
// by the local controller. See the bluetooth spec for bit indexes.
typedef struct {
  uint8_t as_array[8];
} bt_device_features_t;


static bt_device_features_t features_ble;

static future_t *start_up(void) {

    .....

    // Request the ble supported features next
    response = AWAIT_COMMAND(packet_factory->make_ble_read_local_supported_features());
    packet_parser->parse_ble_read_local_supported_features_response(
      response,
      &features_ble
    );

    .....

}

对蓝牙协议 (Version 4.2 [Vol 2, Part E])

猜你喜欢

转载自blog.csdn.net/zmk0810612124/article/details/82256349