BLECentral能发现 BLEPeripheral 的 scanRspData数据吗
我看 central.c 里面怎么没有 scan 的操作呢,抓包的时候也没有看到 ADV_SCAN_REG 的请求,但是我的手机发现BLEPeripheral的时候有这个请求的,请问这个有没有,我应该怎么做才能让BLECentral显示BLEPeripheral设备的名字呢?
应该可以通过读
typedef struct
{
osal_event_hdr_t hdr; //!< GAP_MSG_EVENT and status
uint8 opcode; //!< GAP_DEVICE_INFO_EVENT
uint8 eventType; //!< Advertisement Type: @ref GAP_ADVERTISEMENT_REPORT_TYPE_DEFINES
uint8 addrType; //!< address type: @ref GAP_ADDR_TYPE_DEFINES
uint8 addr[B_ADDR_LEN]; //!< Address of the advertisement or SCAN_RSP
int8 rssi; //!< Advertisement or SCAN_RSP RSSI
uint8 dataLen; //!< Length (in bytes) of the data field (evtData)
uint8 *pEvtData; //!< Data field of advertisement or SCAN_RSP
} gapDeviceInfoEvent_t;
里面的数据获取
central没有发起scan_rsp 直接就发的connect——rsp连接Peripheral了,怎么让central发起scan_rsp呢?你看看我抓包的数据是不是这样,这个结构体的数据我
看过,只有Peripheral的广播包里面的数据,central扫描的时候只是接受了Peripheral的广播包,但是没有发起scan_rsp ,central怎么发scan_rsp 包?
您简单告诉我central怎么发送SCAN_RSP的请求就可以,我应该调用哪个api?
请问您的Central设备的BD Address是FFFFFFFFFFFF吗?Central设备是不是以前连接过Peripheral设备?
Central设备在scan enable的时候会发送ADV_SCAN_REQ
我的是FFFFFFFFFFFF,但是我抓包从来没有抓到ADV_SCAN_REQ这个啊,您能告诉我scan调用的api是哪个吗?
scan enable 在哪儿?
麻烦您先回答一下我的问题,然后再问我
在SimpleBLECentral的例程里,有让Central设备进入scan状态的代码,在simpleBLECentral_HandleKeys函数里面处理向上的按钮的代码。
按完向上的按钮之后Central设备进入scan状态,但是只是接受Peripheral的advertisement 并没有发送SCAN_RSP的请求,我想知道怎么让Central发送SCAN_RSP请求,调用哪个API。
您就不能简单告诉我调用哪个API吗?这么问来问去时间都浪费了
Central设备是Scan的发起方,不发送SCAN_RSP 而是发送SCAN_REQ
应该发送 SCAN_REQ,名字我写错了不好意思, 你能不能告诉我发送这个要调用的哪个 API,我抓包确实没有抓到Central发送的SCAN_REQ包,您能给我抓一个看看吗?最简单的就是你告诉我调用哪个API就行了
在CC2540EM板上,跑SimpleBLECentral的Demo code按向上的按钮,Central设备会发SCAN_REQ出来,
图中AdvA设备是我的keyfob设备,在发Advertisement广播包
如果您抓不到包,也请确认一下,您在Central的code里面,command发送的channel是不是和sniffer设置的是一样的,我这里使用的是channel39.
设备发ADV_IND包用的channel和你发 SCAN_REQ 用的是同一个,我能抓到设备的ADV_IND,那就表明我的channel没有问题,如果central发送了SCAN_REQ 我就应该能抓到,现在确实我是没有抓到。
您就不能告诉我central发送SCAN_REQ 包是调用的那个API吗?
我问了您好多次了,您就不能直接点回答一下这个问题吗?
在simpleBLECentral.c可以看到,bStatus_t GAPCentralRole_StartDiscovery( uint8 mode, uint8 activeScan, uint8 whiteList );
最后会调到 bStatus_t GAP_DeviceDiscoveryRequest( gapDevDiscReq_t *pParams )吧。
确实调用了这个 GAP_DeviceDiscoveryRequest 这个我也看到了,但是确实没有抓到 ADV_SCAN_REG包啊,怎么回事,这个是发起ADV_SCAN_REG请求的API吗?
抓到ADV_SCAN_RSP包了,但是 GAP_DEVICE_INFO_EVENT 进入这个事件处理的时候传进来的deviceInfo 里面没有收到的scanRspData数据呢?
您好,现在找到解决的方法了吗?怎样才能让集中器模式下的蓝牙模块直接输出其他外设的ScanRspData或AdvertData数据呢?有相应的api吗?最近弄这个挺苦恼的,麻烦指教下,谢谢!
你好,我看到你最终目的是想让BLECentral设备显示Peripheral设备的名字。这个问题我以前做过回答,请参见http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/77735/192056.aspx#192056