aboutsummaryrefslogtreecommitdiff
path: root/zh-cn/devices/sensors/hal-interface.html
diff options
context:
space:
mode:
Diffstat (limited to 'zh-cn/devices/sensors/hal-interface.html')
-rw-r--r--zh-cn/devices/sensors/hal-interface.html12
1 files changed, 6 insertions, 6 deletions
diff --git a/zh-cn/devices/sensors/hal-interface.html b/zh-cn/devices/sensors/hal-interface.html
index aceead37..7496eeb7 100644
--- a/zh-cn/devices/sensors/hal-interface.html
+++ b/zh-cn/devices/sensors/hal-interface.html
@@ -49,7 +49,7 @@
<pre class="prettyprint">int (*activate)(struct sensors_poll_device_t *dev, int sensor_handle, int
enabled);</pre>
<p>激活或禁用传感器。</p>
-<p><code>sensor_handle</code> 是要激活/禁用的传感器的句柄。传感器的句柄由其 <code>handle</code> 结构的 <a href="#sensor_t">handle</a> 字段定义。</p>
+<p><code>sensor_handle</code> 是要激活/禁用的传感器的句柄。传感器的句柄由其 <a href="#sensor_t">sensor_t</a> 结构的 <code>handle</code> 字段定义。</p>
<p><code>enabled</code> 设为 1 时启用传感器,设为 0 时则停用传感器。</p>
<p>单次传感器在接收到事件后会自动自行禁用,并且必须仍接受通过调用 <code>activate(...,
enabled=0)</code> 进行禁用。</p>
@@ -131,7 +131,7 @@ int (*setDelay)(
<p>刷写异步发生(即该函数必须立即返回)。如果实现将一个 FIFO 用于多个传感器,则刷写该 FIFO,并且仅为指定传感器添加刷写完成事件。</p>
<p>如果指定传感器没有 FIFO(无法缓冲),或者如果 FIFO 在调用时为空,则 <code>flush</code> 仍必须操作成功并为该传感器发送刷写完成事件。这适用于除单次传感器以外的所有传感器。</p>
<p>当调用 <code>flush</code> 时,即使该传感器的 FIFO 中已经存在刷写事件,也必须另外创建一个刷写事件并将其添加到 FIFO 的末尾,并且必须刷写 FIFO。<code>flush</code> 调用的次数必须等于创建的刷写完成事件数。</p>
-<p><code>flush</code> 不适用于<a href="report-modes.html#one-shot">单次</a>传感器。如果 <code>sensor_handle</code> 指的是单次传感器,则 <code>flush</code> 必须返回 <code>-EINVAL</code>,并且不生成任何刷写完成元数据事件。</p>
+<p><code>flush</code> 不适用于<a href="report-modes.html#one-shot">单次</a>传感器。如果 <code>sensor_handle</code> 指向的是单次传感器,则 <code>flush</code> 必须返回 <code>-EINVAL</code>,并且不生成任何刷写完成元数据事件。</p>
<p>如果操作成功,该函数返回 0;如果指定的传感器是单次传感器或未启用,则返回 <code>-EINVAL</code>;其他情况,返回表示错误的负数。</p>
<h2 id="poll">poll()</h2>
<pre class="prettyprint">int (*poll)(struct sensors_poll_device_t *dev, sensors_event_t* data, int
@@ -147,9 +147,9 @@ int (*setDelay)(
<p>当传感器禁用时,将调用 <code>activate(..., enable=0)</code>。</p>
<p>在进行上述调用的同时,会反复调用 <code>poll</code> 函数来请求数据。甚至在没有传感器激活的情况下,也可以调用 <code>poll</code>。</p>
<h2 id="sensors_module_t">sensors_module_t</h2>
-<p><code>sensors_module_t</code> 是用于为传感器创建 Android 硬件模块的类型。HAL 的实现必须定义一个该类型的对象 <code>HAL_MODULE_INFO_SYM</code>,以暴露 <a href="#get_sensors_list_list">get_sensors_list</a> 函数。要了解详情,请参阅 <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h">sensors.h</a> 中关于 <code>sensors_module_t</code> 的定义和 <code>hw_module_t</code> 的定义。</p>
+<p><code>sensors_module_t</code> 是用于为传感器创建 Android 硬件模块的类型。HAL 的实现必须定义一个该类型的对象 <code>HAL_MODULE_INFO_SYM</code>,以暴露 <a href="#get_sensors_list_list">get_sensors_list</a> 函数。要了解详情,请参阅 <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h">sensors.h</a> 中 <code>sensors_module_t</code> 的定义以及 <code>hw_module_t</code> 的定义。</p>
<h2 id="sensors_poll_device_t_sensors_poll_device_1_t">sensors_poll_device_t/sensors_poll_device_1_t</h2>
-<p><code>sensors_poll_device_1_t</code> 包含上文定义的方法的剩余部分:<code>activate</code>、<code>batch</code>、<code>flush</code> 和 <code>poll</code>。其 <code>common</code> 字段(类型为 <a href="/devices/halref/structhw__device__t.html">hw_device_t</a>)可定义 HAL 的版本号。</p>
+<p><code>sensors_poll_device_1_t</code> 包含上文定义的方法的剩余部分:<code>activate</code>、<code>batch</code>、<code>flush</code> 和 <code>poll</code>。它的 <code>common</code> 字段(类型为 <a href="/devices/halref/structhw__device__t.html">hw_device_t</a>)可定义 HAL 的版本号。</p>
<h2 id="sensor_t">sensor_t</h2>
<p><code>sensor_t</code> 表示 <a href="index.html">Android 传感器</a>。以下是 sensor_t 的一些重要字段:</p>
<p><strong>name</strong>:表示传感器的用户可见字符串。该字符串通常包括底层传感器的部件名称、传感器的类型以及是否为唤醒传感器。例如,“LIS2HH12 Accelerometer”、“MAX21000 Uncalibrated Gyroscope”、“BMP280 Wake-up Barometer”、“MPU6515 Game Rotation Vector”。</p>
@@ -157,7 +157,7 @@ int (*setDelay)(
<p><strong>type</strong>:传感器的类型。要详细了解传感器类型的解释,请参阅<a href="index.html">什么是 Android 传感器?</a>; 要了解官方传感器类型,请参阅<a href="sensor-types.html">传感器类型</a>。对于非官方传感器类型,<code>type</code> 必须以 <code>SENSOR_TYPE_DEVICE_PRIVATE_BASE</code> 开头。</p>
<p><strong>stringType</strong>:传感器的类型(以字符串表示)。如果传感器为官方类型,则设置为 <code>SENSOR_STRING_TYPE_*</code>。如果传感器为制造商特定类型,<code>stringType</code> 必须以制造商的反向域名开头。<em></em>例如,由 Fictional-Company 的 Cool-product 团队定义的传感器(比如 unicorn 检测器)可以使用 <code>stringType=”com.fictional_company.cool_product.unicorn_detector”</code>。
<code>stringType</code> 用于唯一标识非官方传感器类型。要详细了解传感器类型和字符串类型,请参阅 <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/sensors.h">sensors.h</a>。</p>
-<p><strong>requiredPermission</strong>:代表应用要查看传感器、注册到传感器和接收传感器数据所必须具备的权限的字符串。空字符串表明应用不需要获取该传感器的任何访问权限。<a href="sensor-types.html#heart_rate">心率监测器</a>等传感器类型具有强制性的 <code>requiredPermission</code>。提供敏感用户信息(例如心率)的所有传感器必须受到权限保护。</p>
+<p><strong>requiredPermission</strong>:代表应用要查看传感器、注册到传感器和接收传感器数据所必须具备的权限的字符串。空字符串表明应用不需要获取该传感器的任何访问权限。部分传感器类型(例如<a href="sensor-types.html#heart_rate">心率监测器</a>)具有强制性的 <code>requiredPermission</code>。提供敏感用户信息(例如心率)的所有传感器必须受到权限保护。</p>
<p><strong>flags</strong>:传感器的标记,用于定义传感器的报告模式以及传感器是否为唤醒传感器。例如,对于单次唤醒传感器,标记为 <code>flags = SENSOR_FLAG_ONE_SHOT_MODE | SENSOR_FLAG_WAKE_UP</code>。当前版本的 HAL 中未使用的标记位必须等于 0。</p>
<p><strong>maxRange</strong>:传感器可报告的最大值,单位与已报告值单位相同。传感器必须能够报告 <code>[-maxRange; maxRange]</code> 范围内(未过载)的值。请注意,这意味着从常规意义上来说传感器的总范围是 <code>2*maxRange</code>。当传感器报告几条轴上的值时,该范围适用于每条轴。例如,“+/- 2g”加速度计会报告 <code>maxRange = 2*9.81 = 2g</code>。</p>
<p><strong>resolution</strong>:传感器可测量出的最小差值。该字段通常基于 <code>maxRange</code> 和测量值的位数计算得出。</p>
@@ -166,7 +166,7 @@ int (*setDelay)(
<p><strong>maxDelay</strong>:对于连续和变化模式传感器,指对应于传感器支持的最慢速率的采样周期(以微秒为单位)。要详细了解该值是如何使用的,请参阅 <a href="#sampling_period_ns">sampling_period_ns</a>。请注意,<code>maxDelay</code> 以微秒为单位,而 <code>sampling_period_ns</code> 以纳秒为单位。对于特殊和单次传感器,<code>maxDelay</code> 必须为 0。</p>
<p><strong>fifoReservedEventCount</strong>:硬件 FIFO 中为该传感器保留的事件数。如果该传感器有专属的 FIFO,则 <code>fifoReservedEventCount</code> 是该专属 FIFO 的大小。如果该 FIFO 与其他传感器共用,则 <code>fifoReservedEventCount</code> 是为该传感器保留的 FIFO 部分的大小。对于大多数共享 FIFO 的系统以及没有硬件 FIFO 的系统,该值为 0。</p>
<p><strong>fifoMaxEventCount</strong>:FIFO 中可为该传感器存储的最大事件数。该值总是大于或等于 <code>fifoReservedEventCount</code>。该值用于估计在假设不激活任何其他传感器的情况下,以特定速率注册到传感器时 FIFO 多快会被填满。对于没有硬件 FIFO 的系统,<code>fifoMaxEventCount</code> 为 0。要了解详情,请参阅<a href="batching.html">批量处理</a>。</p>
-<p>对于官方传感器类型的传感器,一些字段会被框架覆盖。例如,<a href="sensor-types.html#accelerometer">加速度计</a>传感器被强制使用连续报告模式,而<a href="sensor-types.html#heart_rate">心率</a>监测器被强制受 <code>SENSOR_PERMISSION_BODY_SENSORS</code> 权限的保护。</p>
+<p>对于官方传感器类型的传感器,一些字段会被框架覆盖。例如,<a href="sensor-types.html#accelerometer">加速度计</a>传感器被强制使用连续报告模式,而<a href="sensor-types.html#heart_rate">心率</a>监测器则被强制受 <code>SENSOR_PERMISSION_BODY_SENSORS</code> 权限的保护。</p>
<h2 id="sensors_event_t">sensors_event_t</h2>
<p>由 Android 传感器生成并通过 <a href="#poll">poll</a> 函数报告的传感器事件属于 <code>type sensors_event_t</code>。以下是 <code>sensors_event_t</code> 的一些重要字段:</p>
<p><strong>version</strong>:必须是 <code>sizeof(struct sensors_event_t)</code></p>