CN109542447B - 一种otx程序文件执行方法及装置 - Google Patents
一种otx程序文件执行方法及装置 Download PDFInfo
- Publication number
- CN109542447B CN109542447B CN201710702034.9A CN201710702034A CN109542447B CN 109542447 B CN109542447 B CN 109542447B CN 201710702034 A CN201710702034 A CN 201710702034A CN 109542447 B CN109542447 B CN 109542447B
- Authority
- CN
- China
- Prior art keywords
- otx
- program file
- file
- program
- library
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例涉及计算机技术领域,公开了一种OTX程序文件执行方法及装置。其中,所述方法包括:接收至少一个OTX程序文件;将所述OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件;编译所述C++程序文件,生成C++可执行文件。通过翻译OTX程序文件,生成对应的C++程序文件,使得OTX程序文件在现实中具备真正的“可执行性”。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种OTX程序文件执行方法及装置。
背景技术
OTX(Open Test sequenceeXchange format,开放测试序列交换格式)语言是一种应用于汽车诊断领域的高级程序设计语言,其完整的语法语义以及程序结构定义主要由ISO13209系列标准给出。其中,ISO13209-1标准主要包括OTX的总论和用例;ISO13209-2标准主要包括OTX的核心数据模型规范和要求;ISO13209-3标准主要包括OTX的标准扩展和要求。
在现用技术中,根据ISO13209系列标准定义的OTX语言所编写的OTX程序通常是基于XML(Extensible Markup Language,可扩展标记语言)格式的静态描述性语言,而ISO13209系列标准中并未提供现成的编译程序或解释执行程序,使得OTX程序在现实中并不具备真正的“可执行性”。
发明内容
本发明的主要目的在于提供一种OTX程序文件执行方法及装置,以解决OTX程序在现实中并不具备真正的“可执行性”的问题。
为解决上述技术问题,本发明实施例公开了如下技术方案:
第一方面,本发明实施例提供了一种OTX程序文件执行方法,所述方法包括:
接收至少一个OTX程序文件;
将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件;
编译所述C++程序文件,生成C++可执行文件。
在一些实施例中,所述将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件,包括:
将所述至少一个OTX程序文件中的每一个OTX程序文件的OTX编程语言构造翻译成对应的所述C++程序文件的C++编程语言构造,生成等价的C++程序文件。
在一些实施例中,所述生成对应的C++程序文件包括:将所述至少一个OTX程序文件中的每一个OTX程序文件生成一组C++程序文件,所述一组C++程序文件包括:一个.cpp文件及三个.h文件。
在一些实施例中,所述方法还包括:
提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件。
在一些实施例中,所述提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件,包括:
通过所述Shell库提供调用接口,并提供运行环境支持,运行所述C++可执行文件;
通过所述API库提供进行交互式通讯的接口。
在一些实施例中,所述API库包括:EventHandling库、HMI库、DiagCom库、DiagDataBrowsing库及Flash库。
第二方面,本发明实施例提供了一种OTX程序文件执行装置,所述装置包括:所述装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现:
接收至少一个OTX程序文件;
将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件;
编译所述C++程序文件,生成C++可执行文件。
在一些实施例中,所述计算机程序被所述处理器执行时实现所述将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件包括:
将所述至少一个OTX程序文件中的每一个OTX程序文件的OTX编程语言构造,翻译成对应的所述C++程序文件的C++编程语言构造,生成C++程序文件。
在一些实施例中,所述计算机程序被所述处理器执行时实现所述生成对应的C++程序文件包括:
将所述至少一个OTX程序文件中的每一个OTX程序文件生成一组C++程序文件,所述一组C++程序文件包括:一个.cpp文件及三个.h文件。
在一些实施例中,所述计算机程序被所述处理器执行时还实现:
提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件。
在一些实施例中,所述计算机程序被所述处理器执行时实现所述提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件包括:
通过所述Shell库提供调用接口,并提供运行环境支持,运行所述C++可执行文件;
通过所述API库提供进行交互式通讯的接口。
在一些实施例中,所述API库包括:EventHandling库、HMI库、DiagCom库、DiagDataBrowsing库及Flash库。
第三方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的OTX程序文件执行方法的步骤。
第四方面,本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序被处理器执行时实现如上所述的OTX程序文件执行方法的步骤。
本发明实施例的有益效果是:能够在接收到至少一个OTX程序文件后,将所述OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件,然后再编译所述C++程序文件,生成C++可执行文件。通过翻译OTX程序文件,生成对应的C++程序文件,使得OTX程序在现实中具备真正的“可执行性”。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种OTX程序文件执行方法的流程示意图;
图2是本发明实施例提供的一种OTX程序文件执行方法的流程示意图;
图3是本发明实施例提供的执行所述C++可执行文件过程的示意图;
图4是本发明实施例提供的一种OTX程序文件执行装置的功能模块示意图;
图5是本发明实施例提供的一种OTX程序文件执行装置的功能模块示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
本发明实施例为本发明提供的一种OTX程序文件执行方法的实施例。如图1为本发明实施例提供的一种OTX程序文件执行方法的流程示意图。本发明实施例的一种OTX程序文件执行方法应用于移动终端,所述移动终端至少包括一个用于存储程序指令和其他资料的存储器,以及一个用于执行程序指令的处理器。所述移动终端包括汽车诊断仪、嵌入式计算机等。
参照图1,所述方法包括步骤:
101:接收至少一个OTX程序文件。
在本发明实施例中,移动终端提供接收OTX程序文件的入口,以便接收至少一个OTX程序文件。所述接收OTX程序文件的入口可以理解为所述移动终端接收所述OTX程序文件的方式,包括但不限于:从自身存储介质中直接获取,或者通过输入输出接口从与所述移动终端连接的其他存储设备、电子装置或者网络服务器上获取。
需要说明的是,所述至少一个OTX程序文件可以是1个、2个或者更多个OTX程序文件,OTX程序文件的个数不受限制。
102:将所述至少一个OTX程序文件的编程语言构造进行翻译,以生成对应的C++程序文件。
在本发明实施例中,所述移动终端将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件。所述至少一个OTX程序文件与所述C++程序文件是等价的。其中,等价可以理解为所述至少一个OTX程序文件与所述C++程序文件所包含的各个部分的内容,以及执行得到的结果均是相同的。在本发明实施例中,每一个OTX程序文件被翻译生成一组C++程序文件。其中,所述C++程序文件是由C++编程语言编写的程序文件。对于OTX程序文件,由于在ISO13209系列标准中未提供现成的编译程序,因此不能直接被执行。所述移动终端通过将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件,而C++程序文件是有现成的编译程序进行编译和执行,因此使得OTX程序具备“可执行性”。其中,所述编程语言构造进行翻译的过程可以为将一系列OTX编程语言构造等价翻译成的C++编程语言构造的过程。
在本发明实施例中,所述OTX编程语言构造包括:一级构造、二级构造及三级构造。一级构造包含有:<imports>、<global-declarations>、<validities>、<signatures>、<procedures>等;二级构造包含有:<parameters>、<local-declarations>、<throws>、<flow>等;三级构造包含有:<action>、<group>、<loop>、<branch>、<parallel>、<mutex>、<handler>、<throw>、<return>、<continue>、<break>、<terminatelanes>等。因此,需要将所述至少一个OTX程序文件中的每个OTX程序文件分解成OTX编程语言下的一级、二级和三级构造的形式,然后将每一级构造中的每一项内容等价地翻译成C++编程语言对应构造的内容,最后将所述C++编程语言下的所有构造的各项内容组合形成C++程序文件。
103:编译所述C++程序文件,生成C++可执行文件。
在本发明实施例中,所述移动终端将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件后,所述移动终端还将编译所述C++程序文件,生成C++可执行文件。其中,所述C++可执行文件是指可以由操作系统进行加载执行的文件。在不同的操作系统环境下,所述C++可执行文件的呈现方式可以不一样。如在windows操作系统下,所述C++可执行文件可以是后缀为.exe的文件。通过翻译OTX程序文件,生成对应的C++程序文件后,再将所述C++程序文件进行编译,生成C++可执行文件,使得OTX程序文件真正具备“可执行性”。本发明实施例,能够在接收到至少一个OTX程序文件后,将所述OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件,然后再编译所述C++程序文件,生成C++可执行文件。通过翻译OTX程序文件,生成对应的C++程序文件,使得OTX程序文件在现实中具备真正的“可执行性”。
实施例2:
本发明实施例为本发明提供的一种OTX程序文件执行方法的实施例。如图2为本发明实施例提供的一种OTX程序文件执行方法的流程示意图。本发明实施例的一种OTX程序文件执行方法应用于移动终端,所述移动终端至少包括一个用于存储程序指令和其他资料的存储器,以及一个用于执行程序指令的处理器。所述移动终端包括汽车诊断仪、嵌入式计算机等。
参照图2,所述方法包括步骤:
201:接收至少一个OTX程序文件。
在本发明实施例中,移动终端提供接收OTX程序文件的入口,以便接收至少一个OTX程序文件。所述至少一个OTX程序文件可以是1个、2个或者更多个OTX程序文件,OTX程序文件的个数不受限制。
202:将所述至少一个OTX程序文件的编程语言构造进行翻译,以生成对应的C++程序文件。
在本发明实施例中,所述移动终端将所述OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件。所述C++程序文件是由C++编程语言编写的文件。对于OTX程序文件,由于在ISO13209系列标准中未提供现成的编译程序,因此,所述移动终端需通过将所述OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件,从而使得OTX程序具备可执行性。其中,所述将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件,包括:将所述至少一个OTX程序文件中的每一个OTX程序文件的OTX编程语言构造,翻译成对应的所述C++程序文件的C++编程语言构造,生成等价的C++程序文件。其中,所述OTX编程语言构造包括:一级构造、二级构造及三级构造。一级构造包含有:<imports>、<global-declarations>、<validities>、<signatures>、<procedures>等;二级构造包含有:<parameters>、<local-declarations>、<throws>、<flow>等;三级构造包含有:<action>、<group>、<loop>、<branch>、<parallel>、<mutex>、<handler>、<throw>、<return>、<continue>、<break>、<terminatelanes>等。因此,需要将所述至少一个OTX程序文件中的每个OTX程序文件分解成OTX编程语言下的一级、二级和三级构造的形式,然后将每一级构造中的每一项内容等价地翻译成C++编程语言对应构造的内容,最后将所述C++编程语言下的所有构造的各项内容组合形成C++程序文件。
在本发明实施例中,所述生成对应的C++程序文件包括:将所述至少一个OTX程序文件中的每一个OTX程序文件生成一组C++程序文件,所述一组C++程序文件包括:一个.cpp文件及三个.h文件。所述.cpp文件是指后缀为.cpp的源文件,所述.cpp文件中包含函数实现,变量定义等内容;所述.h文件是指后缀为.h的头文件,所述.h文件中包含函数声明、宏定义、结构体定义等内容。
203:编译所述C++程序文件,生成C++可执行文件。
在本发明实施例中,所述移动终端编译所述C++程序文件,生成C++可执行文件。其中,所述C++可执行文件是指可以由操作系统进行加载执行的文件。在不同的操作系统环境下,所述C++可执行文件的呈现方式可以不一样。如在windows操作系统下,所述C++可执行文件可以是后缀为.exe的文件。通过翻译OTX程序文件,生成对应的C++程序文件后,再将所述C++程序文件进行编译,生成C++可执行文件,使得OTX程序文件真正具备“可执行性”。
在本发明实施例中,所述OTX程序文件执行方法还包括:
204:提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件。
在本发明实施例中,所述移动终端提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件。其中,包括:所述Shell库用于提供调用接口,并提供运行环境支持,运行所述C++可执行文件。所述API库用于提供进行交互式通讯的接口。所述API库还包括:EventHandling库、HMI库、DiagCom库、DiagDataBrowsing库及Flash库。其中,所述EventHandling库用于提供异步事件处理相关接口,所述HMI库用于提供“人机交互接口”,所述DiagCom库用于提供汽车诊断通信接口,所述DiagDataBrowsing库用于提供通信数据浏览接口,所述Flash库用于提供Flash会话及Flash Job相关接口。另外,所述移动终端还需要提供包含了所述ISO13209-2标准规定OTX语言的基本要求和技术规范的OTXCore库,所述OTX Core库与所述移动终端提供的其他所有库文件联合运行,以保障其他所有库文件的正常执行。
在一些实施例中,所述API库还可包括其它库,如Job库、Math库等。
如图3所示,图3是本发明实施例提供的执行所述C++可执行文件过程的示意图,其中,包括:
通过Runtime-system,为所述C++可执行文件提供运行系统,如操作系统,或某个特定的汽车诊断平台等;
通过所述shell库,在所述Runtime-system上为所述C++可执行文件提供运行环境支持,并运行所述C++可执行文件;
通过所述API库提供符合ISO13209系列标准的进行交互式通讯的接口,其中,所述EventHandling库、HMI库、DiagCom库、DiagDataBrowsing库及Flash库达成ISO13209系列标准描述的语义;
通过UI提供交互界面。
可以理解的是,在一些实施例中,所述步骤204在不同的实施例中,可以不是必选步骤。
还需要说明的是,本发明实施例中所述步骤201-204中未详尽描述的技术细节,可参考上述实施例的具体描述。
本发明实施例,接收至少一个OTX程序文件;将所述OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件;编译所述C++程序文件,生成C++可执行文件;提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件。通过翻译OTX程序文件,生成对应的C++程序文件,并执行所述C++可执行文件,使得OTX程序文件在现实中具备真正的“可执行性”。
实施例3:
本发明实施例为本发明提供的一种OTX程序文件执行装置的实施例。如图4为本发明实施例提供的一种OTX程序文件执行装置的功能模块示意图。其中,所述OTX程序文件执行装置可以是一个独立的实现特定功能电子装置,也可以是内置或者依附于其他电子装置,共同实现特定的功能。在本实施例中,所述OTX程序文件执行装置可以是移动终端,所述移动终端包括汽车诊断仪、嵌入式计算机等。
在本发明实施例中,所述OTX程序文件执行装置40中包括接收模块401、翻译模块402、编译模块403、存储器404、处理器405。
所述存储器404至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。所述处理器405可以是中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片等。
所述处理器405可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器405是所述OTX程序文件执行装置40的控制中心,利用各种接口和线路连接整个OTX程序文件执行装置40的各个部分。
本发明所称的模块是完成一特定功能的计算机程序段,被配置成由一个或多个处理器(本实施例为处理器405)执行,以完成本发明。以下是对所述接收模块401、所述翻译模块402及所述编译模块403的功能的详细描述。
所述接收模块401用于接收至少一个OTX程序文件。
在本发明实施例中,所述接收模块401提供接收OTX程序文件的入口,以便接收至少一个OTX程序文件。所述至少一个OTX程序文件可以是1个、2个或者更多个OTX程序文件,OTX程序文件的个数不受限制。
所述翻译模块402用于将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件。
在本发明实施例中,所述翻译模块402将所述OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件。其中,所述C++程序文件是由C++编程语言编写的文件。对于OTX程序文件,由于在ISO13209系列标准中未提供现成的编译程序,因此,所述翻译模块402需通过将所述OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件,从而使得OTX程序具备可执行性。例如,所述翻译模块402可以将一系列OTX编程语言构造等价翻译成的C++编程语言构造。其中,所述OTX编程语言构造包括:一级构造、二级构造及三级构造。
所述编译模块403用于编译所述C++程序文件,生成C++可执行文件。
在本发明实施例中,所述编译模块403编译所述C++程序文件,生成C++可执行文件。其中,所述C++可执行文件是指可以由操作系统进行加载执行的文件。在不同的操作系统环境下,所述C++可执行文件的呈现方式可以不一样。如在windows操作系统下,所述C++可执行文件可以是后缀为.exe的文件。通过翻译OTX程序文件,生成对应的C++程序文件后,再将所述C++程序文件进行编译,生成C++可执行文件,使得OTX程序文件真正具备“可执行性”。
在本发明实施例中,所述接收模块401接收至少一个OTX程序文件;所述翻译模块402将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件;所述编译模块403编译所述C++程序文件,生成C++可执行文件。
需要说明的是,在本发明实施例中,所述OTX程序文件装置40可执行本发明实施例1所提供的OTX程序文件方法,具备执行方法相应的功能模块和有益效果。未在OTX程序文件装置40的实施例中详尽描述的技术细节,可参见本发明实施例1所提供的OTX程序文件方法。
实施例4:
本发明实施例为本发明提供的一种OTX程序文件执行装置的实施例。如图5为本发明实施例提供的一种OTX程序文件执行装置的功能模块示意图。其中,所述OTX程序文件执行装置可以是一个独立的实现特定功能电子装置,也可以是内置或者依附于其他电子装置,共同实现特定的功能。在本实施例中,所述OTX程序文件执行装置可以是移动终端,所述移动终端包括汽车诊断仪、嵌入式计算机等。
在本发明实施例中,所述OTX程序文件执行装置50中包括接收模块501、翻译模块502、编译模块503、执行模块504、存储器505、处理器506。
所述存储器505至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。所述处理器506可以是中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片等。
所述处理器506可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器506是所述OTX程序文件执行装置50的控制中心,利用各种接口和线路连接整个OTX程序文件执行装置50的各个部分。
本发明所称的模块是完成一特定功能的计算机程序段,被配置成由一个或多个处理器(本实施例为处理器506)执行,以完成本发明。以下是对所述接收模块501、所述翻译模块502、所述编译模块503、所述执行模块504的功能的详细描述。
所述接收模块501用于接收至少一个OTX程序文件。
在本发明实施例中,所述接收模块501提供接收OTX程序文件的入口,以便接收至少一个OTX程序文件。所述至少一个OTX程序文件可以是1个、2个或者更多个OTX程序文件,OTX程序文件的个数不受限制。
所述翻译模块502用于将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件。
在本发明实施例中,所述翻译模块502将所述OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件。所述C++程序文件是由C++编程语言编写的文件。对于OTX程序文件,由于在ISO13209系列标准中未提供现成的编译程序,因此,所述移动终端需通过将所述OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件,从而使得OTX程序具备可执行性。其中,所述翻译模块502具体用于:将所述至少一个OTX程序文件中的每一个OTX程序文件的OTX编程语言构造,翻译成对应的所述C++程序文件的C++编程语言构造生成等价的C++程序文件。其中,所述OTX编程语言构造包括:一级构造、二级构造及三级构造。一级构造包含有:<imports>、<global-declarations>、<validities>、<signatures>、<procedures>等;二级构造包含有:<parameters>、<local-declarations>、<throws>、<flow>等;三级构造包含有:<action>、<group>、<loop>、<branch>、<parallel>、<mutex>、<handler>、<throw>、<return>、<continue>、<break>、<terminatelanes>等。因此,需要将所述至少一个OTX程序文件中的每个OTX程序文件分解成OTX编程语言下的一级、二级和三级构造的形式,然后将每一级构造中的每一项内容等价地翻译成C++编程语言对应构造的内容,最后将所述C++编程语言下的所有构造的各项内容组合形成C++程序文件。所述生成对应的C++程序文件包括:中的每一个OTX程序文件每一个OTX程序文件生成一组C++程序文件,所述一组C++程序文件包括:一个.cpp文件及三个.h文件。所述.cpp文件是指后缀为.cpp的源文件,所述.cpp文件中包含函数实现,变量定义等内容;所述.h文件是指后缀为.h的头文件,所述.h文件中包含函数声明、宏定义、结构体定义等内容。
所述编译模块503用于编译所述C++程序文件,生成C++可执行文件。
在本发明实施例中,所述编译模块503编译所述C++程序文件,生成C++可执行文件。其中,所述C++可执行文件是指可以由操作系统进行加载执行的文件。在不同的操作系统环境下,所述C++可执行文件的呈现方式可以不一样。如在windows操作系统下,所述C++可执行文件可以是后缀为.exe的文件。通过翻译OTX程序文件,生成对应的C++程序文件后,再将所述C++程序文件进行编译,生成C++可执行文件,使得OTX程序文件真正具备“可执行性”。
所述执行模块504用于提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件。
在本发明实施例中,所述执行模块504提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件。其中,包括:所述Shell库用于提供调用接口,并提供运行环境支持,运行所述C++可执行文件。所述API库用于提供进行交互式通讯的接口。所述API库还包括:EventHandling库、HMI库、DiagCom库、DiagDataBrowsing库及Flash库。在一些实施例中,所述API库还可包括其它库,如Job库、Math库等。
在本发明实施例中,所述接收模块501接收至少一个OTX程序文件;所述翻译模块502将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件;所述编译模块503编译所述C++程序文件,生成C++可执行文件;所述执行模块504提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件。
需要说明的是,在本发明实施例中,所述OTX程序文件装置50可执行本发明实施例2所提供的OTX程序文件方法,具备执行方法相应的功能模块和有益效果。未在OTX程序文件装置50的实施例中详尽描述的技术细节,可参见本发明实施例2所提供的OTX程序文件方法。
实施例5:
本发明实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,该计算机程序被一个或多个处理器执行,执行如上所述的OTX程序文件执行方法的步骤。例如,执行以上描述的图1中的方法步骤101至步骤103或图2中的方法步骤201至步骤204。
本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序程序被一个或多个处理器执行,执行如上所述的OTX程序文件执行方法。例如,执行以上描述的图1中的方法步骤101至步骤103或图2中的方法步骤201至步骤204。
需要说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域普通技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现所述实施例方法中的全部或部分流程是可以通过计算机程序指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如所述各方法的实施例的流程。其中,所述的存储介质可为只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种OTX程序文件执行方法,其特征在于,所述方法包括:
接收至少一个OTX程序文件;
将所述至少一个OTX程序文件中的每一个OTX程序文件的OTX编程语言构造翻译成对应的C++程序文件的C++编程语言构造,生成等价的一组C++程序文件,所述一组C++程序文件包括:一个.cpp文件及三个.h文件,其中,所述等价表示所述至少一个OTX程序文件与对应的所述C++程序文件所包含的各个部分的内容,以及执行得到的结果均相同;
编译所述C++程序文件,生成C++可执行文件。
2.根据权利要求1所述的方法,其特征在于,所述将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件,包括:
将所述至少一个OTX程序文件中的每一个OTX程序文件的OTX编程语言构造翻译成对应的所述C++程序文件的C++编程语言构造,生成等价的C++程序文件。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述方法还包括:
提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件。
4.根据权利要求3所述的方法,其特征在于,所述提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件,包括:
通过所述Shell库提供调用接口,并提供运行环境支持,运行所述C++可执行文件;
通过所述API库提供进行交互式通讯的接口。
5.根据权利要求3所述的方法,其特征在于,所述API库包括:EventHandling库、HMI库、DiagCom库、DiagDataBrowsing库及Flash库。
6.一种OTX程序文件执行装置,其特征在于,所述装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现:
接收至少一个OTX程序文件;
将所述至少一个OTX程序文件中的每一个OTX程序文件的OTX编程语言构造翻译成对应的C++程序文件的C++编程语言构造,生成等价的一组C++程序文件,所述一组C++程序文件包括:一个.cpp文件及三个.h文件,其中,所述等价表示所述至少一个OTX程序文件与对应的所述C++程序文件所包含的各个部分的内容,以及执行得到的结果均相同;
编译所述C++程序文件,生成C++可执行文件。
7.根据权利要求6所述的装置,其特征在于,所述计算机程序被所述处理器执行时实现所述将所述至少一个OTX程序文件的编程语言构造进行翻译,生成对应的C++程序文件包括:
将所述至少一个OTX程序文件中的每一个OTX程序文件的OTX编程语言构造,翻译成对应的所述C++程序文件的C++编程语言构造,生成C++程序文件。
8.根据权利要求6-7任一项所述的装置,其特征在于,所述计算机程序被所述处理器执行时还实现:
提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件。
9.根据权利要求8所述的装置,其特征在于,所述计算机程序被所述处理器执行时实现所述提供构建所述C++可执行文件运行环境的Shell库和API库,并执行所述C++可执行文件包括:
通过所述Shell库提供调用接口,并提供运行环境支持,运行所述C++可执行文件;
通过所述API库提供进行交互式通讯的接口。
10.根据权利要求9所述的装置,其特征在于,所述API库包括:EventHandling库、HMI库、DiagCom库、DiagDataBrowsing库及Flash库。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的OTX程序文件执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710702034.9A CN109542447B (zh) | 2017-08-16 | 2017-08-16 | 一种otx程序文件执行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710702034.9A CN109542447B (zh) | 2017-08-16 | 2017-08-16 | 一种otx程序文件执行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542447A CN109542447A (zh) | 2019-03-29 |
CN109542447B true CN109542447B (zh) | 2023-03-24 |
Family
ID=65827761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710702034.9A Active CN109542447B (zh) | 2017-08-16 | 2017-08-16 | 一种otx程序文件执行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542447B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445491A (zh) * | 2020-11-19 | 2021-03-05 | 深圳市元征科技股份有限公司 | 文件序列处理方法、装置、终端设备及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6157864A (en) * | 1998-05-08 | 2000-12-05 | Rockwell Technologies, Llc | System, method and article of manufacture for displaying an animated, realtime updated control sequence chart |
CN1670700A (zh) * | 2004-03-19 | 2005-09-21 | 英业达股份有限公司 | 计算机程序数据自动编译方法及系统 |
EP1615125A1 (en) * | 2005-04-14 | 2006-01-11 | Agilent Technologies, Inc. | Automatic source code generation |
CN101968736A (zh) * | 2010-09-13 | 2011-02-09 | 杭州元睿信息技术有限公司 | 一种应用于Java到C++语言程序翻译中外部引用的翻译方法 |
DE102011100106A1 (de) * | 2011-04-30 | 2012-10-31 | Daimler Ag | System zur Diagnose einer Komponente in einem Fahrzeug |
CN102999370A (zh) * | 2011-09-16 | 2013-03-27 | 腾讯科技(深圳)有限公司 | 脚本的执行方法及系统 |
DE102012020637B3 (de) * | 2012-10-20 | 2013-10-24 | Volkswagen Aktiengesellschaft | Elektronische Vorrichtungen sowie Verfahren zur Diagnose in einem lokalen Informationsnetz |
CN104932480A (zh) * | 2015-04-29 | 2015-09-23 | 深圳市元征软件开发有限公司 | 汽车诊断系统设计方法和装置 |
-
2017
- 2017-08-16 CN CN201710702034.9A patent/CN109542447B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109542447A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
US9038032B2 (en) | Symbolic execution and automatic test case generation for JavaScript programs | |
CN108920496B (zh) | 一种渲染方法及装置 | |
US9235433B2 (en) | Speculative object representation | |
US20150242194A1 (en) | System for Translating Diverse Programming Languages | |
US9823908B2 (en) | Apparatus for providing framework to develop client application executed on multiple platforms, and method using the same | |
US9626170B2 (en) | Method and computer program product for disassembling a mixed machine code | |
US20150205603A1 (en) | Code transformation using extensibility libraries | |
KR20110102337A (ko) | 디버깅 파이프라인 | |
CN110069259B (zh) | 基于idl文件的解析方法、装置、电子设备和存储介质 | |
US20160246622A1 (en) | Method and system for implementing invocation stubs for the application programming interfaces embedding with function overload resolution for dynamic computer programming languages | |
WO2017025940A1 (en) | Static analysis and reconstruction of deep link handling in compiled applications | |
US9075601B1 (en) | Providing a scripting interface to existing code | |
CN113918195A (zh) | 应用界面更新方法、装置、电子设备及可读存储介质 | |
CN109408101A (zh) | 一种用于编程的代码开发维护方法及电子设备 | |
Boudol et al. | Reasoning about Web applications: An operational semantics for HOP | |
CN115113922A (zh) | 无栈协程的实现方法、装置、设备及存储介质 | |
Wampler | Functional Programming for Java Developers: Tools for Better Concurrency, Abstraction, and Agility | |
CN109542447B (zh) | 一种otx程序文件执行方法及装置 | |
CN111880801A (zh) | 应用程序动态化方法、装置、电子设备 | |
Kyriakou et al. | The GPM meta-transcompiler: Harmonizing JavaScript-oriented Web development with the upcoming ECMAScript 6 “Harmony” specification | |
US9411560B2 (en) | Error propagation | |
Baumann et al. | Better avionics software reliability by code verification | |
CN113609066A (zh) | 一种基于Rust的多核RISCV-CPU模拟器 | |
Majumdar et al. | Bbs: A phase-bounded model checker for asynchronous programs |
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 |