Журнал для регистрации данных акселерометра

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

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

1
задан iwasrobbed 14 July 2010 в 20:35
поделиться

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
}
2
ответ дан 2 September 2019 в 23:05
поделиться

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

В 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
0
ответ дан 2 September 2019 в 23:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: