pGapRoles_ParamUpdateCB
static gapRolesCBs_t *pGapRoles_AppCGs = NULL;
static gapRolesParamUpdateCB_t *pGapRoles_ParamUpdateCB = NULL;
上面俩个函数怎么实现 有没有相关的历程。主要是想判断连接间隙是否跟新成功。以为我现在的连接间隙跟新不成功。
程序里面GAPROLE_PARAM_UPDATE_ENABLE 这个打开
GAPRole_SetParameter( GAPROLE_PARAM_UPDATE_ENABLE, sizeof( uint8 ), &enable_update_request );
就会在连接建立之后更新一次连接参数
如果你想要在连接中更新连接参数,可以调用
bStatus_t GAPRole_SendUpdateParam( uint16 minConnInterval, uint16 maxConnInterval,
uint16 latency, uint16 connTimeout, uint8 handleFailure )
来更新连接参数
你好我的这个打开我设置的是1s连接时间,可是我抓取的包不是1s 我的功耗也将不下来
可是我用BT设置,我的功耗就能够将下来 不知道为什么
// Whether to enable automatic parameter update request when a connection is formed
#define DEFAULT_ENABLE_UPDATE_REQUEST TRUE
麻烦你有时间看看 我怎么确定我更改时间间隙成功了
请问用BT设置能够成功 指的是什么?
在sniffer log里面去找connection parameter update request 和response 看成功的话 后边的连接间隔的数字应该是1000000 (us)左右 这样就成功了
sniffer log 是哪里啊 能不能截个图 我怎么没有在这个软件里面找到呢?
sniffer log就是说的你截图的这个软件抓出来的log,看到如下的命令说明有连接参数更新的操作,result是0x0000,说明命令交互成功
在后面,可以看见时间从99768 到了999758
我刚开始也以为是这个时间,可是这个时间不是
这个时间是根据下面这个时间设置而变化了
好像是采样时间。
那个时间是的哦
如果我把SimpleBLEPeripheral例程里面的连接参数修改成
// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled
//#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 80
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 1600
// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
//#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 800
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 1600
你可以在sniffer log里面看到 连接参数更新成功以后连接的时间间隔是2s
谢谢你了。 你是用什么连接的 。是我们TI的开发板吗? 我用的是普通的蓝牙接收头,估计是蓝牙接收头不能改变时间吧 。我还以为我们的程序有问题了。
我用两块TI的EM开发板一个做peripheral一个做central连接的
更新不成功确实有可能是central这端拒绝了哦
请问:
1、 从机GAPRole_SendUpdateParam() 后, 怎么知道更新是否成功!?
2、 主机 用 GAPCentralRole_UpdateLink() 更新参数后, 从机会参数什么事件!?
3、从机/主机 怎样获得当前的连接参数!?