基于Python的移动网设备自动节电软件的设计与实现

2022-05-30 08:08侯阔赵鑫石建利
电脑知识与技术 2022年27期
关键词:移动网节电

侯阔 赵鑫 石建利

摘要:随着能源危机的来临,节约各类资源已成为社会的热点话题之一。各行各业,尤其是通信行业,节省电量已是迫在眉睫。文章主要研究了移动网设备的节电问题,运用Python编写计算机软件,能够实现在网管上远程自动关断移动网设备的功放功能。经过现实网络实验测算,此软件在设备节能期间,设备节省电量高达65%。

关键词:Python;移动网;节电

中图分类号:TP311.52      文献标识码:A

文章编号:1009-3044(2022)27-0042-04

开放科学(资源服务)标识码(OSID):

1 引言

随着移动通信的快速发展,设备的耗电量也快速增加。节能降耗和降本增效成了通信行业面临的重要问题。通过研究表明,4G/5G基站耗能的主要部件是馈线、射频、基带、电源,其中耗能最大的就是射频,将射频单元的功放功能关闭即可达到节电效果[1]。移动网络话务量存在明显的潮汐效应,时间上不连续、不均衡,夜间业务流量几乎为零。但是所有的基站设备始终保持着7×24小时持续运行的状态,造成了严重的能耗浪费。本文基于Python设计并实现了一款计算机软件,核心功能是通过使用Python提供的自动化工具模块来操作鼠标和键盘,从而可以定时控制网络管理员远程自动关断设备的功放功能,既能节省大量成本,又能解放劳动力。

近年来,随着网络系统自动化、智能化、信息化水平的不断发展及进步,硬件设备等信息技术基础设施越来越依赖于网络。同时随着软件技术的发展,企业内的各种复杂设备随之增多,应用的场景也是参差不齐,运维人员无法依靠人工去排查软件系统运行状态是否正常,进一步增加了其复杂度,所以企业运维人员迫切地需要一种新型的网络管理方式。从技术上来说,新型的网管系统,具备的特性已经和以前无法比较,有着很强的兼容性,可移植性。从应用趋势上来说,随着网上用户的普遍增加和大量企业应用的网络设备的增多,旧时的网络设备性能已经远远满足不了现在的需求,用户越来越不关注具体的网络管理内容,而是希望他们的应用能否正常地运行,由此网管软件开始了改变,将更多的功能放入到系统内部,将性能放在了第一位。从运维角度讲,用户们需要的是性能卓越的、安全可靠的设备来构建网络,另一方面,人们需要的不仅仅这些,更看重的是网络给他们带来的便利。如同现在的宽带小区,需要对每家用户的带宽、流量、服务器、根据不同时间来选择的服务内容等,大量的要求使得网络需要具备的功能多种多样,这对于新一代的网管软件来说,无疑是一场巨大的压力。通过将现有的网管系统与编程相结合的方式,可以解决目前网管系统智能程度不足的问题。

2 问题描述

目前针对4G基站主设备节能方法主要是设备厂家对出厂前的设备采取相应措施,一般是根据LTE网络特性原理,主设备厂家基于设备OMC管理系统,研究制定的符号关断法、射频通道关断法和载波关断法三种节能方法[2],此类节能方法均需要厂家的LICENSE授权才可以使用。现阶段各大运营商就是使用此方式实现的降低能耗。此类方式虽然较为完善,具备自适应能力,但节能效果较差,尤其是对于夜间无人区域效果不够明显。并且需要支付厂家部分费用,增大了成本。

另有地区采用现场安装节电开关来定时关闭设备电源,停止设备供电以此达到省电的效果。此种方法主要应用在室内商场、办公写字楼等夜间人员流失较大的区域,基本无用户停留。此方法相对来说不够灵活,不能实现远程控制,也有一部分采购成本。

针对当前存在的问题,本文研究方法是在设备的实际运行下,以维护优化网络管理员自主操作为前提,在特定时间段(如0点至6点)内对低业务负荷的站点通过手动或自动发送脚本命令,实现对特定区域的软关断或去激活,使基站的所有硬件设备都置于待机状态,从而减少基站功率发射,解决设备耗电量高的问题。此种方法在设备实际运行期间,耗电量大幅度降低,设备节电情况相比未采用此方法之前节省量达到65%,是一种科学可靠的降低能耗的方法。并基于Python语言设计并实现了一款计算机软件,核心功能是通过Python提供的自动化工具PyAutoGUI控制鼠标和键盘的操作,以实现定时自动远程关断设备的功放功能。这款计算机软件的应用既减少了人力成本,又能够提高节电效能。

