关于simpleProfile_ReadAttrCB()和 simpleProfile_WriteAttrCB()
时间:10-02
整理:3721RD
点击:
蓝牙从机程序中,simpleGATTProflie.c的文件定义了simpleProfile_ReadAttrCB()和 simpleProfile_WriteAttrCB()这两个函数,请问这两个程序在哪里被调用了?
Hi cg
这两个函数包含在gattServiceCBs_t 类型的结构体里CONST gattServiceCBs_t simpleProfileCBs,这个结构体在使用GATTServApp_RegisterService()注册服务时,被作为底层读写的回调函数写入。
这两个函数,其实是在底层协议栈(被封装成库)对应用层读写特征值时的被调用的。我们只需知道注册服务时,需要注册这写回调函数,并且知道如何修改这两个函数即可,至于具体怎么被调用这个不用关心,毕竟底层调用时我们是无法跟踪的。
谢谢了!
那么他与这两个函数的区别是什么
SimpleProfile_GetParameter(),SimpleProfile_SetParameter(),
GetParameter和SetParameter是被上层调用的读写接口
在调用了这个之后回调函数才会被call到
1、
SimpleProfile_GetParameter(),SimpleProfile_SetParameter() 这两个函数是被应用层所调用的,也就是在你写的应用程序想读取或写UUID的值就通过这两个
函数实现
2、simpleProfile_ReadAttrCB()与simpleProfile_WriteAttrCB是供底层来调用的,也就是RF想知道UUID要发送的数据或从主机接收到的UUID的值,都是通过这两个函数传递过来的
在调用SimpleProfile_SetParameter()发送蓝牙数据的时候,会出现小概率的死机;在调用SimpleProfile_GetParameter的时候,会出现小概率的无法收到数据;请问可能是什么原因造成的呢?