记录到文件加速度计数据

时间:2010-07-14 02:46:17

标签: iphone logging accelerometer

我想添加一个这个Apple示例[AccelerometerGraph]将数据存储在文件中直到应用程序未关闭的能力。没有锁定问题和其他实时数据收集的蹩脚问题。

半新手可以玩的任何想法,样品或其他东西?

2 个答案:

答案 0 :(得分:2)

您可以将加速度计数据记录到NSMutableArray中,然后在应用程序关闭时将该数组写入文件:

[array writeToFile:DataPath atomically:YES];

只是想确保你不存储每一个条目,否则它会变得非常快。在

中检查加速对象中的时间戳
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration 

每隔几秒钟记录一次,具体取决于您运行它的时间。 (这种方法在没有限制它的情况下运行很长时间,或者进行一些其他数组操作以使整个数组在应用程序的整个生命周期内都不存在于内存中可能不明智)

快速阅读您撰写的文件。

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *DataPath = [documentsDirectory stringByAppendingPathComponent:@"SOMEFILENAME"];
    NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:DataPath];
if([array count]<1){
//do something with data
}

答案 1 :(得分:0)

如果您只是想要查看数据,您可以通过简单的方式将其记录到控制台。

在MainViewController.m中,在 - (void)accelerometer:方法中添加

[filtered addX:filter.x y:filter.y z:filter.z];  // this line is already there
NSLog(@"%f, %f, %f", acceleration.x, acceleration.y, acceleration.z);

然后,当您在设备上运行它时,打开调试器控制台,它将为您流出数据。这是我得到的:

2010-07-13 22:15:45.187 AccelerometerGraph[11241:307] 0.072449, -0.018112, -1.068619
2010-07-13 22:15:45.203 AccelerometerGraph[11241:307] 0.072449, -0.018112, -1.068619
2010-07-13 22:15:45.219 AccelerometerGraph[11241:307] 0.072449, 0.000000, -1.050507
2010-07-13 22:15:45.236 AccelerometerGraph[11241:307] 0.054337, -0.018112, -1.032394
2010-07-13 22:15:45.254 AccelerometerGraph[11241:307] 0.054337, -0.018112, -1.014282
2010-07-13 22:15:45.272 AccelerometerGraph[11241:307] 0.072449, -0.018112, -1.050507
2010-07-13 22:15:45.287 AccelerometerGraph[11241:307] 0.072449, -0.018112, -1.068619