添加设备绑定过程;
This commit is contained in:
parent
2a9849c6fe
commit
d15e9301a4
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#pragma mark - IFishHotpotUDPHelperDelegate
|
#pragma mark - IFishHotpotUDPHelperDelegate
|
||||||
|
|
||||||
- (void)udpHelperCommandExecutedSuccess {
|
- (void)udpHelperCommandExecutedSuccess:(IFishUDPHelperBackMsgModel *)backModel {
|
||||||
[self.view makeToast:@"设备即将重启"];
|
[self.view makeToast:@"设备即将重启"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#pragma mark - IFishHotpotUDPHelperDelegate
|
#pragma mark - IFishHotpotUDPHelperDelegate
|
||||||
|
|
||||||
- (void)udpHelperCommandExecutedSuccess {
|
- (void)udpHelperCommandExecutedSuccess:(IFishUDPHelperBackMsgModel *)backModel {
|
||||||
[self.view makeToast:@"设备即将重置"];
|
[self.view makeToast:@"设备即将重置"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,7 @@
|
||||||
|
|
||||||
@interface ConnectHotpotViewController : BaseVIewContorller
|
@interface ConnectHotpotViewController : BaseVIewContorller
|
||||||
|
|
||||||
|
@property (nonatomic, copy) NSString *ssid;
|
||||||
|
@property (nonatomic, copy) NSString *bssid;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@
|
||||||
#import "dataContorl.h"
|
#import "dataContorl.h"
|
||||||
#import<SystemConfiguration/CaptiveNetwork.h>
|
#import<SystemConfiguration/CaptiveNetwork.h>
|
||||||
#import "IFishHotpotUDPHelper.h"
|
#import "IFishHotpotUDPHelper.h"
|
||||||
|
#import "ESPTouchResult.h"
|
||||||
|
#import "ESPTouchTask.h"
|
||||||
|
|
||||||
@interface ConnectHotpotViewController ()<UITextFieldDelegate, IFishHotpotUDPHelperDelegate>
|
@interface ConnectHotpotViewController ()<UITextFieldDelegate, IFishHotpotUDPHelperDelegate>
|
||||||
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
|
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
|
||||||
|
|
@ -19,6 +21,8 @@
|
||||||
@property (weak, nonatomic) IBOutlet UITextField *pwdTf;
|
@property (weak, nonatomic) IBOutlet UITextField *pwdTf;
|
||||||
@property (weak, nonatomic) IBOutlet UIView *containerView;
|
@property (weak, nonatomic) IBOutlet UIView *containerView;
|
||||||
|
|
||||||
|
@property (nonatomic, strong) ESPTouchTask* epTask;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation ConnectHotpotViewController
|
@implementation ConnectHotpotViewController
|
||||||
|
|
@ -128,12 +132,171 @@
|
||||||
|
|
||||||
#pragma mark - IFishHotpotUDPHelperDelegate
|
#pragma mark - IFishHotpotUDPHelperDelegate
|
||||||
|
|
||||||
- (void)udpHelperCommandExecutedSuccess {
|
- (void)udpHelperCommandExecutedSuccess:(IFishUDPHelperBackMsgModel *)backModel {
|
||||||
[self.view makeToast:@"连接设置成功"];
|
[self.view makeToast:[NSString stringWithFormat:@"连接设置成功,mac 地址:%@",backModel.senderMacAddress]];
|
||||||
|
[self tapConfirmForResults];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)udpHelperMessage:(NSString *)msg {
|
- (void)udpHelperMessage:(NSString *)msg {
|
||||||
[self.view makeToast: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
|
@end
|
||||||
|
|
|
||||||
|
|
@ -35,10 +35,10 @@
|
||||||
} else {
|
} else {
|
||||||
NSInteger left = 40 - origin.length;
|
NSInteger left = 40 - origin.length;
|
||||||
NSMutableString *str = [NSMutableString string];
|
NSMutableString *str = [NSMutableString string];
|
||||||
|
[str appendString:origin];
|
||||||
for (NSInteger index = 0; index < left; index++) {
|
for (NSInteger index = 0; index < left; index++) {
|
||||||
[str appendString:@"0"];
|
[str appendString:@"0"];
|
||||||
}
|
}
|
||||||
[str appendString:origin];
|
|
||||||
return [str copy];
|
return [str copy];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,13 @@
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import "AsyncUdpSocket.h"
|
#import "AsyncUdpSocket.h"
|
||||||
|
#import "IFishUDPHelperBackMsgModel.h"
|
||||||
|
|
||||||
@protocol IFishHotpotUDPHelperDelegate<NSObject>
|
@protocol IFishHotpotUDPHelperDelegate<NSObject>
|
||||||
|
|
||||||
@optional
|
@optional
|
||||||
- (void)udpHelperMessage:(NSString *)msg;
|
- (void)udpHelperMessage:(NSString *)msg;
|
||||||
- (void)udpHelperCommandExecutedSuccess;
|
- (void)udpHelperCommandExecutedSuccess:(IFishUDPHelperBackMsgModel *)backModel;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@
|
||||||
#import "ConnectHotspotModel.h"
|
#import "ConnectHotspotModel.h"
|
||||||
#import "ResetDeviceModel.h"
|
#import "ResetDeviceModel.h"
|
||||||
#import "RestartDeviceModel.h"
|
#import "RestartDeviceModel.h"
|
||||||
#import "IFishUDPHelperBackMsgModel.h"
|
|
||||||
|
|
||||||
@interface IFishHotpotUDPHelper ()
|
@interface IFishHotpotUDPHelper ()
|
||||||
{
|
{
|
||||||
|
|
@ -138,8 +137,8 @@
|
||||||
NSLog(@"port%hu",port);
|
NSLog(@"port%hu",port);
|
||||||
IFishUDPHelperBackMsgModel *model = [[IFishUDPHelperBackMsgModel alloc] initWithData:data];
|
IFishUDPHelperBackMsgModel *model = [[IFishUDPHelperBackMsgModel alloc] initWithData:data];
|
||||||
if ([model.result isEqualToString:@"01"]) {
|
if ([model.result isEqualToString:@"01"]) {
|
||||||
if ([self.delegate respondsToSelector:@selector(udpHelperCommandExecutedSuccess)]) {
|
if ([self.delegate respondsToSelector:@selector(udpHelperCommandExecutedSuccess:)]) {
|
||||||
[self.delegate udpHelperCommandExecutedSuccess];
|
[self.delegate udpHelperCommandExecutedSuccess:model];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
AppDelegate *app =(AppDelegate*)[UIApplication sharedApplication].delegate;
|
AppDelegate *app =(AppDelegate*)[UIApplication sharedApplication].delegate;
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
@interface IFishUDPHelperBackMsgModel : NSObject
|
@interface IFishUDPHelperBackMsgModel : NSObject
|
||||||
|
|
||||||
|
@property (nonatomic, copy) NSString *senderMacAddress;
|
||||||
@property (nonatomic, copy) NSString *result;
|
@property (nonatomic, copy) NSString *result;
|
||||||
@property (nonatomic, copy) NSString *changshang;
|
@property (nonatomic, copy) NSString *changshang;
|
||||||
@property (nonatomic, copy) NSString *device;
|
@property (nonatomic, copy) NSString *device;
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
- (instancetype)initWithData:(NSData *)data {
|
- (instancetype)initWithData:(NSData *)data {
|
||||||
if (self = [super init]) {
|
if (self = [super init]) {
|
||||||
NSString*totalString=[dataContorl dataToHexString:data];
|
NSString*totalString=[dataContorl dataToHexString:data];
|
||||||
|
self.senderMacAddress = [totalString substringWithRange:NSMakeRange(2, 2)];
|
||||||
self.result = [totalString substringWithRange:NSMakeRange(30, 2)];
|
self.result = [totalString substringWithRange:NSMakeRange(30, 2)];
|
||||||
self.changshang = [totalString substringWithRange:NSMakeRange(32, 2)];
|
self.changshang = [totalString substringWithRange:NSMakeRange(32, 2)];
|
||||||
self.device = [totalString substringWithRange:NSMakeRange(34, 2)];
|
self.device = [totalString substringWithRange:NSMakeRange(34, 2)];
|
||||||
|
|
|
||||||
|
|
@ -419,6 +419,8 @@ extern BOOL isfromCameraView;
|
||||||
|
|
||||||
- (IBAction)lickHereBtnClicked:(id)sender {
|
- (IBAction)lickHereBtnClicked:(id)sender {
|
||||||
ConnectHotpotViewController *vc = [[ConnectHotpotViewController alloc] initWithNibName:@"ConnectHotpotViewController" bundle:nil];
|
ConnectHotpotViewController *vc = [[ConnectHotpotViewController alloc] initWithNibName:@"ConnectHotpotViewController" bundle:nil];
|
||||||
|
vc.ssid = self.ssid;
|
||||||
|
vc.bssid = self.bssid;
|
||||||
[self.navigationController pushViewController:vc animated:YES];
|
[self.navigationController pushViewController:vc animated:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue