CC2540与手机蓝牙连接时如何进行确认连接的
需求: CC2540处于广播等待连接状态,手机打开蓝牙来连接2540时, 需要通过2540上的按键按下后,再与手机蓝牙连接, 不按或者按其他按键不响应手机蓝牙连接请求。
问题: CC2540 协议栈里面是什么地方确认与外部主蓝牙设备连接的? 如何做到按键控制主设备的连接请求?
BLE-STACK中的keyforb就是这个例子,按下按键,才处于advertisement 状态,才能被发现被连接。
主要是GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &new_adv_enabled_status )来控制。
// if device is not in a connection, pressing the right key should toggle
// advertising on and off
if( gapProfileState != GAPROLE_CONNECTED )
{
uint8 current_adv_enabled_status;
uint8 new_adv_enabled_status;
//Find the current GAP advertisement status
GAPRole_GetParameter( GAPROLE_ADVERT_ENABLED, ¤t_adv_enabled_status );
if( current_adv_enabled_status == FALSE )
{
new_adv_enabled_status = TRUE;
}
else
{
new_adv_enabled_status = FALSE;
}
//change the GAP advertisement status to opposite of current status
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &new_adv_enabled_status );
}