一种对系统设置进行读写的智能编程实现方法及装置与流程

文档序号:16916794发布日期:2019-02-19 19:02阅读:161来源:国知局
一种对系统设置进行读写的智能编程实现方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种对系统设置进行读写的智能编程实现方法及装置。



背景技术:

linux是一套免费使用和自由传播的类unix操作系统,是一个基于posix和unix的多用户、多任务、支持多线程和多cpu的操作系统。它能运行主要的unix工具软件、应用程序和网络协议。它支持32位和64位硬件。linux继承了unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

目前linux操作系统由于源码开放及技术成熟,从而大量使用在各种产品的软件设计中。但是现有的系统设置读写时,每一次读命令行或写命令行都需要手动编写程序对命令行程序系统设置进行读取或写入,编程难度大,编程时间长。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于上述现有技术的不足,本发明的目的在于提供一种对系统设置进行读写的智能编程实现方法及装置,旨在解决现有技术中linux操作系统中系统设置读写时,每一次读命令行或写命令行都需要手动编写程序对命令行程序系统设置进行读取或写入,编程难度大的问题。

本发明的技术方案如下:

一种对系统设置进行读写的智能编程实现方法,应用于gtk框架,所述方法包括:

获取外部参数,根据外部参数生成命令参数;

根据生成的命令参数,获取gtk设置框架中的具体设置参数;

根据具体设置参数设计并编写读写文件,读取所述读写文件将具体设置参数解析到相应的内存中;

获取内存中解析后的具体设置参数,对解析后的具体设置参数处理,生成用于下发配置程序的配置参数;

对配置参数进行分离,根据分离后的内容进行分类;

调入目标参数,对系统设置进行读写。

可选地,所述根据外部参数生成命令参数,包括:

根据外部参数生成第一命令参数和第二命令参数,其中所述第一命令参数用于获取gtk框架中所定义的某个系统设置的内容,所述第二命令参数用于对gtk框架中的某项设置内容进行相关的自动设置。

可选地,所述根据生成的命令参数,获取gtk设置框架中的具体设置参数,包括:

根据第一命令参数获取gtk设置框架中的具体设置参数;

根据第二命令参数,对gtk框架中的设置内容按照设置参数进行相关的设置。

可选地,所述读写文件为命令行读写文件,

所述根据具体设置参数设计并编写读写文件,包括:

根据具体设置参数设计并编写命令行读写文件,命令行读写文件包括命令行参数。

可选地,所述根据具体设置参数设计并编写读写文件,读取所述读写文件将具体设置参数解析到相应的内存中;

预先在内存中设置当前程序与上层程序的映射关系,根据映射关系实现上层程序与当前程序间的命令行参数的传递,并撰写用于当前程序脚本的命令行程序;

在内存中读取上述命令行参数的内容,并将读取内容形成在一个读取列表中;

判断命令行参数对应的文件是否存在读取列表中;

若不存在,则将命令行参数对应的文件形成文件输入流,把文件中的命令行参数对应的内容读入内存中。

可选地,所述获取内存中解析后的具体设置参数,对解析后的具体设置参数处理,生成用于下发配置程序的配置参数,包括:

获取内存中的命令行参数,进行统一化处理,生成用于下发配置程序的配置参数。

可选地,所述对配置参数进行分离,根据分离后的内容进行分类,包括:

判断系统中配置程序的脚本内容是否存在;

若存在,对配置参数进行分离,获取分离后的配置参数,对分离后的参数,根据脚本内容的参数格式进行再次分离;

根据再次分离的配置参数,根据所需要执行的命令类型进行分类。

本发明又一实施例还提供了一种对系统设置进行读写的智能编程实现装置,所述装置包括至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的对系统设置进行读写的智能编程实现方法。

本发明的另一实施例还提供了一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的对系统设置进行读写的智能编程实现方法。

本发明的另一种实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使所述处理器执行上述的对系统设置进行读写的智能编程实现方法。

有益效果:本发明公开了一种对系统设置进行读写的智能编程实现方法及装置,本发明实施例通过预先设置一个进程程序读写系统设置,并由上导程序完成相就的命令行参数的生成,实现自动根据上层程序输入一个参数,可以实现一系列的系统设置,对于应用程序员读写系统设置时,只需要提供一个参数就可以实现,降低了编程难度。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为本发明一种对系统设置进行读写的智能编程实现方法较佳实施例的流程图;

图2为本发明一种对系统设置进行读写的智能编程实现装置较佳实施例的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。

请参阅图1,图1为本发明一种对系统设置进行读写的智能编程实现方法较佳实施例的流程图。如图1所示,其包括步骤:

步骤s100、获取外部参数,根据外部参数生成命令参数;

步骤s200、根据生成的命令参数,获取gtk设置框架中的具体设置参数;

步骤s300、根据具体设置参数设计并编写读写文件,读取所述读写文件将具体设置参数解析到相应的内存中;

步骤s400、获取内存中解析后的具体设置参数,对解析后的具体设置参数处理,生成用于下发配置程序的配置参数;

步骤s500、对配置参数进行分离,根据分离后的内容进行分类;

步骤s600、调入目标参数,对系统设置进行读写。

具体实施时,本发明实施例中的gtk框架(gimptoolkit)是一套源码以lgpl许可协议分发、跨平台的图形工具包。最初是为gimp写的,已成为一个功能强大、设计灵活的一个通用图形库,是gnu/linux下开发图形界面的应用程序的主流开发工具之一。

本发明实施例中的程序采用python程序来实现,通过提供的命令行参数,实现对系统设置的进行读或写,以及相关的修改。相应的设置是经过定制化的。本发明实施中的配置程序的文件为systemsettings.py。

