AWARE: Gyroscope
此传感器模块使我们能够从机载陀螺仪中检索数据。数据由 iOS Core Motion 库提供。请查看以下链接以获取详细信息。
陀螺仪测量设备绕空间轴旋转的速度。许多 iOS 设备都有一个三轴陀螺仪,在三个轴上提供旋转值。旋转值测量为每秒钟绕给定轴的弧度数。旋转值的正负取决于旋转的方向。
[苹果 | 获取原始陀螺仪事件] (https://developer.apple.com/documentation/coremotion/getting_raw_gyroscope_events) [苹果 | Core Motion | 原始陀螺仪数据 CMGyroData] (https://developer.apple.com/documentation/coremotion/cmgyrodata)
需求
iOS 10 或更高版本
安装
com.awareframework.ios.sensor.gyroscope 通过 CocoaPods 提供。
- 要安装它,只需将以下行添加到您的 Podfile 中
pod 'com.awareframework.ios.sensor.gyroscope'
- 将 com.awareframework.ios.sensor.gyroscope 库导入到源代码中。
import com_awareframework_ios_sensor_gyroscope
公共函数
陀螺仪传感器
init(config:GyroscopeSensor.Config?)
: 使用可选配置初始化陀螺仪传感器。start()
: 使用可选配置启动陀螺仪传感器。stop()
: 停止服务。
GyroscopeSensor.Config
用于保持传感器配置的类。
字段
sensorObserver: GyroscopeObserver
: 用于实时数据更新的回调。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
用于保存数据的数据库引擎。默认值 =Engine.DatabaseType.NONE
。dbPath: String
数据库路径。默认值 = "aware_gyroscope"。dbHost: String
同步数据库的宿主。默认值 =null
。
广播
已完成的广播
GyroscopeSensor.ACTION_AWARE_GYROSCOPE
在陀螺仪保存数据到数据库后触发。
接收到的广播
GyroscopeSensor.ACTION_AWARE_GYROSCOPE_START
:接收到的广播以启动传感器。GyroscopeSensor.ACTION_AWARE_GYROSCOPE_STOP
:接收到的广播以停止传感器。GyroscopeSensor.ACTION_AWARE_GYROSCOPE_SYNC
:接收到的广播以向主机发送同步尝试。GyroscopeSensor.ACTION_AWARE_GYROSCOPE_SET_LABEL
:接收到的广播以设置数据标签。标签预期在Intent extras的GyroscopeSensor.EXTRA_LABEL
字段中。
数据表示
陀螺仪数据
包含原始传感器数据。
字段 | 类型 | 描述 |
---|---|---|
x | Double | X轴的值。 |
y | Double | Y轴的值。 |
z | Double | Z轴的值。 |
label | String | 可定制的标签。对于数据校准或追踪有用。 |
deviceId | String | AWARE 设备 UUID |
label | String | 可定制的标签。对于数据校准或追踪有用。 |
timestamp | Int64 | Unixtime,自1970年以来毫秒数 |
timezone | Int | 设备的原始时区偏移 |
os | String | 设备的操作系统(例如 ios) |
示例用法
let gyroSensor = GyroscopeSensor.init(GyroscopeSensor.Config().apply{ config in
config.debug = true
config.sensorObserver = Observer()
})
gyroSensor?.start()
class Observer:GyroscopeObserver {
func onChanged(data: GyroscopeData) {
// Your code here...
}
}
作者
Yuuki Nishiyama, [email protected]
许可
版权(c)2021 AWARE移动上下文测量中间件/框架(http://www.awareframework.com)
根据Apache License,版本2.0(“许可”)授权;除非遵守该许可,否则不得使用此文件。您可以在以下位置获取该许可副本:
https://apache.ac.cn/licenses/LICENSE-2.0 除非法律规定或书面同意,否则在许可证下分发的软件按照“原样”基础分发,不提供任何明示或暗示保证或条件。有关许可证项下的具体许可权限和限制,请参阅许可证。