关于ble central接收广播信息的问题
问题1
ble 的Central设备在Searching Peripheral设备的时候,发现有些设备广播的字段长短不一,而且Central可能发现同一设备多次是怎么回事?
问题2
Peripheral Device 广播的时候广播的是一些什么东西?格式是什么样的?
我猜测广播的时候就是广播在
在SimpleBLEPeripheral.c 中 的scanRspData内容,但后来发现广播内容还包含 service 的 UUID,为什么
在static bool simpleBLEFindSvcUuid( uint16 uuid, uint8 *pData, uint8 dataLen )中::::::::
***************************************
// For each UUID in list
while ( adLen >= 2 && pData < pEnd )
{
// Check for match
if ( pData[0] == LO_UINT16(uuid) && pData[1] == HI_UINT16(uuid) )
{
// Match found
return TRUE;
}
************************************************
问题3
simpleBLECentral。c 中
// Length of bd addr as a string
#define B_ADDR_STR_LEN 15
字段是什么意思?
是干嘛用的?
目前发现simple Peripheral 程序广播的额数据
BrodData: 0x140953696D706C65424C4550657269
前一字节0x14是数据长度
后一字节0x09是令牌
定义在gap.h里面
问题来了
问题1:
:如果不是BLE芯片用的不是TI 的 CC2540,广播的数据是不是就不确定了如
BrodData: 0x0609466F72(0x06 显然不是数据长度)
问题2
广播包格式是不是
第一数据包长度+第一令牌+第一数据包
+第二令牌+第二数据包
+第三令牌+第三数据包
希望能有人解答,谢谢了
还有我想问一下的是,Service的UUID从哪里获取,如果我并不知道有该service存在的情况下。
向LightBlue就可以把未知的ServiceUUID和未知的characteristic UUID列举出来。
当然还能提供查找未知Characteristic UUID的方法就更好了
感谢热心的TI员工和飞TI员工,能提供的任何解答,谢谢了
调用discoverservices 之后,在didDiscoverservices 会回调发现的service.