CN103905231B - 对设备类型统一管理的方法和装置 - Google Patents
对设备类型统一管理的方法和装置 Download PDFInfo
- Publication number
- CN103905231B CN103905231B CN201210579200.8A CN201210579200A CN103905231B CN 103905231 B CN103905231 B CN 103905231B CN 201210579200 A CN201210579200 A CN 201210579200A CN 103905231 B CN103905231 B CN 103905231B
- Authority
- CN
- China
- Prior art keywords
- device type
- equipment
- memory block
- item
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种对设备类型统一管理的方法和装置,在所述方法中,设备类型的参数配置、状态获取和控制命令操作都在与设备类型相关的存储区以程序执行入口的字符串表示,其中,所述与设备类型相关的存储区包括设备类型存储区,设备类型配置项存储区,设备类型状态项存储区,设备类型控制命令项存储区。采用本发明,当系统增加新的设备类型时,应用程序按照统一的存储格式与操作指令格式添加设备与设备类型相关的记录和代码,实现对这些设备类型的参数配置、状态获取和发送控制命令的功能,从而达到提高系统兼容不同设备类型灵活性的目的。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种对设备类型统一管理的方法和装置。
背景技术
目前,在一个系统需要接入新的设备类型时,开发人员或网管人员需针对各个设备类型各自设计代码,由于其参数配置、状态获取和发送控制命令等操作实现样式不一,难以管理。在这种情况下,系统变得越来越庞大而复杂,给后续的维护和软件稳定性带来威胁。
专利申请号为CN200910148571.9的中国专利文献公开了一种通用可扩展的管理设备配置文件的方法及设备,所述方法包括以下步骤:管理设备获取根据不同厂商的被管理设备的配置文件备份与恢复方式构造的不同厂商对应的模板文件;管理设备按照厂商、被管理设备的不同,构建所述模板文件的目录结构,所述目录结构将厂商、设备和模板文件三者之间进行自动关联;管理设备接收包含被管理设备型号、所属厂商信息的管理指令,根据被管理设备、该设备所属厂商查找对应的模板文件;若查找到被管理设备对应的模板文件,管理设备根据被管理设备对应的模板文件对被管理设备配置文件进行管理。该专利方案中,在网络中加入了新厂商的设备时,无需更换软件,就可以对网络中任意厂商设备的配置文件进行备份与恢复提到,用模板文件方法对设备的参数配置进行自动化管理。
但是,该专利方案无法实现对不同设备类型的状态获取、发送控制命令等更多操作进行统一管理,无法在测控系统、集成系统等需对多个设备进行集中管理的应用系统在具有多个设备类型的场景下、达到减轻开发人员或网管人员的开发工作量、以及兼容不同设备类型的目的。
发明内容
本发明的目的在于提供一种对设备类型进行统一管理的方法和装置,通过将设备类型以及设备的数据存储表示和操作实现代码分离,当系统增加新的设备类型时,应用程序按照统一的存储格式与操作指令格式添加设备与设备类型相关的记录和代码,实现对这些设备类型的参数配置、状态获取和发送控制命令的功能,从而达到提高系统兼容不同设备类型灵活性的目的。
为了达到本发明的目的,本发明采用以下技术方案实现:
一种对设备类型统一管理的方法,其应用于需对多个设备进行集中管理的应用系统,其中,设备类型的参数配置、状态获取和控制命令操作都在与设备类型相关的存储区以程序执行入口的字符串表示,其中,所述与设备类型相关的存储区包括设备类型存储区,设备类型配置项存储区,设备类型状态项存储区,设备类型控制命令项存储区。
优选地,所述对设备类型统一管理的方法具体包括:
定义设备类型的步骤,即应用程序根据用户输入在与设备类型相关的存储区,指定每个设备类型的配置过程、状态获取过程和执行控制命令的函数体入口信息;
添加设备的步骤,即应用程序根据用户输入在与设备相关的存储区记录每个设备的数据,其中,所述与设备相关的存储区包括设备存储区、设备配置项存储区、设备状态项存储区;
调用设备操作的步骤,即程序主体根据设备类型的配置过程、状态获取过程和执行控制命令的函数体入口信息,动态加载并执行对应的函数体。
优选地,定义设备类型的步骤具体包括:
应用程序根据用户输入,在设备类型存储区增加记录,指定此设备类型的编号和名称;
应用程序根据用户输入,在设备类型配置项存储区增加记录,指定此设备类型配置项的编号、名称、值类型、所属设备类型以及一个第一附加字段,其中,此第一附加字段用于表示该类型设备执行配置过程的函数体入口信息;
应用程序根据用户输入,在设备类型状态项存储区增加记录,指定此设备类型状态项的编号、名称、值类型、所属设备类型和一个第二附加字段,其中,此第二附加字段用于表示该类型设备执行该状态项获取过程的函数体入口信息;
应用程序根据用户输入,在设备类型控制命令项存储区增加记录,指定该设备类型控制命令项的编号、名称、所属设备类型和一个第三附加字段,其中,此第三附加字段用于表示该类型设备执行该控制命令项的函数体入口信息。
优选地,添加设备的步骤具体包括:
应用程序根据用户输入,在设备存储区增加记录,指定要增加的设备的类型、编号和名称;
应用程序根据用户输入,在设备配置项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有配置项的数目,增加的每一条记录的设备编号都等于此设备的设备编号,每一条记录的配置编号对应于此设备对应的设备类型的一条配置项编号,每一条记录的取值都等于用户输入的该设备在该配置项的取值;
应用程序在设备状态项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有状态项的数目,增加的每一条记录的设备编号都对应于此设备的设备编号,每一条记录的状态编号对应于此设备对应的设备类型的一个状态项编号,每一条记录的取值都等于默认值。
优选地,调用设备操作的步骤具体包括:
执行设备配置,程序主体根据该设备类型在设备类型配置项的第一附加字段表示的函数体入口信息,动态加载并执行对应的函数体;
执行设备状态获取,程序主体根据该设备类型的该状态项在设备类型状态项的第二附加字段表示的函数体入口信息,动态加载并执行对应的函数体,执行后将得到的设备状态信息存储到该设备的该状态项在设备状态项的取值字段对应的位置上;
执行设备控制命令,程序主体根据该设备类型的该控制命令项在设备类型控制命令项的第三附加字段表示的函数体入口信息,动态加载并执行对应的函数体。
一种对设备类型统一管理的装置,其应用于需对多个设备进行集中管理的应用系统,其中,设备类型的参数配置、状态获取和控制命令操作都在与设备类型相关的存储区以程序执行入口的字符串表示,其中,所述与设备类型相关的存储区包括设备类型存储区,设备类型配置项存储区,设备类型状态项存储区,设备类型控制命令项存储区。
优选地,所述对设备类型统一管理的装置包括:
定义模块,用于根据用户输入在与设备类型相关的存储区,指定每个设备类型的配置过程、状态获取过程和执行控制命令的函数体入口信息;
添加模块,用于根据用户输入在与设备相关的存储区记录每个设备的数据,其中,所述与设备相关的存储区包括设备存储区、设备配置项存储区、设备状态项存储区;
调用模块,用于根据设备类型的配置过程、状态获取过程和执行控制命令的函数体入口信息,动态加载并执行对应的函数体。
优选地,定义模块包括:
第一定义模块,用于根据用户输入,在设备类型存储区增加记录,指定此设备类型的编号和名称;
第二定义模块,用于根据用户输入,在设备类型配置项存储区增加记录,指定此设备类型配置项的编号、名称、值类型、所属设备类型以及一个第一附加字段,其中,此第一附加字段用于表示该类型设备执行配置过程的函数体入口信息;
第三定义模块,用于根据用户输入,在设备类型状态项存储区增加记录,指定此设备类型状态项的编号、名称、值类型、所属设备类型和一个第二附加字段,其中,此第二附加字段用于表示该类型设备执行该状态项获取过程的函数体入口信息;
第四定义模块,用于根据用户输入,在设备类型控制命令项存储区增加记录,指定该设备类型控制命令项的编号、名称、所属设备类型和一个第三附加字段,其中,此第三附加字段用于表示该类型设备执行该控制命令项的函数体入口信息。
优选地,添加模块包括:
第一添加模块,用于根据用户输入,在设备存储区增加记录,指定要增加的设备的类型、编号和名称;
第二添加模块,用于根据用户输入,在设备配置项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有配置项的数目,增加的每一条记录的设备编号都等于此设备的设备编号,每一条记录的配置编号对应于此设备对应的设备类型的一条配置项编号,每一条记录的取值都等于用户输入的该设备在该配置项的取值;
第三添加模块,用于在设备状态项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有状态项的数目,增加的每一条记录的设备编号都对应于此设备的设备编号,每一条记录的状态编号对应于此设备对应的设备类型的一个状态项编号,每一条记录的取值都等于默认值。
优选地,调用模块包括:
第一调用模块,用于根据该设备类型在设备类型配置项的第一附加字段表示的函数体入口信息,动态加载并执行对应的函数体;
第二调用模块,用于根据该设备类型的该状态项在设备类型状态项的第二附加字段表示的函数体入口信息,动态加载并执行对应的函数体,执行后将得到的设备状态信息存储到该设备的该状态项在设备状态项的取值字段对应的位置上;
第三调用模块,用于根据该设备类型的该控制命令项在设备类型控制命令项的第三附加字段表示的函数体入口信息,动态加载并执行对应的函数体。
本发明提供了一种对设备类型进行统一管理的方法和装置,当系统增加新的设备类型时,应用程序按照统一的存储格式与操作指令格式添加设备与设备类型相关的记录和代码,实现对这些设备类型的参数配置、状态获取和发送控制命令的功能,从而达到提高系统兼容不同设备类型灵活性的目的。
附图说明
图1是本发明实施例提供的设备类型和设备的存储结构示意图,其中a表示设备类型的存储结构,b表示设备的存储结构。
图2是本发明实施例提供的设备类型和设备的配置项存储结构示意图,其中a表示设备类型的配置项存储结构,b表示设备的配置项存储结构。
图3是本发明实施例提供的设备类型和设备的状态项存储结构示意图,其中a表示设备类型的状态项存储结构,b表示设备的状态项存储结构。
图4是本发明实施例提供的设备类型的控制命令项存储结构示意图。
图5是本发明实施例提供的设备类型相关开发工作的示意图。
图6是本发明实施例提供的用户创建设备的流程示意图。
图7是本发明实施例提供的设备创建的自动执行流程示意图。
图8是本发明实施例提供的对设备类型统一管理的装置结构示意图。
本发明目的的实现、功能特点及优异效果,下面将结合具体实施例以及附图做进一步的说明。
具体实施方式
下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明实施例提供的能对可扩展设备类型进行统一管理的方法,包括如下步骤:
第一步,定义设备类型,可以进一步划分为以下步骤:
a、应用程序根据用户输入,在设备类型存储区增加记录,指定此设备类型的编号和名称,这一般通过写入数据库表、磁盘文件或者内存区域的方式,后文提到的增加记录都是这个方式;
b、应用程序根据用户输入,在设备类型配置项存储区增加记录,指定此设备类型配置项的编号、名称、值类型、所属设备类型以及一个第一附加字段,此第一附加字段用于表示该类型设备执行配置过程的函数体入口信息;
c、应用程序根据用户输入,在设备类型状态项存储区增加记录,指定此设备类型状态项的编号、名称、值类型、所属设备类型和一个第二附加字段,此第二附加字段用于表示该类型设备执行该状态项获取过程的函数体入口信息;
d、应用程序根据用户输入,在设备类型控制命令项存储区增加记录,指定该设备类型控制命令项的编号、名称、所属设备类型和一个第三附加字段,此第三附加字段用于表示该类型设备执行该控制命令项的函数体入口信息。
第二步,添加设备,其可进一步划分为如下步骤:
a、应用程序根据用户输入,在设备存储区增加记录,指定要增加的设备的类型、编号和名称;
b、应用程序根据用户输入,在设备配置项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有配置项的数目,增加的每一条记录的设备编号都等于此设备的设备编号,每一条记录的配置编号对应于此设备对应的设备类型的一条配置项编号,每一条记录的取值都等于用户输入的该设备在该配置项的取值;
c、应用程序在设备状态项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有状态项的数目,增加的每一条记录的设备编号都对应于此设备的设备编号,每一条记录的状态编号对应于此设备对应的设备类型的一个状态项编号,每一条记录的取值都等于默认值。
第三步,调用设备操作,其可分为以下几种操作:
a、执行设备配置。程序主体根据该设备类型在如图2所述的设备类型配置项“附加”字段表示的函数体入口信息,动态加载并执行对应的函数体。
b、执行设备状态获取。程序主体根据该设备类型的该状态项在如图3所述的设备类型状态项“附加”字段表示的函数体入口信息,动态加载并执行对应的函数体,执行后得到的设备状态信息存储到该设备的该状态项在如图3设备状态项所述“取值”字段对应的位置上。
c、执行设备控制命令。程序主体根据该设备类型的该控制命令项在如图4所述的设备类型控制命令项“附加”字段表示的函数体入口信息,动态加载并执行对应的函数体。
在本发明实施例中,在管理装置中需要设置:
部件1,其为设备类型存储区(参见图1,a部分),其中的每条记录包含一个设备类型的编号、名称;
部件2,其为设备类型配置项存储区(参见图2,a部分),其中的每条记录包含一个设备类型配置项的编号、名称、值类型、所属设备类型以及一个第一附加字段,其中的值类型是指取值的数据类型,如数值型、字符串、枚举型、日期型等;
部件3,其为设备类型状态项存储区(参见图3,a部分),其中的每条记录包含一个设备类型状态项的编号、名称、值类型、所属设备类型以及一个第二附加字段,其中的值类型和设备类型配置项中的值类型意义相同;
部件4,其为设备类型控制命令项存储区(参见图4,a部分),其中的每条记录包含一个设备类型控制命令项的编号、名称、所属设备类型和一个第三附加字段;
部件5,其为设备存储区(参见图1,b部分),其中的每条记录包含一个设备的编号、名称和所属设备类型;
部件6,其为设备配置项存储区(参见图2,b部分),其中的每条记录包含一个设备配置项的设备编号、配置编号和取值;
部件7,其为设备状态项存储区(参见图3,b部分),其中的每条记录包含一个设备状态项的设备编号、状态编号和取值。
此处的存储区载体可以是磁盘文件、数据库、内存区域,以及其他可以进行数据存储的载体。
上述各存储区之间的关系为,
图1中b部分设备存储区的设备类型字段唯一对应于图1中a部分设备类型存储区的编号,图2中b部分设备配置项存储区的配置编号唯一对应于图2中a部分设备类型配置项存储区的编号,图3中b部分设备状态项存储区的状态编号唯一对应于图3中a部分设备类型状态项存储区的编号。
图2-中a部分设备类型配置项存储区的设备类型唯一对应于图1中a部分设备类型存储区的编号,图2中b部分设备配置项存储区的设备编号唯一对应于图1中b部分设备存储区的编号,图3中a部分设备类型状态项存储区的设备类型唯一对应于图1中a部分设备类型存储区的编号,图3中b部分设备状态项存储区的设备编号唯一对应于图1中b部分设备存储区的编号,图4中a部分设备类型控制命令项存储区的设备类型唯一对应于图1中a部分设备类型存储区的编号。
设备类型相关的操作都可以归类为参数配置、状态获取和控制命令三个方面,设备的其他上层业务都可以理解为在此基础上的操作组合。图5表示了设备类型相关的开发工作,主要包括设备参数表示、配置、状态获取和控制命令这几项。针对以往增加新的设备类型需针对各个设备类型及其定制操作,重新制作网管软件,进行整体编码调试的弊病,本发明实施例提供了一套方法和系统,可对系统中的设备类型进行统一的参数表示、配置、状态获取和发送控制命令等操作。
更为具体地,本发明实施例提供的一种对设备类型统一管理的方法,主要包括三个步骤,设备类型的添加,设备的添加和设备操作。
步骤1,设备类型的添加。
在开始本节叙述之前,首先解释一下如何以字符串表示程序执行入口。表示一个程序执行入口,需指定所在程序文件的路径和程序执行入口所在的位置,程序文件的路径是一个字符串,并与操作系统的文件路径相关,例如,如下的路径表示一个exe文件:C:\Program Files\Internet Explorer\jsdebuggeride.dll。程序执行入口所在的位置是指目标程序所在的模块、类、函数名等信息,具体指定的时候就要附带这些信息。根据如上叙述,就可以知道一个程序执行入口的表示方法,下面给出一种可用的表示方法:
file = C:\Program Files\Internet Explorer\jsdebuggeride.dll; class =Arc; namespace = GDI32; function = AngleArc;
表示的含义是位于程序文件C:\Program Files\Internet Explorer\jsdebuggeride.dll内,命名空间为GDI32,Arc类下的名称为AngleArc的函数。
当然这里还可以由更多的表示方法,只要能表达完整此程序执行入口的位置信息即可,例如,希望不同设备类型的参数配置操作都调用名称相同的函数,那么,表示的字符串就可以省去函数名;如果希望使用相同的命名空间,则可以省去命名空间名称;如果希望使用相同的类名,则可以省去类名部分。
在本发明实施例中,设备类型的参数配置、状态获取和控制命令等操作都在存储区以程序执行入口的字符串表示,由此,就把设备和设备类型的数据存储表示与操作实现代码完全分离,从而有助于用统一的存储格式和操作指令格式,实现对不同设备类型的统一管理。
在系统中添加一个新的设备类型,需要做的工作主要有4步,添加设备类型记录,添加设备类型的配置项记录,添加设备类型的状态项记录,添加设备类型的控制命令项记录。以下详细叙述。
步骤1-1、添加设备类型记录。
设备类型存储区如图1中a部分所述,包含了设备类型的编号和名称两个基本字段,而设备类型的附加属性,如厂家,型号说明等,可以在后续的设备类型配置项加以表示,如图2中a部分所述。
在设备类型存储区添加新记录的过程,可以由用户手工完成,例如,通过应用程序的界面手工录入数据,也可以自动录入,例如,在遵循某个格式的文件中编辑好所需的数据,并通过应用程序读取。然后,这些设备类型的数据通过应用程序导入到系统的存储区域(主要是数据库,也可以是文件)。
步骤1-2、添加设备类型的配置项记录。
设备类型的配置项如图2中a部分所述,主要包括配置项的编号、名称、值类型、对应的设备类型和一个第一附加字段,每个配置项的编号全局唯一,不同设备类型的配置项不能编号重复。配置项的值类型是指其取值的数据类型,如数值型、字符串、枚举型、日期型等。设备类型的配置项记录都对应唯一的设备类型,并与图1中a部分中的编号字段关联。
设备类型配置项的第一附加字段,存储执行此配置过程的程序执行入口,存储为字符串类型。具体细节在后面的步骤3叙述。
步骤1-3、添加设备类型的状态项记录。
设备类型的状态项如图3中a部分所述,主要包括状态项的编号、值类型、名称、对应的设备类型和一个第二附加字段,每个状态项的编号全局唯一,不同设备类型的状态项不能编号重复。状态项的值类型是指其取值的数据类型,如数值型。字符串、枚举型、日期型等。设备类型的状态项记录都对应唯一的设备类型,与图1中a部分中的编号字段关联。
设备类型状态项的第二附加字段,存储执行此状态获取过程的程序执行入口,存储为字符串类型。具体细节在步骤3叙述。
步骤1-4、添加设备类型的控制命令项记录:
设备类型的控制命令项如图4中a部分所述,主要包括控制命令项的编号、名称、对应的设备类型和一个第三附加字段,每个控制命令项的编号全局唯一,不同设备类型的控制命令项不能编号重复。设备类型的控制命令项都对应唯一的设备类型,与图1中a部分中的编号字段关联。
设备类型控制命令项的第三附加字段,存储执行此控制命令的程序执行入口,存储为字符串类型。具体细节在步骤3叙述。
步骤2,设备添加:
用户添加设备的一般操作流程如图6所述,需指定要创建设备的设备类型、设备名称(如图6中步骤2),然后进行参数配置(如图6中步骤3)。设备配置参数可以包含如安装时间、使用年限、负责人、联系电话等数据。
特别的,如果用户通过人机交互界面进行设备参数配置,则应用程序需获得该设备类型所拥有的配置项集合,以便供用户输入时参考。具体执行过程为,应用程序根据用户指定的设备类型,在如图2中a部分所述的设备类型配置项存储区搜索对应于该设备类型的所有配置项记录。具体搜索过程为,对设备类型配置项存储区中的所有记录,如果其设备类型字段的取值与用户指定的设备类型相符,则选择为符合要求的配置项记录,否则匹配下一条记录。
用户提交,则应用程序执行写相关存储区的操作,具体包括增加设备存储区记录、增加设备配置项存储区记录、执行配置过程和增加设备状态项存储区记录,如流程图7所述,下面将一一叙述。
步骤2-1、增加设备存储区记录。
应用程序需向如图1中b部分所述的设备存储区添加一条记录,并赋值该设备的编号、名称和所属设备类型,如图7的步骤1、图7的步骤2所述。设备编号可以由用户指定,或者程序自动生成。
步骤2-2、增加设备配置项存储区记录。
应用程序在设备的配置项存储区(如图2-b)加入该设备的配置项记录,如图7的步骤3、图7的步骤4所述流程。具体执行流程如下所述。
根据设备类型,在如图2中a部分所述的设备类型配置项存储区,搜索该设备类型包含的所有配置项记录。具体搜索过程为,对设备类型配置项存储区中的所有记录,如果其设备类型字段取值与此设备的设备类型相符,则选择为符合要求的配置项记录,否则匹配下一条记录。
搜索完成后,对匹配的所有配置项记录,依次写入如图2中b部分所述的设备配置项存储区中。具体过程为,对于在匹配的每一条配置项记录,记为R1,都在如图2中b部分所述设备配置项存储区写入一条记录,记为R2,R2记录的配置编号等于R1的配置编号,R2记录的设备编号等于该设备自身的编号,R2记录的取值字段为对应取值类型的默认值,例如,对数值类型取0,对字符串类型取空串,日期类型取当前时间。
随后应用程序根据用户的配置数据,修改如图2中b部分中该设备各个配置项的取值。具体过程为,对于用户的每一条配置记录,格式与图2中b部分的设备配置项存储区中记录格式一致,记为R3,都在如图2中b部分所述设备配置项存储区搜索对应的记录R4,匹配条件为二者的设备编号和配置项编号一致。然后,将R3记录的取值字段赋给R4记录的取值字段。
步骤2-3、执行参数配置过程。
设备参数配置过程除了记录存储操作,还可以包括一些附加动作,例如,给设备发送HTTP协议,此时,需调用设备类型的配置函数。具体细节在步骤3叙述。
步骤2-4、增加设备状态项存储区记录。
应用程序在设备状态项存储区(如图3中b部分)加入该设备的状态项记录,如图7的步骤5、步骤6所述流程。具体执行流程如下所述。
应用程序根据设备类型,在如图3中a部分所述的设备类型状态项存储区,搜索该设备类型包含的所有状态项记录。具体搜索过程为,对设备类型状态项存储区中的所有记录,如果其设备类型字段取值与此设备的设备类型相符,则选择为符合要求的状态项记录,否则匹配下一条记录。
搜索完成后,对匹配的所有状态项记录,依次写入如图3中b部分所述的设备状态项存储区。具体过程为,对于匹配的每一条状态项记录,记为R3,都在如图3中b部分所述的设备状态项存储区写入一条记录,记为R4,R4记录的状态编号等于R3的状态编号,R4的设备编号等于该设备自身的编号,R4记录的取值字段为对应取值类型的默认值,例如,对数值类型取0,对字符串类型取空串,日期类型取当前时间。
步骤3,设备操作:
在开始本节叙述之前,首先讲述一下如何从步骤1中以字符串表示的程序执行入口,来加载具体的函数。前述的程序执行入口表示了目标程序所在的程序文件、类、模块和函数名等信息,从这些信息加载一个函数需使用动态加载技术。动态加载技术是现代编程工具的必备技术,在主流编译器下支持,如C++、C#、Java等,有些编程语言称为“反射”。
例如,C++开发环境下有标准动态库方法LoadLibrary,GetModule,FreeLibrary,字符串表示为:
file=C:\Program Files\Internet Explorer\jsdebuggeride.dll; function =AngleArc;
此字符串指出需要加载C:\Program Files\Internet Explorer\jsdebuggeride.dll文件下的名称为AngleArc的函数,程序中首先调用LoadLibrary加载C:\Program Files\Internet Explorer\jsdebuggeride.dll程序文件,然后调用GetModule加载AngleArc函数,此时就可以通过函数指针执行目标函数了,对目标程序操作完毕调用FreeLibrary从内存中卸载此程序文件。
然而,调用GetModule后需要知道此函数的定义格式,为此,需针对具体的应用定义一套函数格式,后续开发的该类应用都遵循此函数格式,从而方便进行设备操作的统一管理。如果已有的设备类型操作没有遵守这种格式,那么需要进行改造,封装成符合统一操作格式的程序文件和程序执行入口。
设备添加完成后,程序中即可对设备进行参数配置、状态获取和发送控制命令的操作,以下将一一讲述。
步骤3-1、设备参数配置
设备配置过程的附加动作,如设置设备的存储上限、报警阈值等。设备配置过程是将设备的所有配置参数通过一定的形式发送给具体的设备,例如,发送TCP/RS485/HTTP协议,执行计算机硬件输出等。总之,设备参数过程的输入参数是设备的配置项数据,也允许携带其他一些数据,以便增加扩展性,可以用配置过程执行的结果作为返回值。
在步骤1-2所述的设备类型配置项记录的第一附加字段,存储了以字符串表示的该设备类型配置过程的程序执行入口。执行设备参数配置过程时,程序根据该设备类型配置项的程序执行入口信息,加载和执行所表示的函数。一个可用的函数格式模板示例如下:
HANDLE DeviceConfig(HashTable configData, HashTable userData);
输入参数为该设备的配置项记录configData,以及其他的用户输入信息userData,返回值为配置函数执行的结果。
输入参数configData是一个哈希表,表示了该设备所有的配置项和对应的取值,用<键,值>的组合表示,例如,一个服务器设备的ID为050100045478,表示为<”ID”,“050100045478”>;设置CPU报警阈值为40%,可以表示为<”CPUThreshold”, 0.4>,设置磁盘报警阈值为95%,表示为<”DiskMemoryThreshold”, 0.95>。
加入用户的输入参数userData,是为了考虑用户可能加入一些附加的输入数据,例如,当前操作用户的ID、名称、操作时间等,也是个哈希表,其中的每一项表示用户的一项输入信息,例如,设置当前操作用户的ID为”05232632”,表示为<”OperatorID”, ”05232632”>,设置当前操作用户的名称为”zhangsan”,表示为<”OperatorName”, ”zhangsan”>。
返回值为HANDLE类型,表示配置过程的执行结果,至少能区分执行成功、执行失败,如果失败,则可以表示失败的错误代码。
程序执行配置函数之前,获取该设备所有配置项和对应取值的方法是,在如图2中的b部分所示的设备配置项存储区,判断其中每条记录的设备编号字段,如果跟要操作设备的编号相同,则从该条记录生成一个键值对<Key, Value>,Key字段等于该条记录的配置编号字段,Value字段等于该条记录的取值字段,然后加入到目标集合HashTable中。
步骤3-2、获取设备状态
获取设备状态是通过跟设备一定的交互过程,获取设备相关的状态参数。在上述步骤1-3所述的设备类型状态项记录的第二附加字段,存储了以字符串表示的该设备类型状态项获取过程的程序执行入口。执行设备状态获取过程时,程序根据该设备类型状态项的程序执行入口信息,加载和执行所表示的函数。一个可用的函数格式模板示例如下:
HANDLE GetDeviceState(HashTable data, HashTabel result);
输入参数data表示要执行状态获取过程所需的设备编号、执行人、获取时间等参数,是一个哈希表,用<键,值>的组合表示,例如,要获取设备ID是050100045478,表示为<”ID”, “050100045478”>,执行时间为”2012-08-29 16:00:00”,表示为<”Time”, “2012-08-29 16:00:00”>。
输入参数result用于存储所获取到的状态数据,是一个哈希表,用<键,值>的组合表示,例如,一个门禁设备的开关状态实时取值为开,表示为<”DoorState”, 1>。
返回值为HANDLE类型,表示状态获取过程的执行结果,与参数配置过程的返回值意义一致。
符合上述模板的状态获取过程在执行设备状态获取过程后,所有的状态数据存储在输入参数中,上例表示为result参数。应用程序如果需要持久记录状态值,则需将此状态数据存储到如图3中的b部分所述的设备状态项存储区,供查询其状态,具体存储过程为,对于状态获取过程得到的每一条状态记录,格式为<状态编号,取值>,记为R5,都在如图3中的b部分所述的设备状态项存储区中搜索设备编号等于该设备的设备编号,而且状态编号等于R5所表示的状态编号的记录,记为R6,然后把R6的取值字段赋值为R5的取值。
步骤3-3、执行控制命令
对设备的执行控制命令,是对设备发送数据,让设备执行一定的动作。在如图4中的a部分所述的设备类型控制命令项记录的第三附加字段,存储了以字符串表示的该设备类型控制命令项的程序执行入口。执行设备控制命令时,程序根据该设备类型控制命令项的程序执行入口信息,加载和执行所表示的函数。一个可用的函数格式模板示例如下:
HANDLE GetDeviceState(HashTable data);
输入参数data表示执行此控制命令所需的设备编号、控制命令项编号、执行人、执行时间等参数,是一个哈希表,以<键,值>的组合表示,例如,要执行的设备ID是050100045478,表示为<”ID”, “050100045478”>,执行的控制命令项编号为”12”,表示为<”CommandID”, “12”>,执行人的ID为”05232632”,表示为<”OperatorID”, ”05232632”>,执行时间为”2012-08-29 16:00:00”,表示为<”Time”, “2012-08-29 16:00:00”>。
返回值为HANDLE类型,表示控制命令的执行结果,与参数配置过程的返回值意义一致。
一个设备类型的不同控制命令,所用的程序执行入口可能不同。
执行控制命令后,设备的状态可能发生改变,此时应用程序如用步骤3-2所述的状态获取过程,则可以进一步得到该设备的状态实际变化情况。
相应地,本发明实施例还提供了一种对设备类型统一管理的装置,其应用于需对多个设备进行集中管理的应用系统,其中,设备类型的参数配置、状态获取和控制命令操作都在与设备类型相关的存储区以程序执行入口的字符串表示,其中,所述与设备类型相关的存储区包括设备类型存储区,设备类型配置项存储区,设备类型状态项存储区,设备类型控制命令项存储区。
优选地,参见图8,所述对设备类型统一管理的装置1包括:
定义模块10,用于根据用户输入在与设备类型相关的存储区,指定每个设备类型的配置过程、状态获取过程和执行控制命令的函数体入口信息;
添加模块11,用于根据用户输入在与设备相关的存储区记录每个设备的数据,其中,所述与设备相关的存储区包括设备存储区、设备配置项存储区、设备状态项存储区;
调用模块12,用于根据设备类型的配置过程、状态获取过程和执行控制命令的函数体入口信息,动态加载并执行对应的函数体。
优选地,定义模块10包括:
第一定义模块101,用于根据用户输入,在设备类型存储区增加记录,指定此设备类型的编号和名称;
第二定义模块102,用于根据用户输入,在设备类型配置项存储区增加记录,指定此设备类型配置项的编号、名称、值类型、所属设备类型以及一个第一附加字段,其中,此第一附加字段用于表示该类型设备执行配置过程的函数体入口信息;
第三定义模块103,用于根据用户输入,在设备类型状态项存储区增加记录,指定此设备类型状态项的编号、名称、值类型、所属设备类型和一个第二附加字段,其中,此第二附加字段用于表示该类型设备执行该状态项获取过程的函数体入口信息;
第四定义模块104,用于根据用户输入,在设备类型控制命令项存储区增加记录,指定该设备类型控制命令项的编号、名称、所属设备类型和一个第三附加字段,其中,此第三附加字段用于表示该类型设备执行该控制命令项的函数体入口信息。
优选地,添加模块11包括:
第一添加模块111,用于根据用户输入,在设备存储区增加记录,指定要增加的设备的类型、编号和名称;
第二添加模块112,用于根据用户输入,在设备配置项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有配置项的数目,增加的每一条记录的设备编号都等于此设备的设备编号,每一条记录的配置编号对应于此设备对应的设备类型的一条配置项编号,每一条记录的取值都等于用户输入的该设备在该配置项的取值;
第三添加模块113,用于在设备状态项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有状态项的数目,增加的每一条记录的设备编号都对应于此设备的设备编号,每一条记录的状态编号对应于此设备对应的设备类型的一个状态项编号,每一条记录的取值都等于默认值。
优选地,调用模块12包括:
第一调用模块121,用于根据该设备类型在设备类型配置项的第一附加字段表示的函数体入口信息,动态加载并执行对应的函数体;
第二调用模块122,用于根据该设备类型的该状态项在设备类型状态项的第二附加字段表示的函数体入口信息,动态加载并执行对应的函数体,执行后将得到的设备状态信息存储到该设备的该状态项在设备状态项的取值字段对应的位置上;
第三调用模块123,用于根据该设备类型的该控制命令项在设备类型控制命令项的第三附加字段表示的函数体入口信息,动态加载并执行对应的函数体。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种对设备类型统一管理的方法,其应用于需对多个设备进行集中管理的应用系统,其特征在于,设备类型的参数配置、状态获取和控制命令操作都在与设备类型相关的存储区以程序执行入口的字符串表示,其中,所述与设备类型相关的存储区包括设备类型存储区,设备类型配置项存储区,设备类型状态项存储区,设备类型控制命令项存储区;
其中,所述对设备类型统一管理的方法具体包括:
定义设备类型的步骤,即应用程序根据用户输入在与设备类型相关的存储区,指定每个设备类型的配置过程、状态获取过程和执行控制命令的函数体入口信息;
添加设备的步骤,即应用程序根据用户输入在与设备相关的存储区记录每个设备的数据,其中,所述与设备相关的存储区包括设备存储区、设备配置项存储区、设备状态项存储区;
调用设备操作的步骤,即程序主体根据设备类型的配置过程、状态获取过程和执行控制命令的函数体入口信息,动态加载并执行对应的函数体;
其中,定义设备类型的步骤具体包括:
应用程序根据用户输入,在设备类型存储区增加记录,指定此设备类型的编号和名称;
应用程序根据用户输入,在设备类型配置项存储区增加记录,指定此设备类型配置项的编号、名称、值类型、所属设备类型以及一个第一附加字段,其中,此第一附加字段用于表示该类型设备执行配置过程的函数体入口信息;
应用程序根据用户输入,在设备类型状态项存储区增加记录,指定此设备类型状态项的编号、名称、值类型、所属设备类型和一个第二附加字段,其中,此第二附加字段用于表示该类型设备执行该状态项获取过程的函数体入口信息;
应用程序根据用户输入,在设备类型控制命令项存储区增加记录,指定该设备类型控制命令项的编号、名称、所属设备类型和一个第三附加字段,其中,此第三附加字段用于表示该类型设备执行该控制命令项的函数体入口信息。
2.如权利要求1所述的对设备类型统一管理的方法,其特征在于,添加设备的步骤具体包括:
应用程序根据用户输入,在设备存储区增加记录,指定要增加的设备的类型、编号和名称;
应用程序根据用户输入,在设备配置项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有配置项的数目,增加的每一条记录的设备编号都等于此设备的设备编号,每一条记录的配置编号对应于此设备对应的设备类型的一条配置项编号,每一条记录的取值都等于用户输入的该设备在该配置项的取值;
应用程序在设备状态项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有状态项的数目,增加的每一条记录的设备编号都对应于此设备的设备编号,每一条记录的状态编号对应于此设备对应的设备类型的一个状态项编号,每一条记录的取值都等于默认值。
3.如权利要求1所述的对设备类型统一管理的方法,其特征在于,调用设备操作的步骤具体包括:
执行设备配置,程序主体根据该设备类型在设备类型配置项的第一附加字段表示的函数体入口信息,动态加载并执行对应的函数体;
执行设备状态获取,程序主体根据该设备类型的该状态项在设备类型状态项的第二附加字段表示的函数体入口信息,动态加载并执行对应的函数体,执行后将得到的设备状态信息存储到该设备的该状态项在设备状态项的取值字段对应的位置上;
执行设备控制命令,程序主体根据该设备类型的该控制命令项在设备类型控制命令项的第三附加字段表示的函数体入口信息,动态加载并执行对应的函数体。
4.一种对设备类型统一管理的装置,其应用于需对多个设备进行集中管理的应用系统,其特征在于,设备类型的参数配置、状态获取和控制命令操作都在与设备类型相关的存储区以程序执行入口的字符串表示,其中,所述与设备类型相关的存储区包括设备类型存储区,设备类型配置项存储区,设备类型状态项存储区,设备类型控制命令项存储区;
其中,所述对设备类型统一管理的装置包括:
定义模块,用于根据用户输入在与设备类型相关的存储区,指定每个设备类型的配置过程、状态获取过程和执行控制命令的函数体入口信息;
添加模块,用于根据用户输入在与设备相关的存储区记录每个设备的数据,其中,所述与设备相关的存储区包括设备存储区、设备配置项存储区、设备状态项存储区;
调用模块,用于根据设备类型的配置过程、状态获取过程和执行控制命令的函数体入口信息,动态加载并执行对应的函数体;
其中,定义模块包括:
第一定义模块,用于根据用户输入,在设备类型存储区增加记录,指定此设备类型的编号和名称;
第二定义模块,用于根据用户输入,在设备类型配置项存储区增加记录,指定此设备类型配置项的编号、名称、值类型、所属设备类型以及一个第一附加字段,其中,此第一附加字段用于表示该类型设备执行配置过程的函数体入口信息;
第三定义模块,用于根据用户输入,在设备类型状态项存储区增加记录,指定此设备类型状态项的编号、名称、值类型、所属设备类型和一个第二附加字段,其中,此第二附加字段用于表示该类型设备执行该状态项获取过程的函数体入口信息;
第四定义模块,用于根据用户输入,在设备类型控制命令项存储区增加记录,指定该设备类型控制命令项的编号、名称、所属设备类型和一个第三附加字段,其中,此第三附加字段用于表示该类型设备执行该控制命令项的函数体入口信息。
5.如权利要求4所述的对设备类型统一管理的装置,其特征在于,添加模块包括:
第一添加模块,用于根据用户输入,在设备存储区增加记录,指定要增加的设备的类型、编号和名称;
第二添加模块,用于根据用户输入,在设备配置项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有配置项的数目,增加的每一条记录的设备编号都等于此设备的设备编号,每一条记录的配置编号对应于此设备对应的设备类型的一条配置项编号,每一条记录的取值都等于用户输入的该设备在该配置项的取值;
第三添加模块,用于在设备状态项存储区增加记录,增加记录的条数等于此设备对应的设备类型拥有状态项的数目,增加的每一条记录的设备编号都对应于此设备的设备编号,每一条记录的状态编号对应于此设备对应的设备类型的一个状态项编号,每一条记录的取值都等于默认值。
6.如权利要求4所述的对设备类型统一管理的装置,其特征在于,调用模块包括:
第一调用模块,用于根据该设备类型在设备类型配置项的第一附加字段表示的函数体入口信息,动态加载并执行对应的函数体;
第二调用模块,用于根据该设备类型的该状态项在设备类型状态项的第二附加字段表示的函数体入口信息,动态加载并执行对应的函数体,执行后将得到的设备状态信息存储到该设备的该状态项在设备状态项的取值字段对应的位置上;
第三调用模块,用于根据该设备类型的该控制命令项在设备类型控制命令项的第三附加字段表示的函数体入口信息,动态加载并执行对应的函数体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210579200.8A CN103905231B (zh) | 2012-12-26 | 2012-12-26 | 对设备类型统一管理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210579200.8A CN103905231B (zh) | 2012-12-26 | 2012-12-26 | 对设备类型统一管理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103905231A CN103905231A (zh) | 2014-07-02 |
CN103905231B true CN103905231B (zh) | 2018-06-19 |
Family
ID=50996387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210579200.8A Active CN103905231B (zh) | 2012-12-26 | 2012-12-26 | 对设备类型统一管理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103905231B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105790998A (zh) * | 2014-12-26 | 2016-07-20 | 北京视联动力国际信息技术有限公司 | 一种设备管理方法及装置 |
CN105204866A (zh) * | 2015-10-14 | 2015-12-30 | 山东中创软件商用中间件股份有限公司 | 设备命令调用方法和系统 |
CN107528741A (zh) * | 2017-09-26 | 2017-12-29 | 晶晨半导体(上海)股份有限公司 | 一种兼容多种自动配置服务器的方法 |
CN110019407B (zh) * | 2017-12-29 | 2021-07-13 | 北京金风科创风电设备有限公司 | 风电场中枚举数据的处理方法、装置、设备和存储介质 |
CN110191142A (zh) * | 2018-09-03 | 2019-08-30 | 西安奥卡云数据科技有限公司 | 一种可并发控制的计算机系统 |
CN109799776B (zh) * | 2018-12-13 | 2020-10-27 | 西安艾润物联网技术服务有限责任公司 | 数据配置方法及装置 |
CN110058879B (zh) * | 2019-04-08 | 2023-06-09 | 浙江天正电气股份有限公司 | 一种智能终端快速组态方法 |
CN111552190B (zh) * | 2020-04-24 | 2024-01-30 | 杭州涂鸦信息技术有限公司 | 一种控制硬件设备功能的方法及其系统和装置 |
CN114374601A (zh) * | 2021-12-28 | 2022-04-19 | 海南视联大健康智慧医疗科技有限公司 | 一种配置信息的确定方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983986A (zh) * | 2006-04-24 | 2007-06-20 | 华为技术有限公司 | 一种网络设备显示装置及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100454826C (zh) * | 2004-01-17 | 2009-01-21 | 华为技术有限公司 | 综合网元管理系统 |
CN100518087C (zh) * | 2006-03-03 | 2009-07-22 | 鸿富锦精密工业(深圳)有限公司 | 管理用户终端设备的装置及方法 |
CN102724356B (zh) * | 2012-05-25 | 2018-01-02 | 中兴通讯股份有限公司 | 接入设备的信息同步方法及装置 |
-
2012
- 2012-12-26 CN CN201210579200.8A patent/CN103905231B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983986A (zh) * | 2006-04-24 | 2007-06-20 | 华为技术有限公司 | 一种网络设备显示装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103905231A (zh) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103905231B (zh) | 对设备类型统一管理的方法和装置 | |
US9213707B2 (en) | Ordered access of interrelated data files | |
CN109446218A (zh) | Sql语句生成方法、装置及计算机可读存储介质 | |
CN112099800B (zh) | 代码数据的处理方法、装置和服务器 | |
US20030093420A1 (en) | Method and system for retrieving sharable information using a hierarchically dependent directory structure | |
CN100359465C (zh) | 程序构造方法、程序构造系统及终端设备 | |
WO2004044735A2 (en) | Modeling system for graphic user interface | |
CN103150165A (zh) | 用于构建户外数据采集程序的框架以及程序构建方法 | |
CN106569783A (zh) | 一种执行任务脚本的方法和装置 | |
US7987446B2 (en) | Method for automating variables in end-user programming system | |
Whiting et al. | Creating an iPhone application for collecting continuous ABC data | |
US20070033570A1 (en) | Method and system for transforming a process flow | |
CN106326099B (zh) | 一种用于程序跟踪的方法、装置及电子设备 | |
CN109739526A (zh) | 代码更新方法和装置 | |
JP2023070148A (ja) | ロボティックプロセスオートメーション(rpa)ロボットをリソースへ動的にバインドさせるためのシステムおよび方法 | |
CN108446398A (zh) | 一种数据库的生成方法及装置 | |
CN108694114A (zh) | 用于分离测试用例、测试脚本和测试数据的方法及其系统 | |
US8433729B2 (en) | Method and system for automatically generating a communication interface | |
CN109478051A (zh) | 程序创建装置 | |
Ananieva et al. | Model-driven consistency preservation in automationml | |
US20050193033A1 (en) | System and method for database management | |
CN108255688A (zh) | 应用程序日志的显示方法、存储介质、电子设备及系统 | |
JP6217440B2 (ja) | シンボリック実行プログラム、シンボリック実行方法及びシンボリック実行装置 | |
US20080022258A1 (en) | Custom database system and method of building and operating the same | |
CN112988225A (zh) | 注解配置方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |