forked from espressif/esp-idf
feat(nimble): Add support for PCL Set RSSI VSC and example code for its usage
This commit adds support for sending Vendor Specific HCI commands and handling Vendor Specific HCI Events in the Nimble stack. It also includes the necessary configuration options and APIs to handle these commands and events. The following changes were made: - Added configuration option to enable support for VSC and VSE - Added API to send Vendor Specific HCI commands - Added example code for using the Set RSSI VSC for Power Control This commit also includes some minor code improvements and bug fixes
This commit is contained in:
Submodule components/bt/host/nimble/nimble updated: 46268fd9c0...abc80c36ca
@@ -1136,6 +1136,11 @@ struct ble_hci_vs_rd_static_addr_rp {
|
||||
uint8_t addr[6];
|
||||
} __attribute__((packed));
|
||||
|
||||
|
||||
#if SOC_BLE_POWER_CONTROL_SUPPORTED && MYNEWT_VAL(BLE_HCI_VS)
|
||||
#define BLE_HCI_OCF_VS_PCL_SET_RSSI (MYNEWT_VAL(BLE_HCI_VS_OCF_OFFSET) + (0x0111))
|
||||
#endif
|
||||
|
||||
/* Command Specific Definitions */
|
||||
/* --- Set controller to host flow control (OGF 0x03, OCF 0x0031) --- */
|
||||
#define BLE_HCI_CTLR_TO_HOST_FC_OFF (0)
|
||||
|
@@ -671,6 +671,24 @@ blecent_gap_event(struct ble_gap_event *event, void *arg)
|
||||
blecent_power_control(event->connect.conn_handle);
|
||||
#endif
|
||||
|
||||
#if MYNEWT_VAL(BLE_HCI_VS)
|
||||
#if MYNEWT_VAL(BLE_POWER_CONTROL)
|
||||
int8_t vs_cmd[10]= {0, 0,-70,-60,-68,-58,-75,-65,-80,-70};
|
||||
|
||||
vs_cmd[0] = ((uint8_t)(event->connect.conn_handle & 0xFF));
|
||||
vs_cmd[1] = ((uint8_t)(event->connect.conn_handle >> 8) & 0xFF);
|
||||
|
||||
rc = ble_hs_hci_send_vs_cmd(BLE_HCI_OCF_VS_PCL_SET_RSSI ,
|
||||
&vs_cmd, sizeof(vs_cmd), NULL, 0);
|
||||
if (rc != 0) {
|
||||
MODLOG_DFLT(INFO, "Failed to send VSC %x \n", rc);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
MODLOG_DFLT(INFO, "Successfully issued VSC , rc = %d \n", rc);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if CONFIG_EXAMPLE_ENCRYPTION
|
||||
/** Initiate security - It will perform
|
||||
* Pairing (Exchange keys)
|
||||
|
Reference in New Issue
Block a user