Part Number: CC2640R2F
Other Parts Discussed in Thread: BLE-STACK
Hi team,
My customer create a project based on simple_peripheral_cc2640r2lp_oad_onchip_app and SDK v3.20 . And there is strange behavior GAP_UpdateLinkParamReqReply func.
When authentication is required, Android starts the pairing procedure and the link parameters update procedure in same time. Android requests connection interval 7.5ms:
, but the customers application definedefault connection interval 500ms to save power.
Simple_peripheral receives GAP_UPDATE_LINK_PARAM_REQ_EVENT in gapRole_processGAPMsg @ peripheral.c and checks gapRole_updateConnParams.paramUpdateEnable variable. This variable is set to GAPROLE_LINK_PARAM_UPDATE_INITIATE_APP_PARAMS by the customer. Due to this the simple_peripheral go to this code and replys with local connection interval:
else if ((gapRole_updateConnParams.paramUpdateEnable ==
GAPROLE_LINK_PARAM_UPDATE_WAIT_APP_PARAMS) ||
(gapRole_updateConnParams.paramUpdateEnable ==
GAPROLE_LINK_PARAM_UPDATE_INITIATE_APP_PARAMS))
{
// Only use application requested values.
rsp.intervalMin = gapRole_updateConnParams.minConnInterval;
rsp.intervalMax = gapRole_updateConnParams.maxConnInterval;
rsp.connLatency = gapRole_updateConnParams.slaveLatency;
rsp.connTimeout = gapRole_updateConnParams.timeoutMultiplier;
}
I saw that 500ms interval (value 400) passed GAP_UpdateLinkParamReqReply function.
But when we look to a sniffer logs, the actual reply on the air is with 7.5ms interval:
Is this a bug? Why app answers with 7.5ms interval while we pass 500ms interval to GAP_UpdateLinkParamReqReply?
