//开始传输config文件
-(void)Qlife_sendConfigStart:(NSString *)fileData{
//读取文件
NSError *error = nil;
NSString *str = [NSString stringWithContentsOfFile:fileData encoding:NSUTF8StringEncoding error:&error];
if (error != nil) {
NSLog(@"读取文件:%@", [error localizedDescription]);//将错误信息输出来
}
else{
NSLog(@"读取文件:%@",str);
}
NSString *config;
//1. 去除掉首尾的空白字符和换行字符
config = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//2. 去除掉其它位置的空白字符和换行字符
config = [config stringByReplacingOccurrencesOfString:@"\r" withString:@""];
config = [config stringByReplacingOccurrencesOfString:@"\n" withString:@""];
config = [config stringByReplacingOccurrencesOfString:@"\t" withString:@""];
config = [config stringByReplacingOccurrencesOfString:@" " withString:@""];// \s也是去空格
// NSLog(@"config:%@",config);
// 截取字符串
NSString *character1=[config substringWithRange:NSMakeRange(0,2)];
NSString *character2=[config substringWithRange:NSMakeRange(2,2)];
NSString *character3=[config substringWithRange:NSMakeRange(4,2)];
NSString *character4=[config substringWithRange:NSMakeRange(6,2)];
NSString *character5=[config substringWithRange:NSMakeRange(8,2)];
NSString *character6=[config substringWithRange:NSMakeRange(10,2)];
NSString *character7=[config substringWithRange:NSMakeRange(12,2)];
NSString *character8=[config substringWithRange:NSMakeRange(14,2)];
// //先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型
// unsigned long red = strtoul([b UTF8String],0,16);
// //strtoul如果传入的字符开头是“0x”,那么第三个参数是0,也是会转为十六进制的,这样写也可以:
// unsigned long red = strtoul([@"0x6587" UTF8String],0,0);
// 先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型
unsigned long supplement1 = strtoul([character1 UTF8String],0,16);
unsigned long supplement2 = strtoul([character2 UTF8String],0,16);
unsigned long supplement3 = strtoul([character3 UTF8String],0,16);
unsigned long supplement4 = strtoul([character4 UTF8String],0,16);
unsigned long supplement5 = strtoul([character5 UTF8String],0,16);
unsigned long supplement6 = strtoul([character6 UTF8String],0,16);
unsigned long supplement7 = strtoul([character7 UTF8String],0,16);
unsigned long supplement8 = strtoul([character8 UTF8String],0,16);
int i = 0;
char dataArr[14] = {0x00};
dataArr[i++] = 0x55;
dataArr[i++] = 0xAA;
dataArr[i++] = 0x0E;
dataArr[i++] = 0x72;
dataArr[i++] = supplement4;
dataArr[i++] = supplement3;
dataArr[i++] = supplement2;
dataArr[i++] = supplement1;
dataArr[i++] = supplement8;
dataArr[i++] = supplement7;
dataArr[i++] = supplement6;
dataArr[i++] = supplement5;
// dataArr[i++] = 0x55;
// dataArr[i++] = 0xAA;
// dataArr[i++] = 0x0E;
// dataArr[i++] = 0x72;
// dataArr[i++] = 0x7E;
// dataArr[i++] = 0xFF;
// dataArr[i++] = 0x7F;
// dataArr[i++] = 0xFF;
// dataArr[i++] = 0x00;
// dataArr[i++] = 0xDC;
// dataArr[i++] = 0x00;
// dataArr[i++] = 0x00;
//发送数据校验
uint asrsum=0;
for (int j=0; j<12;j++) {
asrsum+=(dataArr[j]&0xff);//求数组值之和
}
char high=asrsum>>8;//当brightsum=[0,65025]时,当brightsum=[0x00,0xff*0xff]时
char low=asrsum&0xff;//当brightsum=[0,65025]时,当brightsum=[0x00,0xff*0xff]时
dataArr[i++] = high;
dataArr[i++] = low;
NSData *data_config = [NSData dataWithBytes:dataArr length:14];
// NSLog(@"data_config:%@",data_config);
_busy = YES;
[self senddata:data_config];
}