// // IfishSelectCardViewController.m // ShotViewAnimation // // Created by imac on 16/10/25. // Copyright © 2016年 xiang. All rights reserved. // #import "IfishSelectCardViewController.h" #import "IfishCardScrollView.h" #import "Reachability.h" /** * color config */ #define GCUIColorFromRGB(rgbValue) \ [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0 \ green:((float)((rgbValue & 0xFF00) >> 8)) / 255.0 \ blue:((float)(rgbValue & 0xFF)) / 255.0 \ alpha:1.0] #define kGCCardRatio 0.8 #define kGCCardWidth CGRectGetWidth(self.view.frame)*kGCCardRatio #define kGCCardHeight kGCCardWidth/kGCCardRatio #import "SecondConnectWifiController.h" #import "UDPManager.h" #import "UDManager.h" #import "LoginResult.h" #import "P2PClient.h" #import "AFNetworking.h" #import "YooseeNextConnectViewController.h" @interface IfishSelectCardViewController () @property (nonatomic, strong) IfishCardScrollView *cardScrollView; @property (nonatomic, strong) NSMutableArray *cards; @property (nonatomic, strong) NSArray *cardsImg; @property(nonatomic)BOOL islogInGewell; @end extern BOOL isfromCameraView; @implementation IfishSelectCardViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // 添加鱼缸设备不是来自摄像头界面 isfromCameraView = NO; [self addTitleViewWithTitle:@"选择设备"]; self.view.backgroundColor = COLOR_MIAN; self.cardScrollView = [[IfishCardScrollView alloc] initWithFrame:CGRectMake(0,0, self.view.frame.size.width, self.view.frame.size.height)]; self.cardScrollView.cardDelegate = self; self.cardScrollView.cardDataSource = self; [self.view addSubview:self.cardScrollView]; self.cards = [NSMutableArray array]; for (NSInteger i = 0; i < 2; i++) { [self.cards addObject:@(i)]; } self.cardsImg = @[@"equipment_background",@"equipment_background_camera"]; self.automaticallyAdjustsScrollViewInsets = NO; } -(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; [self loginGewell]; if( _islogInGewell){ NSLog(@"p2pConnect success.成功,你可以操作设备了"); }else{//new added [self loginGewell]; NSLog(@"p2pConnect failure.失败,你将不能操作设备"); return; } } -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; //CGPoint curentpoint= [self.cardScrollView contentOffsetWithIndex:[self.cardScrollView currentCard]]; //[self.cardScrollView.scrollView setContentOffset:curentpoint animated:NO]; [self loginGewell]; } - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; [self.cardScrollView loadCard]; } -(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; } -(void)goBackAction{ //充血返回事件 防止在选择水族箱 时 返回卡顿 [self.cardScrollView.scrollView setContentOffset:CGPointMake(0, 0) animated:NO]; [self.navigationController popViewControllerAnimated:YES]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - CardScrollViewDelegate - (void)updateCard:(UIView *)card withProgress:(CGFloat)progress direction:(CardMoveDirection)direction { if (direction == CardMoveDirectionNone) { if (card.tag != [self.cardScrollView currentCard]) { CGFloat scale = 1 - 0.1 * progress; card.layer.transform = CATransform3DMakeScale(scale, scale, 1.0); card.layer.opacity = 1 - 0.2*progress; } else { card.layer.transform = CATransform3DIdentity; card.layer.opacity = 1; } } else { NSInteger transCardTag = direction == CardMoveDirectionLeft ? [self.cardScrollView currentCard] + 1 : [self.cardScrollView currentCard] - 1; if (card.tag != [self.cardScrollView currentCard] && card.tag == transCardTag) { card.layer.transform = CATransform3DMakeScale(0.9 + 0.1*progress, 0.9 + 0.1*progress, 1.0); card.layer.opacity = 0.8 + 0.2*progress; } else if (card.tag == [self.cardScrollView currentCard]) { card.layer.transform = CATransform3DMakeScale(1 - 0.1 * progress, 1 - 0.1 * progress, 1.0); card.layer.opacity = 1 - 0.2*progress; } } } #pragma mark - CardScrollViewDataSource - (NSInteger)numberOfCards { return self.cards.count; } - (UIView *)cardReuseView:(UIView *)reuseView atIndex:(NSInteger)index { if (reuseView) { // you can set new style return reuseView; } // UIView *card = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kGCCardWidth * 0.9, kGCCardHeight)]; // card.layer.backgroundColor = [UIColor whiteColor].CGColor; // card.layer.cornerRadius = 4; // card.layer.masksToBounds = YES; UIView *card = [[UIView alloc] initWithFrame:CGRectMake(0, 0,kGCCardWidth * 0.9, kGCCardWidth * 0.9 *1.55)]; card.layer.backgroundColor = [UIColor whiteColor].CGColor; card.layer.cornerRadius = 4; card.layer.masksToBounds = YES; UIImageView *cardImgView = [[UIImageView alloc] initWithFrame:CGRectMake(0 , 0, kGCCardWidth * 0.9, kGCCardWidth * 0.9 *1.55)]; NSString *imagename=self.cardsImg[index]; cardImgView.image = [UIImage imageNamed:imagename]; cardImgView.userInteractionEnabled = YES; [card addSubview:cardImgView]; //前往绑定按钮 CGFloat qianWangBtnW = kGCCardWidth * 0.9 - 20*2; CGFloat qianWangBtnY = kGCCardWidth * 0.9 *1.55 - 20 -qianWangBtnW *0.18; UIButton *qianWangBtn=[UIButton buttonWithType:UIButtonTypeCustom]; qianWangBtn.frame = CGRectMake(CGRectGetMaxX(cardImgView.frame)/2 - qianWangBtnW/2, qianWangBtnY, qianWangBtnW , qianWangBtnW *0.18); [qianWangBtn setTitle:@"前往绑定" forState:UIControlStateNormal]; [qianWangBtn addTarget:self action:@selector(qianWangBtnAction:) forControlEvents:UIControlEventTouchUpInside]; qianWangBtn.tag = index *100; // qianWangBtn.layer.masksToBounds = YES; // qianWangBtn.layer.cornerRadius = 5; [qianWangBtn setBackgroundImage:[UIImage imageNamed:@"equipment_button"] forState:UIControlStateNormal]; [cardImgView addSubview:qianWangBtn]; return card; } -(void)qianWangBtnAction:(UIButton *)btn{ [self testwifiWithBtn:btn]; } /** * 检测是否wifi环境 */ -(void)testwifiWithBtn:(UIButton *)btn{ Reachability *currReach = [Reachability reachabilityForLocalWiFi]; NetworkStatus status = [currReach currentReachabilityStatus]; NSLog(@"NetworkStatus%ld", (long)status); if (status==AFNetworkReachabilityStatusReachableViaWiFi) { //wifi环境下转跳下一界面 switch (btn.tag) { case 0: { //水族箱 NSArray * deviceArr =[[DataCenter defaultDtacenter]valueForKey:@"deviceInfo"]; if ([deviceArr count]>=5) { [self.view makeToast:@"设备已达上线限"]; return; } self.hidesBottomBarWhenPushed = YES; SecondConnectWifiController*wifivc=[[SecondConnectWifiController alloc]init]; [self.navigationController pushViewController:wifivc animated:YES]; } break; case 100: { //摄像头 NSArray * cameraArr =[[DataCenter defaultDtacenter]valueForKey:@"cameraArr"]; if ([cameraArr count]>=5) { [self.view makeToast:@"设备已达上线限"]; return; } if ( self.islogInGewell) { self.hidesBottomBarWhenPushed = YES; YooseeNextConnectViewController *nextvc=[[YooseeNextConnectViewController alloc] init]; [self.navigationController pushViewController:nextvc animated:YES]; nextvc.conectType = 0; }else{ UserModel *model=[dataContorl getUserInfo]; [self loginGewellWith:model]; } } break; default: break; } }else{ [self.view makeToast:@"请切换到WiFi环境下绑定"]; } } -(void)loginGewellWith:(UserModel *)model; { NSString *userIDName=[NSString stringWithFormat:@"%d",(int)[model.gwellUserID integerValue]&0x7fffffff]; if ([userIDName isEqualToString:@"0"]) { [self.view makeToast:@"暂未检测到设备"]; //请求GewellCodes //[self getGewellCodes]; return; } if ([model.P2PVerifyCode1 isEqualToString:@""]) { [self.view makeToast:@"暂未检测到设备"]; return; } if ([model.P2PVerifyCode2 isEqualToString:@""]) { [self.view makeToast:@"暂未检测到设备"]; return; } self.islogInGewell = [[P2PClient sharedClient] p2pConnectWithId:userIDName codeStr1:model.P2PVerifyCode1 codeStr2:model.P2PVerifyCode2]; //loginResult.contactId 用户ID号 NSLog(@"%@%@%@",userIDName,model.P2PVerifyCode1,model.P2PVerifyCode2); } #pragma mark - loginGewell -(void)loginGewell{ [[UDPManager sharedDefault] ScanLanDevice]; _islogInGewell = NO; // LoginResult *loginResult = [UDManager getLoginInfo]; // NSString * P2PVerifyCode1 = @"1528438234"; // NSString * P2PVerifyCode2 = @"992805759"; // NSString *UserID = @"-2144354932"; UserModel *model=[dataContorl getUserInfo]; NSString *userIDName=[NSString stringWithFormat:@"%d",(int)[model.gwellUserID integerValue]&0x7fffffff]; NSLog(@"%@%@%@",userIDName,model.P2PVerifyCode1,model.P2PVerifyCode2); if ([userIDName isEqualToString:@"0"]) { // [self.view makeToast:@"摄像头用户名空错误码10001"]; return; } if ([model.P2PVerifyCode1 isEqualToString:@""]) { [self.view makeToast:@"摄像头P2PVerifyCode1空错误码10002"]; return; } if ([model.P2PVerifyCode2 isEqualToString:@""]) { [self.view makeToast:@"摄像头P2PVerifyCode2空错误码10003"]; return; } _islogInGewell = [[P2PClient sharedClient] p2pConnectWithId:userIDName codeStr1:model.P2PVerifyCode1 codeStr2:model.P2PVerifyCode2]; } -(void)getGewellCodes{ [self.view makeToast:@"连接服务器中。。"]; UserModel *model= [dataContorl getUserInfo]; NSString *userid = [NSString stringWithFormat:@"%@",model.userId]; [AFHttpTool getGwellCodes:userid success:^(id response) { NSDictionary *reDic=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil]; NSDictionary *data=reDic[@"data"]; if ([reDic[@"result"] isEqualToString:@"100"]) { model.P2PVerifyCode1 =data[@"P2PVerifyCode1"]; model.P2PVerifyCode2 =data[@"P2PVerifyCode2"]; model.gwellUserID =data[@"gwellUserID"]; [dataContorl resetUser:model]; [self loginGewellWith:model]; [self.view makeToast:@"连接服务器成功请继续"]; }else{ } } failure:^(NSError *err) { NSLog(@"错误err%@",err); }]; } //- (void)deleteCardWithIndex:(NSInteger)index { // [self.cards removeObjectAtIndex:index]; //} @end