将用户加速从iPhone devieMotion保存到文件文本

时间:2012-12-20 16:27:47

标签: iphone xcode accelerometer

我正在使用deviceMotion获取useracceleration(x, y, z)。我的目标是创建一个文件文本,在每次迭代中,我的应用程序将3个组件连续写入。

我正在使用MotionGraphs代码示例。

怎么可能 - 直接或者必须先创建一个数组? 这个数组;是NSMutableArray还是NSM​​utableNumber?

我一直在寻找这个问题而且我迷路了。 : - (

我不是Objective-C专家,但是我记得在我打开文件的Pascal代码,然后我在每次迭代中编写,但我检查过:编程已经改变了。

一开始我们没有考虑不同的过滤器或歧视窗口。对他们来说,我已经实现了飞思卡尔程序。我只是想使用deviceMotion userAcceleration来保存加速度计数据/来存储来自加速度计的数据。

    float minX = 1.0f;

    float minY = 1.0f;

    float minZ = 1.0f;

    NSMutableArray *container = [[NSMutableArray alloc] init];

    -(void)startUpdatesWithSliderValue:(int)sliderValue
    {

        NSTimeInterval delta = 0.005;

        NSTimeInterval updateInterval = deviceMotionMin + delta * sliderValue;

        CMMotionManager *mManager = [(APLAppDelegate *)[[UIApplication sharedApplication] delegate] sharedManager];

        APLDeviceMotionGraphViewController * __weak weakSelf = self;

        [container addObject:[NSNumber numberWithFloat:deviceMotion.userAcceleration.x]];

        [container addObject:[NSNumber numberWithFloat:deviceMotion.userAcceleration.y]];

        [container addObject:[NSNumber numberWithFloat:deviceMotion.userAcceleration.z]];
    }

//Finally we have to dump data to filetext, this is I don´t know correctly.

1 个答案:

答案 0 :(得分:1)

1 创建NSMutableArray * container = [[NSMutableArray alloc] init];成为你的容器。

2 在用于确定检测运动的Accelerometer委托方法中,确保为3轴中的每一个设置最小值。例如float min_X = 1.0f; float min_y = 1.0f; float min_Z = 1.0f

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {

}

3 使用简单过滤器逻辑,如下所示:(请记住,加速度最大值为+ - 2.3g,因此需要考虑正负阈值。

if ((acceleration.x > min_X || acceleration.x < -min_X) && (Y's..) && (Z's...) ) {

[container addObject:[NSNumber numberWithFloat:acceleration.x]];
[container addObject:[NSNumber numberWithFloat:acceleration.y]];
[container addObject:[NSNumber numberWithFloat:acceleration.z]];

}

4 数组应该以三个为一组(x,y,z)填充NSNumbers。

5 需要过滤器,否则加速度计可以选择只是坐在桌子上的小振动。


警告:阵列将快速填满,因此请根据您想要记录数据的时间将采样率设置为可接受的范围。