添加设备绑定过程;
This commit is contained in:
parent
2a9849c6fe
commit
d15e9301a4
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#pragma mark - IFishHotpotUDPHelperDelegate
|
||||
|
||||
- (void)udpHelperCommandExecutedSuccess {
|
||||
- (void)udpHelperCommandExecutedSuccess:(IFishUDPHelperBackMsgModel *)backModel {
|
||||
[self.view makeToast:@"设备即将重启"];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#pragma mark - IFishHotpotUDPHelperDelegate
|
||||
|
||||
- (void)udpHelperCommandExecutedSuccess {
|
||||
- (void)udpHelperCommandExecutedSuccess:(IFishUDPHelperBackMsgModel *)backModel {
|
||||
[self.view makeToast:@"设备即将重置"];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,4 +10,7 @@
|
|||
|
||||
@interface ConnectHotpotViewController : BaseVIewContorller
|
||||
|
||||
@property (nonatomic, copy) NSString *ssid;
|
||||
@property (nonatomic, copy) NSString *bssid;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
#import "dataContorl.h"
|
||||
#import<SystemConfiguration/CaptiveNetwork.h>
|
||||
#import "IFishHotpotUDPHelper.h"
|
||||
#import "ESPTouchResult.h"
|
||||
#import "ESPTouchTask.h"
|
||||
|
||||
@interface ConnectHotpotViewController ()<UITextFieldDelegate, IFishHotpotUDPHelperDelegate>
|
||||
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
|
||||
|
|
@ -19,6 +21,8 @@
|
|||
@property (weak, nonatomic) IBOutlet UITextField *pwdTf;
|
||||
@property (weak, nonatomic) IBOutlet UIView *containerView;
|
||||
|
||||
@property (nonatomic, strong) ESPTouchTask* epTask;
|
||||
|
||||
@end
|
||||
|
||||
@implementation ConnectHotpotViewController
|
||||
|
|
@ -128,12 +132,171 @@
|
|||
|
||||
#pragma mark - IFishHotpotUDPHelperDelegate
|
||||
|
||||
- (void)udpHelperCommandExecutedSuccess {
|
||||
[self.view makeToast:@"连接设置成功"];
|
||||
- (void)udpHelperCommandExecutedSuccess:(IFishUDPHelperBackMsgModel *)backModel {
|
||||
[self.view makeToast:[NSString stringWithFormat:@"连接设置成功,mac 地址:%@",backModel.senderMacAddress]];
|
||||
[self tapConfirmForResults];
|
||||
}
|
||||
|
||||
- (void)udpHelperMessage:(NSString *)msg {
|
||||
[self.view makeToast:msg];
|
||||
}
|
||||
|
||||
#pragma mark - bind
|
||||
|
||||
|
||||
- (void) tapConfirmForResults{
|
||||
|
||||
NSLog(@"ViewController do confirm action...");
|
||||
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
|
||||
dispatch_async(queue, ^{
|
||||
NSLog(@"ViewController do the execute work...");
|
||||
// execute the task
|
||||
NSArray *esptouchResultArray = [self executeForResults];
|
||||
// show the result to the user in UI Main Thread
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// [self._spinner stopAnimating];
|
||||
// [self enableConfirmBtn];
|
||||
|
||||
ESPTouchResult *firstResult = [esptouchResultArray objectAtIndex:0];
|
||||
// check whether the task is cancelled and no results received
|
||||
if (!firstResult.isCancelled)
|
||||
{
|
||||
NSMutableString *mutableStr = [[NSMutableString alloc]init];
|
||||
NSUInteger count = 0;
|
||||
// max results to be displayed, if it is more than maxDisplayCount,
|
||||
// just show the count of redundant ones
|
||||
const int maxDisplayCount = 5;
|
||||
if ([firstResult isSuc])
|
||||
{
|
||||
|
||||
NSString * _deviceBssid=firstResult.bssid;
|
||||
|
||||
NSArray*arry=[[DataCenter defaultDtacenter]valueForKey:@"deviceInfo"];
|
||||
DeviceModel*model=[[DeviceModel alloc]init];
|
||||
if (arry.count<5) {
|
||||
NSMutableArray*macdressArr=[[NSMutableArray alloc]init];
|
||||
for (model in arry) {
|
||||
|
||||
[macdressArr addObject:model.macAddress];
|
||||
|
||||
}
|
||||
BOOL exst=[macdressArr containsObject:_deviceBssid];
|
||||
if (exst) {
|
||||
self.bakbutton.userInteractionEnabled=YES;
|
||||
//[self.navigationController popViewControllerAnimated:YES];
|
||||
[self.view makeToast:@"该设备已存在"];
|
||||
|
||||
}else{
|
||||
|
||||
[self bindDeviceWithSsid:_deviceBssid];
|
||||
|
||||
}
|
||||
}else{
|
||||
[self.view makeToast:@"您的设备数量已超过限制"];
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < [esptouchResultArray count]; ++i)
|
||||
{
|
||||
ESPTouchResult *resultInArray = [esptouchResultArray objectAtIndex:i];
|
||||
[mutableStr appendString:[resultInArray description]];
|
||||
[mutableStr appendString:@"\n"];
|
||||
count++;
|
||||
if (count >= maxDisplayCount)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (count < [esptouchResultArray count])
|
||||
{
|
||||
[mutableStr appendString:[NSString stringWithFormat:@"\nthere's %lu more result(s) without showing\n",(unsigned long)([esptouchResultArray count] - count)]];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
self.bakbutton.userInteractionEnabled=YES;
|
||||
[self.view makeToast:@"未获取到设备mac"];
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
- (NSArray *) executeForResults
|
||||
{
|
||||
NSString *apSsid = self.ssid;
|
||||
NSString *apPwd = self.pwdTf.text;
|
||||
NSString *apBssid = self.bssid;
|
||||
BOOL isSsidHidden = YES;
|
||||
int taskCount=1;
|
||||
self.epTask =
|
||||
[[ESPTouchTask alloc]initWithApSsid:apSsid andApBssid:apBssid andApPwd:apPwd andIsSsidHiden:isSsidHidden];
|
||||
NSArray * esptouchResults = [self.epTask executeForResults:taskCount];
|
||||
NSLog(@"ViewController executeForResult() result is: %@",esptouchResults);
|
||||
return esptouchResults;
|
||||
|
||||
}
|
||||
|
||||
-(void)bindDeviceWithSsid:(NSString*)bssid{
|
||||
NSLog(@"设备bssid_%@",bssid);
|
||||
NSString *userId = [dataContorl dataControlGetUserIdInfo];
|
||||
[AFHttpTool bindDeviceWithUserId:userId macAddress:bssid success:^(id response) {
|
||||
NSDictionary*resultDic=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil];
|
||||
NSLog(@"data:%@",resultDic[@"data"]);
|
||||
if ([resultDic[@"result"] isEqualToString:@"100"]) {
|
||||
|
||||
// 保存设备信息
|
||||
NSDictionary*dataDic=resultDic[@"data"];
|
||||
DeviceModel*devicemodel=[[DeviceModel alloc] initWithDict:dataDic];
|
||||
|
||||
if (!devicemodel.type){
|
||||
|
||||
[self.view makeToast:@"用户绑定设备成功,但设备初次入网失败请重新登陆"];
|
||||
|
||||
}else{
|
||||
NSMutableArray * _deviceArry=[[DataCenter defaultDtacenter]valueForKey:@"deviceInfo"];
|
||||
|
||||
[_deviceArry insertObject:devicemodel atIndex:0];
|
||||
|
||||
[[DataCenter defaultDtacenter]setValue:_deviceArry forKey:@"deviceInfo"];
|
||||
|
||||
if ([devicemodel.type isEqual:[NSNull null]]){
|
||||
|
||||
//进入此循环 可能因为设备所在服务器 不在 本程序所在 服务器
|
||||
[self showTitle:@"" messsage:@"设备不在服务器"];
|
||||
|
||||
}else{
|
||||
//绑定成功 加 经验值
|
||||
[[IfishUserObsever sharedInstance] xinZengJingYanZhi:IFISHADDEXP_BIDDEVICE addType:IFISHADDEXPTYPE1];
|
||||
}
|
||||
}
|
||||
|
||||
}else if ([resultDic[@"result"] isEqualToString:@"101"]){
|
||||
|
||||
[self.view makeToast:@"绑定失败"];
|
||||
self.bakbutton.userInteractionEnabled=YES;
|
||||
|
||||
}else if ([resultDic[@"result"] isEqualToString:@"301"]){
|
||||
|
||||
[self.view makeToast:@"请求验证失败,请重新登录"];
|
||||
self.bakbutton.userInteractionEnabled=YES;
|
||||
}else if ([resultDic[@"result"] isEqualToString:@"302"]){
|
||||
// 请求被舍弃未执行
|
||||
self.bakbutton.userInteractionEnabled=YES;
|
||||
|
||||
}
|
||||
|
||||
|
||||
} failure:^(NSError *err) {
|
||||
[self.view makeToast:@"网络异常"];
|
||||
self.bakbutton.userInteractionEnabled=YES;
|
||||
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -35,10 +35,10 @@
|
|||
} else {
|
||||
NSInteger left = 40 - origin.length;
|
||||
NSMutableString *str = [NSMutableString string];
|
||||
[str appendString:origin];
|
||||
for (NSInteger index = 0; index < left; index++) {
|
||||
[str appendString:@"0"];
|
||||
}
|
||||
[str appendString:origin];
|
||||
return [str copy];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,12 +8,13 @@
|
|||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "AsyncUdpSocket.h"
|
||||
#import "IFishUDPHelperBackMsgModel.h"
|
||||
|
||||
@protocol IFishHotpotUDPHelperDelegate<NSObject>
|
||||
|
||||
@optional
|
||||
- (void)udpHelperMessage:(NSString *)msg;
|
||||
- (void)udpHelperCommandExecutedSuccess;
|
||||
- (void)udpHelperCommandExecutedSuccess:(IFishUDPHelperBackMsgModel *)backModel;
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
#import "ConnectHotspotModel.h"
|
||||
#import "ResetDeviceModel.h"
|
||||
#import "RestartDeviceModel.h"
|
||||
#import "IFishUDPHelperBackMsgModel.h"
|
||||
|
||||
@interface IFishHotpotUDPHelper ()
|
||||
{
|
||||
|
|
@ -138,8 +137,8 @@
|
|||
NSLog(@"port%hu",port);
|
||||
IFishUDPHelperBackMsgModel *model = [[IFishUDPHelperBackMsgModel alloc] initWithData:data];
|
||||
if ([model.result isEqualToString:@"01"]) {
|
||||
if ([self.delegate respondsToSelector:@selector(udpHelperCommandExecutedSuccess)]) {
|
||||
[self.delegate udpHelperCommandExecutedSuccess];
|
||||
if ([self.delegate respondsToSelector:@selector(udpHelperCommandExecutedSuccess:)]) {
|
||||
[self.delegate udpHelperCommandExecutedSuccess:model];
|
||||
}
|
||||
} else {
|
||||
AppDelegate *app =(AppDelegate*)[UIApplication sharedApplication].delegate;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
@interface IFishUDPHelperBackMsgModel : NSObject
|
||||
|
||||
@property (nonatomic, copy) NSString *senderMacAddress;
|
||||
@property (nonatomic, copy) NSString *result;
|
||||
@property (nonatomic, copy) NSString *changshang;
|
||||
@property (nonatomic, copy) NSString *device;
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
- (instancetype)initWithData:(NSData *)data {
|
||||
if (self = [super init]) {
|
||||
NSString*totalString=[dataContorl dataToHexString:data];
|
||||
self.senderMacAddress = [totalString substringWithRange:NSMakeRange(2, 2)];
|
||||
self.result = [totalString substringWithRange:NSMakeRange(30, 2)];
|
||||
self.changshang = [totalString substringWithRange:NSMakeRange(32, 2)];
|
||||
self.device = [totalString substringWithRange:NSMakeRange(34, 2)];
|
||||
|
|
|
|||
|
|
@ -419,6 +419,8 @@ extern BOOL isfromCameraView;
|
|||
|
||||
- (IBAction)lickHereBtnClicked:(id)sender {
|
||||
ConnectHotpotViewController *vc = [[ConnectHotpotViewController alloc] initWithNibName:@"ConnectHotpotViewController" bundle:nil];
|
||||
vc.ssid = self.ssid;
|
||||
vc.bssid = self.bssid;
|
||||
[self.navigationController pushViewController:vc animated:YES];
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue