上网设置

## 上网设置 上网设置模块需导入头文件`#import <H3CMagicKit/H3CGatewayObject+NetModeConfig.h>` ### 一、 确定当前上网方式 #### 1.1 获取中继状态 先调用是否是中继状态接口,确定当前是否是中继状态(下面接口返回中继状态,可能是有线中继或者无线中继) ``` [H3CGatewayObject getNetworkSettingTrunKSatateInfoWithSuccess:^(BOOL isRepeating) { if (isRepeating) { // 为中继模式,进一步确定为有线中继还是无线中继 [self requestRepeatingData]; }else { // 非中继模式 [self requestDataNotRepeating]; } } failure:^(H3CError *error) { [MHToast showToastHUD:error.errorDesc]; [MHToast hiddenProgressHUD]; }]; } ``` #### 1.2 判断是有线还是无线中继 若是接口`1.1`返回中继状态,则调用有线中继接口 通过以下接口判断是否为有线中继 ``` [H3CGatewayObject getNetworkSettingCableTrunkingInfoWithSuccess:^(H3CCableTrunkModel * _Nonnull model) { // 非有线中继,则走无线中继 int wirebridge = [model.repeaterStatus intValue]; if (wirebridge ==1 || wirebridge==4) { // 无线中继 // 调用无线中继接口,继续获取无线中继相关信息 } else { // 有线中继 } } failure:^(H3CError *error) { [MHToast showToastHUD:error.errorDesc]; [MHToast hiddenProgressHUDWithTitle]; }]; ``` 否则为无线中继,获取无线中继信息。 ``` [H3CGatewayObject getNetworkSettingWirelessTrunkingInfoWithSuccess:^(H3CWirelessTrunkModel * _Nonnull model) { } failure:^(H3CError *error) { [MHToast hiddenProgressHUD]; [MHToast showToastHUD:error.errorDesc]; }]; ``` #### 1.3 获取DHCP、PPPoE、Static IP信息 若不是中继状态(即DHCP、PPPoE、Static IP),则调用网络设置常规信息获取接口 ``` [H3CGatewayObject getNetworkSettingNormalInfoWithSuccess:^(H3CNetModeNormalModel * _Nonnull model) { [MHToast hiddenProgressHUDWithTitle]; int netPlayMode = [model.netPlayMode intValue]; if (netPlayMode == 1) { // DHCP } else if (netPlayMode == 2) { // PPPoE } else if (netPlayMode == 3) { // Static IP) } } failure:^(H3CError *error) { }]; ```` ### 二、 配置上网方式(非配置向导配置) 若网关当前为为中继状态,则需要先断开中继,才能配置其他上网方式。 #### 2.1 断开中继 * 断开有线中继 ``` [H3CGatewayObject disconnectNetworkSettingCableTrunkingWithSuccess:^(id obj) { [MHToast hiddenProgressHUD]; } failure:^(H3CError *error) { if (error.retCode == -1) { // 网络异常也算成功 }else { } }]; ``` * 断开无线中继 ``` [H3CGatewayObject disconnectNetworkSettingWirelessTrunkingWithSuccess:^(id obj) { } failure:^(H3CError *error) { if (error.retCode == -1 || error.retCode == 999) { // 网络异常也算成功 999:请求数据超时 }else { [MHToast showToastHUD:error.errorDesc]; } }]; ``` #### 2.2 配置DHCP ``` [H3CGatewayObject setNetworkSettingDHCPInfoWithSuccess:^(id obj) { [MHToast showToastHUD:@"上网模式已设置为DHCP模式" ]; } failure:^(H3CError *error) { }]; ``` #### 2.3 配置PPPoE ``` H3CNetModePppoeAttrs *attr = [[H3CNetModePppoeAttrs alloc] init]; attr.broadBandId = self.broadBandId; attr.broadBandPsd = self.broadBandPsd; [MHToast showProgressHUDWithTitle:@"正在下发设备配置信息..."]; [H3CGatewayObject setNetworkSettingPPPOEInfoWithAttrs:attr success:^(id obj) { [MHToast hiddenProgressHUD]; [MHToast showToastHUD:@"配置成功" ]; [self.navigationController popViewControllerAnimated:YES]; } failure:^(H3CError *error) { [MHToast hiddenProgressHUD]; [MHToast showToastHUD:error.errorDesc]; }]; ``` #### 2.4 静态IP ``` H3CNetModeStaticAttrs *attr = [[H3CNetModeStaticAttrs alloc] init]; attr.ipAdress = self.ipAdress; attr.mask = self.mask; attr.gateway = self.gateway; attr.dns1 = self.dns1; attr.dns2 = self.dns2; [H3CGatewayObject setNetworkSettingStaticIpInfoWithAttrs:attr success:^(id obj) { [MHToast showToastHUD:@"上网模式已设置为静态IP模式"]; } failure:^(H3CError *error) { }]; ``` #### 2.5 配置有线中继 ``` [H3CGatewayObject setNetworkSettingCableTrunkingInfoWithSuccess:^(id obj) { [MHToast hiddenProgressHUD]; } failure:^(H3CError *error) { if (error.retCode == -1) { // 网络异常也算成功 }else { } }]; ``` #### 2.6 配置无线中继 ``` H3CWirelessTrunkAttrs *attr = [[H3CWirelessTrunkAttrs alloc] init]; attr.wifiName = _wifiName; attr.encryptMode = @(_encryptModel); attr.wifiSignal = @(3); attr.wifiPwd = psw; [H3CGatewayObject setNetworkSettingWirelessTrunkingInfoWithAttrs:attr success:^(id obj) { } failure:^(H3CError *error) { }]; ``` #### 三、 能力集 | 能力集序号|能力集属性|描述| |-|-|-| |8| isSupportInternetPPPoE | 是否支持上网设置PPPoE| |9| isSupportInternetDHCP | 是否支持上网设置DHCP| |10| isSupportInternetStatic | 是否支持上网设置Static| |11| isSupportInternetWirelessRepeater | 是否支持上网设置无线中继| |12| isSupportInternetWireRepeater | 是否支持上网设置有线中继|