CN116627738A - 一种硬件功能检测系统、方法、电子设备及存储介质 - Google Patents
一种硬件功能检测系统、方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116627738A CN116627738A CN202310606323.4A CN202310606323A CN116627738A CN 116627738 A CN116627738 A CN 116627738A CN 202310606323 A CN202310606323 A CN 202310606323A CN 116627738 A CN116627738 A CN 116627738A
- Authority
- CN
- China
- Prior art keywords
- hardware
- test
- function detection
- function
- tested
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 151
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000012360 testing method Methods 0.000 claims abstract description 189
- 230000006870 function Effects 0.000 claims description 250
- 239000010410 layer Substances 0.000 claims description 47
- 239000012792 core layer Substances 0.000 claims description 34
- 238000011990 functional testing Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000002898 library design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2289—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2268—Logging of test results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种硬件功能检测系统、方法、电子设备及存储介质,该系统包括:硬件资源管理模块用于对待测硬件进行初始化处理;测试用例管理模块用于根据待测硬件的功能检测需求,调用目标测试用例,基于目标测试用例及功能检测需求表征的测试参数,构建硬件功能检测结构体,基于硬件功能检测结构体对初始化后的待测硬件进行功能测试,生成测试日志文件;显示模块用于根据测试日志文件,生成待测硬件的功能检测结果显示数据,并基于待测硬件的目标显示设备输出功能检测结果显示数据。通过根据当前待测硬件的功能检测需求,灵活调用目标测试用例,以构建适合当前待测硬件的硬件功能检测结构体,该系统能够兼容各种电子产品,降低了硬件功能检测成本。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种硬件功能检测系统、方法、电子设备及存储介质。
背景技术
硬件功能检测是电子产品出厂前必须执行的一个生产步骤,目的是发现并剔除存在产品质量缺陷的机器。硬件功能检测一般由集成在系统中的产品检测软件负责,它会对硬件的各个模块进行功能性和压力检测,以图形化的方式将结果显示在本地显示器或者产品自带显示屏上,方便一线工人快速直观的获取结果。
但是,不同的电子产品形态、功能需求各不相同,需要检测的硬件模块也各不相同,对应的硬件检测软件自然也不尽相同。比如开源硬件功能检测工具CPU-Z,它仅面向基于X86 CPU的PC产品,因此,急需一种可以兼容各种电子产品的硬件功能检测系统,有利于降低硬件功能检测成本。
发明内容
本申请提供一种,以解决现有技术无法兼容各种电子产品的硬件功能检测系统,增加了硬件功能检测成本等缺陷。
本申请第一个方面提供一种硬件功能检测系统,包括:硬件资源管理模块、测试用例管理模块及显示模块;
所述硬件资源管理模块用于对待测硬件进行初始化处理;
所述测试用例管理模块用于根据所述待测硬件的功能检测需求,调用目标测试用例,基于所述目标测试用例及所述功能检测需求表征的测试参数,构建硬件功能检测结构体,基于所述硬件功能检测结构体对初始化后的待测硬件进行功能测试,生成测试日志文件;
所述显示模块用于根据所述测试日志文件,生成所述待测硬件的功能检测结果显示数据,并基于所述待测硬件的目标显示设备输出所述功能检测结果显示数据。
可选的,所述硬件资源管理模块,包括:硬件资源管理核心层、硬件资源管理实例层及硬件资源库;
所述硬件资源管理核心层封装有若干种硬件工具函数及函数调用接口;
所述硬件资源管理实例层用于在所述硬件资源库调用目标功能函数,基于所述目标功能函数,根据所述待测硬件的硬件参数,构建硬件初始化结构体,并将所述硬件初始化结构体注册至所述硬件资源管理核心层;
所述硬件资源库封装有若干种功能函数。
可选的,所述测试用例管理模块,包括:测试功能核心层、测试用例层及测试用例库;
所述测试功能核心层封装有若干种测试工具函数及函数调用接口;
所述测试用例层用于根据所述待测硬件的功能检测需求,在所述测试用例库调用目标测试逻辑函数,基于所述目标测试逻辑函数,构建目标测试用例,基于所述目标测试用例及所述功能检测需求表征的测试参数,构建硬件功能检测结构体,并将所述硬件功能检测结构体注册至所述测试功能核心层;
所述测试用例库封装有若干种测试逻辑函数。
可选的,所述显示模块,包括:解码子模块、字符子模块及图像子模块;
所述解码子模块用于在所述测试日志文件中解析目标字体的字符编码;
所述字符子模块用于根据所述目标字体的字符编码,确定对应的字体点阵;
所述图像子模块用于根据所述字体点阵,构建待显示的图像数据;其中,所述功能检测结果显示数据包括所述待显示的图像数据。
可选的,所述显示模块,还用于:
获取所述待测硬件的显示设备配置信息;
当所述显示设备配置信息表征所述待测硬件具备电容屏时,将所述电容屏作为目标显示设备显示所述待显示的图像数据,以输出所述功能检测结果显示数据。
可选的,所述显示模块,还用于:
当所述显示设备配置信息表征所述待测硬件不具备电容屏时,根据所述待测硬件的虚拟终端配置信息,确定目标显示设备,以基于所述目标显示设备输出所述功能检测结果显示数据。
可选的,所述系统还包括:控制模块;
所述控制模块用于获取所述待测硬件的网络配置信息,根据所述网络配置信息及功能检测需求,判断是否启动远程检测控制。
本申请第二个方面提供一种硬件功能检测方法,包括:
对待测硬件进行初始化处理;
根据所述待测硬件的功能检测需求,调用目标测试用例;
基于所述目标测试用例及所述功能检测需求表征的测试参数,构建硬件功能检测结构体;
基于所述硬件功能检测结构体对初始化后的待测硬件进行功能测试,生成测试日志文件;
根据所述测试日志文件,生成所述待测硬件的功能检测结果显示数据,并基于所述待测硬件的目标显示设备输出所述功能检测结果显示数据。
本申请第三个方面提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第二个方面以及第二个方面各种可能的设计所述的方法。
本申请第四个方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第二个方面以及第二个方面各种可能的设计所述的方法。
本申请技术方案,具有如下优点:
本申请提供一种硬件功能检测系统、方法、电子设备及存储介质,该系统包括:硬件资源管理模块、测试用例管理模块及显示模块;硬件资源管理模块用于对待测硬件进行初始化处理;测试用例管理模块用于根据待测硬件的功能检测需求,调用目标测试用例,基于目标测试用例及功能检测需求表征的测试参数,构建硬件功能检测结构体,基于硬件功能检测结构体对初始化后的待测硬件进行功能测试,生成测试日志文件;显示模块用于根据测试日志文件,生成待测硬件的功能检测结果显示数据,并基于待测硬件的目标显示设备输出功能检测结果显示数据。上述方案的提供的系统,通过根据当前待测硬件的功能检测需求,灵活调用目标测试用例,以构建适合当前待测硬件的硬件功能检测结构体,该系统能够兼容各种电子产品,降低了硬件功能检测成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的硬件功能检测系统的结构示意图;
图2为本申请实施例提供的硬件资源管理模块的结构示意图;
图3为本申请实施例提供的测试用例管理模块的结构示意图;
图4为本申请实施例提供的显示模块的结构示意图;
图5为本申请实施例提供的控制模块的控制流程示意图;
图6为本申请实施例提供的示例性的硬件功能检测系统的结构示意图;
图7为本申请实施例提供的硬件功能检测方法的流程示意图;
图8为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
不同的电子产品形态、功能需求各不相同,需要检测的硬件模块也各不相同,对应的硬件检测软件自然也不尽相同。比如开源硬件功能检测工具CPU-Z,它仅面向基于X86CPU的PC产品,因此,急需一种可以兼容各种电子产品的硬件功能检测系统,有利于降低硬件功能检测成本。并且,现有的硬件检测软件并没有考虑兼容不同的产品,往往一条新的产品线的开辟,就不得不重新编写一套检测软件,尤其是不同产品线之间,这种情况的存在,很大程度降低了检测软件的代码复用率,提高了开发维护成本。
针对上述问题,本申请实施例提供一种硬件功能检测系统、方法、电子设备及存储介质,该系统包括:硬件资源管理模块、测试用例管理模块及显示模块;硬件资源管理模块用于对待测硬件进行初始化处理;测试用例管理模块用于根据待测硬件的功能检测需求,调用目标测试用例,基于目标测试用例及功能检测需求表征的测试参数,构建硬件功能检测结构体,基于硬件功能检测结构体对初始化后的待测硬件进行功能测试,生成测试日志文件;显示模块用于根据测试日志文件,生成待测硬件的功能检测结果显示数据,并基于待测硬件的目标显示设备输出功能检测结果显示数据。上述方案的提供的系统,通过根据当前待测硬件的功能检测需求,灵活调用目标测试用例,以构建适合当前待测硬件的硬件功能检测结构体,该系统能够兼容各种电子产品,降低了硬件功能检测成本。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明实施例进行描述。
本申请实施例提供了一种硬件功能检测系统,用于兼容各种电子产品,实现硬件功能的高效检测。
如图1所示,为本申请实施例提供的硬件功能检测系统的结构示意图,该系统包括:硬件资源管理模块、测试用例管理模块及显示模块。
其中,硬件资源管理模块用于对待测硬件进行初始化处理;测试用例管理模块用于根据待测硬件的功能检测需求,调用目标测试用例,基于目标测试用例及功能检测需求表征的测试参数,构建硬件功能检测结构体,基于硬件功能检测结构体对初始化后的待测硬件进行功能测试,生成测试日志文件;显示模块用于根据测试日志文件,生成待测硬件的功能检测结果显示数据,并基于待测硬件的目标显示设备输出功能检测结果显示数据。
需要说明的是,该系统整体上采用模块化、面向对象的方式组织设计,保持了各功能模块的独立性,便于后续单个模块的维护升级。同时,支持在功能逻辑层面上对单个功能实例的裁剪/添加,便于检测软件在不同项目上的快速适配。具体可以将不同的功能逻辑拆分到不同的C文件中独立进行编写,以实现去耦目的,方便以后不同功能代码的维护升级。同时,将特性或用途相近的功能逻辑归纳到同一模块下,为其抽象出统一的结构体封装,而每个功能逻辑则注册一个该结构体实例,从而实现特性或用途相近的功能逻辑的统一管理。
具体地,当需要对任一待测硬件进行功能检测时,首先获取该待测硬件的功能检测需求,然后基于硬件资源管理模块,对待测硬件进行初始化处理,以使待测硬件进入初始化状态。然后基于测试用例管理模块根据待测硬件的功能检测需求表征的目标测试项,调用目标测试用例,基于目标测试用例及功能检测需求制定的测试参数,构建硬件功能检测结构体,以通过在初始化状态下的待测硬件运行该硬件功能检测结构体,生成测试日志文件。最后显示模块根据测试日志文件,生成待测硬件的功能检测结果显示数据,并基于待测硬件的目标显示设备输出功能检测结果显示数据,以供相关测试人员直接读取。
具体地,硬件资源管理模块、测试用例管理模块及显示模块每个模块都以面向对象的设计思路编写,分成上下两层,上层为核心层,负责向下抽象出一个能够描述模块功能的结构体封装,并提供注册/注销实例化结构体的功能函数。下层是具体的功能逻辑层,每一个功能逻辑独立编写成一个C文件,每个C文件负责实例化自己的结构体对象,并将实例化好的结构体实例注册到上层核心层维护的资源链表中。为了实现不同产品的灵活适配,功能逻辑层采用了Kconfig配置机制,用户可根据自己的产品需求,灵活裁剪/添加不同的功能逻辑,比如某一产品需要检测sensor、network、emmc这3组硬件,那么硬件资源管理模块下,只需要把sensor、network、emmc相关的三个文件的配置项打开,使其加入编译,同时,测试用例管理模块下,也只需要把对应测试用例文件的配置项打开使其加入编译即可,其他不相关的文件全部裁掉不参与编译,尽量轻量化最终生成的可执行文件大小。
具体地,为了提高代码复用率,该系统引入了动态库参与设计,将通用的、可重复使用的代码逻辑实现到动态库中,比如把某一压测硬件的算法封装到一个动态库,具体的测试用例代码如果希望使用这一算法,就可以把该动态库加入编译,自己的代码中直接调用动态函数即可。引入动态库设计的益处是,提高了代码可重复利用率,不同的功能模块在需要使用同一代码逻辑或算法以满足自身编码需要时,直接调用相同的动态库即可,而不需要在各自代码中重复实现。
在上述实施例的基础上,如图2为本申请实施例提供的硬件资源管理模块的结构示意图,作为一种可实施的方式,在一实施例中,硬件资源管理模块,包括:硬件资源管理核心层、硬件资源管理实例层及硬件资源库。
其中,硬件资源管理核心层封装有若干种硬件工具函数及函数调用接口;硬件资源管理实例层用于在硬件资源库调用目标功能函数,基于目标功能函数,根据待测硬件的硬件参数,构建硬件初始化结构体,并将硬件初始化结构体注册至硬件资源管理核心层;硬件资源库封装有若干种功能函数。
具体地,硬件资源管理核心层hardware manager(硬件管理模块)由hw_core.c(硬件资源管理第一文件)、hw_dev.c(硬件资源管理第二文件)、hw_debug.c(硬件管理第三文件)等文件构成,hw_core.c用来封装面向其他模块或更上层代码的统一接口函数,并定义描述硬件操作的struct hw_opr结构体以及对应的注册/注销函数,hw_dev.c为下层功能实例层定义了若干通用的工具函数,以降低下层具体功能实例文件的开发量。hw_debug.c则提供了用于调试的函数接口。图2中测试1可以表示sensor测试,测试2表示fb测试,测试3表示video测试,第一资源库指libsensor,第二资源库指libfb第三资源库指libvideo,资源库包括功能函数。
具体地,以待测硬件为显示设备为例,针对硬件资源管理实例层,其工作是围绕struct hw_opr结构体(硬件初始化结构体),将具体的显示设备的硬件参数填入其中,实现操作显示设备的操作函数集并将其赋值给struct hw_opr对应的成员函数指针,最后在其初始化入口函数中调用核心层提供的注册函数,将实例化好的struct hw_opr结构体注册给核心层。其中,硬件资源库中的文件为位于底层的文件,仅把自己的初始化入口函数作为自身的唯一对外接口,而其他定义的函数均被声明为static,这些函数中,一部分是中间工具函数,另一部分则是作为待实例化给结构体的功能函数集,这些函数只能在其所在文件中被显式调用,其他文件是看不见这些底层文件定义的函数的(屏蔽底层,避免污染函数名的空间),如果其他模块的外部文件希望调用它们,就只能在其初始化函数完成向上层核心层注册结构体实例之后,才能通过调用核心层提供的统一接口函数,以结构体指针为句柄来间接调用这些作为结构体成员的功能函数。
在上述实施例的基础上,如图3为本申请实施例提供的测试用例管理模块的结构示意图,作为一种可实施的方式,在一实施例中,测试用例管理模块,包括:测试功能核心层、测试用例层及测试用例库。
其中,测试功能核心层封装有若干种测试工具函数及函数调用接口;测试用例层用于根据待测硬件的功能检测需求,在测试用例库调用目标测试逻辑函数,基于目标测试逻辑函数,构建目标测试用例,基于目标测试用例及功能检测需求表征的测试参数,构建硬件功能检测结构体,并将硬件功能检测结构体注册至测试功能核心层;测试用例库封装有若干种测试逻辑函数。
具体地,测试功能核心层test case manager(测试用例管理模块)由test_core.c(测试功能第一文件)、test_case.c(测试功能第二文件)、test_debug.c(测试功能第三文件)等文件构成,其中,test_core.c封装了面向上层代码的统一接口函数,定义了描述一个测试用例的struct test_model结构体以及对应的注册/注销函数,并负责把下层测试用例实时输出的测试数据保存成日志文件。test_case.c为下层测试用例层定义了若干通用的工具函数,以降低下层具体测试用例的开发量。test_debug.c提供了用于调试的函数接口。图3中测试用例1可以表示testsensor,测试用例2表示testfb测试,测试用例3表示testvideo,第一用例库指libtest1,第二用例库指libtest2,第三用例库指libtest3,以此类推,用例库包括测试逻辑函数。
具体地,测试用例层中每个测试用例的核心工作就是围绕struct test_model结构体(硬件功能检测结构体),初始化其测试用例参数、实现目标测试用例执行需要的目标测试逻辑函数并赋值给struct test_model对应的成员函数指针。最后在其初始化入口函数中调用核心层提供的注册函数,将实例化好的struct test_model结构体注册给核心层。其中,测试用例库并不是和测试用例层一一对应,有的测试用例可能会用到多个测试用例库,也有的测试用例库可能被多个测试用例使用,测试用例库包括若干个测试逻辑函数。
在上述实施例的基础上,如图4为本申请实施例提供的显示模块的结构示意图,作为一种可实施的方式,在一实施例中,显示模块,包括:解码子模块、字符子模块及图像子模块。
其中,解码子模块用于在测试日志文件中解析目标字体的字符编码;字符子模块用于根据目标字体的字符编码,确定对应的字体点阵;图像子模块用于根据字体点阵,构建待显示的图像数据;其中,功能检测结果显示数据包括待显示的图像数据。
具体地,decoding子模块(解码子模块)负责从不同编码格式的测试日志文件中解析获得对应字体的字符编码。上层逻辑层由decoding_core.c、decoding_helper.c、decoding_debug.c等文件构成,decoding_core.c封装了面向上层的统一接口函数,定义了描述解码逻辑的struct decoding_opr结构体以及对应的注册/注销函数,decoding_helper.c定义了面向下层的工具函数,decoding_debug.c定义了用于调试的函数接口。decoding子模块的下层实例层支持4种编码格式的文件解析:ascii、utf-8、utf-16le、utf-16be(不同编码的日志文件,提取里面字体对应的字符编码的方式不一样),下层实例层的每个解码实例文件都会向上层注册一个struct decoding_opr结构体实例。decoding子模块上层逻辑层进行日志文件解码时,会依次以各下层解码实例注册的struct decoding_opr结构体实例为句柄,调用各个解析实例提供的编码格式判断函数,以确定当前日志文件的编码格式,然后通过匹配到的解析实例中的解码函数,逐个解析出对应字体的字符编码。
具体地,font子模块(字符子模块)负责用decoding子模块提供的字符编码去字体文件中得到字体点阵。目前支持3种字符点阵,由本模块下层的3个点阵管理实例进行支撑,ascii实例支持的是8*16的英文字符点阵,所有字符的点阵信息被包含在一个数组中,8*16点阵中单行的8个点阵点对应数组中的1字节数据,因而一个英文字符的16行点阵共需要16字节存储。gbk实例支持的是HZK16里的16*16汉字点阵,一行点阵点占据2字节数据,16行共需要32字节。Freetype实例支持的是通过freetype库得到的可自由缩放的矢量字体(有2种格式,MONO位图:1bit表示一个像素;anti-color:1byte表示一个像素)。draw子模块(图像子模块)负责用font子模块提供的字体点阵数据构建一帧待显示的图像数据。
具体地,在一实施例中,显示模块,还可以获取待测硬件的显示设备配置信息;当显示设备配置信息表征待测硬件具备电容屏时,将电容屏作为目标显示设备显示待显示的图像数据,以输出功能检测结果显示数据。
相应地,在一实施例中,当显示设备配置信息表征待测硬件不具备电容屏时,根据待测硬件的虚拟终端配置信息,确定目标显示设备,以基于目标显示设备输出功能检测结果显示数据。
具体地,图像子模块下层功能实例层包含touchscreen和crt两个实例,touchscreen实例用于将图像数据加载到电容屏,如果硬件产品自带电容屏,则可考虑使用该实例。如果产品不带电容屏,则需要配置使用crt实例,该实例又可进一步细化配置,可选择是把数据以字符格式打印到非图形化的tty终端,还是把数据借助SVGAlib以图像形式显示到PC显示器。
具体地,显示模块包括显示功能核心层,位于最上层的核心层display manager(显示功能核心层)只有一个display_core.c,它封装了面向上层代码的统一接口函数,其中,display_register会统一调用各子模块的注册函数,完成隶属于各子模块的功能实例层到功能逻辑层的注册工作。display_init则用来依次调用各子模块的初始化函数,完成各子模块具体的功能实例的初始化。显示数据的处理流程由核心层负责,它通过调度其下的各子模块,完成一帧图形数据的显示。测试模块输出的日志文件会首先交给decoding子模块,用以获取日志文件中各字符对应字体的字符编码,然后decoding子模块返回的字符编码会交给font子模块,该模块会根据字符编码从指定的字库中获取字体点阵,最后font子模块返回的字体点阵数据再交给draw子模块,由其渲染到一帧待显示的图形数据中,并最终将图像数据刷新到硬件显示设备上。
在上述实施例的基础上,现有的硬件检测软件实现逻辑都是基于本地编程,即软件只能本地运行本地查看结果,产线工人要逐台手动执行软件并判断检测结果,这大大降低了产线的运行效率,提高了人工投入成本。
为解决该技术问题,作为一种可实施的方式,在一实施例中,系统还包括:控制模块,用于获取待测硬件的网络配置信息,根据网络配置信息及功能检测需求,判断是否启动远程检测控制。
具体地,可以根据待测硬件的网络配置信息,判断该待测硬件是否具备远程通信能力,若具备,则进一步根据其功能检测需求,判断是否需要远程检测控制,若是,则开启远程检测控制;若待测硬件不具备远程通信能力或不需要远程检测控制,则不开启远程检测控制。
具体地,如图5所示,为本申请实施例提供的控制模块的控制流程示意图,控制模块(主控线程)承担了对各功能模块的初始化配置任务,它会根据产品是否要进行远程检测控制,来选择是初始化加载本地显示模块,还是创建客户端socket建立与服务器端的网络连接,实现远程检测。hw_register(硬件资源管理模块注册)、test_register(测试用例管理模块注册)、display_register(显示模块注册)分别定义自各功能模块的上层核心层,它们会各自调用隶属于自己下层功能逻辑层的各个文件实现的初始化入口函数,以完成自己负责管理的功能逻辑的注册工作。各功能逻辑注册的实例化结构体中都定义有一个初始化函数,用于完成自身功能逻辑的初始化或者配置工作,这些初始化函数被定义在各功能模块上层核心层的hw_init、test_init、display_init调用,以完成隶属于自己的各功能逻辑的初始化工作。如果配置了CONFIG_REMOTE_CONTROL=y,本地显示模块则不会加入编译,取而代之的是remote_connect.c被加入编译,充当连接服务器的客户端程序,作用是建立与服务器端的socket连接,传输本地的测试日志文件到远程服务器。
其中,本地显示和远程显示的区别在于测试日志文件的传输路径不同,本地显示模块要显示的数据直接来自本地测试模块生成的测试日志,而远程显示模块要显示的内容数据源头虽然同样来自本地测试模块的日志文件,但它需要首先由本地socket客户端通过网络发送给远程监测程序的服务器端,再由远程解析线程解析出数据后,最后交给远程显示模块加以显示。除去日志文件传输路径的差别,本地显示和远程显示的代码逻辑是可高度复用的,因此,我们将两者的显示功能放到一起设计,共享同一个显示功能模块,
如图6所示,为本申请实施例提供的示例性的硬件功能检测系统的结构示意图,该系统分为两个大部分,一部分是安装到每台机器上的本地检测程序,一部分是安装到远程监控端的管理程序,本地测试程序和远程管理程序的显示功能模块共用了同一套代码。数据传输模块作为服务器端,可同时接收多个测试设备发送来的测试日志,并将其保存到本地。显示模块用于解析测试日志,把测试结果图形化显示到本地PC显示器。功能逻辑和测试设备上运行的显示模块一致。不同之处是,它可以把多个测试设备的测试结果同时刷到一帧图像上。
本申请实施例提供的硬件功能检测系统,包括:硬件资源管理模块、测试用例管理模块及显示模块;硬件资源管理模块用于对待测硬件进行初始化处理;测试用例管理模块用于根据待测硬件的功能检测需求,调用目标测试用例,基于目标测试用例及功能检测需求表征的测试参数,构建硬件功能检测结构体,基于硬件功能检测结构体对初始化后的待测硬件进行功能测试,生成测试日志文件;显示模块用于根据测试日志文件,生成待测硬件的功能检测结果显示数据,并基于待测硬件的目标显示设备输出功能检测结果显示数据。上述方案的提供的系统,通过根据当前待测硬件的功能检测需求,灵活调用目标测试用例,以构建适合当前待测硬件的硬件功能检测结构体,该系统能够兼容各种电子产品,降低了硬件功能检测成本。并且,针对具有联网能力(远程通信能力)的产品,实现开机自检并自动上报检测结果到产线服务器。通过服务器,配合产线自动化配置,实现了远程检测控制。
本申请实施例提供了一种硬件功能检测方法,用于对硬件进行功能检测。本申请实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于对硬件进行功能检测的电子设备。
如图7所示,为本申请实施例提供的硬件功能检测方法的流程示意图,该方法包括:
步骤701,对待测硬件进行初始化处理;
步骤702,根据待测硬件的功能检测需求,调用目标测试用例;
步骤703,基于目标测试用例及功能检测需求表征的测试参数,构建硬件功能检测结构体;
步骤704,基于硬件功能检测结构体对初始化后的待测硬件进行功能测试,生成测试日志文件;
步骤705,根据测试日志文件,生成待测硬件的功能检测结果显示数据,并基于待测硬件的目标显示设备输出功能检测结果显示数据。
关于本实施例中的硬件功能检测方法,其中各个步骤的具体实施方式已经在有关该系统的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供的硬件功能检测方法,应用于上述实施例提供的硬件功能检测系统,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种电子设备,用于执行上述实施例提供的硬件功能检测方法。
如图8所示,为本申请实施例提供的电子设备的结构示意图。该电子设备80包括:至少一个处理器81和存储器82。
存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上实施例提供的硬件功能检测方法。
本申请实施例提供的一种电子设备,用于执行上述实施例提供的硬件功能检测方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上任一实施例提供的硬件功能检测方法。
本申请实施例的包含计算机可执行指令的存储介质,可用于存储前述实施例中提供的硬件功能检测方法的计算机执行指令,其实现方式与原理相同,不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种硬件功能检测系统,其特征在于,包括:硬件资源管理模块、测试用例管理模块及显示模块;
所述硬件资源管理模块用于对待测硬件进行初始化处理;
所述测试用例管理模块用于根据所述待测硬件的功能检测需求,调用目标测试用例,基于所述目标测试用例及所述功能检测需求表征的测试参数,构建硬件功能检测结构体,基于所述硬件功能检测结构体对初始化后的待测硬件进行功能测试,生成测试日志文件;
所述显示模块用于根据所述测试日志文件,生成所述待测硬件的功能检测结果显示数据,并基于所述待测硬件的目标显示设备输出所述功能检测结果显示数据。
2.根据权利要求1所述的系统,其特征在于,所述硬件资源管理模块,包括:硬件资源管理核心层、硬件资源管理实例层及硬件资源库;
所述硬件资源管理核心层封装有若干种硬件工具函数及函数调用接口;
所述硬件资源管理实例层用于在所述硬件资源库调用目标功能函数,基于所述目标功能函数,根据所述待测硬件的硬件参数,构建硬件初始化结构体,并将所述硬件初始化结构体注册至所述硬件资源管理核心层;
所述硬件资源库封装有若干种功能函数。
3.根据权利要求1所述的系统,其特征在于,所述测试用例管理模块,包括:测试功能核心层、测试用例层及测试用例库;
所述测试功能核心层封装有若干种测试工具函数及函数调用接口;
所述测试用例层用于根据所述待测硬件的功能检测需求,在所述测试用例库调用目标测试逻辑函数,基于所述目标测试逻辑函数,构建目标测试用例,基于所述目标测试用例及所述功能检测需求表征的测试参数,构建硬件功能检测结构体,并将所述硬件功能检测结构体注册至所述测试功能核心层;
所述测试用例库封装有若干种测试逻辑函数。
4.根据权利要求1所述的系统,其特征在于,所述显示模块,包括:解码子模块、字符子模块及图像子模块;
所述解码子模块用于在所述测试日志文件中解析目标字体的字符编码;
所述字符子模块用于根据所述目标字体的字符编码,确定对应的字体点阵;
所述图像子模块用于根据所述字体点阵,构建待显示的图像数据;其中,所述功能检测结果显示数据包括所述待显示的图像数据。
5.根据权利要求4所述的系统,其特征在于,所述显示模块,还用于:
获取所述待测硬件的显示设备配置信息;
当所述显示设备配置信息表征所述待测硬件具备电容屏时,将所述电容屏作为目标显示设备显示所述待显示的图像数据,以输出所述功能检测结果显示数据。
6.根据权利要求5所述的系统,其特征在于,所述显示模块,还用于:
当所述显示设备配置信息表征所述待测硬件不具备电容屏时,根据所述待测硬件的虚拟终端配置信息,确定目标显示设备,以基于所述目标显示设备输出所述功能检测结果显示数据。
7.根据权利要求1所述的系统,其特征在于,所述系统还包括:控制模块;
所述控制模块用于获取所述待测硬件的网络配置信息,根据所述网络配置信息及功能检测需求,判断是否启动远程检测控制。
8.一种硬件功能检测方法,其特征在于,包括:
对待测硬件进行初始化处理;
根据所述待测硬件的功能检测需求,调用目标测试用例;
基于所述目标测试用例及所述功能检测需求表征的测试参数,构建硬件功能检测结构体;
基于所述硬件功能检测结构体对初始化后的待测硬件进行功能测试,生成测试日志文件;
根据所述测试日志文件,生成所述待测硬件的功能检测结果显示数据,并基于所述待测硬件的目标显示设备输出所述功能检测结果显示数据。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求8所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310606323.4A CN116627738A (zh) | 2023-05-26 | 2023-05-26 | 一种硬件功能检测系统、方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310606323.4A CN116627738A (zh) | 2023-05-26 | 2023-05-26 | 一种硬件功能检测系统、方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116627738A true CN116627738A (zh) | 2023-08-22 |
Family
ID=87591493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310606323.4A Pending CN116627738A (zh) | 2023-05-26 | 2023-05-26 | 一种硬件功能检测系统、方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627738A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118035126A (zh) * | 2024-04-11 | 2024-05-14 | 成都谐盈科技有限公司 | 符合性测试用例的集成方法 |
-
2023
- 2023-05-26 CN CN202310606323.4A patent/CN116627738A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118035126A (zh) * | 2024-04-11 | 2024-05-14 | 成都谐盈科技有限公司 | 符合性测试用例的集成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795219B (zh) | 适用于多种计算框架的资源调度方法及系统 | |
US7681138B2 (en) | Use of a reusable control software whose user interface and communication connection are established via an external description-based configuration at run time | |
CN107577607B (zh) | 用户界面自动化测试方法、装置、电子设备、存储介质 | |
EP2386953B1 (en) | Systems and methods for generating reusable test components out of remote application programming interface | |
US5075847A (en) | Method and apparatus for computer program encapsulation | |
US9703515B1 (en) | System and method for presenting output from concurrent computing units | |
US20070016829A1 (en) | Test case generator | |
CN110389834B (zh) | 一种用于提交深度学习训练任务的方法和装置 | |
EP3030969A1 (en) | Automated application test system | |
US6189047B1 (en) | Apparatus and method for monitoring event queue operations with pluggable event queues | |
CN116627738A (zh) | 一种硬件功能检测系统、方法、电子设备及存储介质 | |
CN112256406B (zh) | 作业流程平台化调度方法 | |
US9405564B2 (en) | System and method for targeting commands to concurrent computing units executing a concurrent computing process | |
US6799320B1 (en) | Providing binding options for component interfaces | |
CN111382044A (zh) | 性能瓶颈的定位方法、定位装置、电子设备及存储介质 | |
US20050216897A1 (en) | Converter, automation device with a converter, and a development environment having an automation device with converter | |
CN116662039B (zh) | 基于共享内存的工业信息并行检测方法、装置及介质 | |
US20150121051A1 (en) | Kernel functionality checker | |
CN114757124B (zh) | 一种基于xml的cfd工作流建模方法、装置、计算机及存储介质 | |
CN113688141B (zh) | 一种应用功能设计方法及软件开发平台 | |
CN114092590A (zh) | 电子设备及其图像渲染性能的评估方法、介质 | |
CN114020414A (zh) | Android系统与底层Linux共生方法、装置、电子设备及存储介质 | |
CN111752840A (zh) | 一种跨系统的金融自助设备sp自动测试方法、设备及介质 | |
CN111400190A (zh) | 自动化测试流程生成方法、装置及计算机可读存储介质 | |
Gioachin et al. | Dynamic high-level scripting in parallel applications |
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 |