网关配网
## 网关配网
### 一、网关配网
当网关是出厂配置时,配置网关后才能进行管理。
* 上网方式包括5种:`自动方式(DHCP)`, `宽带拨号(PPPoE)`, `手动方式(静态IP)`, `有线中继(AP)`, `无线中继`
* 由于无线中继传输速率没有有线上网方式高、稳定,因此配置向导不推荐无线中继。(若一定要无线中继,可以配置好设备再设置)
### 1.1 获取配置向导信息
* 导入头文件`#import <H3CMagicKit/H3CGatewayObject+H3CConfigGuide.h>`
* 调用获取网关配置信息接口
[H3CGatewayObject getConfigureGuideWirelessNetInfoWithSuccess:^(H3CWiFiConfigModel * _Nonnull model) {
self.wifiName = model.wifiName;
self.adminPswSyncFlag = [model.adminPswSyncFlag integerValue];
self.dualBandFlag = [model.dualBandFlag integerValue];
// gwFactoryCfg==3, 表示可以直接跳到配置Wi-Fi
if ([H3CGuideMHRouterCapabilityManager share].gwFactoryCfg == 3) {
}
} failure:^(H3CError *error) {
NSLog(@"%@", error.errorDesc);
}];
>w 若`gwFactoryCfg`值等3,则不能修改上网方式(因为当前已经是有线中继模式),只能跳到步骤1.3配置SSID和密码。
### 二、配置上网方式
#### 2.1 自动方式(DHCP)
* 导入头文件`#import <H3CMagicKit/H3CGatewayObject+H3CConfigGuide.h>`
* 调用设置网关为DHCP上网方式
```
[H3CGatewayObject setConfigureGuideDHCPInfoWithSuccess:^(id obj) {
} failure:^(H3CError *error) {
}];
```
* 判断是否设置成功,可以调用以下接口(不成功也可以跳到1.3步骤,配置SSID和密码完成出厂配置)
```
[H3CGatewayObject getConfigureGuideNormalInfoWithSuccess:^(H3CNetModeNormalModel * _Nonnull model) {
NSInteger value = [model.netPlayLink integerValue];
if (value == 1) {
}
else if (value == 2) {
}
else if (value == 3) { // netPlayLink=3,账号或者管理密码错误,pppoe专属
}
} failure:^(H3CError *error) {
}];
```
#### 2.2 宽带拨号(PPPoE)
* 导入头文件`#import <H3CMagicKit/H3CGatewayObject+H3CConfigGuide.h>`
* 调用设置网关为PPPoE
```
[H3CGatewayObject setConfigureGuidePPPOEInfoWithAttrs:self.pppoeAttrs success:^(id obj) {
} failure:^(H3CError *error) {
}];
```
* 判断是否设置成功,可以调用以下接口(不成功也可以跳到1.3步骤,配置SSID和密码完成出厂配置)
```
[H3CGatewayObject getConfigureGuideNormalInfoWithSuccess:^(H3CNetModeNormalModel * _Nonnull model) {
NSInteger value = [model.netPlayLink integerValue];
if (value == 1) {
[MHToast showToastHUD:@"拨号成功"];
}else if (value == 2) {
}else if (value == 3) {
[MHToast hiddenProgressHUD];
[MHToast showToastHUD:@"账号或者密码错误"];
}
} failure:^(H3CError *error) {
}];
```
#### 2.3 手动方式(静态IP)
* 导入头文件`#import <H3CMagicKit/H3CGatewayObject+H3CConfigGuide.h>`
* 调用设置网关为静态IP
```
[H3CGatewayObject setConfigureGuideStaticIpInfoWithAttrs:self.staticAttrs success:^(id obj) {
} failure:^(H3CError *error) {
}];
```
* 判断是否设置成功,可以调用以下接口(不成功也可以跳到1.3步骤,配置SSID和密码完成出厂配置)
```
[H3CGatewayObject getConfigureGuideNormalInfoWithSuccess:^(H3CNetModeNormalModel * _Nonnull model) {
NSInteger value = [model.netPlayLink integerValue];
if (value == 1) {
[MHToast hiddenProgressHUD];
[MHToast showToastHUD:@"连接成功"];
}else if (value == 2) {
}else if (value == 3) { // netPlayLink=3,账号或者管理密码错误,pppoe专属
}
} failure:^(H3CError *error) {
}];
```
#### 2.4 有线中继(AP)
* 导入头文件`#import <H3CMagicKit/H3CGatewayObject+H3CConfigGuide.h>`
* 调用设置网关为有线中继
```
[H3CGatewayObject setConfigureGuideCableTrunkingInfoWithSuccess:^(id obj) {
} failure:^(H3CError *error) {
}];
```
* 判断是否设置成功,需要调用接口查看是否中继成功(不成功也可以跳到1.3步骤,配置SSID和密码完成出厂配置)
```
[H3CGatewayObject getConfigureGuideCableTrunkingInfoWithSuccess:^(H3CCableTrunkModel * _Nonnull model) {
if ([model.repeaterStatus integerValue] == 3) {
[self trunkSuccess];
}
else if ([model.repeaterStatus integerValue] == 2) { // trunking
}
else if ([model.repeaterStatus integerValue] == 4) { // trunk failure
[MHToast hiddenProgressHUD];
[MHToast showToastHUD:@"中继失败"];
}
} failure:^(H3CError *error) {
}];
```
* 有线中继成功后,需要再次查看配置向导无线信息,并且同步ip地址到本地 (有线中继成功网关ip地址会改变)
```
[H3CGatewayObject getConfigureGuideWirelessNetInfoWithSuccess:^(H3CWiFiConfigModel * _Nonnull model) {
[MHToast hiddenProgressHUD];
[MHToast showToastHUD:@"有线中继成功"];
self.configState = H3CNetModeConfigStateSuccess;
H3CWiFiConfigModel *wifiModel = model;
self.wifiName = wifiModel.wifiName;
self.adminPswSyncFlag = [wifiModel.adminPswSyncFlag integerValue];
self.dualBandFlag = [wifiModel.dualBandFlag integerValue];
// 中继成功ip地址会变更,应该更新配置中设备的ip
[[H3CGuideMHRouterCapabilityManager share] updateGatewayIp:wifiModel.lanIp];
} failure:^(H3CError *error) {
if (self.count >= 60) {
[MHToast hiddenProgressHUD];
[MHToast showToastHUD:@"中继失败"];
self.configState = H3CNetModeConfigStateFailure;
return;
}
[self trunkSuccess];
}];
```
### 三、配置SSID和密码
配好上网方式,接下来配置网关SSID和密码
* 导入头文件`#import <H3CMagicKit/H3CGatewayObject+H3CConfigGuide.h>`
* 调用设置SSID和密码接口
```
[H3CGatewayObject setConfigureGuideWirelessNetInfoWithAttrs:wifiAttrs success:^(id obj) {
[MHToast hiddenProgressHUD];
[self showCompletedView];
} failure:^(H3CError *error) {
[MHToast hiddenProgressHUD];
if (error.retCode == 73) {
[MHToast showToastHUD:@"请勿输入生僻字符"];
}
else if (error.retCode == -1) { // 网络异常也算成功
[self showCompletedView];
}
else {
[MHToast showToastHUD:error.errorDesc];
}
```
到此完成了出厂配置设备的配网,网关可以正常使用。
>w 设备出厂配置较为复杂,可以参考Demo实现。