LightBlue 是进入什么函数来设置characteristic的值呢?

2019-07-18 15:11发布

使用LightBlue读写一个characteristic时,RTOS会调用什么函数来处理?在使用SimpleBLEPeripheral这个工程文件改写,在simpleGATTProfile.c这个文件的
bStatus_t SimpleProfile_SetParameter( uint8 param, uint8 len, void *value )
函数的开头部分添加以下语句(头文件已添加,能编译通过):
if(*((uint8*)value) == 0xff)
{
PINCC26XX_setOutputValue(Board_LED1, 0);
PINCC26XX_setOutputValue(Board_LED2, 0);
PINCC26XX_setOutputValue(Board_LED3, 0);
PINCC26XX_setOutputValue(Board_LED4, 0);
}
else if(*((uint8*)value) == 0xee)
{
PINCC26XX_setOutputValue(Board_LED1, 1);
PINCC26XX_setOutputValue(Board_LED2, 1);
PINCC26XX_setOutputValue(Board_LED3, 1);
PINCC26XX_setOutputValue(Board_LED4, 1);
}
判断设置的参数是否为0xff或者0xee,分别用4个LED的亮和灭来表示。但是在手机的LightBlue软件中,重新设置参数,却没有LED的闪烁,调试的时候,在这个函数加入断点,也没有进入。
问题是:如果在手机端(Client)设置参数,不是进入bStatus_t SimpleProfile_SetParameter( uint8 param, uint8 len, void *value )这个函数中进行,那么是进入到了什么函数来设置characteristic的值呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
广电总局
1楼-- · 2019-07-18 18:11
SetParameter接口可以理解成是给2640的APP部分调用的读写接口

static bStatus_t simpleProfile_WriteAttrCB(uint16_t connHandle,
gattAttribute_t *pAttr,
uint8_t *pValue, uint16_t len,
uint16_t offset, uint8_t method)这个函数是协议栈调用的接口

现在你是用手机读写2640的数值 所以任何数值的改变都是手机从蓝牙传输到2640 通过蓝牙协议栈传到APP层的

所以读写调用的应该是

simpleProfile_ReadAttrCB和simpleProfile_WriteAttrCB

一周热门 更多>