Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
Hi TI,
I am currently developing a BLE 6 solution using the Android phone system's Bluetooth combined with a TI CC2745 chip. This solution includes implementing a feature where, during the first connection, the user is prompted to confirm whether they allow this device to automatically connect to the TI CC2745 next time. This involves BLE device pairing, bonding, and whitelist operations.
Specifically: When the phone's Bluetooth connects to the TI CC2745 for the first time, upon receiving the connection notification, the TI CC2745 sends a message via CAN to prompt the user to confirm whether bonding with this device and adding it to the whitelist is permitted.
If the TI CC2745 receives the user's confirmation, it bonds the device and adds it to the whitelist. The next time, the phone's Bluetooth can then automatically connect to the TI CC2745.
If the user's response is negative, device bonding and whitelisting are not allowed.
Additionally, if the number of bonded devices exceeds the maximum allowed limit, existing bonded devices need to be deleted and removed from the whitelist before the new device can be added.
I referenced the following link CC2745P10-Q1: Add custom functionality to the bonding process - Bluetooth forum - Bluetooth®︎ - TI E2E support forums, but the approach doesn't seem correct: When initiating the first connection from the phone, a popup appears on the phone requesting the user to input a PIN. On the TI CC2745 side (with the bonding flag unchecked in syscfg), we get the BLEAPPUTIL_LINK_ESTABLISHED_EVENT and notify the user to wait for confirmation. However, by the time the user confirms, the pairing process seems already completed(the phone is already bonded and connected). Subsequent attempts to call GAPBondMgr_Pair result in the device not being bonded (the phone cannot reconnect automatically next time).
Please advise on what the TI CC2745 needs to do to achieve the desired functionality.