CN115202763B - 一种基于驱动的采集动态加载与调用方法 - Google Patents
一种基于驱动的采集动态加载与调用方法 Download PDFInfo
- Publication number
- CN115202763B CN115202763B CN202211134356.5A CN202211134356A CN115202763B CN 115202763 B CN115202763 B CN 115202763B CN 202211134356 A CN202211134356 A CN 202211134356A CN 115202763 B CN115202763 B CN 115202763B
- Authority
- CN
- China
- Prior art keywords
- drive
- acquisition
- data
- calling
- attribute
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及驱动采集加载与调用领域,尤其涉及一种基于驱动的采集动态加载与调用方法,包括:获取驱动加载指令信息后,进行采集处理得到驱动初始数据;获取驱动加载指令信息后,采集所述驱动加载指令信息对应的驱动基础数据;利用所述驱动基础数据进行网关路径指定得到驱动初始数据利用所述驱动初始数据进行动态加载与调用,其中,驱动初始数据为驱动名称、驱动属性和驱动对应采集方法,降低了产品扩展难度、在不更改主框架的情况下,可以随时动态扩展新设备采集。
Description
技术领域
本发明涉及驱动采集加载与调用领域,具体涉及一种基于驱动的采集动态加载与调用方法。
背景技术
随着制造业的发展,制造业的智能化和信息化成为了发展趋势。对于机械加工制造业来讲,在新时代需要有更高效的生产管理方式。在这种背景下,制造加工业对数控系统、机床、仪表仪器等设备的实时数据的采集监控有着迫切的需求。由于数控系统、仪表仪器等设备采用的通信协议也各不相同,如何同时兼容各种数据的采集成为很多厂家苦恼的问题;现在大多厂家仅支持常用的通用协议,对于其它新增设备还需要做定制开发,工作量大且难维护,无法实现正常的产品化;还有些是平台提供协议接口,在开发过程中要严格按照规定的协议接口进行协议拼接、但由于协议的复杂与设备数据类型的繁多,开发的工作量并不会减少;且实施部署也比较麻烦。
发明内容
针对现有技术的不足,本发明提供了一种基于驱动的采集动态加载与调用方法,通过获取驱动和与驱动对应的数据信息进行存储使用,简化新增设备流程,加快加载调用效率。
为实现上述目的,本发明提供了一种基于驱动的采集动态加载与调用方法,包括:
S1、获取驱动加载指令信息后,进行采集处理得到驱动初始数据;
S1-1、获取驱动加载指令信息后,采集所述驱动加载指令信息对应的驱动基础数据;
S1-2、利用所述驱动基础数据进行网关路径指定得到驱动初始数据
S2、利用所述驱动初始数据进行动态加载与调用;
其中,驱动初始数据为驱动名称、驱动属性与驱动对应采集方法。
优选的,采集所述驱动加载指令信息对应的驱动基础数据包括:
利用所述驱动加载指令信息基于属性方法获取驱动加载指令配置参数属性信息;
判断所述驱动加载指令配置参数属性信息是否已进行特征声明,若是,则识别驱动加载指令配置参数属性信息为驱动基础数据,否则,不进行处理。
优选的,利用所述驱动初始数据进行动态加载与调用包括:
利用所述驱动初始数据基于映射属性获取驱动采集属性数据信息;
利用所述驱动采集属性数据信息进行动态加载与调用。
进一步的,利用所述驱动采集属性数据信息进行动态加载与调用包括:
利用所述驱动采集属性数据信息对应的驱动进行初始化处理;
根据所述驱动采集属性数据信息对应的驱动获取对应驱动数据采集方法;
利用所述驱动数据采集方法进行采集调用处理得到驱动采集调用数据,判断进行采集调用处理后是否存在驱动返回数据,若是,则利用所述驱动返回数据作为驱动采集调用数据,否则,不进行处理。
与最接近的现有技术相比,本发明具有的有益效果:
降低了产品扩展难度、在不更改主框架的情况下,可以随时动态扩展新设备采集;降低了驱动与主框架的耦合度,仅需依赖DLL即可实现驱动的开发;而且开发难度很低,实现了采集设备的扩展,降低实施复杂度,新增的驱动时可实现自动加载。
附图说明
图1是本发明提供的一种基于驱动的采集动态加载与调用方法流程图;
图2是本发明提供的一种基于驱动的采集动态加载与调用方法实际应用流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1:
本发明提供了一种基于驱动的采集动态加载与调用方法,如图1所示,包括:
步骤1:获取驱动加载指令信息后,进行采集处理得到驱动初始数据;
步骤2:利用所述驱动初始数据进行动态加载与调用。
步骤1具体包括:
1-1:获取驱动加载指令信息后,采集所述驱动加载指令信息对应的驱动基础数据;
1-2:利用所述驱动基础数据进行网关路径指定得到驱动初始数据;
其中,驱动初始数据为驱动名称、驱动属性与驱动对应采集方法。
本实施例中,一种基于驱动的采集动态加载与调用方法,所述驱动属性为与设备连接时用的设备信息。比如设备的ip地址、端口号、串口号、波特率等;不同的驱动属性也不一样,所述驱动采集方法为驱动内会包含采集用到的驱动方法,如读取主轴转速、程序号等方法,不同的驱动包含的驱动采集方法也不同。
本实施例中,一种基于驱动的采集动态加载与调用方法,所述网关路径指定为计算机的物理路径,网关的安装路径CAXA.IOT.Gateway\Data\drivers\。
步骤1-1具体包括:
1-1-1:利用所述驱动加载指令信息基于属性方法获取驱动加载指令配置参数属性信息;
1-1-2:判断所述驱动加载指令配置参数属性信息是否已进行特征声明,若是,则识别驱动加载指令配置参数属性信息为驱动基础数据,否则,不进行处理。
本实施例,一种基于驱动的采集动态加载与调用方法,所述属性方法是指用ConfigParameterAttribute进行特征声明的属性信息(程序里的变量),初始化属性信息,用来与设备进行连接,不同的驱动属性不同,示例如下:
// 属性 不同的驱动属性也不同
[ConfigParameter("Ip")]
public string Ip { get; set; }
[ConfigParameter("Port")]
public ushort Port { get; set; }
本实施例中,一种基于驱动的采集动态加载与调用方法,所述获取驱动加载指令配置参数属性信息基于PluginInterface库,PluginInterface包括驱动开发必要有的驱动接口数据和特征接口数据。
本实施例中,一种基于驱动的采集动态加载与调用方法,在实际应用中判断所述驱动加载指令配置参数属性信息是否已进行特征声明为开发驱动过程中将驱动继承并实现PluginInterface中IDriver里的方法,对驱动里的采集属性和采集方法分别用PluginInterface里的ConfigParameterAttribute和MethodAttribute进行特征声明,通过特征声明的采集属性和采集方法的驱动会被识别。
本实施例中,一种基于驱动的采集动态加载与调用方法,所述驱动的形式如下:
{
"name": "DriveTest.dll", //驱动名
"methods": [ //采集方法
{
"name": "RGetMonitorData",
"detail": "System.Collections.Generic.ICollection`1[System.Object]RGetMonitorData()",
"description": "获取一次固定信息,实时获取最小数据包!",
"rParam": {
"name": null,
"type": 18
},
"params": []
}
],
"props": [ //属性(主要是与机床连接时用到参数)
{
"name": "Ip",
"detail": "System.String Ip",
"description": "Ip",
"type": 13
},
{
"name": "Port",
"detail": "UInt16 Port",
"description": "Port",
"type": 3
}
]
}
本实施例中,一种基于驱动的采集动态加载与调用方法,采集网关启动时会对有Attribute声明的驱动进行动态加载、利用Reflection和Attribute获取驱动内所有的采集属性配置及采集方法,并将获取到的驱动信息发给网关服务进行本地存储用于和设备采集方法进行映射,驱动信息格式如下:
[
{
"Id":2,
"Name":"S7net-01",
"DeviceNum":"S7net-01",
"DriveName":"DriveTest.dll", //改设备选用的驱动名
"DriveProps":[ //从驱动信息里选择属性进行配置
{
"Id":1,
"Name":"Ip",
"Value":"127.0.0.1",
"Type":0
},
{
"Id":2,
"Name":"Port",
"Value":"502",
"Type":0
}
],
"MonitorItems":[ //从驱动信息里选择采集方法进行配置
{
"Id":1,
"Name":"RGetMonitorData",
"RMethod":"RGetMonitorData",
"RParameters":[ //参数(此方法参数为NULL)
]
},
{
//采集项可以为多个,可分别从驱动信息里选择不同的采集方法
}
]
}
]
步骤2具体包括:
2-1:利用所述驱动初始数据基于映射属性获取驱动采集属性数据信息;
2-2:利用所述驱动采集属性数据信息进行动态加载与调用。
本实施例中,一种基于驱动的采集动态加载与调用方法,所述采集网关启动时会对有Attribute声明的驱动进行动态加载、利用Reflection和Attribute获取驱动内所有的采集属性配置及采集方法后,将获取到的驱动信息发给网关服务进行本地存储用于和设备采集方法进行映射。
步骤2-2具体包括:
2-2-1:利用所述驱动采集属性数据信息对应的驱动进行初始化处理;
2-2-2:根据所述驱动采集属性数据信息对应的驱动获取对应驱动数据采集方法;
2-2-3:利用所述驱动数据采集方法进行采集调用处理得到驱动采集调用数据,判断进行采集调用处理后是否存在驱动返回数据,若是,则利用所述驱动返回数据作为驱动采集调用数据,否则,不进行处理。
本实施例中,一种基于驱动的采集动态加载与调用方法,根据驱动采集属性数据信息对应的驱动获取对应驱动数据采集方法,即网关服务通过本地存储的驱动信息选择对应驱动,通过驱动信息选择对应驱动的采集属性和每个采集项对应的采集方法进行配置,使设备与驱动产生映射关系。
本实施例中,一种基于驱动的采集动态加载与调用方法,采集方法是指用MethodAttribute进行特征声明的函数方法;通过驱动方法才能获取到设备的数据,不同的驱动采集方法不同,内部实现的方式也不同,示例如下:
//采集方法 不同的驱动采集方法不同
[Method(description: "string转int")]
public int RGetInt(string address)
{
//里面可以写具体的处理逻辑不同的驱动处理逻辑也不同,如下这个方法是吧string转成int的方法;
int.Parse(address);
return int.Parse(address);
}
[Method(description: "获取uri")]
public string RGetUri()
{
return $"{Ip}:{Port}";
}
}
}
本实施例中,一种基于驱动的采集动态加载与调用方法,当进行采集调用处理后不存在驱动返回数据时,即采集调用失败,驱动返回数据值为空。
实施例2:
本发明提供了一种基于驱动的采集动态加载与调用方法实际应用流程,如图2所示,包括:
S1、驱动加载、将驱动放到指定的路径下,采集网关启动时会对有Attribute声明的驱动进行动态加载、利用Reflection和Attribute获取驱动内所有的采集属性配置及采集方法,并将获取到的驱动信息发给网关服务进行本地存储用于和设备采集方法进行映射,驱动信息格式如下;
S2、设备采集方法和驱动方法映射(设备配置)、对某个设备进行采集时,网关服务通过本地存储的驱动信息选择对应驱动,通过驱动信息选择对应驱动的采集属性和每个采集项对应的采集方法进行配置,使设备与驱动产生映射关系,具体映射关系结果如下示例:
S3、开始采集、网关服务将设备与驱动的映射关系发送给采集网关,开始进行采集;
S4、采集开始前初始化驱动、此时采集网关会根据设备与驱动的映射关系找到对应的驱动并进行初始化操作;
S5、动态调用采集方法进行采集、根据设备与驱动的映射关系找到对应采集方法,通过Reflection技术动态调用驱动里的采集方法进行数据的采集;
S6、采集成功后将采集到数据给网关服务进行存储并展示,接着进行下个周期的采集,采集失败后直接进行下个周期的采集。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (2)
1.一种基于驱动的采集动态加载与调用方法,其特征在于,包括:
S1、获取驱动加载指令信息后,进行采集处理得到驱动初始数据;
S1-1、获取驱动加载指令信息后,采集所述驱动加载指令信息对应的驱动基础数据;
S1-1-1、利用所述驱动加载指令信息基于属性方法获取驱动加载指令配置参数属性信息;
S1-1-2、判断所述驱动加载指令配置参数属性信息是否已进行特征声明,若是,则识别驱动加载指令配置参数属性信息为驱动基础数据,否则,不进行处理;
S1-2、利用所述驱动基础数据进行网关路径指定得到驱动初始数据;
S2、利用所述驱动初始数据进行动态加载与调用;
S2-1、利用所述驱动初始数据基于映射属性获取驱动采集属性数据信息;
S2-2、利用所述驱动采集属性数据信息进行动态加载与调用;
其中,驱动初始数据为驱动名称、驱动属性与驱动对应采集方法。
2.如权利要求1所述的一种基于驱动的采集动态加载与调用方法,其特征在于,利用所述驱动采集属性数据信息进行动态加载与调用包括:
利用所述驱动采集属性数据信息对应的驱动进行初始化处理;
根据所述驱动采集属性数据信息对应的驱动获取对应驱动数据采集方法;
利用所述驱动数据采集方法进行采集调用处理得到驱动采集调用数据,判断进行采集调用处理后是否存在驱动返回数据,若是,则利用所述驱动返回数据作为驱动采集调用数据,否则,不进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211134356.5A CN115202763B (zh) | 2022-09-19 | 2022-09-19 | 一种基于驱动的采集动态加载与调用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211134356.5A CN115202763B (zh) | 2022-09-19 | 2022-09-19 | 一种基于驱动的采集动态加载与调用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115202763A CN115202763A (zh) | 2022-10-18 |
CN115202763B true CN115202763B (zh) | 2022-12-09 |
Family
ID=83572529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211134356.5A Active CN115202763B (zh) | 2022-09-19 | 2022-09-19 | 一种基于驱动的采集动态加载与调用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115202763B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183310A (zh) * | 2007-12-13 | 2008-05-21 | 华为技术有限公司 | 一种建立设备驱动的方法、设备驱动装置及单板 |
CN103488513A (zh) * | 2013-09-30 | 2014-01-01 | 北京水木元生科技有限责任公司 | 设备即插即用通用驱动方法 |
CN113238819A (zh) * | 2021-07-09 | 2021-08-10 | 成都菁蓉联创科技有限公司 | 一种适用于U-Boot的驱动文件动态加载方法及系统 |
CN113704337A (zh) * | 2021-08-26 | 2021-11-26 | 上海德拓信息技术股份有限公司 | 一种基于驱动动态加载的元数据采集方法与系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912349A (zh) * | 2016-06-29 | 2016-08-31 | 北京金山安全软件有限公司 | 驱动加载方法及装置 |
CN109918147B (zh) * | 2019-02-20 | 2022-03-25 | 杭州迪普科技股份有限公司 | OpenStack下驱动的扩展方法、装置、电子设备 |
CN110708240A (zh) * | 2019-09-26 | 2020-01-17 | 机械工业仪器仪表综合技术经济研究所 | 基于opc ua的物联网通用网关 |
CN112395014B (zh) * | 2020-11-16 | 2023-04-07 | 平安科技(深圳)有限公司 | 网关服务实现方法、装置、设备及存储介质 |
CN112702343B (zh) * | 2020-12-22 | 2022-11-22 | 机械工业仪器仪表综合技术经济研究所 | 一种opc ua与mqtt融合方法 |
CN113791824B (zh) * | 2021-08-10 | 2023-09-15 | 浪潮金融信息技术有限公司 | 一种终端设备的外设驱动加载方法、系统及介质 |
CN114691240A (zh) * | 2022-04-01 | 2022-07-01 | 武汉深之度科技有限公司 | 驱动硬件配置信息加载方法、装置和系统,以及计算设备 |
CN114860321B (zh) * | 2022-04-06 | 2023-07-18 | 网易(杭州)网络有限公司 | 基于树莓派的外接设备控制方法、装置、设备及介质 |
-
2022
- 2022-09-19 CN CN202211134356.5A patent/CN115202763B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183310A (zh) * | 2007-12-13 | 2008-05-21 | 华为技术有限公司 | 一种建立设备驱动的方法、设备驱动装置及单板 |
CN103488513A (zh) * | 2013-09-30 | 2014-01-01 | 北京水木元生科技有限责任公司 | 设备即插即用通用驱动方法 |
CN113238819A (zh) * | 2021-07-09 | 2021-08-10 | 成都菁蓉联创科技有限公司 | 一种适用于U-Boot的驱动文件动态加载方法及系统 |
CN113704337A (zh) * | 2021-08-26 | 2021-11-26 | 上海德拓信息技术股份有限公司 | 一种基于驱动动态加载的元数据采集方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115202763A (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528424B (zh) | 基于后台系统服务或接口的测试方法和测试平台 | |
US20150100829A1 (en) | Method and system for selecting and executing test scripts | |
US20150100832A1 (en) | Method and system for selecting and executing test scripts | |
CN110765018B (zh) | 接口自动化测试方法及设备 | |
WO2011150715A1 (zh) | 分布式控制系统中采集第三方设备数据的方法及装置 | |
CN110134659B (zh) | 运行程序的日志监控系统、方法、介质及设备 | |
CN109376088B (zh) | 一种自动化测试系统及自动化测试方法 | |
CN105095044A (zh) | 基于snmp的服务器监控方法和装置 | |
US20150100831A1 (en) | Method and system for selecting and executing test scripts | |
CN111651365A (zh) | 接口自动化测试方法及装置 | |
CN115202763B (zh) | 一种基于驱动的采集动态加载与调用方法 | |
CN111147291A (zh) | 一种服务维护方法及装置 | |
KR20030069856A (ko) | 네트워크 마스터 하드 디스크 드라이브 복제기 | |
CN111339055B (zh) | 大数据集群扩容方法及装置 | |
CN108965403A (zh) | 运维监控连接的建立方法及终端设备 | |
CN112817883A (zh) | 接口平台的适配方法、设备、系统及计算机可读存储介质 | |
CN107025126B (zh) | 一种资源调度方法、nfvo和系统 | |
KR100930962B1 (ko) | 알피씨 기반 소프트웨어의 원격지 보안 테스팅 장치 및방법 | |
CN115794064B (zh) | 任务处理流程的配置方法、装置、电子设备及存储介质 | |
CN104199689B (zh) | 综合前端系统的安装方法及装置 | |
CN115965000A (zh) | 一种电子产品生产线数据管理方法、系统、设备及介质 | |
JP2005044111A (ja) | フィールドバスシステム | |
CN115687310A (zh) | 数据清洗方法及装置 | |
CN113238807A (zh) | 基于android系统的模块兼容方法、平台及服务器 | |
CN113419775B (zh) | 一种固件配置方法、系统、设备以及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |