react-native-sensors - react-native-sensors 所有三个传感器读数
问题描述
这不是问题,而是问题。有没有办法一次从所有三个传感器(加速度计、陀螺仪、磁力计)获取数据,或者是否足以为所有三个相同的值设置更新间隔。像这样
setUpdateIntervalForType(SensorTypes.accelerometer, 100); setUpdateIntervalForType(SensorTypes.magenetometer, 100); setUpdateIntervalForType(SensorTypes.gyroscope, 100);
const subscription = accelerometer.subscribe(({ x, y, z, timestamp }) => console.log({ x, y, z, timestamp }) );
const subscription1 = gyroscope.subscribe(({ x, y, z, timestamp }) => console.log({ x, y, z, timestamp }) );
const subscription2 = magenetometer.subscribe(({ x, y, z, timestamp }) => console.log({ x, y, z, timestamp }) );
解决方案
是的,这些是 RxJS Observables,允许组合。
假设您希望得到这样的回复:
{
accelerometer: {x,y,z,timestamp},
gyroscope: {x,y,z,timestamp},
magnetometer: {x,y,z,timestamp}
}
如果你有所有数据,而不是部分数据,你只想在这个 observable 上发出。
一个实现如下所示:
import {
combineLatest
} from "rxjs";
import {
map
} from 'rxjs/operators';
import {
accelerometer,
magnetometer,
gyroscope
} from "react-native-sensors";
const combinedStream = combineLatest(
accelerometer,
magnetometer,
gyroscope
).pipe(
map(([accelerometerValue, magnetometerValue, gyroscopeValue]) => ({
accelerometer: accelerometerValue,
magnetometer: magnetometerValue,
gyroscope: gyroscopeValue
}))
)
推荐阅读
- python - 从 Pool.async_map 返回第一个非零结果
- docker - Quarkus Docker 使用 Jenkins DockerClientException:无法构建映像:复制失败:未指定源文件
- assembly - 汇编 - 循环中的 Printf 语句创建一个无限语句
- c# - 将连接字符串更改为相对路径后无法导入此数据库错误
- python - 如何使精灵在pygame中移动?
- syntax - OpenMP 结构化块在 fortran 中是什么意思?
- javascript - Google Scripts:获取第 n 个长度的数组 [ [x], [y] ] 以返回 x/y 值数组 [ [x1,y1], [x2,y2] 等]
- javascript - 如何将 JSON 属性数组转换为 node.js 中的字符串对象数组?
- java - 为文本文件中的伪代码构建 Big-O 运行时复杂性分析器的最佳方法是什么?
- c - C中带有while循环的多维数组