如何把Peripheral回应状态改成回应事件?
想同时实现Peripheral和Central,但peripheral callback的是状态,central callback的是事件,看了一下peripheral.c,里面GAP ROLE的状态判定比事件要细。
而在peripheral.c里面,涉及到GAP ROLE状态的事件有
GAP_DEVICE_INIT_DONE_EVENT,GAP_ADV_DATA_UPDATE_DONE_EVENT,GAP_MAKE_DISCOVERABLE_DONE_EVENT,
GAP_END_DISCOVERABLE_DONE_EVENT,GAP_LINK_ESTABLISHED_EVENT,GAP_LINK_TERMINATED_EVENT 共6个事件。
那么是不是意味我在应用的处理角色事件的函数里面也要涉及这6个事件?
如果Peripheral进入相应的事件,是不是证明GAP ROLE已经进入相应的状态,比如进入GAP_LINK_ESTABLISHED_EVENT事件就说明进入了GAPROLE_CONNECTED的状态?还是我依然要在事件里面做进一步判断?
我有试过全部添加6个事件,事件里面内容只有LED闪烁,但.在处理角色事件时只进入GAP_ADV_DATA_UPDATE_DONE_EVENT,而且用手机BLE DeviceMonitor也搜不到信号,不太明白具体怎么回事?求大神指点,感谢。
Even,
是的,如果进入GAP_LINK_ESTABLISHED_EVENT,那么相应的gaprole的状态就会被设置成GAPROLE_CONNECTED。
只有GAP_ADV_DATA_UPDATE_DONE_EVENT且搜索不到设备,那是因为你的设备还没进入广播状态。
在init函数里面,确认一下 uint8_t initialAdvertEnable = TRUE; 是否有。
Peripheral 相关文章:
- 蓝牙从机事件处理函数 SimpleBLEPeripheral_ProcessEvent的疑问
- 我的cc2540 用simpleBLEperipheral 刷完之后怎么只有 generic access service 这一个,没有其它的服务呢?
- Role Profile可以有一个共存模式,可以同时作为peripheral和broadcaster?
- 请问一下ANCS通知的时候,cc2540是central模式吗?还是peripheral模式,只不过GATT上Client模式?
- 求助:Observe如何获取Peripheral广播中的数据?
- 请问CC2540作为Central时最多能连接多少个Peripheral?