Записать в файл данные акселерометра - PullRequest
1 голос
/ 14 июля 2010

Я бы хотел добавить в этот пример Apple [AccelerometerGraph] возможность сохранять данные в файле до тех пор, пока приложение не закроется.Без проблем с блокировкой и других дерьмовых проблем сбора данных в режиме реального времени.

Любая идея, пример или что-то, с чем может играть полу новичок?

Ответы [ 2 ]

2 голосов
/ 14 июля 2010

вы можете записать данные акселерометра в 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
}
0 голосов
/ 14 июля 2010

Если вы просто хотите просмотреть данные в том виде, в котором они есть, вы можете просто записать их на консоль.

В MainViewController.m, в акселерометре - (void): метод просто добавьте

[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
...