// // DeviceCommunicateDataUnity.m // Ifish // // Created by imac on 16/1/7. // Copyright © 2016年 imac. All rights reserved. // #import "DeviceCommunicateDataUnity.h" #import "AppDelegate.h" #define LIGHT1_TAG 201 #define LIGHT2_TAG 202 #define PUMP_TAG 203 #define TWOC_PUMP 210 #define TWOC_LIGHT 211 #define TWOC_LIGHT2 212 #import "manulswitchMSModel.h" #import "Socketsingleton.h" @implementation DeviceCommunicateDataUnity //99字节三控返回数据解析 三控 6定时器 +(void)readSoketbackMassageOfThreeControlData:(NSData*)data WithModel:(BackmassegeModel*)backModel{ //backModel=[[BackmassegeModel alloc]init]; NSString*totalString=[dataContorl dataToHexString:data];// 转十六进制 backModel.yunxingmoshi=[totalString substringWithRange:NSMakeRange(30, 2)]; backModel.light1=[totalString substringWithRange:NSMakeRange(32, 4)]; backModel.light2=[totalString substringWithRange:NSMakeRange(36, 4)]; backModel.pump=[totalString substringWithRange:NSMakeRange(40, 4)]; backModel.timer1=[totalString substringWithRange:NSMakeRange(52,12)]; backModel.timer2=[totalString substringWithRange:NSMakeRange(64, 12)]; backModel.timer3=[totalString substringWithRange:NSMakeRange(76, 12)]; backModel.timer4=[totalString substringWithRange:NSMakeRange(88, 12)]; backModel.timer5=[totalString substringWithRange:NSMakeRange(100, 12)]; backModel.timer6=[totalString substringWithRange:NSMakeRange(112, 12)]; backModel.timer7=[totalString substringWithRange:NSMakeRange(124, 12)]; backModel.timer8=[totalString substringWithRange:NSMakeRange(136, 12)]; backModel.timer9=[totalString substringWithRange:NSMakeRange(148, 12)]; backModel.timer10=[totalString substringWithRange:NSMakeRange(160, 12)]; backModel.wendu=[totalString substringWithRange:NSMakeRange(172, 4)];//16进制型 backModel.Ph=[totalString substringWithRange:NSMakeRange(176, 4)]; backModel.brightness=[totalString substringWithRange:NSMakeRange(180, 2)]; backModel.tankLight=[totalString substringWithRange:NSMakeRange(182, 2)]; //backModel.shidu=[totalString substringWithRange:NSMakeRange(180, 4)]; backModel.baojingSwitch=[totalString substringWithRange:NSMakeRange(184, 2)]; backModel.miniTp=[totalString substringWithRange:NSMakeRange(186, 4)]; backModel.maxTp=[totalString substringWithRange:NSMakeRange(190, 4)]; //实施更新数据 保存 [[DataCenter defaultDtacenter] setValue:backModel forKey:@"DeviceBackInfo"]; } //71字节 返回数据解析 +(void)readSoketThreeControlBackMassageData:(NSData*)data WithModel:(BackmassegeModel*)backModel{ NSString*totalString=[dataContorl dataToHexString:data];// 转十六进制 backModel.yunxingmoshi=[totalString substringWithRange:NSMakeRange(30, 2)]; backModel.light1=[totalString substringWithRange:NSMakeRange(32, 4)]; backModel.light2=[totalString substringWithRange:NSMakeRange(36, 4)]; backModel.pump=[totalString substringWithRange:NSMakeRange(40, 4)]; backModel.timer1=[totalString substringWithRange:NSMakeRange(44,12)]; backModel.timer2=[totalString substringWithRange:NSMakeRange(56, 12)]; backModel.timer3=[totalString substringWithRange:NSMakeRange(68, 12)]; backModel.timer4=[totalString substringWithRange:NSMakeRange(80, 12)]; backModel.timer5=[totalString substringWithRange:NSMakeRange(92, 12)]; backModel.timer6=[totalString substringWithRange:NSMakeRange(104, 12)]; backModel.wendu=[totalString substringWithRange:NSMakeRange(116, 4)];//16进制型 backModel.Ph=[totalString substringWithRange:NSMakeRange(120, 4)]; backModel.brightness=[totalString substringWithRange:NSMakeRange(124, 2)]; backModel.tankLight=[totalString substringWithRange:NSMakeRange(126, 2)]; //backModel.shidu=[totalString substringWithRange:NSMakeRange(124, 4)]; backModel.baojingSwitch=[totalString substringWithRange:NSMakeRange(128, 2)]; backModel.miniTp=[totalString substringWithRange:NSMakeRange(130, 4)]; backModel.maxTp=[totalString substringWithRange:NSMakeRange(134, 4)]; //实施更新数据 保存 [[DataCenter defaultDtacenter]setValue:backModel forKey:@"DeviceBackInfo"]; } +(void)resetThreeControlButtonState:(UIButton*)light1 addlight2:(UIButton*)light2 addpump:(UIButton*)pump withBackModel:(BackmassegeModel*)backModel{ //灯一 NSString*stateString1=[backModel.light1 substringWithRange:NSMakeRange(2, 2)]; if ([stateString1 isEqualToString:@"01"]) { [light1 setImage:[UIImage imageNamed:@"PFLight1_on.png"] forState:UIControlStateNormal]; light1.selected=YES; }else{ [light1 setImage:[UIImage imageNamed:@"PFLight1_off.png"] forState:UIControlStateNormal]; light1.selected=NO; } NSString*stateString2=[backModel.light2 substringWithRange:NSMakeRange(2, 2)];// 灯二 if ([stateString2 isEqualToString:@"01"]) { [light2 setImage:[UIImage imageNamed:@"PFLight1_on.png"] forState:UIControlStateNormal]; light2.selected=YES; }else{ [light2 setImage:[UIImage imageNamed:@"PFLight1_off.png"] forState:UIControlStateNormal]; light2.selected=NO; } // 水泵 NSString*stateString3=[backModel.pump substringWithRange:NSMakeRange(2, 2)]; if ([stateString3 isEqualToString:@"01"]) { [pump setImage:[UIImage imageNamed:@"ChongLang_on.png"] forState:UIControlStateNormal]; pump.selected=YES; }else{ pump.selected=NO; [pump setImage:[UIImage imageNamed:@"ChongLang_off.png"] forState:UIControlStateNormal]; } } +(void)resettwoControlbutton:(UIButton*)light1 addpump:(UIButton*)light2 withbackmsgModel:(BackmassegeModel*)backModel { // 灯 NSString*stateString1=[backModel.light1 substringWithRange:NSMakeRange(2, 2)]; if ([stateString1 isEqualToString:@"01"]) { [light1 setImage:[UIImage imageNamed:@"PFLight1_on.png"] forState:UIControlStateNormal]; light1.selected=YES; }else{ [light1 setImage:[UIImage imageNamed:@"PFLight1_off.png"] forState:UIControlStateNormal]; light1.selected=NO; } // 水泵 NSString*stateString2=[backModel.light2 substringWithRange:NSMakeRange(2, 2)]; if ([stateString2 isEqualToString:@"01"]) { [light2 setImage:[UIImage imageNamed:@"ChongLang_on.png"] forState:UIControlStateNormal]; light2.selected=YES; }else{ [light2 setImage:[UIImage imageNamed:@"ChongLang_off.png"] forState:UIControlStateNormal]; light2.selected=NO; } } +(NSArray*)refreshThreeControlTimerAddTemperatureWithBackMassageModel:(BackmassegeModel*)backModel{ NSArray*timerArr=[[NSArray alloc]init]; NSString*low=backModel.miniTp; NSString*heigh=backModel.maxTp; UInt64 lowten=[dataContorl hexToTen:low]; UInt64 heighten=[dataContorl hexToTen:heigh]; float formatlow=lowten/10; float formatheigh=heighten/10; NSString*wenduString=[NSString stringWithFormat:@"%.0f~%.0f°C",formatlow,formatheigh]; // 十六进制 NSString*startTimeHex1=[backModel.timer1 substringWithRange:NSMakeRange(4, 4)]; NSString*endTimeHex1=[backModel.timer1 substringWithRange:NSMakeRange(8, 4)]; if (!backModel.timer1) { return nil; } // 十进制 NSString*startTimeTen1=[dataContorl hexStringToDateString:startTimeHex1]; NSString*endTimeTen1=[dataContorl hexStringToDateString:endTimeHex1]; NSString*setTim1=[NSString stringWithFormat:@"%@~%@",startTimeTen1,endTimeTen1]; // 十六进制 NSString*startTimeHex2=[backModel.timer2 substringWithRange:NSMakeRange(4, 4)]; NSString*endTimeHex2=[backModel.timer2 substringWithRange:NSMakeRange(8, 4)]; // 十进制 NSString*startTimeTen2=[dataContorl hexStringToDateString:startTimeHex2]; NSString*endTimeTen2=[dataContorl hexStringToDateString:endTimeHex2]; NSString*setTim2=[NSString stringWithFormat:@"%@~%@",startTimeTen2,endTimeTen2]; // 十六进制 NSString*startTimeHex3=[backModel.timer3 substringWithRange:NSMakeRange(4, 4)]; NSString*endTimeHex3=[backModel.timer3 substringWithRange:NSMakeRange(8, 4)]; // 十进制 NSString*startTimeTen3=[dataContorl hexStringToDateString:startTimeHex3]; NSString*endTimeTen3=[dataContorl hexStringToDateString:endTimeHex3]; NSString*setTim3=[NSString stringWithFormat:@"%@~%@",startTimeTen3,endTimeTen3]; // 十六进制 NSString*startTimeHex4=[backModel.timer4 substringWithRange:NSMakeRange(4, 4)]; NSString*endTimeHex4=[backModel.timer4 substringWithRange:NSMakeRange(8, 4)]; // 十进制 NSString*startTimeTen4=[dataContorl hexStringToDateString:startTimeHex4]; NSString*endTimeTen4=[dataContorl hexStringToDateString:endTimeHex4]; NSString*setTim4=[NSString stringWithFormat:@"%@~%@",startTimeTen4,endTimeTen4]; // 十六进制 NSString*startTimeHex5=[backModel.timer5 substringWithRange:NSMakeRange(4, 4)]; NSString*endTimeHex5=[backModel.timer5 substringWithRange:NSMakeRange(8, 4)]; // 十进制 NSString*startTimeTen5=[dataContorl hexStringToDateString:startTimeHex5]; NSString*endTimeTen5=[dataContorl hexStringToDateString:endTimeHex5]; NSString*setTim5=[NSString stringWithFormat:@"%@~%@",startTimeTen5,endTimeTen5]; // 十六进制 NSString*startTimeHex6=[backModel.timer6 substringWithRange:NSMakeRange(4, 4)]; NSString*endTimeHex6=[backModel.timer6 substringWithRange:NSMakeRange(8, 4)]; // 十进制 NSString*startTimeTen6=[dataContorl hexStringToDateString:startTimeHex6]; NSString*endTimeTen6=[dataContorl hexStringToDateString:endTimeHex6]; NSString*setTim6=[NSString stringWithFormat:@"%@~%@",startTimeTen6,endTimeTen6]; timerArr=@[@[wenduString,@"设置时段"],@[setTim1,setTim2],@[setTim3,setTim4],@[setTim5,setTim6,@""]]; return timerArr; } //注意返回 信息模型 99 字节模型 +(NSArray*)refreshTwoControlSetViewWithBackMassageModel:(BackmassegeModel*)backModel{ NSArray*timerArr=[[NSArray alloc]init]; NSString*low=backModel.miniTp; NSString*heigh=backModel.maxTp; UInt64 lowten=[dataContorl hexToTen:low]; UInt64 heighten=[dataContorl hexToTen:heigh]; float formatlow=lowten/10; float formatheigh=heighten/10; NSString*wenduString=[NSString stringWithFormat:@"%.0f~%.0f°C",formatlow,formatheigh]; // 十六进制 NSString*startTimeHex1=[backModel.timer1 substringWithRange:NSMakeRange(4, 4)]; NSString*endTimeHex1=[backModel.timer1 substringWithRange:NSMakeRange(8, 4)]; // 十进制 NSString*startTimeTen1=[dataContorl hexStringToDateString:startTimeHex1]; NSString*endTimeTen1=[dataContorl hexStringToDateString:endTimeHex1]; NSString*setTim1=[NSString stringWithFormat:@"%@~%@",startTimeTen1,endTimeTen1]; // 十六进制 NSString*startTimeHex2=[backModel.timer2 substringWithRange:NSMakeRange(4, 4)]; NSString*endTimeHex2=[backModel.timer2 substringWithRange:NSMakeRange(8, 4)]; // 十进制 NSString*startTimeTen2=[dataContorl hexStringToDateString:startTimeHex2]; NSString*endTimeTen2=[dataContorl hexStringToDateString:endTimeHex2]; NSString*setTim2=[NSString stringWithFormat:@"%@~%@",startTimeTen2,endTimeTen2]; // 十六进制 NSString*startTimeHex3=[backModel.timer3 substringWithRange:NSMakeRange(4, 4)]; NSString*endTimeHex3=[backModel.timer3 substringWithRange:NSMakeRange(8, 4)]; // 十进制 NSString*startTimeTen3=[dataContorl hexStringToDateString:startTimeHex3]; NSString*endTimeTen3=[dataContorl hexStringToDateString:endTimeHex3]; NSString*setTim3=[NSString stringWithFormat:@"%@~%@",startTimeTen3,endTimeTen3]; // 十六进制 NSString*startTimeHex4=[backModel.timer4 substringWithRange:NSMakeRange(4, 4)]; NSString*endTimeHex4=[backModel.timer4 substringWithRange:NSMakeRange(8, 4)]; // 十进制 NSString*startTimeTen4=[dataContorl hexStringToDateString:startTimeHex4]; NSString*endTimeTen4=[dataContorl hexStringToDateString:endTimeHex4]; NSString*setTim4=[NSString stringWithFormat:@"%@~%@",startTimeTen4,endTimeTen4]; timerArr=@[@[wenduString,@"设置时段"],@[setTim1,setTim2],@[setTim3,setTim4,@""]]; return timerArr; } +(void)setTemperaturelabel:(UILabel*)temperaturelabel addTemperaturebackImg:(UIImageView*)temperaturebackImg addbubleImge:(UIImageView*)bubleImg WithBackData:(NSData*)data addWithBackMassageModel:(BackmassegeModel*)backModel addWithTableview:(UITableView*)tableview{ NSString*str=[dataContorl dataToHexString:data]; if (str.length==198) {//三控99字节温度显示 str=[str substringWithRange:NSMakeRange(172,4)]; }else if (str.length==142){//三控71字节温度显示 str=[str substringWithRange:NSMakeRange(116,4)]; } //str=[str substringWithRange:NSMakeRange(172,4)]; UInt64 mac=[dataContorl hexToTen:str]; NSLog(@"%llu",mac); float TPlabel=mac/10+(mac%10)*0.1; NSString *stringFloat = [NSString stringWithFormat:@"%.1f",TPlabel]; NSLog(@"%@",stringFloat); dispatch_async(dispatch_get_main_queue(), ^{ if (mac==0) { temperaturelabel.text=@"00.0"; [bubleImg addSubview:temperaturelabel]; temperaturebackImg.image=[UIImage imageNamed:@"cold_snow"]; if ([backModel.baojingSwitch isEqualToString:@"01"]) { }else{ } [bubleImg addSubview:temperaturebackImg]; }else{ temperaturelabel.text=stringFloat; temperaturelabel.textAlignment=NSTextAlignmentCenter; [bubleImg addSubview:temperaturelabel]; NSString*heighTmp=backModel.maxTp; UInt64 max=[dataContorl hexToTen:heighTmp]; UInt64 min=[dataContorl hexToTen:backModel.miniTp]; if (mac>=max) { temperaturebackImg.image=[UIImage imageNamed:@"hot_fire"]; [tableview addSubview:temperaturebackImg]; if ([backModel.baojingSwitch isEqualToString:@"01"]) { }else{ } }else if (mac<=min){ if ([backModel.baojingSwitch isEqualToString:@"01"]) { }else{ } temperaturebackImg.image=[UIImage imageNamed:@"cold_snow"]; [tableview addSubview:temperaturebackImg]; }else if (mac>min&&mac=max) { temperaturebackImg.image=[UIImage imageNamed:@"hot_fire"]; [tableview addSubview:temperaturebackImg]; if ([backModel.baojingSwitch isEqualToString:@"01"]) { //shuixiangwenduLabel.hidden=YES; }else{ //shuixiangwenduLabel.hidden=NO; } ; }else if (mac<=min){ if ([backModel.baojingSwitch isEqualToString:@"01"]) { //shuixiangwenduLabel.hidden=YES; }else{ //shuixiangwenduLabel.hidden=NO; } temperaturebackImg.image=[UIImage imageNamed:@"cold_snow"]; [tableview addSubview:temperaturebackImg]; }else if (mac>min&&mac=max) { temperaturebackImg.image=[UIImage imageNamed:@"hot_fire"]; [tableview addSubview:temperaturebackImg]; if ([backModel.baojingSwitch isEqualToString:@"01"]) { //shuixiangwenduLabel.hidden=YES; }else{ // shuixiangwenduLabel.hidden=NO; } }else if (mac<=min){ temperaturebackImg.image=[UIImage imageNamed:@"cold_snow"]; if ([backModel.baojingSwitch isEqualToString:@"01"]) { //shuixiangwenduLabel.hidden=YES; }else{ //shuixiangwenduLabel.hidden=NO; } [tableview addSubview:temperaturebackImg]; }else if (mac>min&&mac