ifish/Ifish/controllers/FishTinkController/maincontroller/CenterontrolControllers/XuTo/Xuanduo2DataUtility.m

233 lines
10 KiB
Objective-C

//
// 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