3 软件设计与实现

3.1 理论基础

基站耗能最主要部件是射频部分,此功能主要由室外设备RRU(射频单元)来完成,射频单元需要将数字信号转换为射频信号并放大传播至几公里外,所以此类设备功率较大,较为耗电。

网络管理员的主要工作内容是关断射频功放,要完成此工作,需要首先通过整理关断小区的明细,并制作批处理的命令,然后登录网络管理员系统,将整理好的批处理指令导入系统中,最后执行指令,关断射频设备的功放。

3.2 Python模块介绍

现如今,人们生活在一个数字化信息化发达的时代,所面临的大部分工作能用计算机软件来完成的,不用人们亲力亲为,这样既提高了工作效率,又能避免人为干预出现的错误。编写计算机程序软件的语言有多种,Python是现如今最受欢迎的编程语言,它相比于其他语言,简洁明了,更容易上手。并且它包含多种库,很多方法都是在库中封装好的,开发者编程时免去很多复杂代码。通过Python语言编程,能够让人们工作中的很多任务实现自动运行,把人们从繁重枯燥的工作中解放出来[3]。

3.2.1 PyAutoGUI模塊介绍

在计算机上自动化任务的终极工具,就是通过编写程序直接控制键盘和鼠标。这些程序可以控制其他应用,向它们发送虚拟的击键和鼠标点击,就像人坐在计算机前与应用交互一样[4]。这种技术被称为“图形用户界面自动化”,或简称为“GUI自动化”。

PyAutoGUI是一个全部由Python语言开发的自动化运维工具,该工具的核心思想就是模拟鼠标和键盘操作,人们无需在电脑面前操作,实现完全的自动化处理。“无线网设备自动节电应用”的关键之处就是运用了PyAutoGUI自动化工具,使用PyAutoGUI中的相关函数,处理一些需要网络管理员手动操作的任务。“无线网设备自动节电应用”程序的开发过程中,主要用到的PyAutoGUI具体函数如下:

1)pyautogui.position()

以电脑屏幕的左上角为原点,屏幕的长为x轴,宽为y轴,向右x坐标增加,向下y坐标增加,屏幕分辨率即为x、y的最大值。通过调用pyautogui.position()函数,可以确定鼠标的当前具体位置。它将返回函数调用时,鼠标x、y坐标的元组。例如:屏幕大小Screen size: (1920 1080),鼠标位置Position : (204, 745)。

2)pyautogui.click()

向计算机发送虚拟的鼠标点击时,就使用pyautogui.click()函数。默认情况下,点击鼠标左键,点击发生在鼠标当前所在位置。如果希望点击在鼠标当前位置以外的地方发生,可以传入x、y坐标作为可选的第一和第二参数。如果想指定鼠标按键,就加入button关键字参数,值分别为left、middle、或right。例如:pyautogui.click(100,200,buttton=right)。

3)pyautogui.doubleclick()

在当前位置,实现双击鼠标左键操作,参数主要是鼠标当前的所在位置,坐标轴上x、y的坐标。例如:pyautogui.doubleclick(100,200)。

4)pyautogui.typewrite()

使用pyautogui.typewrite()函数可以向计算机发送虚拟按键,在光标处输入键盘上的所有字符,例如pyautogui.typewrite(‘hello world)。

5)pyautogui.press()

模拟点击键盘上的按键释放。在键盘上按下一个键然后释放。例如使用pyautogui.press(‘enter)命令可以模拟按下回车键然后释放。

3.2.2 time.sleep模块介绍

time.sleep(num):推迟进程的进行,先让进程挂起,使程序延迟指定秒数后,然后再执行。可以向该函数中传入一个整数值(代表秒数),可以控制程序的执行[5]。

3.2.3 ImageGrab模块介绍

ImageGrab模块用于将当前屏幕的内容或者剪贴板上的内容拷贝到PIL图像的内存中。

3.2.4 Image模块介绍

Image模块是在Python PIL图像处理中使用频率极高的模块,该模块包含一系列工厂函数和方法,如new()、open()、convert()、copy()等,主要实现从文件中上传图像、创建新图像和复制图像等基础功能[6]。

