233 lines
10 KiB
Objective-C
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
|