SensorTag-iOS监测数据本地txt存储方案修改

来源:互联网 发布:知乎 中东地区植物 编辑:程序博客网 时间:2024/04/29 21:35

SensorTag-iOS监测数据本地txt存储方案修改
引子:
最近公司在研究关于TISensorTag CC2650相关开发板的相关套件。需要将测试数据储存下来,方便进行下一步研究。这边SensorTag-iOS源码github下载地址为:

https://github.com/JarvisW/SensorTag-iOS

思路:
这边需要将监测到的角速度,x、y、z,重力加速度x、y、z总共6个值进行存储。
1、存储文件txt命名用日期来存储。例如:20160330.txt。
2、每一个数据,存储一行,之间用“,”拼接。每条数据之后,再拼接一个日期“12:04:22”(时:分:秒)。
例如一条数据记录为:0.1,0.4,0.9,-0.7,-27.3,-5.4,11:17:34
3、SensorTag套件采集数据1S采集10次。
代码:
说明:代码修改的项目中的sensorTagMovementService.m文件

#pragma mark -拼接展示数据-(NSString *) calcValue:(NSData *) value {    char vals[value.length];    [value getBytes:vals length:value.length];    Point3D gyroPoint;    gyroPoint.x = ((float)((int16_t)((vals[0] & 0xff) | (((int16_t)vals[1] << 8) & 0xff00)))/ (float) 32768) * 255 * 1;    gyroPoint.y = ((float)((int16_t)((vals[2] & 0xff) | (((int16_t)vals[3] << 8) & 0xff00)))/ (float) 32768) * 255 * 1;    gyroPoint.z = ((float)((int16_t)((vals[4] & 0xff) | (((int16_t)vals[5] << 8) & 0xff00)))/ (float) 32768) * 255 * 1;    self.gyro = gyroPoint;    Point3D accPoint;    accPoint.x = (((float)((int16_t)((vals[6] & 0xff) | (((int16_t)vals[7] << 8) & 0xff00)))/ (float) 32768) * 8) * 1;    accPoint.y = (((float)((int16_t)((vals[8] & 0xff) | (((int16_t)vals[9] << 8) & 0xff00))) / (float) 32768) * 8) * 1;    accPoint.z = (((float)((int16_t)((vals[10] & 0xff) | (((int16_t)vals[11] << 8) & 0xff00)))/ (float) 32768) * 8) * 1;    self.acc = accPoint;    Point3D magPoint;    magPoint.x = (((float)((int16_t)((vals[12] & 0xff) | (((int16_t)vals[13] << 8) & 0xff00))) / (float) 32768) * 4912);    magPoint.y = (((float)((int16_t)((vals[14] & 0xff) | (((int16_t)vals[15] << 8) & 0xff00))) / (float) 32768) * 4912);    magPoint.z = (((float)((int16_t)((vals[16] & 0xff) | (((int16_t)vals[17] << 8) & 0xff00))) / (float) 32768) * 4912);    self.mag = magPoint;    //获取当前时间 拼接文件存储名字    NSDate * dateOfToday = [NSDate date];    NSCalendar *calendar = [NSCalendar currentCalendar];    NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;    NSDateComponents *dateComponent = [calendar components:unitFlags fromDate:dateOfToday];    int year = [dateComponent year];    int month = [dateComponent month];    int day = [dateComponent day];    NSString * stringOfToday = [NSString stringWithFormat:@"%d%02d%02d.txt",year,month,day];    //拼接存储数据  当独一条字符串信息拼接。如2,3,4,5,6,7    NSString * stringOfData = [NSString stringWithFormat:@"%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%02d:%02d:%02d\n",self.acc.x,self.acc.y,self.acc.z,self.gyro.x,self.gyro.y,self.gyro.z,[dateComponent hour],[dateComponent minute],[dateComponent second]];    //调用方法存入本地    [self saveToDocumentWithData:stringOfData NamedTo:stringOfToday];    return [NSString stringWithFormat:@"ACC : X: %+6.1f, Y: %+6.1f, Z: %+6.1f\nMAG : X: %+6.1f, Y: %+6.1f, Z: %+6.1f\nGYR : X: %+6.1f, Y: %+6.1f, Z: %+6.1f",self.acc.x,self.acc.y,self.acc.z,self.mag.x,self.mag.y,self.mag.z,self.gyro.x,self.gyro.y,self.gyro.z];}#pragma mark -将数据村粗在本地Document路径下-(void)saveToDocumentWithData:(NSString *)data NamedTo:(NSString *)name{    //错误信息    NSError *error;    // 创建文件管理器    NSFileManager *fileManager = [NSFileManager defaultManager];    //Documents: 最常用的目录,iTunes同步该应用时会同步此文件夹中的内容,适合存储重要数据。    NSString * path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;    //根据名字获取当前的文件  文件名字存储命名为:20160329.txt    NSString * filePath= [path                         stringByAppendingPathComponent:name];    if (![fileManager fileExistsAtPath:filePath])    {//如果不存在        NSLog(@"%@ is not exist",name);        //创建文件 方式一(创建之后,不能直接return,需要写内容,不然第一条数据没有存储)//        [fileManager createFileAtPath:name contents:nil attributes:nil];        //创建文件 方式二(写入文件),直接return出去        [data writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];        return ;    }    NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];    //将节点跳到文件的末尾    [fileHandle seekToEndOfFile];    //追加显示数据    [fileHandle writeData:[data dataUsingEncoding:NSUTF8StringEncoding]];    //关闭文件    [fileHandle closeFile];    //显示文件目录下有哪些文件    NSLog(@"Tjj显示文件目录下有哪些文件: %@",          [fileManager contentsOfDirectoryAtPath:path error:&error]);    //读取指定文件的内容(读取方式有两种)    NSData *fileData = [fileManager contentsAtPath:filePath];//filePath是包含完整路径的文件名//    或方式二直接用NSData 的类方法: dataWithContentOfPath//    NSData *fileData2 = [NSData dataWithContentsOfFile:filePath]; //方式二    NSString *aString = [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];    NSLog(@"Tjj读取指定文件中的内容:%@",aString);}

