TI中文支持网
TI专业的中文技术问题搜集分享网站

状态是GAPROLE_ADVERTISING,但是不能scan到??

我按照论坛上的做法,改成一直在广播。

测试时,长时间不连接,再去连接设备,都是正常的。

现在的问题是,偶尔会出现不能scan到的问题

此时,

gapProfileState = GAPROLE_ADVERTISING

用btool抓包

[1] : <Tx> – 10:37:45.140

-Type : 0x01 (Command)

-Opcode : 0xFE04 (GAP_DeviceDiscoveryRequest)

-Data Length : 0x03 (3) byte(s)

 Mode : 0x03 (All)

 ActiveScan : 0x01 (Enable)

 WhiteList : 0x00 (Disable)

Dump(Tx):

01 04 FE 03 03 01 00 

————————————————————————————————————————

[2] : <Rx> – 10:37:45.171

-Type : 0x04 (Event)

-EventCode : 0xFF (HCI_LE_ExtEvent)

-Data Length : 0x06 (6) bytes(s)

 Event : 0x067F (GAP_HCI_ExtentionCommandStatus)

 Status : 0x00 (Success)

 OpCode : 0xFE04 (GAP_DeviceDiscoveryRequest)

 DataLength : 0x00 (0)

Dump(Rx):

04 FF 06 7F 06 00 04 FE 00 

————————————————————————————————————————

[3] : <Rx> – 10:37:55.437

-Type : 0x04 (Event)

-EventCode : 0xFF (HCI_LE_ExtEvent)

-Data Length : 0x04 (4) bytes(s)

 Event : 0x0601 (GAP_DeviceDiscoveryDone)

 Status : 0x00 (Success)

 NumDevs : 0x00 (0)

Dump(Rx):

04 FF 04 01 06 00 00 

这个问题出现,需要app连接断开几次,也不是必定出现

是协议栈的bug吗?

该怎么进一步分析

有解决方案吗?

谢谢

lin ruan:

补充一下

scan不到后

执行

uint8 initial_advertising_enable = FALSE; GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &initial_advertising_enable ); GAPRole_TerminateConnection();

再执行

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, &current_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 ); }

就又可以连上了

Barbara Wu:

回复 lin ruan:

这种情况建议您用CC2540 USB Dongle和PC端的Packet Sniffer一起使用 看是否空口能够扫描到广播端的广播数据

如果是 则是btool的问题 如果不是 则再从广播端找原因

lin ruan:

回复 Barbara Wu:

我觉得肯定不是btool的问题。

此时用ipad和手机都不能找到设备。

我看到有网友说是32k晶振的问题

但是,我重新开关一次广播就好了,应该也不是晶振的问题

我想问一下TI

我用的协议栈1.4.0处理这些设备的链接,断线,超时,再链接,再断线方面是否经过考验?

是我哪里没有配置好,还是协议栈本身有bug?

cedar_xuesong:

回复 lin ruan:

“我用的协议栈1.4.0处理这些设备的链接,断线,超时,再链接,再断线方面是否经过考验?”

我这边完全正常,你抓一下包,看看实际的数据

赞(0)
未经允许不得转载:TI中文支持网 » 状态是GAPROLE_ADVERTISING,但是不能scan到??
分享到: 更多 (0)