CC2540 蓝牙BLE的控制权
我现在做BLE的RGB调色灯,手机独占绑定模式防止丢失控制权,不知道这个功能怎么做比较好
能不能直接读到手机的BLE唯一的设别ID,进行保存,下次设别,发广播的时候能不能选择可连接的设备?
已经和CC250连接过的手机,下次连接,CC250不发广播包,能不能实现自动连接你?
还是说连接必须要CC2540发出广播,手机进行配对
CC2540必须要发广播包, 手机才能进行连接.
如果你想绑定连接的手机, 可以在第二次连接的时候用direct的广播包, 让指定的手机才能和CC2540连上.
YAN 有没有相关的例程或者资料?
请问指定的手机,指定的是手机那些信息?是不是下面的地址?这个地址怎么获得,怎么指定?
#define GAPROLE_ADV_DIRECT_ADDR 0x30B //!< Direct Advertisement Address. Read/Write. Size is uint8[B_ADDR_LEN]. Default is NULL.
没错. 就是这个地址.
如果手机发送连接请求的广播包里面带的是自己的public物理地址的话, 就能用这个方法.
public物理地址 怎么从连接请求的广播包里面获取?发广播的时候怎么指定?
在连接建立后, 收到 GAP_LINK_ESTABLISHED_EVENT 事件时, 会带对方的地址, 可以从这里获得.
Yan 非常感谢
gapEstLinkReqEvent_t->devAddr[B_ADDR_LEN]; //!< Device address of link
Yan
这个地址好像是随机的,每次关闭IOS蓝牙 重新打开 再连接,没有一次是一样的。
对于IOS是没有办法, 因为IOS用的是随机地址.
好消息是google已经宣称Android要官方支持BLE了, 马上就会出了.
Yan 我看过你的一个帖子,有说是随机的,但是没死心。 我们现在打算用应用的方式来区分了。 谢谢你的耐心回答。
good,
通过应用总会有办法的 :)
gapEstLinkReqEvent_t->devAddr[B_ADDR_LEN];
请问你这个的结构体是什么,我从哪个结构体可以获得手机的mac地址呢?
SimpleBLEPeripheral_ProcessEvent( uint8 task_id, uint16 events )
是这个函数接收的这个事件吗?如果不是是哪个呢?
GAP_LINK_ESTABLISHED_EVENT 这个事件是哪个函数接收的啊?