首先引入所需要的读写系统信息库,具体的代码如下::

importsys

importsubprocess

importos

importconfigparser

importjson

importre。

步骤s100包括:根据外部参数生成第一命令参数和第二命令参数,其中所述第一命令参数用于获取gtk框架中所定义的某个系统设置的内容,所述第二命令参数用于对gtk框架中的某项设置内容进行相关的自动设置。

具体实施时,gtk框架中所定义的某个系统设置的内容的命令参数为第一命令参数。根据外部参数生成用来获取gtk框架中所定义的某个系统设置的内容的命令参数。具体的代码如下:

将对gtk框架中的某项设置内容进行相关的自动设置的命令参数记为第二参数,根据外部参数,生成对gtk框架中的某项设置内容进行相关的自动设置的命令参数。具体的代码如下:

进一步地,步骤s200包括:根据第一命令参数获取gtk设置框架中的具体设置参数;

根据第二命令参数,对gtk框架中的设置内容按照设置参数进行相关的设置。

具体实施时,根据生成的命令参数,获取gtk设置框架中的具体设置参数。

根据生成的命令参数,对gtk框架中的设置内容按照设置参数进行相关的设置。具体的代码如下:

进一步地,读写文件为命令行读写文件,

所述根据具体设置参数设计并编写读写文件,包括:

根据具体设置参数设计并编写命令行读写文件,命令行读写文件包括命令行参数。

具体实施时,设计并编写命令行map读写文件,这个文件采用(key,value)形式,保存名字和对应的命令,这个文件的内容部分如下:

其内容的格式为:command-key:command。

进一步地,根据具体设置参数设计并编写读写文件,读取所述读写文件将具体设置参数解析到相应的内存中;

预先在内存中设置当前程序与上层程序的映射关系,根据映射关系实现上层程序与当前程序间的命令行参数的传递,并撰写用于当前程序脚本的命令行程序;

在内存中读取上述命令行参数的内容,并将读取内容形成在一个读取列表中;

判断命令行参数对应的文件是否存在读取列表中;

若不存在,则将命令行参数对应的文件形成文件输入流,把文件中的命令行参数对应的内容读入内存中。

具体实施时,文件格式是:命令参数对应key的名字:命令的具体参数表。通过读取这个文件就可以把这样一系列参数解析到相应的内存中去。具体的代码如下:

设计相应的map在内存中作为上层程序给python程序进行参数的传递,并撰写命令行程序来跑python的脚本。

在内存中定义读取上述命令行参数的内容,并形成一个列表方便在内存中使用。具体的代码如下:

private:

qmap<qstring,qstring>commandmap_;

qmap<qstring,qstring>&initcommandlist();

qmap<qstring,qstring>&systemsetting::initcommandlist(){

qfilesystem_setting_commands(":/data/system-settings-commands");

判断上述命令行参数文件是否存在,具体的代码如下:

形成文件输入流,把文件中的命令行参数对应的内容读入程序内存中。具体的代码如下:

进一步地,步骤s400包括:

获取内存中的命令行参数,进行统一化处理,生成用于下发配置程序的配置参数。

具体实施时,把上述内存中的命令行参数内容,进行统一的标准化处理,形成用来送给systemsetting.py程序的命令行参数,本函数是根据需求来生成相应的命令行参数。具体的代码如下:

进一步地,步骤s500包括:

判断系统中配置程序的脚本内容是否存在;

若存在,对配置参数进行分离,获取分离后的配置参数,对分离后的参数,根据脚本内容的参数格式进行再次分离;

根据再次分离的配置参数,根据所需要执行的命令类型进行分类。

具体实施时,分离命令行参数,具体的代码如下:

qstringattribute_str;

constqstringprog=arg_list[0];

constqstringmethod=arg_list[1];

constqstringlowermethod=method.tolower();

判断系统中systemsetting.py这个脚本内容是否存在,存在才允许执行,不存在就会出现错误,就直接返回了,不进行任何操作。具体的代码如下:

对分离出来的命令行参数,按照脚本内容所需要的参数格式进行相应的分离与重组。具体的代码如下:

根据分离出来的参数,对所需要执行的命令类型进行分类,get就执行获取属性,set就对系统进行属性设置,readall就读取系统设置内容所有参数并形成相应的json格式数据。具体的代码如下:

进一步地,步骤s600程序就调用并传入相应的参数就能够获取或者对系统进行相关的设置了。

本发明另一实施例提供一种对系统设置进行读写的智能编程实现装置,如图2所示,装置10包括:

一个或多个处理器110以及存储器120,图2中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图2中以通过总线连接为例。

处理器110用于完成装置10的各种控制逻辑,其可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acornriscmachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp核、或任何其它这种配置。

存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的对系统设置进行读写的智能编程实现方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行装置10的各种功能应用以及数据处理,即实现上述方法实施例中的对系统设置进行读写的智能编程实现方法。

存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储根据装置10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至装置10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的对系统设置进行读写的智能编程实现方法,例如,执行以上描述的图1中的方法步骤s100至步骤s600。

本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤s100至步骤s600。

作为示例,非易失性存储介质能够包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦rom(eeprom)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(ram)。通过说明丽非限制,ram可以以诸如同步ram(sram)、动态ram、(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强型sdram(esdram)、synchlinkdram(sldram)以及直接rambus(兰巴斯)ram(drram)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。

本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行上述方法实施例的对系统设置进行读写的智能编程实现方法。例如,执行以上描述的图1中的方法步骤s100至步骤s600。

以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,服务器,或者网络电子设备等)执行各个实施例或者实施例的某些部分的方法。

除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地不旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有学生输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。

已经在本文中在本说明书和附图中描述的内容包括能够提供智能柜定制方法及装置的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1