From 8cae130f43871938392292e527b79bb15f314fd3 Mon Sep 17 00:00:00 2001 From: m-krasikov Date: Fri, 14 Aug 2020 15:09:51 +0300 Subject: [PATCH] Implemented ability to switch net mode --- huaweisms/api/dialup.py | 38 ++++++++++++++++++++++++++++++++++++++ setup.py | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/huaweisms/api/dialup.py b/huaweisms/api/dialup.py index f43d6a9..4f5990b 100644 --- a/huaweisms/api/dialup.py +++ b/huaweisms/api/dialup.py @@ -45,3 +45,41 @@ def switch_mobile_on(ctx: huaweisms.api.common.ApiCtx, proxy=None): } url = "{}/dialup/mobile-dataswitch".format(ctx.api_base_url) return huaweisms.api.common.post_to_url(url, data, ctx, additional_headers=headers, proxy=proxy) + + +def switch_net_mode(ctx: huaweisms.api.common.ApiCtx, net_mode='lte_umts', proxy=None): + xml_template = ( + '' + '' + '{mode}' + '3FFFFFFF' + '7FFFFFFFFFFFFFFF' + '' + ) + if net_mode == 'lte': + data = xml_template.format(mode='03') + elif net_mode == 'umts': + data = xml_template.format(mode='02') + elif net_mode == 'lte_umts': + data = xml_template.format(mode='0302') + else: + data = xml_template.format(mode='0302') + headers = { + '__RequestVerificationToken': ctx.token, + } + url = "{}/net/net-mode".format(ctx.api_base_url) + return huaweisms.api.common.post_to_url(url, data, ctx, additional_headers=headers, proxy=proxy) + + +def get_net_mode(ctx: huaweisms.api.common.ApiCtx, proxy=None): + url = "{}/net/net-mode".format(ctx.api_base_url) + result = huaweisms.api.common.get_from_url(url, ctx, proxy=proxy) + if result and result.get('type') == 'response': + response = result['response'] + if response and response.get('NetworkMode') == '0302': + return 'lte_umts' + if response and response.get('NetworkMode') == '03': + return 'lte' + if response and response.get('NetworkMode') == '02': + return 'umts' + return 'UNKNOWN_MODE' diff --git a/setup.py b/setup.py index 7e22882..9770596 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup -version = '0.0.7' +version = '0.0.8' with open('requirements.txt') as fd: requirements = [line.strip() for line in fd if line.strip()]