零. 概述

本文章主要讲下电话免提协议HFP(Hands-Free Profile)Phone status information。包括Signal Strength(信号强度),Roaming Status(漫游状态),Battery Level(电量),Operator Selection(运营商),Transfer of Call, Call Setup and Call Held Status(电话状态)。

本节讲解的内容就是一下HFP feature中的NO.2

一. 声明

本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:

第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。

第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等

第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等

第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。

第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL)

第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等

第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展

第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。

另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。

-------------------------------------------------------------------------------------------------------------------------

CSDN学院链接(进入选择你想要学习的课程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144

蓝牙交流扣扣群:970324688

Github代码:https://github.com/sj15712795029/bluetooth_stack

入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708

蓝牙学习目录:https://blog.csdn.net/XiaoXiaoPengBo/article/details/107727900

--------------------------------------------------------------------------------------------------------------------------

二. HFP Phone Status Information 介绍

本小节介绍内容如下:

Phone status information分为6个部分介绍,此6部分都是AT+CMER使能后, AG会发送消息+CIEV的消息过来的介绍。

但是会增加一个细节AT command,就是AT+BIA,那这个命令的作用就是active/deactive某一个indicator

说白了AT+CMER是全局使用,AT+BIA是局部使能。

比如:AT+CMER使能后,AT+BIA失能signal的indicator,那么signal的CIEV AG就不会主动发送了,AT+CMER我们前面已经做了介绍,下面就介绍下AT+BIA

AT+BIA (Bluetooth Indicators Activation)

Syntax: AT+BIA=[[<indrep 1>][,[<indrep 2>][,…[,[<indrep n>]]]]]]

举例:

假设有7个indicator,index是根据AT+CIND=?得到,使能全局是AT+BIA=1,1,1,1,1,1,1

失能全部AT+BIA=0,0,0,0,0,0,0

如果要失能第3个,可以写成这样AT+BIA=1,1,0,1,1,1,1

也可以写成这样AT+BIA=1,1,0,后续参数自动忽略,采用默认

2.1 Transfer of Signal Strength Indication

此就是手机的信号,AG会通过+CIEV发送给HF

在上一篇connection manager的时候已经介绍了index怎么获取以及取值多少,我们这里不再介绍index怎么获取,可以自行参考以前的文章,我们只是贴下value的范围,可以看到范围是0~5

2.2 Transfer of Roaming Status Indication

此就是手机的漫游,AG会通过+CIEV发送给HF

在上一篇connection manager的时候已经介绍了index怎么获取以及取值多少,我们这里不再介绍index怎么获取,可以自行参考以前的文章,我们只是贴下value的范围,可以看到只有两个值 0跟1,说白了就是有没有插手机卡,能不能入网

2.3 Transfer of Battery Level Indication of AG

此就是手机的电量,AG会通过+CIEV发送给HF

在上一篇connection manager的时候已经介绍了index怎么获取以及取值多少,我们这里不再介绍index怎么获取,可以自行参考以前的文章,我们只是贴下value的范围,可以看到范围是0~5

2.4 Query Operator Selection

此命令是问询手机的网络,比如”中国移动”

整个过程如下图所示:

•  HF shall send AT+COPS=3,0 command to set name format to long alphanumeric. Long alphanumeric is defined as a maximum of 16 characters. The value of 3 as the first parameter indicates that this command is only affecting the format parameter (the second parameter). The second parameter, 0, is the value required to set the format to “long alphanumeric.”

•  Upon an internal event or user-initiated action, HF shall send the AT+COPS? (Read) command to find the currently selected operator.

•  AG shall respond with +COPS response indicating the currently selected operator. If no operator is selected, <format> and <operator> are omitted

2.5 Report Extended Audio Gateway Error Results Code

此部分是用来使能AG报告给HF更详细的错误

•  The HF shall issue the AT+CMEE command to enable/disable the “Extended Audio Gateway Error Result Code” in the AG. The parameter <n> controls the activation/deactivation of the “Extended Error result code” notification.

•  Whenever there is an error relating to the functionality of the AG as a result of AT command, the AG shall send +CME ERROR: <err> response to the HF.

如果有错误出现,那么AG会通过 +CME ERROR:<err>发送给HF,

详细的错误都有:

2.6 Transfer of Call Status

Call status我们在前面已经说明value的值,分别为:

会有几种case会更新call active

1)Incoming call,HF发送接听指令或者AG接听,都会触发

2) Outgoing call

以上两种情况是call value更新为1,下面三种call value变为0

1) HF主动发命令挂断

2) AG主动挂断

3) 通话中,突然没有信号

2.7 Transfer of Callsetup Status

有以下几个callsetup的value

1) Outgoing call

2) Incoming call

2.8 Indication of Status for Held Calls

在前面我们有介绍call held的value

一共有3个case,你只需要知道这三个case就行,后续介绍三方通话的feature的时候会重新详细说明

1) Call Held or Active/Held Position Swap

2) Held Call Release

