# Qualcomm 传感中枢 API

Qualcomm 传感中枢 (QSH) 接口可用于基于硬件、基于软件、预先存在的或任何其他符合 QSH 的传感器。QSH 框架在低功耗处理器上运行，并在应用处理器端提供 API 接口。这些 API 包括以下内容：

- 用于应用开发的 QSH 客户端 API 和各种功能 API。
- 用于在低功耗处理器上创建新传感器的传感器 API。

## 应用处理器 API

QSH 在应用处理器上提供各种功能 API，以满足不同传感器用例的特定需求。

### QSH 客户端 API

QSH 客户端 API 提供了一个接口，使客户端代码能够访问 QSH 功能并开发端到端传感器应用程序。QSH 支持以下 API：

`getSession()`

该 API 创建一个 `ISession` 的实例并返回指向该实例的指针。

**语法**

ISession* getSession();
    Copy to clipboard

**参数**

无。

**响应**

| **返回** | **说明** |
| --- | --- |
| `ISession*` | `ISession`：成功时<br><br><br>`nullptr`：失败时 |

`Open()`

此 API 启动使用 `getSession()` API 创建的客户端会话。`Open()` API 在客户端与 QSH 框架之间部署和建立通信。客户端只能对每个会话调用此函数一次。

**语法**

int open();
    Copy to clipboard

**参数**

无。

**响应**

| **返回** | **说明** |
| --- | --- |
| `int` | `0`：已成功打开会话<br><br><br>`-1`：失败时 |

`setCallBacks()`

对于指定的 SUID，此 API 允许用户为使用 `Open()` API 打开的会话中所收到的响应、错误和事件设置回调。此 API 通过作为参数传递给此 API 的回调函数注册 SUID。

要取消已注册 SUID 的回调函数，可将 `respCallBack`、`errorCallBack` 和 `eventCallBack` 三个回调函数均设置为 `nullptr`。对于任何未注册的 SUID，若为所有回调函数传入 `nullptr`，将会导致错误。

**语法**

virtual int setCallBacks(suid suid, respCallBack respCB, errorCallBack errorCB, eventCallBack eventCB) = 0;
    Copy to clipboard

**参数**

| **参数** | **名称** | **说明** |
| --- | --- | --- |
| `input` | `suid` | 正在为其设置回调函数的传感器的唯一 SUID。 |
| `input` | `respCB` | 响应回调函数。 |
| `input` | `errorCB` | 错误回调函数。 |
| `input` | `eventCB` | 事件回调函数。 |

Note

如果有未定义或不需要的回调函数，则客户端可以传递 `nullptr`。

**响应**

| **返回** | **说明** |
| --- | --- |
| `int` | `0`：成功时<br><br><br>`-1`：失败时，所有回调函数均是 `nullptr` （对于未注册的 SUID）。 |

`sendRequest()`

此 API 向 QSH 框架异步发送协议缓存 (proto) 编码的消息。此协议缓存编码的消息包含通过 SUID 标识的传感器的说明或配置设置。

对于指定的 SUID，如果用户使用 `setCallBacks()` API 设置回调指针，则会从 QSH 框架接收响应、事件或二者的组合。

**语法**

virtual int sendRequest(suid suid, string message) = 0;
    Copy to clipboard

**参数**

| **参数** | **名称** | **说明** |
| --- | --- | --- |
| `input` | `suid` | 将发送请求的传感器的唯一 SUID。 |
| `input` | `message` | 要发送的 proto 编码请求消息。 |

**响应**

| **返回** | **说明** |
| --- | --- |
| `int` | `0`：成功时<br><br><br>`-1`：失败时，由于以下原因之一：<br><ul class="simple"><br><li><p>用户尝试通过已关闭的会话发送请求</p></li><br><li><p>编码消息的大小超出允许的大小</p></li><br><li><p>由于通道相关问题导致发送消息失败</p></li><br></ul> |

`Close()`

此 API 关闭传感器会话，并终止客户端与 QSH 框架之间的通信。客户端必须在会话结束时调用此函数以释放资源并避免内存泄漏。

**语法**

void close();
    Copy to clipboard

**参数**

无。

**响应**

| **返回** | **说明** |
| --- | --- |
| `void` | 无 |

如需了解更多信息和示例代码，请参阅[使用 QSH 客户端 API 开发应用程序](https://docs.qualcomm.com/doc/80-70022-7SC/topic/sample1.html#sample1)。

### QSH 直接通道 API

QSH 直接通道 API 为高速率应用提供低延迟传感器数据通道。直接通道 API 使用 fastRPC 接口，绕过标准处理器间通信 (IPC) 机制以实现更快的通信。如需了解更多信息，请参阅 [Qualcomm 传感中枢 API](https://docs.qualcomm.com/bundle/resource/topics/80-70022-7A/qsh_api_reference.html)。

## 低功耗处理器 API

低功耗处理器 API 提供以下内容的权限：

- QSH 框架资源，如服务和工具。
- 核心功能，如诊断接口和定时器。

您可以使用低功耗处理器 API 创建符合 QSH 标准的算法和传感器驱动程序。如需了解更多信息，请参阅 [Qualcomm 传感中枢 API](https://docs.qualcomm.com/bundle/resource/topics/80-70022-7A/qsh_api_reference.html)。

Last Published: Nov 03, 2025

[Previous Topic
QSH 架构](https://docs.qualcomm.com/bundle/publicresource/80-70022-7SC/topics/architecture.md) [Next Topic
适用于应用程序和低功耗处理器的软件](https://docs.qualcomm.com/bundle/publicresource/80-70022-7SC/topics/software.md)