com.awareframework.ios.sensor.gravity 0.5.0

com.awareframework.ios.sensor.gravity 0.5.0

tetujinyuuki.nishiyama 维护。



  • 作者
  • Yuuki Nishiyama

AWARE: 重力

CI Status Version License Platform

此传感器模块允许我们访问当前的 重力向量 数据。用设备参考系表示的重力加速度向量。此外,设备的总加速度等于重力加上用户施加给设备的加速度(用户加速度)。数据由 Core Motion 库中的 CMDeviceMotion 提供。请查看以下链接以获取详细信息。

Apple | 获取处理后的设备运动数据

Apple | CMDeviceMotion | 重力

要求

iOS 10 或更高版本

安装

com.awareframework.ios.sensor.gravity 可通过 CocoaPods 获取。

  1. 要安装它,只需将以下行添加到您的 Podfile 中:
pod 'com.awareframework.ios.sensor.gravity'
  1. 导入 com.awareframework.ios.sensor.gravity 库到您的源代码中。
import com_awareframework_ios_sensor_gravity

公开函数

重力传感器

  • init(config:GravitySensor.Config?) : 初始化重力传感器,可带可选配置。
  • start(): 以可选配置启动陀螺仪传感器。
  • stop(): 停止服务。

GravitySensor.Config

包含传感器配置的类。

Fields

  • sensorObserver: GravityObserver: 实时数据更新的回调。
  • frequency: Int: 每秒采集的数据样本(Hz)。(默认 = 5)
  • period: Double: 保存数据的时间周期(分钟)。(默认 = 1)
  • threshold: Double: 如果设置,当值的变化小于设定的值时,不记录连续的点。
  • enabled: Boolean 传感器是否启用。 (默认 = false)
  • debug: Boolean 启用/禁用将日志记录到 Xcode 控制台。 (默认 = false)
  • label: String 数据的标签。 (默认 = "")
  • deviceId: String 将关联事件和传感器的设备 ID。 (默认 = "")
  • dbEncryptionKey 数据库的加密密钥。 (默认 = null)
  • dbType: Engine 用于保存数据的 db 引擎。 (默认 = Engine.DatabaseType.NONE)
  • dbPath: String 数据库的路径。 (默认 = "aware_gravity")
  • dbHost: String 同步数据库的主机。 (默认 = null)

广播

已发布的广播

  • GravitySensor.ACTION_AWARE_GYROSCOPE 在陀螺仪在周期结束后将数据保存到数据库时触发。

接收到的广播

  • GravitySensor.ACTION_AWARE_GRAVITY_START:收到启动传感器的广播。
  • GravitySensor.ACTION_AWARE_GRAVITY_STOP:收到停止传感器的广播。
  • GravitySensor.ACTION_AWARE_GRAVITY_SYNC:收到发送同步尝试到主机的广播。
  • GravitySensor.ACTION_AWARE_GRAVITY_SET_LABEL:收到设置数据标签的广播。标签应在意图额外信息的 GravitySensor.EXTRA_LABEL 字段中。

数据表示

重力数据

包含原始传感器数据。

字段 类型 描述
x Double X轴加速度,单位是G(重力加速度)。
y Double Y轴加速度,单位是G(重力加速度)。
z Double Z轴加速度,单位是G(重力加速度)。
label String 可自定义的标签。用于数据校准或追踪
deviceId String AWARE设备UUID
label String 可自定义的标签。用于数据校准或追踪
timestamp Int64 unixtime自1970年以来的毫秒数
timezone Int 设备原始时区偏移
os String 设备的操作系统(例如:ios)

示例用法

var gravitySensor = GravitySensor.init(GravitySensor.Config().apply{config in
    config.debug = true
    config.dbType = .REALM
    config.sensorObserver = Observer()
})
gravitySensor.start()
class Observer:GravityObserver{
    func onDataChanged(data: GravityData) {
        // Your code here..
    }
}

作者

Yuuki Nishiyama, [email protected]

许可证

版权所有 (c) 2021 AWARE 移动上下文仪器中间件/框架 (http://www.awareframework.com)

遵循 Apache 许可协议,版本 2.0 ("许可协议");除非您遵守许可协议,否则不得使用此文件。您可以在以下位置获得许可协议的副本:

https://apache.ac.cn/licenses/LICENSE-2.0 除非法律要求或您同意书面,否则在许可协议下分发的软件按“原样”分发,不提供任何形式的保证或条件,无论是明示的还是暗示的。有关许可协议中规定允许的权利和限制范围,请参阅许可协议。