存储结果展示
存储的结果例如:20160330.txt
内容如下:

0.0,0.4,0.9,0.1,-2.2,-2.6,11:17:340.0,0.4,0.9,2.0,5.4,2.0,11:17:340.0,0.4,0.9,-2.7,1.1,-0.4,11:17:340.0,0.4,0.9,1.1,0.4,-0.8,11:17:340.0,0.4,0.9,0.5,1.5,-0.2,11:17:340.0,0.4,0.9,1.6,3.0,1.5,11:17:340.0,0.4,0.9,0.9,2.6,0.4,11:17:340.1,0.4,0.9,-0.7,-27.3,-5.4,11:17:340.0,0.4,0.9,5.2,-15.5,3.4,11:17:350.1,0.3,0.9,-3.7,1.3,2.6,11:17:350.1,0.3,0.9,4.5,-11.4,-1.1,11:17:350.1,0.4,0.9,-9.0,17.3,-4.2,11:17:350.0,0.4,0.8,6.1,-11.4,-6.4,11:17:350.1,0.4,0.9,1.8,-0.4,1.3,11:17:350.1,0.4,0.9,-0.1,-2.1,0.1,11:17:350.1,0.4,0.9,4.7,-2.6,-2.2,11:17:350.1,0.4,0.9,0.3,-1.7,-3.0,11:17:350.1,0.4,0.9,-0.7,-2.9,-2.8,11:17:350.1,0.4,0.9,-1.5,2.6,-0.3,11:17:360.1,0.4,0.9,-0.1,1.6,-0.1,11:17:360.1,0.4,0.9,3.1,3.4,-0.2,11:17:360.1,0.4,0.9,3.5,9.0,0.3,11:17:360.1,0.4,0.9,1.0,-0.9,1.0,11:17:360.1,0.4,0.9,2.4,1.8,3.2,11:17:360.1,0.4,0.9,2.9,-7.1,-4.9,11:17:360.1,0.4,0.8,-1.3,4.1,0.9,11:17:360.1,0.4,0.9,-0.4,3.0,0.0,11:17:360.1,0.4,0.9,5.6,0.4,-1.0,11:17:360.1,0.4,0.9,5.8,-1.9,-0.6,11:17:370.1,0.4,0.8,1.1,5.0,3.1,11:17:370.1,0.4,0.9,0.4,0.2,0.3,11:17:370.1,0.4,0.9,2.9,0.9,2.2,11:17:370.1,0.4,0.9,1.1,3.7,2.9,11:17:370.1,0.4,0.9,0.8,2.1,-0.2,11:17:370.1,0.4,0.9,-0.1,-0.7,-2.7,11:17:370.1,0.4,0.9,0.5,-0.6,1.8,11:17:370.1,0.4,0.9,2.3,2.2,-1.7,11:17:370.1,0.4,0.9,-0.6,-1.9,-0.3,11:17:370.1,0.4,0.9,-0.3,-0.7,-0.4,11:17:380.1,0.4,0.9,0.9,2.4,0.4,11:17:380.1,0.4,0.9,1.5,2.8,0.5,11:17:380.1,0.4,0.9,0.2,2.2,-0.4,11:17:380.1,0.4,0.9,1.2,1.0,-0.3,11:17:380.1,0.4,0.9,0.5,0.1,-1.2,11:17:380.1,0.4,0.9,1.5,1.1,-0.5,11:17:380.1,0.4,0.9,0.3,-0.5,-0.2,11:17:380.1,0.4,0.9,-1.5,-0.7,0.6,11:17:380.1,0.4,0.9,-0.5,-0.2,0.0,11:17:380.1,0.4,0.9,0.2,-0.5,-1.1,11:17:390.1,0.4,0.9,-0.4,1.7,0.5,11:17:390.1,0.4,0.9,0.1,0.8,0.3,11:17:390.1,0.4,0.9,-0.4,1.9,0.2,11:17:390.1,0.4,0.9,1.5,2.2,-0.1,11:17:390.1,0.4,0.9,1.4,3.3,0.6,11:17:390.1,0.4,0.9,0.9,1.3,0.6,11:17:390.1,0.4,0.8,0.8,1.0,0.2,11:17:390.1,0.4,0.9,0.1,1.4,-0.3,11:17:390.1,0.4,0.9,1.2,1.6,0.0,11:17:390.1,0.4,0.9,-0.3,2.2,0.9,11:17:400.1,0.4,0.9,1.0,0.6,0.4,11:17:400.1,0.4,0.9,0.4,0.5,0.2,11:17:400.1,0.4,0.9,0.9,0.9,0.3,11:17:400.1,0.4,0.9,1.1,0.5,-0.1,11:17:400.1,0.4,0.9,0.8,0.5,-0.1,11:17:400.1,0.4,0.9,0.0,-0.7,-0.3,11:17:400.1,0.4,0.9,0.2,0.2,-0.0,11:17:400.1,0.4,0.9,0.0,0.8,-0.5,11:17:400.1,0.4,0.9,-0.2,1.2,0.0,11:17:400.1,0.4,0.9,0.5,-0.2,0.0,11:17:410.1,0.4,0.9,-0.4,2.3,0.7,11:17:410.1,0.4,0.9,0.7,1.4,0.8,11:17:410.1,0.4,0.9,0.9,0.3,0.6,11:17:410.1,0.4,0.9,1.2,1.9,-0.9,11:17:410.1,0.4,0.9,2.8,-0.9,0.5,11:17:410.1,0.4,0.9,0.3,1.5,2.4,11:17:410.1,0.4,0.9,2.2,0.4,-0.4,11:17:410.1,0.4,0.9,1.0,0.6,1.0,11:17:410.1,0.4,0.8,-0.1,1.4,-0.4,11:17:410.1,0.4,0.9,0.4,0.3,-0.3,11:17:420.1,0.4,0.8,-0.8,1.4,0.7,11:17:420.1,0.4,0.8,0.6,-1.3,0.6,11:17:420.1,0.4,0.9,-0.5,3.1,0.1,11:17:420.1,0.4,0.8,0.9,0.2,0.9,11:17:420.1,0.4,0.9,2.6,0.1,0.1,11:17:420.1,0.4,0.9,0.2,4.0,-0.3,11:17:420.1,0.4,0.8,1.1,2.8,1.4,11:17:420.1,0.4,0.9,0.9,0.2,-2.1,11:17:420.1,0.4,0.8,-0.1,4.5,0.9,11:17:420.1,0.4,0.9,2.7,-1.9,-1.9,11:17:430.1,0.4,0.9,-1.3,4.5,-0.3,11:17:430.1,0.5,0.8,-0.4,0.6,2.1,11:17:430.1,0.4,0.9,-0.1,0.4,-2.1,11:17:430.1,0.4,0.8,-0.2,3.1,1.0,11:17:430.1,0.4,0.8,2.2,-1.4,-0.9,11:17:430.1,0.4,0.9,-0.4,2.5,-0.2,11:17:430.1,0.4,0.8,-0.3,1.6,1.3,11:17:430.1,0.4,0.9,2.0,-0.2,-0.6,11:17:430.1,0.4,0.9,-0.9,5.2,1.9,11:17:430.1,0.4,0.8,1.6,-0.4,0.1,11:17:440.1,0.4,0.9,-0.4,0.9,-0.5,11:17:440.1,0.4,0.8,-1.1,2.2,2.6,11:17:480.0,1.0,-0.4,255.0,242.3,14.3,11:17:480.4,0.7,-0.8,255.0,136.5,-49.3,11:17:480.5,0.4,-1.0,143.8,32.9,-57.3,11:17:480.3,0.4,-0.7,-255.0,78.0,-20.1,11:17:480.3,-1.0,0.5,-255.0,255.0,145.5,11:17:480.4,0.3,1.1,255.0,-53.7,59.1,11:17:480.8,1.1,-0.8,255.0,-105.1,255.0,11:17:480.4,-0.3,0.6,255.0,154.4,236.2,11:17:480.4,-0.8,0.4,-144.7,255.0,-255.0,11:17:49-1.2,0.2,0.9,-255.0,248.4,-255.0,11:17:49-0.7,0.0,0.3,164.0,-71.1,-204.9,11:17:49-0.4,1.0,0.2,255.0,-207.9,94.5,11:17:492.2,0.1,-2.2,255.0,-255.0,255.0,11:17:49-0.2,-1.0,-0.3,255.0,20.1,19.4,11:17:49-0.2,-0.0,0.6,-190.1,255.0,-255.0,11:17:49-1.4,0.3,1.2,-168.1,192.0,-255.0,11:17:49-1.0,0.7,0.7,180.4,-123.2,-255.0,11:17:490.2,1.8,-0.0,255.0,-160.4,200.6,11:17:491.6,-0.2,-2.8,255.0,175.3,255.0,11:17:50-0.1,-1.5,-0.3,183.8,40.1,-255.0,11:17:50-1.0,0.2,0.4,-2.3,128.9,-255.0,11:17:50-2.6,0.5,1.4,-70.2,-21.8,-255.0,11:17:50-1.6,1.1,0.3,255.0,-255.0,-255.0,11:17:500.8,2.5,-1.0,255.0,-40.2,255.0,11:17:500.9,0.3,-2.1,255.0,255.0,255.0,11:17:50-0.4,-0.4,0.0,131.1,132.0,-255.0,11:17:50-2.5,0.1,1.3,-71.9,127.9,-255.0,11:17:50-2.9,0.4,-0.4,148.9,-255.0,-255.0,11:17:50-0.9,4.8,-1.2,255.0,-209.6,-35.0,11:17:512.5,1.7,-2.2,255.0,197.0,255.0,11:17:510.5,0.8,-0.5,255.0,135.1,255.0,11:17:51-1.2,0.1,0.3,93.6,45.7,-255.0,11:17:51-3.7,-0.5,1.4,5.0,102.2,-255.0,11:17:51-1.4,0.5,0.3,255.0,-255.0,-114.2,11:17:511.4,1.6,-1.9,255.0,-216.2,255.0,11:17:51-0.3,-4.2,-1.7,255.0,-77.1,255.0,11:17:51-0.2,-0.2,-0.7,255.0,124.0,-255.0,11:17:51-2.5,0.2,1.7,-236.1,255.0,-255.0,11:17:51-2.4,-0.3,0.4,64.0,-44.8,-255.0,11:17:52-1.9,2.4,-0.0,255.0,-255.0,-255.0,11:17:521.2,1.6,-2.9,255.0,255.0,255.0,11:17:52-1.0,1.2,-0.9,255.0,255.0,255.0,11:17:52-0.5,-0.7,0.1,113.7,24.1,-255.0,11:17:52-4.3,1.0,1.6,51.6,193.2,-255.0,11:17:52-2.3,0.4,0.7,255.0,-255.0,40.9,11:17:521.5,-0.9,-2.9,255.0,-255.0,255.0,11:17:52-0.9,-1.0,-0.8,255.0,214.8,7.3,11:17:52-1.5,-0.6,-0.5,-104.1,255.0,-255.0,11:17:52-2.4,2.0,2.1,107.5,254.1,-255.0,11:17:53-1.4,0.6,0.7,126.3,-254.5,-238.0,11:17:53-0.2,1.3,0.5,5.5,-255.0,-255.0,11:17:53-0.1,1.7,-0.6,255.0,-255.0,255.0,11:17:531.0,0.0,-1.2,255.0,225.4,255.0,11:17:53-0.9,-1.1,0.1,116.5,206.0,-255.0,11:17:53-3.5,0.8,0.2,-87.6,255.0,-255.0,11:17:53-1.8,-0.1,0.4,255.0,-255.0,-125.1,11:17:532.1,2.0,-3.2,255.0,-255.0,255.0,11:17:531.6,-2.8,-2.8,255.0,32.3,113.2,11:17:530.2,-0.5,-1.3,255.0,185.8,-135.5,11:17:54-3.9,0.8,1.1,39.7,255.0,-255.0,11:17:54-1.9,1.2,-0.6,255.0,-255.0,-255.0,11:17:543.6,1.5,-3.3,255.0,-255.0,255.0,11:17:540.8,-1.9,-2.6,154.0,255.0,138.3,11:17:54-1.5,0.1,-0.6,255.0,255.0,-170.5,11:17:54-4.0,-0.4,0.7,255.0,124.4,-255.0,11:17:54-1.9,1.3,-0.4,255.0,-255.0,-113.4,11:17:540.8,1.8,-2.7,255.0,-255.0,255.0,11:17:540.8,0.3,-2.9,255.0,255.0,255.0,11:17:54-2.7,-0.0,-0.8,255.0,255.0,-131.5,11:17:55-3.6,1.3,0.9,255.0,-255.0,-255.0,11:17:55-0.5,5.7,-0.3,249.5,-255.0,-255.0,11:17:550.3,1.3,-1.4,159.5,-255.0,255.0,11:17:55-0.8,-0.9,-0.8,-117.9,255.0,255.0,11:17:55-2.1,-0.5,-0.8,255.0,144.1,-30.7,11:17:55-1.5,4.4,-0.4,96.1,-255.0,47.9,11:17:55-0.3,1.8,-3.5,-140.9,-255.0,255.0,11:17:55-1.3,0.3,-1.2,255.0,255.0,236.0,11:17:55-2.1,-0.8,-0.3,255.0,255.0,38.8,11:17:550.6,4.4,1.3,255.0,-255.0,162.4,11:17:56-2.2,2.3,-4.6,-255.0,-255.0,255.0,11:17:56-0.9,1.4,-1.7,175.2,255.0,167.0,11:17:56-0.2,-0.2,-1.4,98.3,255.0,111.9,11:17:56-3.1,0.1,1.2,255.0,-33.4,178.6,11:17:56-1.0,2.6,-1.4,39.0,-255.0,255.0,11:17:560.9,-0.4,-5.8,-42.1,81.8,255.0,11:17:56-0.1,1.0,-1.5,-188.3,255.0,255.0,11:17:56-1.7,-3.3,-0.6,255.0,97.5,76.7,11:17:56-1.1,2.2,-2.7,255.0,-255.0,-150.1,11:17:56-0.9,0.5,-4.5,-255.0,255.0,-225.7,11:17:57-0.7,1.4,-2.4,-255.0,255.0,255.0,11:17:57-1.1,-3.1,-1.9,215.5,255.0,187.0,11:17:57-1.9,1.0,-0.8,255.0,-255.0,-133.1,11:17:57-1.0,-0.2,-3.3,-255.0,242.6,255.0,11:17:570.4,1.2,-2.8,-255.0,255.0,255.0,11:17:57-1.2,-3.1,-1.9,-82.6,255.0,173.7,11:17:57-1.6,0.8,-0.9,255.0,-255.0,-255.0,11:17:572.7,0.1,-3.0,-255.0,255.0,-255.0,11:17:570.3,0.6,-1.6,-255.0,255.0,188.8,11:17:57-0.3,-2.4,-1.0,255.0,-255.0,-66.4,11:17:582.4,1.6,-4.5,255.0,-255.0,-119.8,11:17:58-0.9,2.6,1.0,-255.0,-51.7,243.5,11:17:58-0.5,-2.4,-3.3,-255.0,-255.0,33.1,11:17:58-0.6,0.2,-3.9,255.0,-255.0,-255.0,11:17:580.5,2.5,-1.4,255.0,255.0,-255.0,11:17:58-1.0,3.6,-0.1,-255.0,-255.0,-70.0,11:17:582.8,-2.1,-4.9,-231.0,-143.3,-235.6,11:17:590.0,0.7,-3.9,255.0,-174.8,-255.0,11:17:59-0.2,2.1,-2.8,255.0,255.0,-148.5,11:17:59-0.5,0.9,1.0,69.6,255.0,-138.0,11:17:59-2.4,1.2,1.4,-255.0,-255.0,-255.0,11:17:592.5,3.4,-0.6,-243.0,-255.0,-255.0,11:17:592.0,1.1,-2.8,255.0,-255.0,255.0,11:17:590.8,-0.6,-5.3,255.0,255.0,-255.0,11:17:59-0.7,1.0,0.9,222.3,255.0,-255.0,11:17:59-2.2,0.8,1.5,-61.7,-215.5,-255.0,11:18:00-2.0,4.0,-1.4,-121.1,-255.0,-255.0,11:18:00-0.3,2.7,0.7,159.2,-98.5,255.0,11:18:001.0,0.8,-0.4,255.0,120.2,255.0,11:18:00-0.5,1.1,0.7,255.0,255.0,255.0,11:18:00-0.7,-0.2,1.3,-245.9,-255.0,-178.8,11:18:000.6,3.1,-2.2,-255.0,-255.0,-255.0,11:18:000.1,0.2,-0.2,-250.2,129.0,-255.0,11:18:000.3,1.1,0.1,59.3,56.5,159.2,11:18:000.6,0.9,0.1,140.5,99.8,253.1,11:18:000.6,0.7,0.4,25.8,18.0,200.6,11:18:000.4,0.5,0.1,-255.0,-62.7,-90.4,11:18:010.5,-1.9,-0.5,-37.5,-242.4,-214.4,11:18:010.7,0.5,-3.7,255.0,-255.0,225.3,11:18:010.3,0.2,-1.9,-255.0,255.0,-255.0,11:18:01-1.4,-1.1,1.0,-255.0,255.0,-217.6,11:18:01-0.4,-0.2,0.3,255.0,-255.0,-81.4,11:18:010.8,0.1,-2.0,255.0,-255.0,255.0,11:18:010.8,-0.2,-1.7,-255.0,255.0,-252.2,11:18:01-0.9,-1.1,0.4,-228.1,255.0,-255.0,11:18:01-0.3,1.5,0.1,255.0,-145.3,-128.1,11:18:010.5,1.1,0.1,-48.9,-115.3,20.0,11:18:020.3,0.9,0.3,108.2,-50.1,177.2,11:18:02
0 0
原创粉丝点击