SWCU191 February 2022 CC1311P3 , CC1311R3 , CC2651P3 , CC2651R3 , CC2651R3SIPA
A connectable directed advertiser operation is started by a CMD_BLE_ADV_DIR command. In the command structure, it shall have a pParams parameter of the type defined in Table 26-98 and a pOutput parameter of the type defined in Table 26-110. The operation starts with transmission and operates as described in Section 26.8.8 with some modifications as described in the following list.
For the directed advertiser, pParams->pWhiteList shall point to a buffer containing only the device address of the device to which to connect. The address type of the peer shall be given in pParams->advConfig.peerAddrType.
The first transmit operation will send an ADV_DIRECT_IND packet. The radio CPU shall construct this packet as follows:
The receiver is started after the ADV_DIRECT_IND packet is transmitted as described in Section 26.8.8, and received packets are processed as described there. Instead of being checked against the whitelist, the received TargetA field and TxAdd bit are checked against pParams->pWhiteList and pParams->advConfig.peerAddrType, respectively.
A directed advertiser operation shall end with one of the statuses listed in Table 26-136. The status field of the command structure after the operation is ended indicates the reason why the operation ended. In all cases, a Command_Done interrupt is raised. In each case, the result of TRUE, FALSE, or ABORT is indicated, which will decide the next action.
Condition | Status Code | Result |
---|---|---|
Performed Action 1 after running receiver | BLE_DONE_OK | TRUE |
Performed Action 3 after running receiver | BLE_DONE_RXERR | TRUE |
Performed Action 4 after running receiver if pParams->advConfig.chSel = 0 or the ChSel bit of the received CONNECT_IND is 1 | BLE_DONE_CONNECT | FALSE |
Performed Action 4 after running receiver if pParams->advConfig.chSel = 1 and the ChSel bit of the received CONNECT_IND is 0 | BLE_DONE_CONNECT_CHSEL0 | FALSE |
Performed Action 5 after running receiver | BLE_DONE_NOSYNC | TRUE |
Observed trigger indicated by pParams->endTrigger, then performed Actions 1, 3, or 5 | BLE_DONE_ENDED | FALSE |
Observed CMD_STOP, then performed Actions 1, 3, or 5 | BLE_DONE_STOPPED | FALSE |
Received CMD_ABORT | BLE_DONE_ABORT | ABORT |
No space in RX buffer to store received packet | BLE_ERROR_RXBUF | FALSE |
Illegal value of channel | BLE_ERROR_PAR | ABORT |
Advertising data length field has illegal value | BLE_ERROR_PAR | ABORT |