Initial public release.
This commit is contained in:
parent
7b169e8116
commit
dac4af8d25
255 changed files with 68595 additions and 2 deletions
252
2020TPCApp1.cydsn/COMM/BLE/COMM_BLE_Bond.c
Normal file
252
2020TPCApp1.cydsn/COMM/BLE/COMM_BLE_Bond.c
Normal file
|
@ -0,0 +1,252 @@
|
|||
/* Include Files */
|
||||
#include "KTag.h"
|
||||
|
||||
/* Local Definitions and Constants */
|
||||
|
||||
/* Public Variables */
|
||||
|
||||
/* Private Variables */
|
||||
|
||||
static bool removeBondListFlag = false;
|
||||
|
||||
/* Private Function Prototypes */
|
||||
|
||||
/* Public Functions */
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name: App_DisplayBondList()
|
||||
********************************************************************************
|
||||
*
|
||||
* Summary:
|
||||
* This function displays the bond list.
|
||||
*
|
||||
*******************************************************************************/
|
||||
void App_DisplayBondList(void)
|
||||
{
|
||||
#ifdef TRACE_BLE
|
||||
cy_en_ble_api_result_t apiResult;
|
||||
cy_stc_ble_gap_peer_addr_info_t bondedDeviceInfo[CY_BLE_MAX_BONDED_DEVICES];
|
||||
cy_stc_ble_gap_bonded_device_list_info_t bondedDeviceList =
|
||||
{
|
||||
.bdHandleAddrList = bondedDeviceInfo
|
||||
};
|
||||
uint8_t deviceCount;
|
||||
|
||||
/* Find out whether the device has bonded information stored already or not */
|
||||
apiResult = Cy_BLE_GAP_GetBondList(&bondedDeviceList);
|
||||
if (apiResult != CY_BLE_SUCCESS)
|
||||
{
|
||||
COMM_Console_Print_String("[BLE] Cy_BLE_GAP_GetBondList API Error: 0x");
|
||||
COMM_Console_Print_UInt32AsHex(apiResult);
|
||||
COMM_Console_Print_String("\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
deviceCount = bondedDeviceList.noOfDevices;
|
||||
|
||||
if(deviceCount != 0u)
|
||||
{
|
||||
uint8_t counter;
|
||||
|
||||
COMM_Console_Print_String("[BLE] Bond list:\n");
|
||||
|
||||
do
|
||||
{
|
||||
COMM_Console_Print_String(" ");
|
||||
COMM_Console_Print_UInt8(deviceCount);
|
||||
COMM_Console_Print_String(". ");
|
||||
|
||||
deviceCount--;
|
||||
|
||||
if(bondedDeviceList.bdHandleAddrList[deviceCount].bdAddr.type == CY_BLE_GAP_ADDR_TYPE_RANDOM)
|
||||
{
|
||||
COMM_Console_Print_String("Peer Random Address:");
|
||||
}
|
||||
else
|
||||
{
|
||||
COMM_Console_Print_String("Peer Public Address:");
|
||||
}
|
||||
|
||||
for (counter = CY_BLE_GAP_BD_ADDR_SIZE; counter > 0u; counter--)
|
||||
{
|
||||
COMM_Console_Print_String(" ");
|
||||
COMM_Console_Print_UInt8AsHex(bondedDeviceList.bdHandleAddrList[deviceCount].bdAddr.bdAddr[counter - 1u]);
|
||||
}
|
||||
COMM_Console_Print_String(", bdHandle: 0x");
|
||||
COMM_Console_Print_UInt8AsHex(bondedDeviceList.bdHandleAddrList[deviceCount].bdHandle);
|
||||
COMM_Console_Print_String("\n");
|
||||
} while (deviceCount != 0u);
|
||||
COMM_Console_Print_String("\n");
|
||||
}
|
||||
}
|
||||
#endif // TRACE_BLE
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name: App_RemoveDevidesFromBondList
|
||||
********************************************************************************
|
||||
*
|
||||
* Summary:
|
||||
* Remove devices from the bond list.
|
||||
*
|
||||
*******************************************************************************/
|
||||
void App_RemoveDevicesFromBondList(void)
|
||||
{
|
||||
#if(CY_BLE_BONDING_REQUIREMENT == CY_BLE_BONDING_YES)
|
||||
cy_en_ble_api_result_t apiResult;
|
||||
cy_stc_ble_gap_bd_addr_t peerBdAddr = { .type = 0u };
|
||||
#ifdef TRACE_BLE
|
||||
COMM_Console_Print_String("[BLE] Cleaning Bond List...\n\n");
|
||||
#endif // TRACE_BLE
|
||||
|
||||
/* Remove all bonded devices in the list */
|
||||
apiResult = Cy_BLE_GAP_RemoveBondedDevice(&peerBdAddr);
|
||||
if (apiResult != CY_BLE_SUCCESS)
|
||||
{
|
||||
#ifdef TRACE_BLE
|
||||
COMM_Console_Print_String("[BLE] Cy_BLE_GAP_RemoveBondedDevice API Error: 0x");
|
||||
COMM_Console_Print_UInt32AsHex(apiResult);
|
||||
COMM_Console_Print_String("\n");
|
||||
#endif // TRACE_BLE
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef TRACE_BLE
|
||||
COMM_Console_Print_String("[BLE] Cy_BLE_GAP_RemoveBondedDevice complete.\n\n");
|
||||
#endif // TRACE_BLE
|
||||
}
|
||||
#else
|
||||
#ifdef TRACE_BLE
|
||||
COMM_Console_Print_String("[BLE] Bonding is disabled...no need to remove bonded devices.\n\n");
|
||||
#endif // TRACE_BLE
|
||||
#endif /* (CY_BLE_BONDING_REQUIREMENT == CY_BLE_BONDING_YES) */
|
||||
|
||||
/* Clean flag */
|
||||
removeBondListFlag = false;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name: App_GetCountOfBondedDevices()
|
||||
********************************************************************************
|
||||
*
|
||||
* Summary:
|
||||
* This function returns the count of bonded devices
|
||||
*
|
||||
* Return:
|
||||
* uint32_t The count of bonded devices
|
||||
*
|
||||
*******************************************************************************/
|
||||
uint32_t App_GetCountOfBondedDevices(void)
|
||||
{
|
||||
cy_en_ble_api_result_t apiResult;
|
||||
cy_stc_ble_gap_peer_addr_info_t bondedDeviceInfo[CY_BLE_MAX_BONDED_DEVICES];
|
||||
cy_stc_ble_gap_bonded_device_list_info_t bondedDeviceList =
|
||||
{
|
||||
.bdHandleAddrList = bondedDeviceInfo
|
||||
};
|
||||
uint32_t deviceCount = 0u;
|
||||
|
||||
/* Find out whether the device has bonded information stored already or not */
|
||||
apiResult = Cy_BLE_GAP_GetBondList(&bondedDeviceList);
|
||||
if (apiResult != CY_BLE_SUCCESS)
|
||||
{
|
||||
#ifdef TRACE_BLE
|
||||
COMM_Console_Print_String("[BLE] Cy_BLE_GAP_GetBondList API Error: 0x");
|
||||
COMM_Console_Print_UInt32AsHex(apiResult);
|
||||
COMM_Console_Print_String("\n");
|
||||
#endif // TRACE_BLE
|
||||
}
|
||||
else
|
||||
{
|
||||
deviceCount = bondedDeviceList.noOfDevices;
|
||||
}
|
||||
|
||||
return (deviceCount);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name: App_IsDeviceInBondList()
|
||||
********************************************************************************
|
||||
*
|
||||
* Summary:
|
||||
* This function check if device with bdHandle is in the bond list
|
||||
*
|
||||
* Parameters:
|
||||
* bdHandle - bond device handler
|
||||
*
|
||||
* Return:
|
||||
* bool - true value when bdHandle exists in bond list
|
||||
*
|
||||
*******************************************************************************/
|
||||
bool App_IsDeviceInBondList(uint32_t bdHandle)
|
||||
{
|
||||
cy_en_ble_api_result_t apiResult;
|
||||
cy_stc_ble_gap_peer_addr_info_t bondedDeviceInfo[CY_BLE_MAX_BONDED_DEVICES];
|
||||
cy_stc_ble_gap_bonded_device_list_info_t bondedDeviceList =
|
||||
{
|
||||
.bdHandleAddrList = bondedDeviceInfo
|
||||
};
|
||||
bool deviceIsDetected = false;
|
||||
uint32_t deviceCount;
|
||||
|
||||
/* Find out whether the device has bonding information stored already or not */
|
||||
apiResult = Cy_BLE_GAP_GetBondList(&bondedDeviceList);
|
||||
if (apiResult != CY_BLE_SUCCESS)
|
||||
{
|
||||
#ifdef TRACE_BLE
|
||||
COMM_Console_Print_String("[BLE] Cy_BLE_GAP_GetBondList API Error: 0x");
|
||||
COMM_Console_Print_UInt32AsHex(apiResult);
|
||||
COMM_Console_Print_String("\n");
|
||||
#endif // TRACE_BLE
|
||||
}
|
||||
else
|
||||
{
|
||||
deviceCount = bondedDeviceList.noOfDevices;
|
||||
|
||||
if(deviceCount != 0u)
|
||||
{
|
||||
do
|
||||
{
|
||||
deviceCount--;
|
||||
if(bdHandle == bondedDeviceList.bdHandleAddrList[deviceCount].bdHandle)
|
||||
{
|
||||
deviceIsDetected = 1u;
|
||||
}
|
||||
} while(deviceCount != 0u);
|
||||
}
|
||||
}
|
||||
return(deviceIsDetected);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name: App_SetRemoveBondListFlag()
|
||||
********************************************************************************
|
||||
* Summary:
|
||||
* Set flag for removing bond list
|
||||
*
|
||||
*******************************************************************************/
|
||||
void App_SetRemoveBondListFlag(void)
|
||||
{
|
||||
removeBondListFlag = true;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name: App_IsRemoveBondListFlag()
|
||||
********************************************************************************
|
||||
* Summary:
|
||||
* Get value of remove bond list flag
|
||||
*
|
||||
* Return:
|
||||
* true - remove bond list flag is set
|
||||
* false - remove bond list flag is clear
|
||||
*
|
||||
*******************************************************************************/
|
||||
bool App_IsRemoveBondListFlag(void)
|
||||
{
|
||||
return ((removeBondListFlag == true) ? true : false);
|
||||
}
|
||||
|
||||
/* Private Functions */
|
Loading…
Add table
Add a link
Reference in a new issue