// // IfishHotBarVc.m // Ifish // // Created by 罗艺 on 2018/8/22. // Copyright © 2018年 lianlian. All rights reserved. // #import "IfishHotBarVc.h" #import "IFishHotBarCell.h" #import "IfishHotBarVo.h" #import "IFishWaterChangeView.h" #import "UIView+GetView.h" #import "IfishHistoryView.h" #import "AFHttpTool.h" #import "IfishHotBarVc.h" #import "MJExtension.h" #import "Socketsingleton.h" #import "IfishHotBarPackegeVo.h" #import "UIView+Toast.h" #import "IfishHotBarModifyNameVc.h" #import "searchDeviceModel.h" #import "IfishHotBarHeader.h" #import "IfishCameraModel.h" #import "SVProgressHUD.h" #define HOTBARCELL @"hotBarCell" @interface IfishHotBarVc () @property (strong, nonatomic) UITableView *mainTableView; @property(nonatomic,strong)NSMutableArray*datas; @property(nonatomic,strong)IFishWaterChangeView*changeWaterView; @property(nonatomic,strong)IfishHistoryView*historyView; @property(nonatomic,strong)IfishHotBarVo*vo; @property(nonatomic,strong)IfishHotBarHeader*header; @property(nonatomic,assign)NSInteger curDay; Assign BOOL isInitHostoryView; @end @implementation IfishHotBarVc -(IfishHotBarHeader *)header{ if(_header==nil){ _header=[IfishHotBarHeader getView]; _header.frame=CGRectMake(0, 0, SCREEN_WIDTH, 207); _header.tag=100; UIView*view=[[UIView alloc]initWithFrame:_header.frame]; [view addSubview:_header]; self.mainTableView.tableHeaderView=view; } return _header; } -(void)wenduRequest{// 查询设备状态信息 searchDeviceModel*xinxiModel=[[searchDeviceModel alloc]init]; xinxiModel.resavemacId = self.devicemodel.macAddress; xinxiModel.sendmacId = self.devicemodel.macAddress; NSString*requestStr=xinxiModel.description; NSData*data1=[dataContorl stringToHexData:requestStr]; [[Socketsingleton sharedInstance].clientSocket writeData:data1 withTimeout:-1 tag:0]; [[Socketsingleton sharedInstance].clientSocket readDataWithTimeout:-1 tag:0]; [self getHotBarInfo]; } -(IfishHistoryView *)historyView{ if (!_historyView) { _historyView=InitObject(IfishHistoryView); _historyView.myDeleget=self; [self.view addSubview:_historyView]; [_historyView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(self.view); }]; } return _historyView; } //获取历史流量数据 -(void)getHistoryDataRequest{ self.isInitHostoryView = YES; NSDate *curDate = [NSDate dateWithTimeInterval:self.curDay*60*60*-24 sinceDate:[NSDate date]]; NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];//创建一个日期格式化器 dateFormatter.dateFormat=@"yyyy-MM-dd";//指定转date得日期格式化形式 NSLog(@"%@",[dateFormatter stringFromDate:curDate]);//2015-11-20 08:24:04 NSString*curDateStr=[dateFormatter stringFromDate:curDate]; // __block NSString*b_dateStr=curDateStr; [SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeBlack]; NSDictionary*para=@{@"heaterMacAddress":self.devicemodel.macAddress,@"date":curDateStr};//yyyy-mm-dd self.historyView.curdateStr=curDateStr; [AFHttpTool requestWihtMethod:RequestMethodTypePost url:getHotBarHistory params:para success:^(id response) { NSLog(@"-----------%@",response); NSDictionary*dict=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil]; NSString*result=dict[@"result"]; [SVProgressHUD dismiss]; if ([result integerValue]==100) { IfishHotBarVo*vo= [IfishHotBarVo mj_objectWithKeyValues:dict[@"data"]]; if (vo.phs.count<1) { [SVProgressHUD showInfoWithStatus:@"暂无数据"]; }else{ self.historyView.datas=vo.phs; } }else{ [SVProgressHUD showInfoWithStatus:@"暂无数据"]; } } failure:^(NSError *err) { [SVProgressHUD dismiss]; [SVProgressHUD showInfoWithStatus:@"网络在开小差,请稍后!"]; }]; } -(void)clickBottomBarWithIdx:(NSInteger)idx{ if (idx==10) { self.curDay++; if (self.curDay>7) { [SVProgressHUD showInfoWithStatus:@"只能查询前七天数据!"]; self.curDay=7; return; } }else{ self.curDay--; if(self.curDay<0){ [SVProgressHUD showInfoWithStatus:@"只能查询前七天数据!"]; self.curDay=0; return; } } [self getHistoryDataRequest]; } #pragma mark----设置参数代理--- -(IFishWaterChangeView *)changeWaterView{ if(_changeWaterView==nil){ _changeWaterView=[[IFishWaterChangeView alloc]init]; [self.view addSubview:_changeWaterView]; [self.changeWaterView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(self.view); }]; _changeWaterView.myDelegate=self; } _changeWaterView.hidden=NO; return _changeWaterView; } //设置换水周期 -(void)didSelectRow1:(NSString *)v andRow2:(NSString *)v2{ v=[v stringByReplacingOccurrencesOfString:@"天" withString:@""]; v2=[v2 stringByReplacingOccurrencesOfString:@":00" withString:@""]; NSString*str=[NSString stringWithFormat:@"换水周期 %@天 %@:00",v,v2]; if (v2.length==0) { str=[NSString stringWithFormat:@"换水周期 %@天",v]; } IfishHotBarVo*vo=self.datas[4]; vo.title=str; if (!self.vo.heater) { self.vo.heater = InitObject(IfishHeaterVo); } self.vo.heater.heaterCycle=v; self.vo.heater.heaterReminderTime=v2; [self setTeampleture]; [self.mainTableView reloadData]; } //设置加热温度 -(void)didChangeTemperature:(NSString *)temp{ temp=[temp stringByReplacingOccurrencesOfString:@"°c" withString:@""]; IfishHotBarVo*vo=self.datas[0]; self.vo.heaterNum=[NSString stringWithFormat:@"%f",temp.floatValue]; vo.subTitle=[NSString stringWithFormat:@"%.1f°c",[self.vo.heaterNum floatValue]]; [self.mainTableView reloadData]; [self setHeatTeapWith:temp]; [[DataCenter defaultDtacenter].cache setString:[NSString stringWithFormat:@"%.1f°c",[self.vo.heaterNum floatValue]] forKey:@"heaterTemperature"]; } //设置预警温度 -(void)didSelectTeamptrue:(NSString *)up andDown:(NSString *)down andWarnCode:(NSString *)code{ up=[up stringByReplacingOccurrencesOfString:@"°c" withString:@""]; down=[down stringByReplacingOccurrencesOfString:@"°c" withString:@""]; self.vo.wornCode=code; self.vo.upTeamp=up; self.vo.downTeamp=down; IfishHotBarVo*vo1=self.datas[1]; if (!IsEmptyStr(self.vo.upTeamp)) { vo1.subTitle = [NSString stringWithFormat:@"%.1f°c~%.1f°c",[self.vo.downTeamp floatValue],[self.vo.upTeamp floatValue]]; } [self.mainTableView reloadData]; [self setTeampletureWithUp:self.vo.upTeamp andDown:self.vo.downTeamp andHnum:0 andWarmC:self.vo.wornCode]; } -(NSMutableArray *)datas{ if (_datas==nil) { _datas=[NSMutableArray array]; IfishHotBarVo*vo=[[IfishHotBarVo alloc]init]; vo.title=@"设置水温"; vo.iconUrl=@"温度图标"; vo.isShowArrow=YES; vo.subTitle=[CommonUtils getNotNilStr:[[DataCenter defaultDtacenter].cache stringForKey:@"heaterTemperature"]]; [_datas addObject:vo]; //预警温度 add V5.0.0 IfishHotBarVo*vo1=[[IfishHotBarVo alloc]init]; vo1.title=@"预警温度 "; vo1.iconUrl=@"容积图标"; vo1.isShowArrow=YES; vo1.subTitle=@""; [_datas addObject:vo1]; IfishHotBarVo*vo2=[[IfishHotBarVo alloc]init]; vo2.title=@"水泵流量"; vo2.iconUrl=@"流量标"; vo2.isShowArrow=NO; vo2.subTitle=@"无水"; [_datas addObject:vo2]; IfishHotBarVo*vo3=[[IfishHotBarVo alloc]init]; vo3.title=@"历史趋势"; vo3.iconUrl=@"走势图标"; vo3.isShowArrow=YES; vo3.subTitle=@""; [_datas addObject:vo3]; IfishHotBarVo*vo4=[[IfishHotBarVo alloc]init]; vo4.title=@"换水周期 "; vo4.iconUrl=@"换水图标"; vo4.isShowArrow=YES; vo4.subTitle=@""; [_datas addObject:vo4]; } return _datas; } - (void)viewDidLoad { [super viewDidLoad]; self.isInitHostoryView = NO; // Do any additional setup after loading the view from its nib. self.mainTableView = [[UITableView alloc]initWithFrame:CGRectZero style:UITableViewStylePlain]; [self.mainTableView registerNib:[UINib nibWithNibName:@"IFishHotBarCell" bundle:nil] forCellReuseIdentifier:HOTBARCELL]; self.mainTableView.rowHeight=70; self.mainTableView.dataSource=self; self.mainTableView.delegate=self; [self.view addSubview:self.mainTableView]; [self.mainTableView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(self.view); }]; [self.mainTableView reloadData]; [self getHotBarInfo]; self.tableView=self.mainTableView; [self creatRefreshView]; [self header]; // UIButton *back = [UIButton buttonWithType:UIButtonTypeCustom]; back.frame = CGRectMake(0,0,48,44); [back setImage:[UIImage imageNamed:@"back_btn"] forState:UIControlStateNormal]; [back addTarget: self action: @selector(clickBack) forControlEvents: UIControlEventTouchUpInside]; back.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; [back setContentEdgeInsets:UIEdgeInsetsMake(0, 10, 0, -10)]; UIBarButtonItem * backItem=[[UIBarButtonItem alloc] initWithCustomView:back]; self.navigationItem.leftBarButtonItem=backItem; self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"ifishnav_dropview_list"] style:0 target:self action:@selector(clickMoreBtn)]; [self.view bringSubviewToFront:self.popView]; } -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"blackbar.png"] forBarMetrics:UIBarMetricsDefault]; self.title=self.devicemodel.showName; } -(void)clickMoreBtn{ [self presentPopView]; } -(void)deleteDeviceRequset{ [super deleteDeviceRequset]; } -(void)deleteDeviceRequsetSus{ [self deleteHotBarInfo]; } -(void)clickBack{ [self.navigationController popToRootViewControllerAnimated:YES]; [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; } -(void)shezhiMingCheng{ IfishHotBarModifyNameVc*mVc=[[IfishHotBarModifyNameVc alloc]init]; mVc.devicemodel=self.devicemodel; [self.navigationController pushViewController:mVc animated:YES]; } #pragma mark------请求服务器------- //删除加热棒 -(void)deleteHotBarInfo{ NSDictionary*para=@{ @"heaterMacAddress":self.devicemodel.macAddress }; [AFHttpTool requestWihtMethod:RequestMethodTypePost url:DeleteHotBar params:para success:^(id response) { NSLog(@"-----------%@",response); NSDictionary*dict=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil]; NSString*result=dict[@"result"]; if ([result integerValue]==100) { // self.vo=[IfishHotBarVo mj_objectWithKeyValues:dict[@"data"]]; [self.view makeToast:@"删除成功"]; }else{ [self.view makeToast:@"删除失败"]; } //发送删除消息 //重置数据库 NSArray*deviceArry=[[DataCenter defaultDtacenter]valueForKey:@"deviceInfo"]; NSMutableArray *newArr = [NSMutableArray arrayWithArray:deviceArry]; for (DeviceModel *model in deviceArry) { if ([model.deviceId isEqual:self.devicemodel.deviceId]) { [newArr removeObject:model]; } } [[DataCenter defaultDtacenter] setValue: newArr forKey:@"deviceInfo"]; if ([newArr count]==0) { NSArray *cameraArr= [[DataCenter defaultDtacenter] valueForKey:@"cameraArr"]; if ([cameraArr count]!=0) { [[Socketsingleton sharedInstance] cutOffSocket]; }else{ //两种设备都 [[Socketsingleton sharedInstance] cutOffSocket]; } } [self.navigationController popViewControllerAnimated:YES]; } failure:^(NSError *err) { [self.view makeToast:@"删除失败"]; }]; } -(void)getHotBarInfo{ NSDictionary*para=@{@"heaterMacAddress":self.devicemodel.macAddress}; [SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeBlack]; [AFHttpTool requestWihtMethod:RequestMethodTypePost url:GetHotBarInfo params:para success:^(id response) { NSLog(@"-----------%@",response); NSDictionary*dict=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil]; NSString*result=dict[@"result"]; [SVProgressHUD dismiss]; if ([result integerValue]==100) { self.vo=[IfishHotBarVo mj_objectWithKeyValues:dict[@"data"]]; if (!self.vo) { self.vo=self.datas[0]; } if (self.vo.phs.count>0) { NSDate *curDate = [NSDate dateWithTimeInterval:self.curDay*60*60*-24 sinceDate:[NSDate date]]; NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];//创建一个日期格式化器 dateFormatter.dateFormat=@"yyyy-MM-dd";//指定转date得日期格式化形式 NSLog(@"%@",[dateFormatter stringFromDate:curDate]);//2015-11-20 08:24:04 NSString*curDateStr=[dateFormatter stringFromDate:curDate]; self.historyView.curdateStr=curDateStr; self.historyView.datas=self.vo.phs; self.historyView.hidden=YES; } //去除鱼缸容积 IfishHotBarVo*vo1=self.datas[4]; if (self.vo.heater.heaterCycle.length) { if (self.vo.heater.heaterReminderTime.length) { vo1.title=[NSString stringWithFormat:@"换水周期 %@天 %@:00",self.vo.heater.heaterCycle,self.vo.heater.heaterReminderTime]; }else{ vo1.title=[NSString stringWithFormat:@"换水周期 %@天",self.vo.heater.heaterCycle]; } } [self.mainTableView reloadData]; }else{ [SVProgressHUD showInfoWithStatus:@"暂无数据"]; } } failure:^(NSError *err) { [SVProgressHUD dismiss]; [SVProgressHUD showInfoWithStatus:@"网络错误,请稍后"]; }]; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return self.datas.count; } -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ IFishHotBarCell*cell=[tableView dequeueReusableCellWithIdentifier:HOTBARCELL]; cell.vo=self.datas[indexPath.row]; return cell; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPath.row==2){//水泵流量,点击无效果 }else if (indexPath.row==3) {//历史趋势 if (!self.isInitHostoryView) { [self getHistoryDataRequest]; } self.historyView.hidden=NO; }else{ NSLog(@"index%ld___%ld",indexPath.section,indexPath.row); if (!self.vo) { self.vo=self.datas[indexPath.row]; } [self changeWaterView]; self.changeWaterView.hotVo=self.vo; self.changeWaterView.viewType=indexPath.row; } } #pragma mark----socket返回---- -(void)ifishDeviceLogInFail{ // self.mainTableView.userInteractionEnabled=NO; } //从socket获取的回调方法 -(void)socketDidGetBackmsgData:(NSData *)data onsoket:(AsyncSocket *)sock{ self.mainTableView.userInteractionEnabled=YES; NSLog(@"TwoControlView收到服务器的回执--->%@",data); NSLog(@"TwoControlView收到服务器的回执--->%@",[NSThread currentThread]); NSString*string1=[dataContorl dataToHexString:data]; NSLog(@"TwoControlView收到服务器的回执--->%@",string1); NSString*functionCode=[string1 substringWithRange:NSMakeRange(2, 2)]; if ([functionCode isEqualToString:@"08"]) { [self updateUiWithInfo:string1]; }else if([functionCode isEqualToString:@"05"]){ // [self setHeatTeapWith:self.vo.heaterNum]; }else if([functionCode isEqualToString:@"0e"]){ [self setTeampletureWithUp:self.vo.upTeamp andDown:self.vo.downTeamp andHnum:0 andWarmC:self.vo.wornCode]; }else if([functionCode isEqualToString:@"06"]){ [self updateUiWithInfo:string1]; [self endRefreshing]; } } -(void)updateUiWithInfo:(NSString*)info{ NSString*templeture=[info substringWithRange:NSMakeRange(36, 4)]; UInt64 temp=[dataContorl hexToTen:templeture]; float tempFloat=temp*0.1; self.header.degreeLable.text=[NSString stringWithFormat:@"%0.1f°c",tempFloat]; //流量 46 NSString*ph=[info substringWithRange:NSMakeRange(46, 4)]; UInt64 phV=[dataContorl hexToTen:ph]; IfishHotBarVo*vo2=self.datas[2]; // phV=0; vo2.phv=phV; //phV给499,则为正常,其余的都是无水-V5.0.0 if (phV==499) { vo2.subTitle=@"正常"; }else{ vo2.subTitle=@"无水"; } self.vo.heaterNum=[info substringWithRange:NSMakeRange(40, 4)]; UInt64 heaterNum= [dataContorl hexToTen:self.vo.heaterNum]; float num=heaterNum*1.0; if (heaterNum>100) { num=heaterNum*0.1; } self.vo.heaterNum=[NSString stringWithFormat:@"%f",num]; IfishHotBarVo*vo=self.datas[0]; vo.subTitle=[NSString stringWithFormat:@"%.1f°c",[self.vo.heaterNum floatValue]]; //设置预警温度区间 IfishHotBarVo*vo1=self.datas[1]; if (!IsEmptyStr(self.vo.upTeamp)) { vo1.subTitle = [NSString stringWithFormat:@"%.1f°c~%.1f°c",[self.vo.downTeamp floatValue],[self.vo.upTeamp floatValue]]; } self.vo.wornCode=[info substringWithRange:NSMakeRange(44, 2)]; // self.vo.wornCode=[NSString stringWithFormat:@"%llu",[dataContorl hexToTen:self.vo.wornCode]]; self.vo.upTeamp=[info substringWithRange:NSMakeRange(54, 4)]; self.vo.upTeamp=[NSString stringWithFormat:@"%f",[dataContorl hexToTen:self.vo.upTeamp]*0.1]; self.vo.downTeamp=[info substringWithRange:NSMakeRange(50, 4)]; self.vo.downTeamp=[NSString stringWithFormat:@"%f",[dataContorl hexToTen:self.vo.downTeamp]*0.1]; [self.mainTableView reloadData]; } #pragma mark----UDP----- // //数据包头(15字节) 1 "发送消息类型填充00,回复类型填充01 //" //1 功能码 //6 发送方MAC地址 //6 接收方MAC地址 //1 消息长度,包长度(15+*的长度) // //设置报警温度指令(22字节) 15 数据包头 //1 开启关闭报警,00关,01开 //2 最低报警温度,关闭报警时传0 //2 最高报警温度,关闭报警时传0 //2 CRC16校验码 //设置换水周期 -(void)setTeampleture{ if (!self.vo.heater.heaterCycle||!self.vo.heater.heaterReminderTime) { return; } self.vo.heater.heaterCycle=[self.vo.heater.heaterCycle stringByReplacingOccurrencesOfString:@"天" withString:@""]; self.vo.heater.heaterReminderTime=[self.vo.heater.heaterReminderTime stringByReplacingOccurrencesOfString:@":00" withString:@""]; NSString*longNum=@""; NSString*heaterWidth=@""; NSString*heaterHeight=@""; NSString*heaterId=@""; NSString*heaterVolume=@""; if (self.vo.heater.heaterId) { heaterId=self.vo.heater.heaterId; } if (self.vo.heater.heaterVolume) { heaterVolume=self.vo.heater.heaterVolume; } NSDictionary*para=@{ @"heaterId":heaterId, @"heaterMacAddress":self.devicemodel.macAddress, @"heaterVolume":heaterVolume, @"heaterLong":longNum, @"heaterWidth":heaterWidth, @"heaterHeight":heaterHeight, @"heaterCycle":self.vo.heater.heaterCycle, @"heaterReminderTime":self.vo.heater.heaterReminderTime }; [AFHttpTool requestWihtMethod:RequestMethodTypePost url:SaveHotBarInfo params:para success:^(id response) { NSLog(@"-----------%@",response); NSDictionary*dict=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil]; NSString*result=dict[@"result"]; if ([result integerValue]==100) { // self.vo=[IfishHotBarVo mj_objectWithKeyValues:dict[@"data"]]; [self showLableAction:@"修改成功"]; } } failure:^(NSError *err) { }]; } #pragma mark-----打开预警温度开关---- -(void)clickWormCode:(NSString *)code{ IfishHotBarPackegeVo*pvo=[[IfishHotBarPackegeVo alloc]init]; pvo.msgType=@"00"; pvo.funcCode=@"05"; pvo.sendAdr=self.devicemodel.macAddress; pvo.reciceAdr=self.devicemodel.macAddress; pvo.lenth=@"16"; pvo.warnCode=code; pvo.downTeamptrue=@"0000"; pvo.upTeamptrue=@"0000"; pvo.crcCode=@"0000"; NSString*stateString=[pvo description]; NSData*selctorData=[dataContorl stringToHexData:stateString]; [[Socketsingleton sharedInstance].clientSocket writeData:selctorData withTimeout:-1 tag:0]; [[Socketsingleton sharedInstance].clientSocket readDataWithTimeout:-1 tag:0]; } -(void)setTeampletureWithUp:(NSString*)up andDown:(NSString*)down andHnum:(NSString*)num andWarmC:(NSString*)code{ if(!up||!down){ // [self.view makeToast:@"请选择最高温度或最低温度"]; [self setHeatTeapWith:num]; return; } IfishHotBarPackegeVo*pvo=[[IfishHotBarPackegeVo alloc]init]; pvo.msgType=@"00"; pvo.funcCode=@"05"; pvo.sendAdr=self.devicemodel.macAddress; pvo.reciceAdr=self.devicemodel.macAddress; pvo.lenth=@"16"; pvo.warnCode=code; if([code isEqualToString:@"00"]){ pvo.downTeamptrue=@"0000"; pvo.upTeamptrue=@"0000"; }else{ pvo.warnCode=@"02"; pvo.downTeamptrue=[dataContorl ToHex:down.longLongValue*10]; if (pvo.downTeamptrue.length<4) { pvo.downTeamptrue=[dataContorl leftAddZero:4 andStr:pvo.downTeamptrue]; } pvo.upTeamptrue=[dataContorl ToHex:up.longLongValue*10]; if (pvo.upTeamptrue.length<4) { pvo.upTeamptrue=[dataContorl leftAddZero:4 andStr:pvo.upTeamptrue]; } } pvo.crcCode=@"0000"; NSString*stateString=[pvo description]; NSData*selctorData=[dataContorl stringToHexData:stateString]; self.vo.heaterNum=num; [[Socketsingleton sharedInstance].clientSocket writeData:selctorData withTimeout:-1 tag:0]; [[Socketsingleton sharedInstance].clientSocket readDataWithTimeout:-1 tag:0]; [self showLableAction:@"发送成功"]; } //"设置加热温度 //(19字节)" 15 数据包头 //2 加热温度,如设置为27.1℃0x10F转成16进制则为0x10F //2 CRC16校验码 -(void)setHeatTeapWith:(NSString*)num{ if(!num){ [self.view makeToast:@"请选择加热温度"]; return; } IfishPackageHeaderVo*header=[[IfishPackageHeaderVo alloc]init]; header.msgType=@"00"; header.funcCode=@"0e"; header.sendAdr=self.devicemodel.macAddress; header.reciceAdr=self.devicemodel.macAddress; header.lenth=@"13"; NSString*crc=@"0000"; num=[dataContorl ToHex:num.longLongValue*10]; if (num.length<4) { num=[dataContorl leftAddZero:4 andStr:num]; } NSString*stateString=[NSString stringWithFormat:@"%@%@%@",[header getHeader],num,crc]; NSData*selctorData=[dataContorl stringToHexData:stateString]; [[Socketsingleton sharedInstance].clientSocket writeData:selctorData withTimeout:-1 tag:0]; [[Socketsingleton sharedInstance].clientSocket readDataWithTimeout:-1 tag:0]; [self showLableAction:@"发送成功"]; } @end