WICED HCI控制协议命令
WICED包头格式
分组码
#define HCI_CONTROL_GROUP_DEVICE 0x00
#define HCI_CONTROL_GROUP_LE 0x01
#define HCI_CONTROL_GROUP_GATT 0x02
#define HCI_CONTROL_GROUP_HF 0x03
#define HCI_CONTROL_GROUP_SPP 0x04
#define HCI_CONTROL_GROUP_AUDIO 0x05
#define HCI_CONTROL_GROUP_HIDD 0x06
#define HCI_CONTROL_GROUP_AVRC 0x07
#define HCI_CONTROL_GROUP_TEST 0x08
#define HCI_CONTROL_GROUP_AIO 0x09
#define HCI_CONTROL_GROUP_TIME 0x0a
#define HCI_CONTROL_GROUP_ANCS 0x0b
#define HCI_CONTROL_GROUP_ALERT 0x0c
#define HCI_CONTROL_GROUP_LN 0x0d
#define HCI_CONTROL_GROUP_IAP2 0x0e
#define HCI_CONTROL_GROUP_AG 0x0f
#define HCI_CONTROL_GROUP_MISC 0xFF
#define HCI_CONTROL_GROUP(x) ((((x) >> 8)) & 0xff)
HCI_CONTROL_GROUP_DEVICE
#define HCI_CONTROL_COMMAND_RESET ( ( HCI_CONTROL_GROUP_DEVICE << 8 ) | 0x01 )
#define HCI_CONTROL_COMMAND_TRACE_ENABLE ( ( HCI_CONTROL_GROUP_DEVICE << 8 ) | 0x02 )
#define HCI_CONTROL_COMMAND_SET_LOCAL_BDA ( ( HCI_CONTROL_GROUP_DEVICE << 8 ) | 0x03 )
#define HCI_CONTROL_COMMAND_SET_BAUD_RATE ( ( HCI_CONTROL_GROUP_DEVICE << 8 ) | 0x04 )
#define HCI_CONTROL_COMMAND_PUSH_NVRAM_DATA ( ( HCI_CONTROL_GROUP_DEVICE << 8 ) | 0x05 )
#define HCI_CONTROL_COMMAND_DELETE_NVRAM_DATA ( ( HCI_CONTROL_GROUP_DEVICE << 8 ) | 0x06 )
#define HCI_CONTROL_COMMAND_INQUIRY ( ( HCI_CONTROL_GROUP_DEVICE << 8 ) | 0x07 )
#define HCI_CONTROL_COMMAND_SET_VISIBILITY ( ( HCI_CONTROL_GROUP_DEVICE << 8 ) | 0x08 )
#define HCI_CONTROL_COMMAND_USER_CONFIRMATION ( ( HCI_CONTROL_GROUP_DEVICE << 8 ) | 0x09 )
HCI_CONTROL_GROUP_LE
#define HCI_CONTROL_LE_COMMAND_SCAN ( ( HCI_CONTROL_GROUP_LE << 8 ) | 0x01 )
#define HCI_CONTROL_LE_COMMAND_ADVERTISE ( ( HCI_CONTROL_GROUP_LE << 8 ) | 0x02 )
#define HCI_CONTROL_LE_COMMAND_CONNECT ( ( HCI_CONTROL_GROUP_LE << 8 ) | 0x03 )
#define HCI_CONTROL_LE_COMMAND_CANCEL_CONNECT ( ( HCI_CONTROL_GROUP_LE << 8 ) | 0x04 )
#define HCI_CONTROL_LE_COMMAND_DISCONNECT ( ( HCI_CONTROL_GROUP_LE << 8 ) | 0x05 )
HCI_CONTROL_GROUP_GATT
#define HCI_CONTROL_GATT_COMMAND_DISCOVER_SERVICES ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x01 )
#define HCI_CONTROL_GATT_COMMAND_DISCOVER_CHARACTERISTICS ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x02 )
#define HCI_CONTROL_GATT_COMMAND_DISCOVER_DESCRIPTORS ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x03 )
#define HCI_CONTROL_GATT_COMMAND_READ_REQUEST ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x04 )
#define HCI_CONTROL_GATT_COMMAND_READ_RESPONSE ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x05 )
#define HCI_CONTROL_GATT_COMMAND_WRITE_COMMAND ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x06 )
#define HCI_CONTROL_GATT_COMMAND_WRITE_REQUEST ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x07 )
#define HCI_CONTROL_GATT_COMMAND_WRITE_RESPONSE ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x08 )
#define HCI_CONTROL_GATT_COMMAND_NOTIFY ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x09 )
#define HCI_CONTROL_GATT_COMMAND_INDICATE ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x0a )
#define HCI_CONTROL_GATT_COMMAND_INDICATE_CONFIRM ( ( HCI_CONTROL_GROUP_GATT << 8 ) | 0x0b )
HCI_CONTROL_GROUP_HF
#define HCI_CONTROL_HF_COMMAND_CONNECT ( ( HCI_CONTROL_GROUP_HF << 8 ) | 0x01 )
#define HCI_CONTROL_HF_COMMAND_DISCONNECT ( ( HCI_CONTROL_GROUP_HF << 8 ) | 0x02 )
#define HCI_CONTROL_HF_COMMAND_OPEN_AUDIO ( ( HCI_CONTROL_GROUP_HF << 8 ) | 0x03 )
#define HCI_CONTROL_HF_COMMAND_CLOSE_AUDIO ( ( HCI_CONTROL_GROUP_HF << 8 ) | 0x04 )
#define HCI_CONTROL_HF_AT_COMMAND_BASE ( ( HCI_CONTROL_GROUP_HF << 8 ) | 0x20 )
#define HCI_CONTROL_HF_AT_COMMAND_SPK 0x00
#define HCI_CONTROL_HF_AT_COMMAND_MIC 0x01
#define HCI_CONTROL_HF_AT_COMMAND_A 0x02
#define HCI_CONTROL_HF_AT_COMMAND_BINP 0x03
#define HCI_CONTROL_HF_AT_COMMAND_BVRA 0x04
#define HCI_CONTROL_HF_AT_COMMAND_BLDN 0x05
#define HCI_CONTROL_HF_AT_COMMAND_CHLD 0x06
#define HCI_CONTROL_HF_AT_COMMAND_CHUP 0x07
#define HCI_CONTROL_HF_AT_COMMAND_CIND 0x08
#define HCI_CONTROL_HF_AT_COMMAND_CNUM 0x09
#define HCI_CONTROL_HF_AT_COMMAND_D 0x0A
#define HCI_CONTROL_HF_AT_COMMAND_NREC 0x0B
#define HCI_CONTROL_HF_AT_COMMAND_VTS 0x0C
#define HCI_CONTROL_HF_AT_COMMAND_BTRH 0x0D
#define HCI_CONTROL_HF_AT_COMMAND_COPS 0x0E
#define HCI_CONTROL_HF_AT_COMMAND_CMEE 0x0F
#define HCI_CONTROL_HF_AT_COMMAND_CLCC 0x10
#define HCI_CONTROL_HF_AT_COMMAND_BIA 0x11
#define HCI_CONTROL_HF_AT_COMMAND_BIEV 0x12
#define HCI_CONTROL_HF_AT_COMMAND_UNAT 0x13
#define HCI_CONTROL_HF_AT_COMMAND_MAX 0x13
HCI_CONTROL_GROUP_SPP
#define HCI_CONTROL_SPP_COMMAND_CONNECT ( ( HCI_CONTROL_GROUP_SPP << 8 ) | 0x01 )
#define HCI_CONTROL_SPP_COMMAND_DISCONNECT ( ( HCI_CONTROL_GROUP_SPP << 8 ) | 0x02 )
#define HCI_CONTROL_SPP_COMMAND_DATA ( ( HCI_CONTROL_GROUP_SPP << 8 ) | 0x03 )
HCI_CONTROL_GROUP_AUDIO
#define HCI_CONTROL_AUDIO_COMMAND_CONNECT ( ( HCI_CONTROL_GROUP_AUDIO << 8 ) | 0x01 )
#define HCI_CONTROL_AUDIO_COMMAND_DISCONNECT ( ( HCI_CONTROL_GROUP_AUDIO << 8 ) | 0x02 )
#define HCI_CONTROL_AUDIO_START ( ( HCI_CONTROL_GROUP_AUDIO << 8 ) | 0x03 )
#define HCI_CONTROL_AUDIO_STOP ( ( HCI_CONTROL_GROUP_AUDIO << 8 ) | 0x04 )
#define HCI_CONTROL_AUDIO_PACKET_COUNT ( ( HCI_CONTROL_GROUP_AUDIO << 8 ) | 0x05 )
HCI_CONTROL_GROUP_HIDD
HCI_CONTROL_GROUP_AVRC
#define HCI_CONTROL_AVRC_COMMAND_INITIATE_CONNECTION ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x01 )
#define HCI_CONTROL_AVRC_COMMAND_DISCONNECT ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x02 )
#define HCI_CONTROL_AVRC_COMMAND_PLAY ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x03 )
#define HCI_CONTROL_AVRC_COMMAND_PAUSE ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x04 )
#define HCI_CONTROL_AVRC_COMMAND_FASTFWD ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x05 )
#define HCI_CONTROL_AVRC_COMMAND_REWIND ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x06 )
#define HCI_CONTROL_AVRC_COMMAND_NEXT_TRACK ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x07 )
#define HCI_CONTROL_AVRC_COMMAND_PREV_TRACK ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x08 )
#define HCI_CONTROL_AVRC_COMMAND_TRACK_INFO ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x09 )
#define HCI_CONTROL_AVRC_COMMAND_EQ_ENABLE ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x0A )
#define HCI_CONTROL_AVRC_COMMAND_REPEAT_MODE ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x0B )
#define HCI_CONTROL_AVRC_COMMAND_SHUFFLE_MODE ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x0C )
#define HCI_CONTROL_AVRC_COMMAND_SCAN_ENABLE ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x0D )
#define HCI_CONTROL_AVRC_COMMAND_VOLUME_LEVEL ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x96 )
#define HCI_CONTROL_AVRC_COMMAND_VOLUME_UP ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x97 )
#define HCI_CONTROL_AVRC_COMMAND_VOLUME_DOWN ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x98 )
#define HCI_CONTROL_AVRC_COMMAND_REGISTER_NOTIFICATION ( ( HCI_CONTROL_GROUP_AVRC << 8 ) | 0x99 )
HCI_CONTROL_GROUP_TEST
#define HCI_CONTROL_TEST_COMMAND_LE_RECEIVER ( ( HCI_CONTROL_GROUP_TEST << 8 ) | 0x01 )
#define HCI_CONTROL_TEST_COMMAND_LE_TRASMITTER ( ( HCI_CONTROL_GROUP_TEST << 8 ) | 0x02 )
#define HCI_CONTROL_TEST_COMMAND_LE_TEST_END ( ( HCI_CONTROL_GROUP_TEST << 8 ) | 0x03 )
#define HCI_CONTROL_TEST_COMMAND_CONTINUOUS_TRANSMIT ( ( HCI_CONTROL_GROUP_TEST << 8 ) | 0x04 )
#define HCI_CONTROL_TEST_COMMAND_RECEIVE_ONLY ( ( HCI_CONTROL_GROUP_TEST << 8 ) | 0x05 )
#define HCI_CONTROL_TEST_COMMAND_DISABLE_POWER_CONTROL ( ( HCI_CONTROL_GROUP_TEST << 8 ) | 0x06 )
#define HCI_CONTROL_TEST_COMMAND_SET_TX_POWER ( ( HCI_CONTROL_GROUP_TEST << 8 ) | 0x07 )
#define HCI_CONTROL_TEST_COMMAND_INCR_DECR_PEER_POWER ( ( HCI_CONTROL_GROUP_TEST << 8 ) | 0x08 )
HCI_CONTROL_GROUP_AIO
#define HCI_CONTROL_AIO_COMMAND_DIGITAL_IN ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x01 )
#define HCI_CONTROL_AIO_COMMAND_ANALOG_IN ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x02 )
#define HCI_CONTROL_AIO_COMMAND_CONNECT ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x03 )
#define HCI_CONTROL_AIO_COMMAND_READ ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x04 )
#define HCI_CONTROL_AIO_COMMAND_WRITE ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x05 )
#define HCI_CONTROL_AIO_COMMAND_WRITE_NO_RSP ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x06 )
#define HCI_CONTROL_AIO_COMMAND_SET_CLIENT_CONFIG ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x07 )
#define HCI_CONTROL_AIO_COMMAND_SET_VALUE_TRIGGER ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x08 )
#define HCI_CONTROL_AIO_COMMAND_SET_TIME_TRIGGER ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x09 )
#define HCI_CONTROL_AIO_COMMAND_SET_USER_DESCRIPTION ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x0a )
#define HCI_CONTROL_AIO_COMMAND_DISCONNECT ( ( HCI_CONTROL_GROUP_AIO << 8 ) | 0x0b )
HCI_CONTROL_GROUP_ANCS
#define HCI_CONTROL_ANCS_COMMAND_ACTION ( ( HCI_CONTROL_GROUP_ANCS << 8 ) | 0x01 )
HCI_CONTROL_GROUP_ALERT
#define HCI_CONTROL_ALERT_EVENT_NOTIFICATION ( ( HCI_CONTROL_GROUP_ALERT << 8 ) | 0x01 )
``
`
### HCI_CONTROL_GROUP_LN
```c
#define HCI_CONTROL_LN_EVENT_GET_LOCATION_SPEED ( ( HCI_CONTROL_GROUP_LN << 8 ) | 0x01 )
#define HCI_CONTROL_LN_EVENT_LN_CONTROL ( ( HCI_CONTROL_GROUP_LN << 8 ) | 0x02 )
#define HCI_CONTROL_LN_EVENT_GET_NAVIGATION ( ( HCI_CONTROL_GROUP_LN << 8 ) | 0x03 )
HCI_CONTROL_GROUP_IAP2
#define HCI_CONTROL_IAP2_EVENT_CONNECTED ( ( HCI_CONTROL_GROUP_IAP2 << 8 ) | 0x01 )
#define HCI_CONTROL_IAP2_EVENT_SERVICE_NOT_FOUND ( ( HCI_CONTROL_GROUP_IAP2 << 8 ) | 0x02 )
#define HCI_CONTROL_IAP2_EVENT_CONNECTION_FAILED ( ( HCI_CONTROL_GROUP_IAP2 << 8 ) | 0x03 )
#define HCI_CONTROL_IAP2_EVENT_DISCONNECTED ( ( HCI_CONTROL_GROUP_IAP2 << 8 ) | 0x04 )
#define HCI_CONTROL_IAP2_EVENT_TX_COMPLETE ( ( HCI_CONTROL_GROUP_IAP2 << 8 ) | 0x05 )
#define HCI_CONTROL_IAP2_EVENT_RX_DATA ( ( HCI_CONTROL_GROUP_IAP2 << 8 ) | 0x06 )
HCI_CONTROL_GROUP_AG
#define HCI_CONTROL_AG_COMMAND_CONNECT ( ( HCI_CONTROL_GROUP_AG << 8 ) | 0x01 )
#define HCI_CONTROL_AG_COMMAND_DISCONNECT ( ( HCI_CONTROL_GROUP_AG << 8 ) | 0x02 )
#define HCI_CONTROL_AG_COMMAND_OPEN_AUDIO ( ( HCI_CONTROL_GROUP_AG << 8 ) | 0x03 )
#define HCI_CONTROL_AG_COMMAND_CLOSE_AUDIO ( ( HCI_CONTROL_GROUP_AG << 8 ) | 0x04 )
HCI_CONTROL_GROUP_MISC
#define HCI_CONTROL_MISC_COMMAND_PING ( ( HCI_CONTROL_GROUP_MISC << 8 ) | 0x01 )
在这里迷茫了,分不清出分组的功能,和这些分组之间的关系,以及当前自己要开发的蓝牙系统中应该使用那些,那些又用不到
转到下一篇,看下别人的介绍,蓝牙的GATT协议