3.2.5 Pytesseract模块介绍

Pytesseract是一款用于光学字符识别(OCR)的Python工具,即从图片中识别出和“读取”其中嵌入的文字,在无线网设备自动节电软件的设计过程中主要用来识别图片的验证码并保存成字符串。

3.2.6 Pyinstaller模块介绍

生成不依赖Python环境的、面向用户的可以直接执行的程序,将写好的Python程序代码打包成Windows系统可执行的exe软件。

3.3 软件制作

无线网设备自动节电软件的设计与实现主要包括编写Python程序代码、将代码打包成exe可执行软件和设置本地计算机任务三个环节,具体详细步骤如下。

1) 首先,用Python编写代码实现自动控制设备网管批量关闭/打开功放功能,代码核心内容是导入相应的模块和包,调用相应的函数和方法,实现导入文件、打开导入的脚本、创建并保存图像、打开图像、图像文字识别、将识别的文字以字符串的形式导入、鼠标运行代码等功能,具体代码如图2所示。

本代码可以代替人对网管进行操作,实现点击导入文件按钮、打开脚本文件、运行代码操作,并加入验证机制,将导入的代码截图并识别内容,如果代码导入正确将继续执行,如果代码导入错误则终止执行。

2) 然后,在Python环境中安装Pyinstaller模块,执行pyinstaller -F -w guanbi.py回车即可将代码打包成Windows系统可执行的exe文件图3和图4为代码封装过程。

3) 最后,在本地计算机中设置计划任务,打开计算机管理→任务计划程序→任务计划程序库→Microsoft→Windows中创建一个任务并且进行相应的设置,每天定时启动此exe软件。具体步骤如下图所示。

4 运行实例

首先,将整理好的关断小区明细,并制作批处理的命令,然后登录网管系统,将整理好的批处理指令导入网管系统中,危险命令确认,最后执行指令,关断射频设备的功放。将软件和定时启动计划制作完毕后,软件自动启动并开始模拟人对网管进行操作。具体步骤如下。

5 结束语

本文针对移动网设备,基于Python设计并编写了一个能够定时远程自动设备,实现设备节电的计算机软件。本文以4G基站的RRU为实验对象,实验结果表明,在设备节能期间,设备可以节约高达65%的电量,以全网三分之一的设备,每天凌晨0点到6点关断计算,本文成果可以节约3%的电费。随着5G网络的运营,能耗持续增加,本文实验成果可以推广至5G基站设备。

同时本文在网络的自动化运维方面提出了新的思路,使用了基于Python程序设计脚本语言实现网络设备的自动化运维,讲述了Python语言在网络自动化运维中所需的第三方模块,通过编写Python脚本,具备很强的兼容性,可移植性,易用性。该方法侧重于对设备的集中远程管理,大大地推动了新型网络管理软件的开发和应用。部分实现了对网络设备的日常维护,提高了网络管理人员的工作效率。

参考文献:

[1] 曾文,贺良贞,王文超. 4G基站节能省电技术研究与试验分析[C].广州:2019广东通信青年论坛,2019:394-398.

[2] 張维利,张武志.关于4G网络基站节能降耗的研究与实践[J].信息通信,2020,33(4):254-256.

[3] 杨自兴,李志民,李子乾,等.电网信息系统运维管理自动化探索与研究[J].信息通信,2020,33(12):192-194.

[4] 林亮滚.自动化运维监测系统的应用研究[J].工程建设与设计,2020(22):247-248.

[5] Sweigart A.Automate The Boring Stuff With Python[M].王海鹏,译.北京:人民邮电出版社,2020:351-366.

[6] 金光涛,丰德伟,马小亮,等.数据中心自动化运维设计与应用[J].信息技术与信息化,2020(11):68-71.

【通联编辑:谢媛媛】

猜你喜欢
移动网节电
央视新闻移动网:移动为先 直播为核 联盟为形
浅析新闻移动直播中报道模式的变革——以央视新闻移动网客户端对2017年全国两会的报道为例
青藏高原地区移动网基站断站问题研究和解决
从“冰箱小杀手”到“节电小王子”
从“冰箱小杀手”到“节电小王子”
电动机系统节电措施及实践
制冷系统节电控制改造的研究
移动网短消息业务流程及案例分析