高通GAIA V3命令参考手册的研读学习(十三):GAIA通知

2024-02-01 08:36

本文主要是介绍高通GAIA V3命令参考手册的研读学习(十三):GAIA通知,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如前文《高通GAIA V3命令参考手册的研读学习(四)》所述,PDU一共有四种,前面已经讲了命令、回应以及错误码,现在来看最后一种:通知。

4. QTIL GAIA通知

通知发送的方向,是由设备发送到移动应用。

这些通常是由设备发送到移动应用程序的状态变化。 

表4-1列出的事件以及对应的通知代码。

表4-1通知事件码

事件

代码

描述

低阈值

0 x01

每当接收信号强度指示达到或低于预设阈值时发生。可以设置一个或两个阈值。每个阈值表示为一个以分贝毫瓦为单位的信号电平的八位字节,以二的补码形式表示。

高阈值

0 x02

每当接收信号强度指示上升到或高于预设阈值时发生。可以设置一个或两个阈值。

每个阈值表示为一个以分贝毫瓦为单位的信号电平的八位元,以二的补码形式表示。

电池电量低阈值

0 x03

当测量到的电池电压降至或低于预设阈值时发生。可以设置一个或两个阈值。每一个

阈值用无符号的16位毫伏数表示。

电池高阈值

0 x04

当测量到的电池电压上升到或高于预设阈值时发生。可以设置一个或两个阈值。每一个

阈值用无符号的16位毫伏数表示。

PIO改变

0 x06

当高通®BlueCore™技术硬件的其中一个数字输入发生变化时发生,例如由于按钮被按下或来自设备其他组件的信号。PIO事件的解释取决于应用程序。

电池充电

0x08

当设备硬件检测到电池充电完成时发生。

充电器连接

0 x09

当设备硬件检测到电池充电器连接或断开时发生。

CapacitiveSensor更新

0 x0a

当设备上的一个电容传感器检测到变化时发生。

用户操作

0 x0b

当检测到用户操作(例如长按按钮)时发生。

语音识别

0 x0c

当语音识别引擎检测到输入时发生。

DFU状态

0 x10

当设备固件升级进程进入新状态时发生。

4.1  QTIL GAIA 示例交换

以下是使用通知的示例:

示例中的QTIL GAIA数据包以十六进制形式显示,用冒号分隔报头、有效负载和校验。

示例一:请求低电量通知

假如希望设备里的电池电压降至3.6 V和3.5 V时,能够通知主机。那么首先主机要先发一个如下的Register notification命令先在设备上注册好或者说设定好。

Ff 01 00 05 00 00 a 40 01 :03 0e 10 0d ac :

示例请求描述:

■  0xff:帧开始

■  0x01: QTIL GAIA协议版本1

■  0x00:表示无标志

■  0x05:有效载荷长度(5)

■  0x000a: Vendor ID (CSR)

■  0x4001: Command ID (Register Notification)

■  0x03:事件类型(Battery Low Threshold) (对应上面表4-1里列的事件代码)

■  0x0e10:电池电量(3600mv)

■  0x0dac:电池电量(3500mv)

设备在收到上述命令后,典型的回复是:

Ff 01 00 02 00 0a c0 01:00 03: 35

有载负载也就是两个冒号中的部分就表示:“Battery Low Threshold”事件(0x03)成功(0x00)。

这样设置以后,当设备测量到的电池电压等于或低于配置的阈值时,设备就会发送通知给主机。

图4-1电池阈值提示

设备周期性采样其电池电压,在t1时刻发送:

Ff 01 00 03 00 0a 40 03: 03 03 d f1:

这表明事件0x03(电池低阈值)已经在0x0df1 (3569 mV)级别发生。 主机在收到该通知后,应通过以下方式确认收到通知:

Ff 01 00 02 00 0a c0 03: 00 03:

当电压低于设定的阈值时,设备在t2、t3和t4时刻发送进一步的通知。

示例二:取消电量不足通知

如果设备一直发送低电通知也麻烦,主机也可以主动取消或者让设备停止发送通知。

主机发送的取消低电量通知:

Ff 01 00 01 00 00 a 40 02:03:

取消电池低阈值事件(0x03)的通知(0x4002)。

设备通过以下方式进行确认:

Ff 01 00 02 00 00 a c 00 02 00 03:

表示设备成功(0x00)取消事件0x03。

示例三:请求RSSI低阈值通知

要设置接收信号强度指示下降到- 50dbm的通知,主机发送,例如:

Ff 01 00 02 00 00 a 40 01:01 ce:

这请求0xce (-50 dBm)级别的事件0x01 (RSSI低阈值)通知。

设备用以下命令确认请求:

Ff 01 00 02 00 00 a c 00 01: 00 01;

如果RSSI稍后测量,发现RSSI已经低到-54 dBm处,则设备发送:

Ff 01 00 02 00 00 a 40 03: 01 ca:

这表明事件0x01 (RSSI低阈值)在0xca (-54 dBm)级别发生。

主机通过发送:

Ff 01 00 02 00 00 a c 00 03: 00 01

表示RSSI低阈值事件(0x01)已经被成功收到,处理成功(0x00)。

5  QTIL GAIA供应商扩展

QTIL GAIA包中的供应商Id字段允许添加新命令,而不会与现有或未来的QTIL定义的命令或其他供应商的命令冲突。(所以我们公司就根据这个规则,自定制了一些适应我们的APP功能的命令)

当设备接收到正确帧的QTIL GAIA数据包,该数据包具有供应商Id而不是QTIL的Id时,该数据包将被转发到设备上供应商自己的代码。 然后,供应商的代码应该对该命令进行操作,并以QTIL GAIA格式返回结果。

高通的软件开发工具包提供了编写供应商特定代码的工具,包括用于创建和交换适当框架的QTIL GAIA数据包的函数库。

这篇关于高通GAIA V3命令参考手册的研读学习(十三):GAIA通知的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666700

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个