我正在研究一个使用 100hz 加速度计的 Ionic 项目。我需要将加速度计读数保存到文件中,并且我正在使用离子原生文件插件。我的问题 - 写入文件的时间比加速度计采样时间长,并且文件中的数据未按所需顺序写入(较新的数据在前一个有机会写入之前写入。
这是处理加速度计读取和写入本地文件的提供程序:`import {DeviceMotion, DeviceMotionAccelerationData} from
'@ionic-native/device-motion';
import {Subject} from "rxjs/Subject";
import {Observable} from "rxjs/Observable";
import {Subscription} from "rxjs/Subscription";
import {Http} from '@angular/http';
import {File} from '@ionic-native/file';
@Injectable()
export class DeviceMotionProvider {
accelerometerata$: Subject<DeviceMotionAccelerationData> = new Subject();
subscription: Subscription;
constructor(private deviceMotion: DeviceMotion, private http: Http,
private file: File) {
}
startAccelerometer() {
// Watch device acceleration
this.subscription = this.deviceMotion.watchAcceleration({frequency: 100})
.subscribe((acceleration: DeviceMotionAccelerationData) => {
this.accelerometerata$.next(acceleration);
this.file.writeFile(this.file.dataDirectory, 'flightData.txt', acceleration.timestamp + ',' +Math.sqrt(acceleration.x*acceleration.x+acceleration.y*acceleration.y+acceleration.z*acceleration.z)/10 + '\n' ,{ append:true})
});
}
getAccelerometerData(): Observable<DeviceMotionAccelerationData> {
return this.accelerometerata$.asObservable();
}
stopAccelerometer() {
this.subscription.unsubscribe();
}
}`
我找不到克服这个问题的正确方法。任何帮助将不胜感激。