# 接口

Source: [https://docs.qualcomm.com/doc/80-70014-7Y/topic/qsh_api_reference.html](https://docs.qualcomm.com/doc/80-70014-7Y/topic/qsh_api_reference.html)

重要的 QSH 函数、类、方法和数据结构是此处描述的几个 QSH 接口。这些 QSH 接口可用于任何类型的基于硬件、基于软件、预先存在的或任何其他符合 QSH 标准的传感器。

QSH 框架在低功耗处理器上运行，并在应用处理器上公开 API。QSH 客户端 API 用于应用程序，QSH 传感器 API 用于在低功耗处理器上开发新传感器。

## 应用处理器的 QSH 客户端 API

Source: [https://docs.qualcomm.com/doc/80-70014-7Y/topic/qsh_api_reference.html](https://docs.qualcomm.com/doc/80-70014-7Y/topic/qsh_api_reference.html)

QSH API 为客户端代码提供了一个简单易用的接口，该接口支持 QSH 功能并开发端到端传感器用例。QSH 支持以下 API：

**getSession()**

此 API 创建一个会话实例并返回指向该实例的指针。成功后，该函数将返回指向表示已创建会话的 `ISession` 对象的指针。失败时，将返回 `nullptr`。

**语法**

    ISession* getSession();Copy to clipboard

**参数**

无。

**响应**

| **返回结果** | **说明** |
| --- | --- |
| `ISession*` | `ISession*`：成功后的目标<br><br><br>                                <br>`-nullptr`：失败时 |

**Open()**

此 API 打开会话实例，建立并初始化客户端和 QSH 框架之间的通信。对于给定会话，客户端只能调用此函数一次。如果会话成功打开，则该函数返回 `0`，如果出现错误，则返回 `-1`。

**语法**

    int open();Copy to clipboard

**参数**

无。

**响应**

| **返回结果** | **说明** |
| --- | --- |
| `int` | `0`：成功时<br><br><br>                                <br>`-1`：失败时 |

**Close()**

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

**语法**

    void close();Copy to clipboard

**参数**

无。

**响应**

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

**setCallBacks()**

此 API 设置给定 SUID 的回调。客户端只能对 SUID 调用此函数一次。如果回调指针已注册到给定的 SUID，则会使用新的回调进行更新。如果所有回调指针都为 null，并且给定的 SUID 已注册，则该 SUID 已取消注册。

**语法**

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

**参数**

| **参数** | **名称** | **说明** |
| --- | --- | --- |
| `input` | `suid` | 要进行回调设置的 SUID。 |
| `input` | `respCB` | 响应回调指针是必需参数。如果客户端不需要任何响应回调，则可以传递 `nullptr`。 |
| `input` | `errorCB` | 错误回调指针是必需参数。如果客户端不需要任何错误回调，则可以传递 `nullptr`。 |
| `input` | `eventCB` | 事件回调指针是必需参数。如果客户端不需要任何事件回调，则可以传递 `nullptr`。 |

**响应**

| **返回结果** | **说明** |
| --- | --- |
| `int` | `0`：成功时<br><br><br>                                <br>`-1`：失败时 |

**sendRequest()**

此 API 向 QSH 框架发送协议缓冲区 (proto) 编码的消息。此 API 与传感器通信，并允许应用程序发送特定请求并从 QSH 框架接收数据。此消息包含 SUID 标识的传感器的说明或配置设置。客户端必须对给定 SUID 的 proto 消息进行编码。

**语法**

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

**参数**

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

**响应**

| **返回结果** | **说明** |
| --- | --- |
| `int` | `0`：成功时<br><br><br>                                <br>`-1`：失败时 |

有关详细信息和示例代码，参见[示例](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-7/samples.html)。

## 低功耗处理器 API

Source: [https://docs.qualcomm.com/doc/80-70014-7Y/topic/qsh_api_reference.html](https://docs.qualcomm.com/doc/80-70014-7Y/topic/qsh_api_reference.html)

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

- QSH 框架资源，例如服务和实用工具
- 核心功能，如诊断接口和计时器

您可以使用低功耗处理器 API 创建符合 QSH 标准的算法和传感器驱动程序。此信息目前可供对 Qualcomm Linux 附带的专有软件具有完全访问权限的用户使用。有关详细信息，参见 [Qualcomm Linux Sensors Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70014-7A/overview.html) 中的*接口*。
Note: [Qualcomm Linux Sensors Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70014-7A/overview.html) 仅供授权用户访问。

Last Published: Aug 20, 2024

[Previous Topic
架构](https://docs.qualcomm.com/bundle/publicresource/80-70014-7Y/topics/architecture.md) [Next Topic
软件](https://docs.qualcomm.com/bundle/publicresource/80-70014-7Y/topics/software.md)