CN117235307B - 一种stdf数据处理方法、装置及计算设备 - Google Patents
一种stdf数据处理方法、装置及计算设备 Download PDFInfo
- Publication number
- CN117235307B CN117235307B CN202311514561.9A CN202311514561A CN117235307B CN 117235307 B CN117235307 B CN 117235307B CN 202311514561 A CN202311514561 A CN 202311514561A CN 117235307 B CN117235307 B CN 117235307B
- Authority
- CN
- China
- Prior art keywords
- data
- json
- stdf
- dll
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012360 testing method Methods 0.000 claims abstract description 91
- 238000012545 processing Methods 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000004806 packaging method and process Methods 0.000 claims abstract description 16
- 238000006243 chemical reaction Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 17
- 238000010276 construction Methods 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000009440 infrastructure construction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种STDF数据处理方法、装置及计算设备,包括:在目标程序中使用动态方式加载DLL;获取DLL中的目标接口;配置DLL的config文件路径;获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;将所述字节串发送到服务端。可见,本发明能够将数据封装成JSON数据结构,以键值对的方式存储数据,并进行数据处理,简化了数据处理的复杂度,降低了对IT基础设施的建设要求。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种STDF数据处理方法、装置及计算设备。
背景技术
目前,STDF文件是半导体行业芯片测试数据的存储规范,它全方位的记录了芯片的测试结果。但对STDF文件的解析比较复杂,大部分半导体企业往往只能利用别人开发的转换工具解析STDF文件并保存为txt或Excel文件,较难做到系统化的解析测试结果并存储到数据库,也就很难用STDF实现系统化的数据分析。
并且,由于文件往往比较大,进行STDF文件的传输也是非常耗时,测试企业为了满足客户要求,及时将测试数据传给客户,往往不得不架设多台服务器同时上传,对企业的IT基础设施建设(网络带宽&服务器)要求也很高。可见,现在的STDF数据处理方法存在着对IT基础设施建设要求高、数据分析需要转换复杂度高的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了涉及一种STDF数据处理方法、装置及计算设备,能够将数据封装成JSON数据结构,以键值对的方式存储数据,并进行数据处理,简化了数据处理的复杂度,降低了对IT基础设施的建设要求。
根据本发明实施例的一个方面,提供了一种STDF数据处理方法,包括:
在目标程序中使用动态方式加载DLL;
获取DLL中的目标接口;
配置DLL的config文件路径;
获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;
基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;
将所述字节串发送到服务端。
作为一种可选的实施方式,对所述JSON数据包中JSON格式的键值对数据进行填充,包括:
解析所述JSON数据包中的每个JSON数据;
对每个JSON数据,如果该JSON数据中的key值不存在,则使用默认值填充该JSON数据的key值。
作为一种可选的实施方式,将填充后的数据转化为字节串,包括:
按照预设的各个数据类型,将填充后的数据转换成对应的目标数据;
将各个数据类型的目标数据进行序列化处理,得到所述字节串。
作为一种可选的实施方式,所述方法还包括:
配置DLL中的服务端IP和端口、以及日志路径。
作为一种可选的实施方式,基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,包括:
将所述JSON数据包转换成char*类型,并将char*类型的数据传入DLL中进行数据处理;以及
所述方法还包括:
响应于所述目标接口接入所述char*类型的数据,将所述char*类型的数据反序列化为cJson类型的数据;
基于所述cJson类型的数据,确定所述JSON数据包,以执行所述的对所述JSON数据包中JSON格式的键值对数据进行填充。
根据本发明实施例的另一方面,还提供了一种STDF数据处理装置,包括:
加载单元,用于在目标程序中使用动态方式加载DLL;
接口获取单元,用于获取DLL中的目标接口;
配置单元,用于配置DLL的config文件路径;
封包单元,用于获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;
填充转化单元,用于基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;
发送单元,用于将所述字节串发送到服务端。
作为一种可选的实施方式,所述填充转化单元具体用于:
解析所述JSON数据包中的每个JSON数据;
对每个JSON数据,如果该JSON数据中的key值不存在,则使用默认值填充该JSON数据的key值。
作为一种可选的实施方式,所述填充转化单元具体用于:
按照预设的各个数据类型,将填充后的数据转换成对应的目标数据;
将各个数据类型的目标数据进行序列化处理,得到所述字节串。
作为一种可选的实施方式,所述配置单元还用于:
配置DLL中的服务端IP和端口、以及日志路径。
作为一种可选的实施方式,所述填充转化单元具体用于:
将所述JSON数据包转换成char*类型,并将char*类型的数据传入DLL中进行数据处理;以及
响应于所述目标接口接入所述char*类型的数据,将所述char*类型的数据反序列化为cJson类型的数据;
基于所述cJson类型的数据,确定所述JSON数据包,以执行所述的对所述JSON数据包中JSON格式的键值对数据进行填充。
根据本发明实施例的又一方面,还提供了一种计算设备,所述计算设备包括:至少一个处理器、存储器和输入输出单元;其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行上述STDF数据处理方法。
根据本发明实施例的又一方面,还提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述STDF数据处理方法。
在本发明实施例中,在目标程序中使用动态方式加载DLL;获取DLL中的目标接口;配置DLL的config文件路径;获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;将所述字节串发送到服务端。可见,本发明能够将数据封装成JSON数据结构,以键值对的方式存储数据,并进行数据处理,简化了数据处理的复杂度,降低了对IT基础设施的建设要求。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的STDF数据处理方法的流程示意图;
图2是根据本发明实施例的一种可选的STDF数据处理装置的结构示意图;
图3示意性地示出了本发明实施例的一种介质的结构示意图;
图4示意性地示出了本发明实施例的一种计算设备的结构示意图;
图5是根据本发明实施例的另一种可选的STDF数据处理方法的流程示意图;
图6是根据本发明实施例的一种可选的STDF数据处理中填充转化过程的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面参考图1,图1为本发明一实施例提供的STDF数据处理方法的流程示意图。需要注意的是,本发明的实施方式可以应用于适用的任何场景。
图1所示的本发明一实施例提供的STDF数据处理方法的流程,包括:
步骤S101,在目标程序中使用动态方式加载DLL;
步骤S102,获取DLL中的目标接口;
步骤S103,配置DLL的config文件路径;
步骤S104,获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;
步骤S105,基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;
步骤S106,将所述字节串发送到服务端。
在本实施例中,为了能够实时的系统化的分析芯片测试中STDF数据,就必须实时的将测试结果发送到数据服务器中。但是STDF中每种记录都会包含着各种类型的数据,开发人员在数据采集过程中,以及发送过程中比较麻烦,需要封装多种数据类型,容易出错。对此,本申请为了解决数据格式多样的问题,提出了将记录数据封装成JSON数据结构,以键值对的方式存储数据,然后将数据交给本方法去处理,简单易懂;其次,在数据传输过程中如果数据太大,如果在传输过程中不序列化,数据丢失率会增加,而且会增加内存浪费,降低数据传输效率,而且可以简化数据库中数据存储结构,增强了程序的可维护性。
其中,执行主体可以为开发人员所使用的终端设备。
具体的,目标程序可以包括测试程序或者UI程序,在测试程序或者UI程序中可以使用动态方式加载DLL。其中,DLL是Windows系统中的动态链接库文件,DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。例如,可以基于动态方式加载Monitor.DLL,即使用LoadLibrary的方式加载动态库。
并且,在加载DLL之后,能够使用函数指针以及GetProcAddress方法获取DLL中的目标接口。其中,DLL中的一些参数使用配置文件的方式可在外部灵活配置,包括服务器的IP和PORT,以及日志的路径。其中,config路径是在外部配置的,具体可以调用DLL里面的InitClient接口传入config文件路径。 其中,目标接口是DLL中用于数据传入的接口。
之后,开发人员在采集完测试数据后,能够调用DLL相关接口(目标接口)将数据传入DLL中进行处理。以及,程序开发人员可以使用DLL给出的json格式将数据封装成json数据包,然后转换成char*类型调用相关接口传入DLL。
其中,DLL模块相关接口接收到入参时,可以使用内部接口ParseJsonData*(用于数据类型反序列化的接口),先将char*数据类型,反序列化为cJson类型。其中,cJson为序列化json数据格式的类。之后,通过cJson类中的cJSON_GetObjectItemCaseSensitive方法,以及相关Key值获取对应的value值(对应记录的值)。之后,基于DLL的数据类型转换函数,将数据转换成对应的数据类型。最后将每个不同的数据类型,调用内部类方法PackHelper,将STDF记录序列化为字节串。其中,DLL所处理的数据中的key对应着STDF测试记录数据中的测试项,value对应着STDF测试记录数据中的测试值。在DLL进行数据处理的过程中,能够解析STDF测试记录数据中的测试项与测试值,自动填写JSON格式的键值对。并将填写完成的键值对转化为字节串。其中,字节串为存储以字节为单位的数据的数据结构。之后,将字节串形式的数据发送到服务端,使得服务端直接能够获取到字节串形式的数据,而非再去解析STDF数据。
基于此,本实施例简化了对STDF数据的打包和发送,使得开发人员不必要去了解复杂的STDF记录的数据类型,以及发送时数据的序列化处理,只需按照方法中给定的JSON格式中的键值对数据进行填充,其数据类型全部转化为字符串类型即可。
作为一种可选的实施方式,对所述JSON数据包中JSON格式的键值对数据进行填充,包括:
解析所述JSON数据包中的每个JSON数据;
对每个JSON数据,如果该JSON数据中的key值不存在,则使用默认值填充该JSON数据的key值。
在本实施方式中,对于每个JSON数据的key值来说,如果测试程序中没有填写相关值,动态库默认会从测试程序的配置路径下的config文件中获取相应的值,如果config文件中仍然没有值,则int,double,float类型为0,字符串类型为“NA”。此时的“NA”即为上述的默认值。
并且,如果key值存在,则对key值与对应的value值进行填充处理。
作为一种可选的实施方式,将填充后的数据转化为字节串,包括:
按照预设的各个数据类型,将填充后的数据转换成对应的目标数据;
将各个数据类型的目标数据进行序列化处理,得到所述字节串。
在本实施方式中,在DLL中可以预先存储各个数据类型、以及每个数据类型对应的类型转换逻辑。在得到填充后的数据之后,可以按照各个数据类型对应的类型转换逻辑,对每种数据类型的数据进行数据类型转换,得到各个数据类型格式统一转换后的目标数据。之后,对目标数据进行序列化处理,能够得到字节串。
作为一种可选的实施方式,所述方法还包括:
配置DLL中的服务端IP和端口、以及日志路径。
作为一种可选的实施方式,基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,包括:
将所述JSON数据包转换成char*类型,并将char*类型的数据传入DLL中进行数据处理;以及
所述方法还包括:
响应于所述目标接口接入所述char*类型的数据,将所述char*类型的数据反序列化为cJson类型的数据;
基于所述cJson类型的数据,确定所述JSON数据包,以执行所述的对所述JSON数据包中JSON格式的键值对数据进行填充。
在本实施方式中,除了将JSON数据包中的数据转换成char*类型的数据,传入DLL中进行数据处理之外,还可以将一些与服务器交互的基本信息传入DLL中。这里的服务器交互的基本信息可以包括但不限于客户名称(customer),次级客户(sub_customer),数据类型(fileType),工厂(factory),工厂地点(factorySite),生产类型(lotType),测试类型(testArea), 测试阶段(testStage) 。
以及,STDF测试记录数据可以用来记录芯片各个测试阶段的数据,具体可以包括但不限于主信息记录(Master Information Record,MIR)、文件属性记录(FileAttributes Record ,FAR)、晶圆信息记录(Wafer Information Record,WIR)、零件信息记录(Part Information Record,PIR)、部分结果记录(Part Results Record,PRR)、参数测试记录(Parametric Test Record,PTR)等。
以及,通过设置MIR、FAR等记录类型需要根据具体的数据,然后在对应的结构体中定义多种数据类型,而且结构体格式需要与DLL对应,如果结构体有数据类型定义错误,或者结构体出现开辟完内存空间没释放等问题都会对程序造成影响。对此,本申请采用简单易懂的JSON格式,不仅让开发人员一眼能够看出当前记录类型中有哪些属性值,而且省去了开辟空间释放空间的烦恼,开发人员只需要根据不同类型的JSON格式,将值转换为字符串类型,填入到相应的键值对中即可,其他转换的事情有DLL内部完成,而且使用JSON格式传输,有利于在不通开发语言之间的通用。
并且,在DLL中,每一个记录类型都被封装成一个类。
请参阅图5,图5是根据本发明实施例的另一种可选的STDF数据处理方法的流程示意图,如图5所示,首先可以在程序中加载DLL,配置DLL的config文件路径。之后,开发人员能够采集STDF测试记录,并按照给定的JSON协议封包,调用DLL中的接口传入参数,按照接口类型解析JSON数据包,并将测试记录转成byte序列化发送到服务端。
请参阅图6,图6是根据本发明实施例的一种可选的STDF数据处理中填充转化过程的流程示意图,首先,在DLL中,可以先配置服务端的IP和端口,之后,接收JSON格式的数据包,并按照记录类型解析JSON格式数据包。判断当前JSON中的key值是否存在,如果不存在,则用默认值替代,如果存在,则将对应的项转换为实际的数据类型。通过每个记录对应的类,将当前记录类型序列化,并使用TCP发送给服务端。
在本发明实施例中,在目标程序中使用动态方式加载DLL;获取DLL中的目标接口;配置DLL的config文件路径;获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;将所述字节串发送到服务端。可见,本发明能够将数据封装成JSON数据结构,以键值对的方式存储数据,并进行数据处理,简化了数据处理的复杂度,降低了对IT基础设施的建设要求。
在介绍了本发明示例性实施方式的方法之后,接下来,参考图2对本发明示例性实施方式的一种STDF数据处理装置,包括:
加载单元201,用于在目标程序中使用动态方式加载DLL;
接口获取单元202,用于获取DLL中的目标接口;
配置单元203,用于配置DLL的config文件路径;
封包单元204,用于获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;
填充转化单元205,用于基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;
发送单元206,用于将所述字节串发送到服务端。
在本实施例中,为了能够实时的系统化的分析芯片测试中STDF数据,就必须实时的将测试结果发送到数据服务器中。但是STDF中每种记录都会包含着各种类型的数据,开发人员在数据采集过程中,以及发送过程中比较麻烦,需要封装多种数据类型,容易出错。对此,本申请为了解决数据格式多样的问题,提出了将记录数据封装成JSON数据结构,以键值对的方式存储数据,然后将数据交给本方法去处理,简单易懂;其次,在数据传输过程中如果数据太大,如果在传输过程中不序列化,数据丢失率会增加,而且会增加内存浪费,降低数据传输效率,而且可以简化数据库中数据存储结构,增强了程序的可维护性。
具体的,目标程序可以包括测试程序或者UI程序,在测试程序或者UI程序中可以使用动态方式加载DLL。其中,DLL是Windows系统中的动态链接库文件,DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。例如,可以基于动态方式加载Monitor.DLL,即使用LoadLibrary的方式加载动态库。
并且,在加载DLL之后,能够使用函数指针以及GetProcAddress方法获取DLL中的目标接口。其中,DLL中的一些参数使用配置文件的方式可在外部灵活配置,包括服务器的IP和PORT,以及日志的路径。其中,config路径是在外部配置的,具体可以调用DLL里面的InitClient接口传入config文件路径。 其中,目标接口是DLL中用于数据传入的接口。
之后,开发人员在采集完测试数据后,能够调用DLL相关接口(目标接口)将数据传入DLL中进行处理。以及,程序开发人员可以使用DLL给出的json格式将数据封装成json数据包,然后转换成char*类型调用相关接口传入DLL。
其中,DLL模块相关接口接收到入参时,可以使用内部接口ParseJsonData*(用于数据类型反序列化的接口),先将char*数据类型,反序列化为cJson类型。其中,cJson为序列化json数据格式的类。之后,通过cJson类中的cJSON_GetObjectItemCaseSensitive方法,以及相关Key值获取对应的value值(对应记录的值)。之后,基于DLL的数据类型转换函数,将数据转换成对应的数据类型。最后将每个不同的数据类型,调用内部类方法PackHelper,将STDF记录序列化为字节串。其中,DLL所处理的数据中的key对应着STDF测试记录数据中的测试项,value对应着STDF测试记录数据中的测试值。在DLL进行数据处理的过程中,能够解析STDF测试记录数据中的测试项与测试值,自动填写JSON格式的键值对。并将填写完成的键值对转化为字节串。其中,字节串为存储以字节为单位的数据的数据结构。之后,将字节串形式的数据发送到服务端,使得服务端直接能够获取到字节串形式的数据,而非再去解析STDF数据。
基于此,本实施例简化了对STDF数据的打包和发送,使得开发人员不必要去了解复杂的STDF记录的数据类型,以及发送时数据的序列化处理,只需按照方法中给定的JSON格式中的键值对数据进行填充,其数据类型全部转化为字符串类型即可。
作为一种可选的实施方式,所述填充转化单元205具体用于:
解析所述JSON数据包中的每个JSON数据;
对每个JSON数据,如果该JSON数据中的key值不存在,则使用默认值填充该JSON数据的key值。
在本实施方式中,对于每个JSON数据的key值来说,如果测试程序中没有填写相关值,动态库默认会从测试程序的配置路径下的config文件中获取相应的值,如果config文件中仍然没有值,则int,double,float类型为0,字符串类型为“NA”。此时的“NA”即为上述的默认值。
并且,如果key值存在,则对key值与对应的value值进行填充处理。
作为一种可选的实施方式,所述填充转化单元205具体用于:
按照预设的各个数据类型,将填充后的数据转换成对应的目标数据;
将各个数据类型的目标数据进行序列化处理,得到所述字节串。
在本实施方式中,在DLL中可以预先存储各个数据类型、以及每个数据类型对应的类型转换逻辑。在得到填充后的数据之后,可以按照各个数据类型对应的类型转换逻辑,对每种数据类型的数据进行数据类型转换,得到各个数据类型格式统一转换后的目标数据。之后,对目标数据进行序列化处理,能够得到字节串。
作为一种可选的实施方式,所述配置单元203还用于:
配置DLL中的服务端IP和端口、以及日志路径。
作为一种可选的实施方式,所述填充转化单元205具体用于:
将所述JSON数据包转换成char*类型,并将char*类型的数据传入DLL中进行数据处理;以及
响应于所述目标接口接入所述char*类型的数据,将所述char*类型的数据反序列化为cJson类型的数据;
基于所述cJson类型的数据,确定所述JSON数据包,以执行所述的对所述JSON数据包中JSON格式的键值对数据进行填充。
在本实施方式中,除了将JSON数据包中的数据转换成char*类型的数据,传入DLL中进行数据处理之外,还可以将一些与服务器交互的基本信息传入DLL中。这里的服务器交互的基本信息可以包括但不限于客户名称(customer),次级客户(sub_customer),数据类型(fileType),工厂(factory),工厂地点(factorySite),生产类型(lotType),测试类型(testArea), 测试阶段(testStage) 。
以及,STDF测试记录数据可以用来记录芯片各个测试阶段的数据,具体可以包括但不限于主信息记录(Master Information Record,MIR)、文件属性记录(FileAttributes Record ,FAR)、晶圆信息记录(Wafer Information Record,WIR)、零件信息记录(Part Information Record,PIR)、部分结果记录(Part Results Record,PRR)、参数测试记录(Parametric Test Record,PTR)等。
以及,通过设置MIR、FAR等记录类型需要根据具体的数据,然后在对应的结构体中定义多种数据类型,而且结构体格式需要与DLL对应,如果结构体有数据类型定义错误,或者结构体出现开辟完内存空间没释放等问题都会对程序造成影响。对此,本申请采用简单易懂的JSON格式,不仅让开发人员一眼能够看出当前记录类型中有哪些属性值,而且省去了开辟空间释放空间的烦恼,开发人员只需要根据不同类型的JSON格式,将值转换为字符串类型,填入到相应的键值对中即可,其他转换的事情有DLL内部完成,而且使用JSON格式传输,有利于在不通开发语言之间的通用。
并且,在DLL中,每一个记录类型都被封装成一个类。
在本发明实施例中,在目标程序中使用动态方式加载DLL;获取DLL中的目标接口;配置DLL的config文件路径;获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;将所述字节串发送到服务端。可见,本发明能够将数据封装成JSON数据结构,以键值对的方式存储数据,并进行数据处理,简化了数据处理的复杂度,降低了对IT基础设施的建设要求。
在介绍了本发明示例性实施方式的方法和装置之后,接下来,参考图3对本发明示例性实施方式的计算机可读存储介质进行说明,请参考图3,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施方式中所记载的各步骤,例如,在目标程序中使用动态方式加载DLL;获取DLL中的目标接口;配置DLL的config文件路径;获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;将所述字节串发送到服务端;各步骤的具体实现方式在此不再重复说明。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图4对本发明示例性实施方式的用于STDF数据处理的计算设备。
图4示出了适于用来实现本发明实施方式的示例性计算设备40的框图,该计算设备40可以是计算机系统或服务器。图4显示的计算设备40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算设备40的组件可以包括但不限于:一个或者多个处理器或者处理单元401,系统存储器402,连接不同系统组件(包括系统存储器402和处理单元401)的总线403。
计算设备40典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备40访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器402可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)4021和/或高速缓存存储器4022。计算设备40可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,ROM4023可以用于读写不可移动的、非易失性磁介质(图4中未显示,通常称为“硬盘驱动器”)。尽管未在图4中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线403相连。系统存储器402中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块4024的程序/实用工具4025,可以存储在例如系统存储器402中,且这样的程序模块4024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块4024通常执行本发明所描述的实施例中的功能和/或方法。
计算设备40也可以与一个或多个外部设备404(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(I/O)接口405进行。并且,计算设备40还可以通过网络适配器406与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器406通过总线403与计算设备40的其它模块(如处理单元401等)通信。应当明白,尽管图4中未示出,可以结合计算设备40使用其它硬件和/或软件模块。
处理单元401通过运行存储在系统存储器402中的程序,从而执行各种功能应用以及数据处理,例如,在目标程序中使用动态方式加载DLL;获取DLL中的目标接口;配置DLL的config文件路径;获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;基于所述目标接口将所述JSON数据包传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;将所述字节串发送到服务端。各步骤的具体实现方式在此不再重复说明。应当注意,尽管在上文详细描述中提及了STDF数据处理装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
Claims (5)
1.一种STDF数据处理方法,其特征在于,包括:
在目标程序中使用动态方式加载DLL;其中,所述目标程序包括测试程序或者UI程序;
使用函数指针以及GetProcAddress方法,获取DLL中的目标接口;
配置DLL的config文件路径;
获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;其中,所述STDF测试记录数据包括主信息记录、文件属性记录、晶圆信息记录、零件信息记录、部分结果记录以及参数测试记录;
基于所述目标接口将所述JSON数据包转换成char*类型,传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;
将所述字节串发送到服务端;
基于所述目标接口将所述JSON数据包转换成char*类型,传入DLL中进行数据处理,包括:将所述JSON数据包转换成char*类型,并将char*类型的数据传入DLL中进行数据处理;以及,所述方法还包括:响应于所述目标接口接入所述char*类型的数据,将所述char*类型的数据反序列化为cJson类型的数据;基于所述cJson类型的数据,确定所述JSON数据包,以执行所述的对所述JSON数据包中JSON格式的键值对数据进行填充;
对所述JSON数据包中JSON格式的键值对数据进行填充,包括:解析所述JSON数据包中的每个JSON数据;对每个JSON数据,如果该JSON数据中的key值不存在,则使用默认值填充该JSON数据的key值;
所述将填充后的数据转化为字节串,包括:按照预设的各个数据类型,将填充后的数据转换成对应的目标数据;将各个数据类型的目标数据进行序列化处理,得到所述字节串。
2.根据权利要求1所述的STDF数据处理方法,其特征在于,所述方法还包括:
配置DLL中的服务端IP和端口、以及日志路径。
3.一种STDF数据处理装置,其特征在于,包括:
加载单元,用于在目标程序中使用动态方式加载DLL;其中,所述目标程序包括测试程序或者UI程序;
接口获取单元,用于使用函数指针以及GetProcAddress方法,获取DLL中的目标接口;
配置单元,用于配置DLL的config文件路径;
封包单元,用于获取STDF测试记录数据,并按照预设的JSON协议,对所述STDF测试记录数据进行封包,得到JSON数据包;其中,所述STDF测试记录数据用于记录芯片各个测试阶段的数据;其中,所述STDF测试记录数据包括主信息记录、文件属性记录、晶圆信息记录、零件信息记录、部分结果记录以及参数测试记录;
填充转化单元,用于基于所述目标接口将所述JSON数据包转换成char*类型,传入DLL中进行数据处理,对所述JSON数据包中JSON格式的键值对数据进行填充,并将填充后的数据转化为字节串;
发送单元,用于将所述字节串发送到服务端;
所述填充转化单元具体用于:将所述JSON数据包转换成char*类型,并将char*类型的数据传入DLL中进行数据处理;以及,响应于所述目标接口接入所述char*类型的数据,将所述char*类型的数据反序列化为cJson类型的数据;基于所述cJson类型的数据,确定所述JSON数据包,以执行所述的对所述JSON数据包中JSON格式的键值对数据进行填充;
所述填充转化单元具体用于:解析所述JSON数据包中的每个JSON数据;对每个JSON数据,如果该JSON数据中的key值不存在,则使用默认值填充该JSON数据的key值;
所述填充转化单元具体用于:按照预设的各个数据类型,将填充后的数据转换成对应的目标数据;将各个数据类型的目标数据进行序列化处理,得到所述字节串。
4.根据权利要求3所述的STDF数据处理装置,其特征在于,所述配置单元还用于:
配置DLL中的服务端IP和端口、以及日志路径。
5.一种计算设备,所述计算设备包括:
至少一个处理器、存储器和输入输出单元;
其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行如权利要求1或2所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311514561.9A CN117235307B (zh) | 2023-11-15 | 2023-11-15 | 一种stdf数据处理方法、装置及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311514561.9A CN117235307B (zh) | 2023-11-15 | 2023-11-15 | 一种stdf数据处理方法、装置及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117235307A CN117235307A (zh) | 2023-12-15 |
CN117235307B true CN117235307B (zh) | 2024-01-26 |
Family
ID=89091574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311514561.9A Active CN117235307B (zh) | 2023-11-15 | 2023-11-15 | 一种stdf数据处理方法、装置及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117235307B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104994122A (zh) * | 2015-05-12 | 2015-10-21 | 深圳市微阳信息技术有限公司 | 一种基于json数据协议的业务通讯方法 |
CN112486806A (zh) * | 2020-11-18 | 2021-03-12 | 中信银行股份有限公司 | 一种测试用例执行方法、装置、电子设备和可读存储介质 |
CN114040018A (zh) * | 2021-10-11 | 2022-02-11 | 许昌许继软件技术有限公司 | 一种基于json数据格式的数据收发方法及装置 |
CN115988096A (zh) * | 2022-11-25 | 2023-04-18 | 福建新大陆通信科技股份有限公司 | 一种电子设备测试数据上报方法、系统、设备及介质 |
-
2023
- 2023-11-15 CN CN202311514561.9A patent/CN117235307B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104994122A (zh) * | 2015-05-12 | 2015-10-21 | 深圳市微阳信息技术有限公司 | 一种基于json数据协议的业务通讯方法 |
CN112486806A (zh) * | 2020-11-18 | 2021-03-12 | 中信银行股份有限公司 | 一种测试用例执行方法、装置、电子设备和可读存储介质 |
CN114040018A (zh) * | 2021-10-11 | 2022-02-11 | 许昌许继软件技术有限公司 | 一种基于json数据格式的数据收发方法及装置 |
CN115988096A (zh) * | 2022-11-25 | 2023-04-18 | 福建新大陆通信科技股份有限公司 | 一种电子设备测试数据上报方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117235307A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522A (zh) | 测试方法、装置以及计算机系统和介质 | |
US9697104B2 (en) | End-to end tracing and logging | |
CN103178996B (zh) | 分布式包交换芯片模型验证系统及验证方法 | |
US8200742B2 (en) | Apparatus, system, and method for facilitating data flow between a first application programming interface and a second application programming interface | |
US10250721B2 (en) | System and method for testing applications with a load tester and testing translator | |
US10452522B1 (en) | Synthetic data generation from a service description language model | |
CN110287119A (zh) | 一种基于python的接口自动化测试方法及装置 | |
CN112615759B (zh) | 全链路压测组件、全链路压测方法及装置 | |
US20230214229A1 (en) | Multi-tenant java agent instrumentation system | |
CN113127108A (zh) | 业务请求的处理方法及装置、存储介质以及电子设备 | |
CN111752820B (zh) | gRPC接口的压力测试方法、计算机设备和存储介质 | |
CN113190513A (zh) | 一种数据集成系统及方法 | |
CN117235307B (zh) | 一种stdf数据处理方法、装置及计算设备 | |
CN114448823A (zh) | Nfs服务测试方法、系统及电子设备 | |
Looker et al. | Assessing the dependability of OGSA middleware by fault injection | |
CN113553260A (zh) | 测试方法、测试装置、设备、介质和程序产品 | |
CN116455869A (zh) | 基于Kubernetes高效配置公网域名方法和系统 | |
CN113900633A (zh) | 物联网场景的低代码开发方法及装置、存储介质、开发平台 | |
US20170286261A1 (en) | System and method for providing runtime tracing for a web-based client accessing a transactional middleware platform using an extension interface | |
Kuppuraju et al. | Case study to verify the interoperability of a service oriented architecture stack | |
CN113608995A (zh) | 一种造数方法、装置、计算机设备及存储介质 | |
CN112947115A (zh) | 一种通用化的数据监控方法 | |
CN117493162B (zh) | 一种接口测试的数据校验方法、系统、设备及存储介质 | |
CN114205276B (zh) | 用于产品管理系统的性能测试方法及装置、电子设备 | |
WO2024139538A1 (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 |