你好:
问题背景:
备注:ios8.1.1 iphone5s,
samsug s4, andriod 4.3
我们更新的通信时序如下,
#define DEFAULT_ENABLE_UPDATE_REQUEST TRUE
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 720
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 800
#define DEFAULT_DESIRED_SLAVE_LATENCY 1
#define DEFAULT_DESIRED_CONN_TIMEOUT 600
通过PERIPHERAL设备分别与不同的CENTRAL设备相连进行测试,
取得conn update成功后返回的消息中的时序值如下:
我在调试中看到: case GAP_LINK_PARAM_UPDATE_EVENT:
事件中返回更新后的参数如下:
andriod: {D0,00} ,07,00,0,798,1,2000
ios: {D0,00},07,00,0,798,1,600
cc2541评估板:{D0,00},07,00,0,800,1.600
我的问题:
1)andriod和iso返回的connect interval为798而不是我们请求的800,当用CC2541评估板时才为
800,为什么会有差别呢??
2) andriod返回的timeout值为2000,而不是我们请求的600,这2000是andriod默认
的timeout值吗,我们请求的timeout值是不是不在andriod的有效范围内呢。
typedef struct
{
osal_event_hdr_t hdr; //!< GAP_MSG_EVENT and status
uint8 opcode; //!< GAP_LINK_PARAM_UPDATE_EVENT
uint8 status; //!< bStatus_t
uint16 connectionHandle; //!< Connection handle of the update
uint16 connInterval; //!< Requested connection interval
uint16 connLatency; //!< Requested connection latency
uint16 connTimeout; //!< Requested connection timeout
} gapLinkUpdateEvent_t;
有哪位帮忙分析下。
谢谢!
jie zhang15:
你好,在蓝牙4.0中,要让安卓同意连接参数更新,安卓的程序中要调用哪个API?
Thomas Wu:
回复 jie zhang15:
印象中記得Android(我之前查是4.3)目前似乎沒有可以讓android主動更新參數,必須由peripheral端主動發起。