主机扫描到从机后,会发送一个连接请求,请求里面会包括一些连接参数,比如连接时间间隔、从机潜伏、连接超时等等参数,但是看主机的连接函数:
GAPCentralRole_EstablishLink( DEFAULT_LINK_HIGH_DUTY_CYCLE,DEFAULT_LINK_WHITE_LIST,addrType, peerAddr );
是调用了这个函数:
GAP_EstablishLinkReq( ¶ms );
而GAP_EstablishLinkReq( ¶ms );传递的就是主机的连接请求,这个连接请求的数据类型是个结构体,这个结构体定义如下:
typedef struct
{
uint8 taskID; //!< Requesting App/Profile's Task ID
uint8 highDutyCycle; //!< TRUE to high duty cycle scan, FALSE if not.
uint8 whiteList; //!< Determines use of the white list: @ref GAP_WHITELIST_DEFINES
uint8 addrTypePeer; //!< Address type of the advertiser: @ref GAP_ADDR_TYPE_DEFINES
uint8 peerAddr[B_ADDR_LEN]; //!< Advertiser's address
} gapEstLinkReq_t;
这个结构体里面并没有对主机和从机的连接间隔、从机潜伏、连接超时等等参数进行定义呀?所以我不是很难明白主机和从机的连接间隔、从机潜伏、连接超时等等参数是如何在连接的时候传递到从机上面的?
另外我看TI的主机例程(central)里面定义了
#define DEFAULT_UPDATE_MIN_CONN_INTERVAL 400
#define DEFAULT_UPDATE_MAX_CONN_INTERVAL 800
我想问的是主从机的连接间隔不是一个定值吗?这个连接间隔难道是400-800ms范围内的任意值吗?如果真是在范围内取值的话,我想把时间间隔定为一个确定的值,是不是只要把最小时间间隔和最大时间间隔设为相等就可以了,比如想设时间间隔为500,只需定义DEFAULT_UPDATE_MIN_CONN_INTERVAL 和DEFAULT_UPDATE_MAX_CONN_INTERVAL均为500 ?
希望大神们能不吝赐教一二!感激不尽!