自学内容网 自学内容网

GFPS扩展技术原理(一)消息流

消息流作用

Google fast pair service要求Provider提供一个额外得通道以便seeker寻求建立连接,连接建立后,Seeker就可以向Provider发送一串数据流,这样做的目的是为了支持GFPS Extension,也就是扩展的GFPS,主要涉及一些比如耳机的电量,状态,音频切换,名字定制化等等。

消息流支持方式

Fast Pair支持两种消息流方式:

  1. 基于RFCOMM连接方式:
    RFCOMM Server(一般是部署在Provider上)需要提供UUID为df21fe2c-2515-4fdb-8886-f12c4d67927c 也就是UUID 0xFE2C的Channel,以便Seeker在做SDP查询时,能够找到。可以看下图所示的实例:
    在这里插入图片描述
    从上面的HCI LOG可以看到,Seeker会去做SDP查询,寻找基于UUID为0xFE2C的SDP服务, Provider会返回RFCOMM Server Channel 28,接下来Seeker就会在Channel 28上建立RFCOMM连接,后面就可以在此RFCOMM连接上发送消息流了。
  2. 基于BLE CoC方式:
    Connection-oriented channel (CoC)也就是L2CAP面向连接通道,会有三种模式,基本L2CAP模式,重传模式以及基于流控模式。然而BLE CoC只支持QOS流控模式,比如基于Credit-based flow control。消息流基于BLE CoC方式,采用的是GATT PSM也就是动态PSM值(0x80-0xFF),参考如下实例: 在这里插入图片描述
    如上图所示,我们会基于PSM:0x00A1建立一个LE L2CAP Connection,后面的消息流就可以通过这个LE L2CAP连接传送。

消息流数据格式

消息流采用如下数据格式:

字节序列类型详解必须支持与否
0uint8Message group,消息组
1uint8Message code,消息代码
2-3uint16Additional data length,额外数据长度
4-nn uint8Additional data额外数据

原文地址:https://blog.csdn.net/Jzj1234555/article/details/144394435

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!