3) Active Call Terminated/Call Remains Held

蓝牙电话协议HFP(Hands-Free Profile) 传输手机状态信息(信号/漫游/电量/运行商/电话状态)相关推荐

  1. 蓝牙电话协议HFP(Hands-Free Profile) 接听来电/挂断来电(HFP Accept/Reject incoming call)

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)接听来电/挂断来电(HFP Accept/Reject incoming call)以及在挂断电话(Terminat ...

  2. 蓝牙电话协议HFP(Hands-Free Profile) 三方通话功能相关的流程介绍 Three-way call

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)Call waiting notification,Three-Way Call Handling,Response ...

  3. 蓝牙电话协议HFP(Hands-Free Profile) 通过号码拨打电话/memory拨打电话(Memory Dialing)/尾号重播(Last Number Re-Dial) 功能介绍

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)通过号码拨打电话(Place a call with the phone number)/memory拨打电话(Me ...

  4. 蓝牙电话协议HFP(Hands-Free Profile) 获取本地号码/获取语音信箱号码/获取通话时号码(CLCC)

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)跟电话号码有关的feature,分别有Calling Line Identification (CLI) Notif ...

  5. 蓝牙电话协议HFP(Hands-Free Profile) SCO建立/释放/在通话中Audio transfer

    零. 概述 由于HFP feature小节太多,所以我们计划本章把相近的feature合并,本文章主要讲下电话免提协议HFP(Hands-Free Profile)Audio Connection h ...

  6. 蓝牙协议HFP(Hands-Free Profile)电话免提协议 Connection management 连接管理HFP SLC 的建立跟释放

    零. 概述 本文章主要讲下电话免提协议HFP(Hands-Free Profile)Connection management.包括connection establishment     跟conn ...

  7. 蓝牙协议栈 电话免提协议HFP(Hands-Free)关闭手机的回声消除EC(Echo canceling),噪音减弱NR(noise reduction)

    零. 概述 主要介绍下蓝牙协议栈(bluetooth stack) 电话免提协议HFP(Hands-Free) 关闭手机的回声消除EC(Echo canceling),噪音减弱NR(noise red ...

  8. android6没有4g,手机没有4g信号是什么原因?手机没有4g信号解决方法介绍

    随着我们现如今的科技发展,电子产品也跟着一直在迅猛的发展,手机已经从2g,3g变为4g的了,我们使用起来也是更加的顺畅了,那么大家知道我们的手机在使用的过程中突然没有了4g信号,这是什么原因?是我们手 ...

  9. Bluetooth Profile Specification之(HFP篇)4.2 免提控制之服务级别连接释放和登记状态传输、信号强度传输、漫游状态指示

    1.服务级别连接释放 发布服务级别连接的过程 断开服务水平连接应导致HF和AG之间相应的RFCOMM数据链路通道立即被删除.此外,由于删除了服务级别连接,因此必须删除现有的音频连接.可选择删除L2CA ...

最新文章

  1. linux 网络端口状态,Linux下用netstat查看网络状态、端口状态(转)
  2. 《高性能MySQL》の复制
  3. 基于Python的卷积神经网络和特征提取
  4. 贝塞尔曲线开发的艺术
  5. ASP.NET页面的字符编码设置
  6. 理想汽车已累计交付2万台 仅用时10个月
  7. 解决ScrollView嵌套RecyclerView出现item显示不全的问题
  8. 61单片机程序下载一闪而过,下载完成之后没有看到实验现象。
  9. Excel批量随机生成姓名
  10. 如何将PDF转换成xls格式的表格
  11. 理解Mach-O文件格式(1)
  12. [gdc13]古墓丽影DirectX11技术
  13. 【vue3】vue3+ts+vite项目设置路径别名
  14. 【perl】正则匹配中的括号套括号的套娃抓取规则
  15. 达摩院用128张GPU烧出“中文版GPT-3”,我试了下,这文风不是开往幼儿园的车…...
  16. HockeyKit框架介绍
  17. 面试官:反射都不会,还敢说自己会Java?
  18. SSRF漏洞介绍及利用
  19. 计算机辅助英语翻译专用术语,计算机辅助翻译 (CAT) 常用词汇表和术语
  20. 【动效设计】常见动效设计分门别类

热门文章

  1. 少壮不努力,ChatGPT来代替!
  2. lstm预测股票_股票相关性与lstm预测误差
  3. EXT4文件系统学习(六)USB3.0 XHCI内存卡Buffer I/O error问题-未解决
  4. 《巴黎协定》正式生效 新能源需核心竞争力
  5. 数据库 之数据库设计浅知识 -- 设计概述、概念结构设计(E-R模型概述)、逻辑结构设计(函数依赖和范式)、物理结构设计
  6. 苹果cms模板_苹果cms爱看模板有哪些?
  7. ZooKeeper之节点基本操作(一)
  8. python完成梅花易数排盘程序
  9. 如何使用Python实现易班自动报送
  10. MySQL数据库安装,配置My.ini文件