首页 > 其他分享 >深入浅出理解BLE AUDIO CSIS

深入浅出理解BLE AUDIO CSIS

时间:2024-10-25 08:51:20浏览次数:10  
标签:主耳 CSIS RSI SIRK 协调 BLE AUDIO

CSIS是Coordinate Sets Identification service,翻译过来就是协调集识别服务。什么是协调集,可以理解为具有相同特征的一伙设备,最典型的就是左右两个蓝牙耳机是一个协调集,所以它们具有相同的协调集标志,但是具有相同协调集的设备要如何识别,这就是本篇需要讲解的内容,其实还是比较简单,下面还是以手机和蓝牙耳机为例,看看BLE AUDIO CSIS是如何工作:

扩展广播里的RSI

RSI是Resolvable Set Identifier,可解析的协调集标志 ,我们可以把它类比RPA,这个值会附属在我们的左右耳机的广播里,下面从HCI看看实例:
在这里插入图片描述
如上图,主耳和副耳的广播都附带有RSI值,手机扫描到的时候,会把这些值存储起来,以便后面解释用。

主耳BLE连接

在这里插入图片描述

读取SIRK

SIRK是Set Identity Resolvable Key的缩写,也就是解析RSI的钥匙,可以理解为类似IRK, 手机和主耳建立BLE连接后,会通过ATT服务读取耳机传过来的RSIK:
在这里插入图片描述如上图,红色框表示读到的SIRK的值,下面解释一下绿色框的三个值的含义:

参数解释
Size2表示此协调集有2个成员
LockUnlocked此成员有没有锁定,可以理解为没有锁定,就是可以是主耳,也可以是副耳
Rank2Rank可以理解为手机给两个耳机发送音频流的顺序

手机BLE连接副耳

通过读取了主耳的SIRK,然后把主副耳的RSI解析出来,发现这两个设备是同一协调集,这样手机就会主动去连接副耳:
在这里插入图片描述

总结:

BLE AUDIO CSIS服务还是比较简单,说就是找寻同类型设备,这样方便后面进来的同类型设备可以自动连接,不需要人工干预了。

标签:主耳,CSIS,RSI,SIRK,协调,BLE,AUDIO
From: https://blog.csdn.net/Jzj1234555/article/details/143217598

相关文章

  • git报错系列---unable to update local ref
    报错:root@928c09c89c1c:/home/work/bag#gitpullerror:cannotlockref'refs/remotes/origin/lozen/remux':'refs/remotes/origin/lozen'exists;cannotcreate'refs/remotes/origin/lozen/remux'Fromgit.baijiashilian.com:LLL/glou......
  • WPF No imaging component suitable to complete this operation was found.
    System.NotSupportedExceptionHResult=0x80131515Message=Noimagingcomponentsuitabletocompletethisoperationwasfound.Source=PresentationCoreStackTrace:Thisisbecausetheimagefileisnotcompletedorcorrupted,thealternativeistoa......
  • double与float那点事
    浮点数在计算机中的存储方式C语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,float和double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEER32.24,而double遵从的是R64.53。无论是单精度还是双精度......
  • ansible批量部署apache
    ansible批量部署apache目录ansible批量部署apache安装ansible基于ansible进行基础准备配置受控端本地软件仓库安装受控端Apache(httpd)的最新版本启动受控端web服务(httpd)配置受控端防火墙放行httpd服务流量受控端写入测试页面,要求带上个人信息(姓名或学号等),其它内容不限在主控端访......
  • 如何在QT5+MinGW环境中编译使用Marble开发地图地球仪
    Marble它是一个虚拟地球仪和地图应用程序,支持多种平台。Marble提供2D和3D的地图视图,能够展示各种地理信息,像卫星图、街道图、气象图等。它还支持自定义插件、路线规划、离线地图等功能,适合地理信息系统(GIS)和教育用途。Marble有多种使用场景,可以集成到Qt应用中。你......
  • 异步&线程池【CompletableFuture&ExecutorService】
    Gulimall一、异步&线程池【ExecutorService】异步场景:为了节约时间和提高系统吞吐量做一些异步任务。异步在java中一般是使用Thread开启一个线程的方式;一、线程池线程池(ThreadPool),是一种基于池化思想的管理线程的工具,可以实现线程的复用,避免线程使用中频繁创建和......
  • mysql 1206 - The total number of locks exceeds the lock table size
    由于数据量过大导致报错:Thetotalnumberoflocksexceedsthelocktablesize解决方法:输入查询:showvariableslike"%_buffer%";找到对应的 innodb_buffer_pool_size 默认值是8388608  8兆将这个数值设置的大一点,比如1G1G=1024*1024*1024=1073741824 setGLOB......
  • Qt 进程保活(开源,国产环境)QTableWidget列表
    效果图第一步设计器拖拽一个QTableWidget和三个QPushButton,布局一下第二步上码1.mainwindow.h代码如下(示例):#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include<QMainWindow>#include<QDebug>#include<QPushButton>#include<QLabel>#include<QFileInfo......
  • CF1800E2. Unforgivable Curse (hard version) 题解 并查集
    题目链接:https://codeforces.com/contest/1800/problem/E2视频讲解:https://www.bilibili.com/video/BV1tZ1FYPELp?p=2把下标\(i\)对应到图中编号为\(i\)的节点。节点\(i\)和\(i+k\)之间连一条边,节点\(i\)和\(i+k+1\)之间也连一条边。同一个连通块里的节点对应的字......
  • 论文翻译 | Scalable Prompt Generation for Semi-supervised Learning with Language
    摘要         基于提示的学习方法在半监督学习(SSL)设置中已被文献证明在多个自然语言理解(NLU)数据集和任务上有效。然而,手动设计多个提示和表述词需要领域知识和人力投入,这使得在不同数据集上扩展变得困难且昂贵。在本文中,我们提出了两种方法来自动设计多个提示,并在......