// // CameraRecordViewController.m // Ifish // // Created by imac on 16/12/9. // Copyright © 2016年 lianxiang. All rights reserved. // #import "CameraRecordViewController.h" #import "P2PClient.h" #import "IfishCameraRecordfirstCell.h" #import "IfishCameraRecordSecondCell.h" #import "IfishCameraRecordThirdCell.h" #import "TemperatureSetModel.h" #import "TemperatureSetCell.h" #import "MydatePickerView.h" #define RECODIEECELL_TIME 911 #define RECODIEECELL_BTN 922 #define RECODIEECELL_SWiTCH 933 static const CGFloat ToastFade = 0.2; #import "NSTimer+Convenience.h" #import "IfishCameraRecordFourCell.h" @interface CameraRecordViewController () @property(nonatomic,strong) UITableView *tab; @property(nonatomic) NSInteger second; @property(nonatomic) NSInteger minute; @property(nonatomic,strong) NSTimer*timer; @property(nonatomic,copy) NSString *timestr; @property (nonatomic, assign) BOOL isConnectCamera; @property(nonatomic) BOOL isRecording; @property(nonatomic) NSIndexPath *timerIndex; @property(nonatomic) NSIndexPath *switchIndex; @property(nonatomic) NSIndexPath *buttonIndex; @property(assign) unsigned int remoteRecordState; //本app 需求模式 非摄像头模式 @property(nonatomic,strong) NSMutableArray*array; @property(nonatomic,strong) NSString*recordType; @property (nonatomic, strong)MydatePickerView *mydatepicView; @end @implementation CameraRecordViewController - (void)viewDidLoad { [super viewDidLoad]; [self connectDevice]; // Do any additional setup after loading the view. [self addTitleViewWithTitle:@"录制视频"]; self.recordType=[[DataCenter defaultDtacenter].cache stringForKey:@"recordType"]; if (!self.recordType.length) { self.recordType=@"0"; } [self creatUI]; // self.view.backgroundColor = RGB(242, 242, 242); } -(void)goBackAction{ [self.navigationController popViewControllerAnimated:YES]; } -(void)creatUI{ self.tab = [[UITableView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height) style:UITableViewStylePlain]; self.tab.delegate = self; self.tab.dataSource = self; self.tab.separatorStyle = UITableViewCellSeparatorStyleNone; self.tab.showsVerticalScrollIndicator = NO; self.tab.scrollEnabled = NO; //self.tab.backgroundColor = RGB(242, 242, 242); [self.view addSubview:self.tab]; [self.tab reloadData]; } -(void)connectDevice{ UserModel *model=[dataContorl getUserInfo]; NSString *userIDName=[NSString stringWithFormat:@"%d",(int)[model.gwellUserID integerValue]&0x7fffffff]; //初始化设备 if ([GWP2PClient sharedClient].linkStatus != P2PLinkStatusOK) { NSLog(@"正在检查P2P连接状态"); BOOL connectDevice = [[GWP2PClient sharedClient] connectWithAccount:userIDName codeStr1:model.P2PVerifyCode1 codeStr2:model.P2PVerifyCode2 sessionID1:model.sessionID sessionID2:model.sessionID2 customerIDs:nil]; if (connectDevice) { [[GWP2PClient sharedClient] setDeviceRecordDefinition:GWP2PRecordDefinitionStandardDefinition withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; }else{ [self.view makeToast:@"p2pConnect failure.失败,不能操作设备,请重试"]; } } else { [[GWP2PClient sharedClient] setDeviceRecordDefinition:GWP2PRecordDefinitionStandardDefinition withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; } -(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; } #pragma mark - receiveRemoteMessage -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return 1; } -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 2; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ TemperatureSetCell*cell=[tableView dequeueReusableCellWithIdentifier:@"TemperatureSetCell"]; if (cell==nil) { cell=[[[NSBundle mainBundle]loadNibNamed:@"TemperatureSetCell" owner:self options:nil]lastObject]; } cell.backgroundView=nil; cell.backgroundColor= RGB(242, 242, 242); if (indexPath.section ==0 && indexPath.row ==0) { TemperatureSetModel*model=[[TemperatureSetModel alloc]init]; model.title=@"即时录制"; model.temperatureLabel=@""; model.status=self.recordType;; cell.titleLabel.text=model.title; cell.temperaturelabel.text=model.temperatureLabel; [cell.temPSwitch addTarget:self action:@selector(nowRecordBtnAction:) forControlEvents:UIControlEventTouchUpInside]; [cell.temPSwitch setBackgroundImage:[UIImage imageNamed:@"greenbtn_big"] forState:UIControlStateSelected]; [cell.temPSwitch setBackgroundImage:[UIImage imageNamed:@"graybtn_big"] forState:UIControlStateNormal]; cell.temPSwitch.selected=[model.status isEqualToString:@"1"]; }else if (indexPath.section ==1 && indexPath.row ==0){ TemperatureSetModel*model=[[TemperatureSetModel alloc]init]; model.title=@"定时录制"; model.temperatureLabel=[[DataCenter defaultDtacenter].cache stringForKey:@"schduleRecordTime"].length?[[DataCenter defaultDtacenter].cache stringForKey:@"schduleRecordTime"]:@"09:00-16:00"; model.status=self.recordType;; cell.titleLabel.text=model.title; cell.temperaturelabel.text=model.temperatureLabel; [cell.temPSwitch addTarget:self action:@selector(schduleRecordAction:) forControlEvents:UIControlEventTouchUpInside]; [cell.temPSwitch setBackgroundImage:[UIImage imageNamed:@"greenbtn_big"] forState:UIControlStateSelected]; [cell.temPSwitch setBackgroundImage:[UIImage imageNamed:@"graybtn_big"] forState:UIControlStateNormal]; cell.temPSwitch.selected=[model.status isEqualToString:@"2"]; } return cell; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 50; } -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ return 5; } -(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ UIView *sectionV2=[[UIView alloc] initWithFrame:CGRectMake(0, 0,self.view.frame.size.width,5)]; sectionV2.backgroundColor =[UIColor whiteColor]; return sectionV2; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section==1) { if (!self.mydatepicView) { _mydatepicView=[[MydatePickerView alloc]init]; _mydatepicView.frame=CGRectMake(0,0,kScreenSize.width,kScreenSize.height); [_mydatepicView setIsNewXuanduo:YES]; [_mydatepicView.picView reloadAllComponents]; [_mydatepicView.cancleButton addTarget:self action:@selector(cancleButtonClick) forControlEvents:UIControlEventTouchUpInside]; [_mydatepicView.sureButton addTarget:self action:@selector(doneButtonClick) forControlEvents:UIControlEventTouchUpInside]; NSString*time=[[DataCenter defaultDtacenter].cache stringForKey:@"schduleRecordTime"].length?[[DataCenter defaultDtacenter].cache stringForKey:@"schduleRecordTime"]:@"09:00-16:00"; NSString*start=[[time componentsSeparatedByString:@"-"] firstObject]; NSString*end=[[time componentsSeparatedByString:@"-"] lastObject]; NSString*startHour=[[start componentsSeparatedByString:@":"] firstObject]; NSString*startMin=[[start componentsSeparatedByString:@":"] lastObject]; NSString*endHour=[[end componentsSeparatedByString:@":"] firstObject]; NSString*endMin=[[end componentsSeparatedByString:@":"] lastObject]; _mydatepicView.startString=startHour; _mydatepicView.endString=startMin; _mydatepicView.startString1=endHour; _mydatepicView.endString1=endHour; [_mydatepicView.picView selectRow:[(NSArray*)(_mydatepicView.dataArr[0]) indexOfObject:startHour] inComponent:0 animated:YES]; [_mydatepicView.picView selectRow:[(NSArray*)(_mydatepicView.dataArr[1]) indexOfObject:startMin] inComponent:1 animated:YES]; [_mydatepicView.picView selectRow:[(NSArray*)(_mydatepicView.dataArr[2]) indexOfObject:endHour] inComponent:2 animated:YES]; [_mydatepicView.picView selectRow:[(NSArray*)(_mydatepicView.dataArr[3]) indexOfObject:endMin] inComponent:3 animated:YES]; } [self.view addSubview:_mydatepicView]; } } #pragma mark - recordBtnAction #pragma mark 设置时间段 -(void)doneButtonClick{ _mydatepicView.resultString=nil; if (_mydatepicView.startString==nil||_mydatepicView.endString==nil) { [self showTitle:@"" messsage:@"请选择时间"]; }else{ _mydatepicView.resultString=[NSString stringWithFormat:@"%@:%@-%@:%@",_mydatepicView.startString,_mydatepicView.endString,_mydatepicView.startString1,_mydatepicView.endString1]; [[DataCenter defaultDtacenter].cache setSynString:_mydatepicView.resultString forKey:@"schduleRecordTime"]; [_mydatepicView removeFromSuperview]; TemperatureSetCell*cell=[self.tab cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]]; cell.temperaturelabel.text=_mydatepicView.resultString; } } -(void)cancleButtonClick{ [_mydatepicView removeFromSuperview]; } -(void)nowRecordBtnAction:(UIButton*)btn{ btn.selected=!btn.selected; ; if (btn.selected) { self.recordType=@"1"; [[DataCenter defaultDtacenter].cache setSynString:self.recordType forKey:@"recordType"]; [[GWP2PClient sharedClient] setDeviceManuallyRecordState:YES withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; [[GWP2PClient sharedClient] setDeviceRecordType:GWP2PRecordTypeManual withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { if (success) { [self.view makeToast:@"设置成功"]; } else { [self.view makeToast:@"设置失败"]; } }]; [[GWP2PClient sharedClient] setDeviceManuallyRecordState:YES withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; }else { self.recordType=@"0"; [[DataCenter defaultDtacenter].cache setSynString:self.recordType forKey:@"recordType"]; [[GWP2PClient sharedClient] setDeviceRecordType:GWP2PRecordTypeAlarm withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { NSLog(@"data=%@",dataDictionary); }]; [[GWP2PClient sharedClient] setDevicePrerecordState:YES withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; [[GWP2PClient sharedClient] setDeviceAlarmRecordTime:3 withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; [[GWP2PClient sharedClient] setDeviceManuallyRecordState:NO withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; } [self.tab reloadData]; } -(void)schduleRecordAction:(UISwitch*)btn { btn.selected=!btn.selected; if (btn.selected) { self.recordType=@"2"; [[DataCenter defaultDtacenter].cache setSynString:self.recordType forKey:@"recordType"]; [[GWP2PClient sharedClient] setDeviceManuallyRecordState:NO withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; [[GWP2PClient sharedClient] setDeviceRecordType:GWP2PRecordTypeSchedule withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { NSLog(@"data=%@",dataDictionary); }]; NSString*time=[[DataCenter defaultDtacenter].cache stringForKey:@"schduleRecordTime"].length?[[DataCenter defaultDtacenter].cache stringForKey:@"schduleRecordTime"]:@"09:00-16:00"; NSString*start=[[time componentsSeparatedByString:@"-"] firstObject]; NSString*end=[[time componentsSeparatedByString:@"-"] lastObject]; NSString*startHour=[[start componentsSeparatedByString:@":"] firstObject]; NSString*startMin=[[start componentsSeparatedByString:@":"] lastObject]; NSString*endHour=[[end componentsSeparatedByString:@":"] firstObject]; NSString*endMin=[[end componentsSeparatedByString:@":"] lastObject]; [[GWP2PClient sharedClient] setDevicePlanedRecordTimeWithFromHour:startHour.integerValue fromMinute:startMin.integerValue toHour:endHour.integerValue toMinute:endMin.integerValue deviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { if (success) { [self.view makeToast:@"设置成功"]; } else { [self.view makeToast:@"设置失败"]; } }]; }else{ self.recordType=@"0"; [[DataCenter defaultDtacenter].cache setSynString:self.recordType forKey:@"recordType"]; [[GWP2PClient sharedClient] setDeviceRecordType:GWP2PRecordTypeAlarm withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { NSLog(@"data=%@",dataDictionary); }]; [[GWP2PClient sharedClient] setDevicePrerecordState:YES withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; [[GWP2PClient sharedClient] setDeviceAlarmRecordTime:3 withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; [[GWP2PClient sharedClient] setDeviceManuallyRecordState:NO withDeviceID:self.camera.cameraId devicePassword:self.camera.cameraPass completionBlock:^(GWP2PClient *client, BOOL success, NSDictionary *dataDictionary) { }]; } [self.tab reloadData]; } @end