Firefly开源社区

标题: MASTER向SLAVE发送数据 [打印本页]

作者: net_scan    时间: 2015-7-9 11:04
标题: MASTER向SLAVE发送数据
本帖最后由 net_scan 于 2015-11-8 17:38 编辑

首先感谢安安的指点  我才调试通过。
准备两块QN902X系列的开发板,一块做主,一块做从。
先用LIGHTBLUE看SLAVE的属性,在profile中只有一个服务,UUID为128位的UUID.在这个服务下包含有几个特征,其中第一个特征UUID为9600结尾的一个128位UUID,是用于接收发送的数据的属性,其他几个是用于发送数据到的特征值,这里先不管他。所以SLAVE默认提供一个WRITE属性,MASTER可以直接调用系统提供的函数像其发送函数。里面的细节处理应该是系统闭源的。
但是MASTER要发送数据到SLAVE,必须建立qppc服务。建立服务后,内核才会对其进行处理。这个很关键。
如果没有建立PPC服务,这个请求就不处理,数据也就不能发送了。
所以参考PPC启动代码app_qppc_enable_req(NULL, conhdl);
初始化ppc服务之后即可。



作者: net_scan    时间: 2015-7-9 11:06
本人对BLE了解很少,希望朋友们多指点。
作者: 暴走的阿Sai    时间: 2015-7-9 11:39
帮顶上去
作者: 安安    时间: 2015-7-10 11:07
关于主机发送数据到从机的深刻理解,非常具有指导意义,楼主加油!
作者: zhang2005    时间: 2015-7-15 09:55
安安 发表于 2015-7-10 11:07
关于主机发送数据到从机的深刻理解,非常具有指导意义,楼主加油!

安安,你好,我想问问,如果是自定义了两个服务,CLIENT端的enable_req如何写呢?
作者: 安安    时间: 2015-7-15 11:03
zhang2005 发表于 2015-7-15 09:55
安安,你好,我想问问,如果是自定义了两个服务,CLIENT端的enable_req如何写呢?

参照qppc的enable_req就好了,就是一些初始化,内核注册之类的东西
作者: huzi741    时间: 2015-7-17 19:05
楼主master要读取数据怎么办呢
作者: 安安    时间: 2015-7-20 10:35
huzi741 发表于 2015-7-17 19:05
楼主master要读取数据怎么办呢

直接read啊,模仿qppc的api做操作,去看一下这个例程就知道了,主要是看相关文件中定义的api和注释,不一定非要跟着例程的调用走,你能够理解这些api,就可以随时调用了
作者: zhang2005    时间: 2015-8-4 13:42
安安 发表于 2015-7-15 11:03
参照qppc的enable_req就好了,就是一些初始化,内核注册之类的东西

其实,我enable_req也写了,能够运行,只是我总觉得结构不够好
作者: 安安    时间: 2015-8-5 09:41
:o结构不够好?不知道怎么理解~~
作者: zhang2005    时间: 2015-8-7 14:52
安安 发表于 2015-8-5 09:41
结构不够好?不知道怎么理解~~

我的意思是:添加了两个服务,enable_req里面是按UUID进行使能的,获取的svc和char的id,那么两个服务,是不是就发两次enable_req吗   感觉那样不是很好吧?而且第二次的enable_req是在第一次的INSMESHC_ENABLE_CFM内app_task_msg_hdl函数内进行好呢?还是在gatt_cmp_evt_handler内直接进行呢?
作者: 安安    时间: 2015-8-7 15:19
zhang2005 发表于 2015-8-7 14:52
我的意思是:添加了两个服务,enable_req里面是按UUID进行使能的,获取的svc和char的id,那么两个服务, ...

enable的操作应该是发送消息到内核的,我觉得是可以一起enabled 的,我也没用试过添加两个服务。




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1