七链路控制操作
链路控制操作就是用来描述一个设备是如何加入piconet又是如何从一个piconet中退出的。当然我们肯定不会忘记介绍一个设备是如何在多个piconet中夹缝生存的,呵呵~~
Q1:在加入和退出一个piconet的过程中是否有类似状态转换的定义啊?
这个问题不错,的确为了更好地描述这样的一个过程,我们把设备在这个过程中的转换分成了三个主要状态和七个子状态,这些状态的定义在对整个蓝牙操作的描述中是非常重要的。
三个主要状态分别为:
STANDBY:这个状态是一个设备的默认状态,可以认为是初始的状态。
CONNECTION:也就是处于连接的状态,可以进行数据的交互。我们可以认为它是正常工作的状态。
PARK:就是设备不需要进行什么操作,但又暂时不想退出piconet,这种状态我们就称之为park的状态。也就是一个pionet中除了active的slave之外的那些设备所处的状态。目前在实际应用中,PARK状态是不会使用的。
七个子状态分别为:
Page:这个子状态就是我们通常称为的连接,进行连接/激活对应的slave的操作我们就称为page。
Page scan:这个子状态是和page对应的,它就是等待被page的slave所处的状态,换句话说,若想被page到,我们就要处于page scan的状态。
inquiry:这就是我们通常所说的扫描状态,这个状态的设备就是去扫描周围的设备。
inquiry scan:这就是我们通常看到的可被发现的设备。体现在上层就是我们在android系统中点击设备可被周围什么发现,那设备就处于这样的状态。
slave response:这个就是在page的过程中,slave收到了master的page msg,它会回应对应的pageresponse msg,同时自己就进入到了slave response的状态。
master response:master收到slaveresponse的msg后,他就会进入到master response的状态,同时他会发送一个FHS的packet。
inquiry response:就是在inquiry scan的设备在收到inquiry的msg后,就会发送inquiryresponse的msg,在这之后它就会进入到了inquiry response的状态了。