// // Xuanduo2DataUtility.m // Ifish // // Created by Alex on 2019/4/21. // Copyright © 2019 lianlian. All rights reserved. // #import "Xuanduo2DataUtility.h" #import "UIImage+WaterMark.h" @implementation Xuanduo2DataUtility +(void)readSocketDataWithBackMsgModel:(id)model addWithBackData:(NSData*)data type:(nonnull NSString *)type{ NSString *dataString = [dataContorl dataToHexString:data];// 转十六进制 @try { if ([type isEqualToString:DECICE_TYPE_XUANDUO2F]&&[model isKindOfClass:[Xuanduo2Model class]]) { Xuanduo2Model*xuanduoModel=model; xuanduoModel.gasPump = [dataString substringWithRange:NSMakeRange(30, 4)]; xuanduoModel.light1 = [dataString substringWithRange:NSMakeRange(34, 4)]; xuanduoModel.light2 = [dataString substringWithRange:NSMakeRange(38, 4)]; xuanduoModel.waterPump = [dataString substringWithRange:NSMakeRange(42, 4)]; xuanduoModel.uvLamp = [dataString substringWithRange:NSMakeRange(46, 4)]; xuanduoModel.waveMakingPump = [dataString substringWithRange:NSMakeRange(50, 4)]; xuanduoModel.status = [dataString substringWithRange:NSMakeRange(54, 4)]; xuanduoModel.heatStatus = [dataString substringWithRange:NSMakeRange(58, 2)]; xuanduoModel.waterTemperature = [dataString substringWithRange:NSMakeRange(60, 4)]; xuanduoModel.heatingTemperature = [dataString substringWithRange:NSMakeRange(64, 4)]; xuanduoModel.huliLight = [dataString substringWithRange:NSMakeRange(68, 2)]; xuanduoModel.electricity = [dataString substringWithRange:NSMakeRange(70, 4)]; xuanduoModel.alarmSwitch = [dataString substringWithRange:NSMakeRange(74, 2)]; xuanduoModel.miniTemp = [dataString substringWithRange:NSMakeRange(76, 4)]; xuanduoModel.maxTemp = [dataString substringWithRange:NSMakeRange(80, 4)]; if (dataString.length==90) { xuanduoModel.waterLevel=[dataString substringWithRange:NSMakeRange(84, 2)]; } } else if ([type isEqualToString:DECICE_TYPE_XUANDUO3F]&&[model isKindOfClass:[Xuanduo3fModel class]]) { Xuanduo3fModel*xuanduoModel=model; xuanduoModel.light = [dataString substringWithRange:NSMakeRange(30, 4)]; xuanduoModel.gasPump = [dataString substringWithRange:NSMakeRange(34, 4)]; xuanduoModel.uvLamp = [dataString substringWithRange:NSMakeRange(38, 4)]; xuanduoModel.constTmep = [dataString substringWithRange:NSMakeRange(42, 4)]; xuanduoModel.temperature = [dataString substringWithRange:NSMakeRange(46, 4)]; xuanduoModel.heatingTemperature = [dataString substringWithRange:NSMakeRange(50, 4)]; xuanduoModel.vuPHstatus = [dataString substringWithRange:NSMakeRange(54, 4)]; xuanduoModel.alarmSwitch = [dataString substringWithRange:NSMakeRange(58, 2)]; xuanduoModel.miniTemp = [dataString substringWithRange:NSMakeRange(60, 4)]; xuanduoModel.maxTemp = [dataString substringWithRange:NSMakeRange(64, 4)]; } } @catch (NSException *exception) { } @finally { } } +(void)resetNewXuanduoButtonState:(UIButton*)uvLightBtn gasPumpLight:(UIButton*)gasLightBtn light1:(UIButton*)light1Btn light2:(UIButton*)light2Btn waveLight:(UIButton*)waveLightBtn huliLight:(UIButton*)huliLightBtn waterLight:(UIButton*)waterLightBtn heatLight:(UIButton*)heatLightBtn withModel:(Xuanduo2Model*)model type:(nonnull NSString *)type{ if ([type isEqualToString:DECICE_TYPE_XUANDUO2F]) { Xuanduo2Model*backModel=model; // 杀菌灯 NSString *stateString1 = [backModel.uvLamp substringWithRange:NSMakeRange(2, 2)]; if ([stateString1 isEqualToString:@"01"]) { uvLightBtn.selected = YES; }else{ uvLightBtn.selected = NO; } // 气泵 NSString *stateString2 = [backModel.gasPump substringWithRange:NSMakeRange(2, 2)]; if ([stateString2 isEqualToString:@"01"]) { gasLightBtn.selected = YES; }else{ gasLightBtn.selected = NO; } // 灯1 NSString *stateString3 = [backModel.light1 substringWithRange:NSMakeRange(2, 2)]; if ([stateString3 isEqualToString:@"01"]) { light1Btn.selected = YES; }else{ light1Btn.selected = NO; } // 灯2 NSString *stateString4 = [backModel.light2 substringWithRange:NSMakeRange(2, 2)]; if ([stateString4 isEqualToString:@"01"]) { light2Btn.selected = YES; }else{ light2Btn.selected = NO; } // 造浪 NSString *stateString5 = [backModel.waveMakingPump substringWithRange:NSMakeRange(2, 2)]; if ([stateString5 isEqualToString:@"01"]) { waveLightBtn.selected = YES; }else{ waveLightBtn.selected = NO; } // 护理灯 NSString *stateString6 = backModel.huliLight; if ([stateString6 isEqualToString:@"01"]) { huliLightBtn.selected = YES; }else{ huliLightBtn.selected = NO; } NSString *stateString7 = [backModel.waterPump substringWithRange:NSMakeRange(2, 2)]; if ([stateString7 isEqualToString:@"01"]) { waterLightBtn.selected = YES; }else{ waterLightBtn.selected = NO; } NSString *stateString8 = backModel.heatStatus; if ([stateString8 isEqualToString:@"01"]) { heatLightBtn.selected = YES; }else{ heatLightBtn.selected = NO; } } else if ([type isEqualToString:DECICE_TYPE_XUANDUO3F]) { // 杀菌 Xuanduo3fModel*backModel=model; NSString *stateString1 = [backModel.uvLamp substringWithRange:NSMakeRange(2, 2)]; UInt64 mac1=[dataContorl hexToTen:backModel.vuPHstatus]; //float TPlabel=mac/10+(mac%10)*0.1; NSString *lasttime = [NSString stringWithFormat:@"%lld",mac1]; if (mac1==0) { lasttime=@""; } UIImage*uvNomal=[UIImage imageNamed:@"杀菌关"]; //关闭不显示 // uvNomal=[uvNomal imageWaterMarkWithString:lasttime rect:CGRectMake(140, 60, 60, 60) attribute:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:[UIFont systemFontOfSize:25]}]; [light1Btn setImage:uvNomal forState:UIControlStateNormal]; UIImage*uvsel=[UIImage imageNamed:@"杀菌开"]; uvsel=[uvsel imageWaterMarkWithString:lasttime rect:CGRectMake(140, 60, 60, 60) attribute:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:[UIFont systemFontOfSize:25]}]; [light1Btn setImage:uvsel forState:UIControlStateSelected]; if ([stateString1 isEqualToString:@"01"]) { light1Btn.selected = YES; }else{ light1Btn.selected = NO; } // 换气 NSString *stateString2 = [backModel.gasPump substringWithRange:NSMakeRange(2, 2)]; if ([stateString2 isEqualToString:@"01"]) { gasLightBtn.selected = YES; }else{ gasLightBtn.selected = NO; } // 灯 NSString *stateString3 = [backModel.light substringWithRange:NSMakeRange(2, 2)]; if ([stateString3 isEqualToString:@"01"]) { waterLightBtn.selected = YES; }else{ waterLightBtn.selected = NO; } // 恒温 UInt64 mac=[dataContorl hexToTen:backModel.heatingTemperature]; //float TPlabel=mac/10+(mac%10)*0.1; float temp = mac/10.0; NSString *stringTemp = [NSString stringWithFormat:@"%.1f℃",temp]; UIImage*imageTempNomal=[UIImage imageNamed:@"恒温关"]; imageTempNomal=[imageTempNomal imageWaterMarkWithString:stringTemp rect:CGRectMake(130, 60, 80, 80) attribute:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:[UIFont systemFontOfSize:25]}]; [light2Btn setImage:imageTempNomal forState:UIControlStateNormal]; UIImage*imageTempsel=[UIImage imageNamed:@"恒温开"]; imageTempsel=[imageTempsel imageWaterMarkWithString:stringTemp rect:CGRectMake(130, 60, 80, 80) attribute:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:[UIFont systemFontOfSize:25]}]; [light2Btn setImage:imageTempsel forState:UIControlStateSelected]; NSString *stateString4 = [backModel.constTmep substringWithRange:NSMakeRange(2, 2)]; if ([stateString4 isEqualToString:@"01"]) { light2Btn.selected = YES; }else{ light2Btn.selected = NO; } } } +(void)readTimerSocketDataWithBackMsgModel:(Xuanduo2TimerModel*)xuanduoTimerModel addWithBackStr:(NSString*)dataStr type:(nonnull NSString *)type{ xuanduoTimerModel.lightNumber = [dataStr substringWithRange:NSMakeRange(30, 2)]; xuanduoTimerModel.groupSum = [dataStr substringWithRange:NSMakeRange(32, 2)]; UInt64 sum = [dataContorl hexToTen:xuanduoTimerModel.groupSum]; for (int i = 0; i < sum; i ++) { NSString *groupStr = [dataStr substringWithRange:NSMakeRange(34+i*12, 12)]; XuanduoTimerGroup *group = [[XuanduoTimerGroup alloc] init]; group.groupNumber = [NSString stringWithFormat:@"%llu",[dataContorl hexToTen:[groupStr substringWithRange:NSMakeRange(0, 2)]]]; NSString *str1 = [groupStr substringWithRange:NSMakeRange(0, 2)]; NSLog(@"====== str1 ==== %@",str1); group.status = [groupStr substringWithRange:NSMakeRange(2, 2)]; NSString *startStr = [dataContorl hexStringToDateString:[groupStr substringWithRange:NSMakeRange(4, 4)]]; NSString *endStr = [dataContorl hexStringToDateString:[groupStr substringWithRange:NSMakeRange(8, 4)]]; if ([startStr compare:endStr] == NSOrderedDescending) { group.isCrossDay = YES; } group.startTime = startStr; group.endTime = endStr; group.time = [NSString stringWithFormat:@"%@ - %@",startStr,endStr]; [xuanduoTimerModel.groupModelArr addObject:group]; } } +(void)readCycleSocketDataWithBackMsgModel:(XuanduoCycleModel*)xuanduocycleModel addWithBackStr:(NSString*)dataStr type:(nonnull NSString *)type { xuanduocycleModel.lightNumber = [dataStr substringWithRange:NSMakeRange(30, 2)]; xuanduocycleModel.lastTime = [dataStr substringWithRange:NSMakeRange(32, 4)]; xuanduocycleModel.gapTime = [dataStr substringWithRange:NSMakeRange(36, 4)]; xuanduocycleModel.status = [dataStr substringWithRange:NSMakeRange(40, 2)]; } @end