CN110989996B - 一种基于Qt脚本语言的目标轨迹数据产生方法 - Google Patents
一种基于Qt脚本语言的目标轨迹数据产生方法 Download PDFInfo
- Publication number
- CN110989996B CN110989996B CN201911213307.9A CN201911213307A CN110989996B CN 110989996 B CN110989996 B CN 110989996B CN 201911213307 A CN201911213307 A CN 201911213307A CN 110989996 B CN110989996 B CN 110989996B
- Authority
- CN
- China
- Prior art keywords
- script
- target track
- track data
- ecmascript
- script file
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种基于Qt脚本语言的目标轨迹数据产生方法,包括:选用Qt开发平台建立界面程序;建立ECMAScript脚本设计语言,用于生成目标轨迹数据;及界面程序通过QtScript模块调用ECMAScript,得到目标轨迹数据,并通过网络发送目标轨迹数据。本发明中,通过采用Qt平台,使用放置在独立的脚本文件中的ECMAScript模块来实现目标位置的生成。界面程序通过QtScript调用ECMAScript模块得到并使用生成的目标位置。当需要不同的目标轨迹时只需重新编写目标轨迹数据生成的ECMAScript模块即可,可以保持界面程序不变。
Description
技术领域
本发明涉及数据产生方法。更具体地,涉及一种基于Qt脚本语言的目标轨迹数据产生方法。
背景技术
在军事和安全监控领域,常常使用软件产生模拟目标轨迹数据作为仿真和调试的手段。一般为了丰富目标轨迹的类型,通常采用界面设置对目标轨迹进行设置和修改。但是,通过界面设置的目标轨迹都是需要预先想定的。当需要的目标轨迹类型超出设置能力时,就需要重新编写模拟目标软件,这就导致了目标位置生成过程中目标轨迹修改不够灵活。
Qt是一个跨平台C++图形用户界面应用程序开发框架,它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展以及一些宏,Qt很容易扩展,并且允许真正地组件编程。
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,可以理解为是JavaScript的一个标准。
因此,需要提供一种基于Qt脚本语言的目标轨迹数据产生方法。
发明内容
为了解决上述问题至少之一,本发明的一个目的在于提供一种基于Qt脚本语言的目标轨迹数据产生方法。
为达到上述目的,本发明采用下述技术方案:
一种基于Qt脚本语言的目标轨迹数据产生方法,该方法包括:
选用Qt开发平台建立界面程序,该界面程序用于完成脚本文件的读取和解释;
建立ECMAScript脚本设计语言,该ECMAScript脚本设计语言用于生成目标轨迹数据;及
界面程序通过QtScript模块调用ECMAScript脚本设计语言,得到目标轨迹数据,并通过网络发送该目标轨迹数据。
可选的,选用Qt开发平台建立界面程序包括:
使用QFile读打开脚本文件;
使用文本流格式QTextStream读取脚本文件的内容;
创建脚本引擎QScriptEngine;及
为脚本文件创建输入参数。
进一步可选的,使用QFile读打开脚本文件包括:
判断是否以只读形式打开脚本文件;
若是,则打开脚本文件;及
若否,则提示不能打开脚本文件。
进一步可选的,使用文本流格式QTextStream读取脚本文件内容包括:
确定文本流格式为QTextStream;
设置编码格式为UTF-8;
使用文本流格式QTextStream并以UTF-8格式读取脚本文件内容;及
关闭脚本文件。
进一步可选的,创建脚本引擎QScriptEngine包括:
创建脚本引擎QScriptEngine的解释器。
进一步可选的,为脚本文件创建输入参数包括:
直接赋值输入参数。
可选的,ECMAScript脚本设计语言为标准版本JavaScript脚本设计语言。
进一步可选的,QtScript模块还用于提供脚本错误报告,用户基于脚本跟踪程序缺陷。
本发明的有益效果如下:
本发明中公开了基于Qt脚本语言的目标轨迹数据产生方法,通过采用Qt平台,使用放置在独立的脚本文件中的ECMAScript模块来实现目标位置的生成。界面程序通过QtScript调用ECMAScript模块得到并使用生成的目标位置。当需要不同的目标轨迹时只需重新编写目标轨迹数据生成的ECMAScript模块即可,界面程序可以保持不变。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1示出本发明实施例中一种基于Qt脚本语言的目标轨迹数据产生的方法步骤图。
图2示出本发明实施例中一种选用Qt开发平台建立界面程序的方法步骤图。
图3示出本发明实施例中一种使用QFile读打开脚本文件的方法步骤图。
图4示出本发明实施例中一种使用文本流格式QTextStream读取脚本文件内容的方法步骤图。
具体实施方式
为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
本发明提供一种基于Qt脚本语言的目标轨迹数据产生方法,包括:选用Qt开发平台建立界面程序;建立ECMAScript,ECMAScript用于生成目标轨迹数据;及界面程序通过QtScript调用ECMAScript,得到目标轨迹数据,并通过网络发送目标轨迹数据。
Qt是一个跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler,moc))以及一些宏。Qt很容易扩展,并且允许真正地组件编程。
脚本(Script)是一种批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
脚本一般具有以下特征:(1)语法和结构通常比较简单;(2)学习和使用通常比较简单;(3)通常以容易修改程序的“解释”作为运行方式,而不需要“编译”;(4)程序的开发产能优于运行效能;(5)极大地提高了系统管理员的工作效率。
脚本通常可以由应用程序临时调用并执行。各类脚本被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。例如,当点击网页上的Email地址时能自动调用Outlook Express或Foxmail这类邮箱软件,就是通过脚本功能来实现的。
脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。脚本的编写都是采用某一种编程语言,如LoadRunnert测试工具用的C语言;WebLoadt测试工具用javaScript或者是接近编程语言的方式;Robot测试工具用SQABasic,一种类似于VB的语言;QTPt测试工具所用到的是VBScript;WinRunnert测试工具所用到的是类C的语言。
ECMAScript是一种可以在宿主环境中执行计算并能操作可计算对象的基于对象的程序设计语言。ECMAScript能够用来支持Web页面的动态表现以及为基于Web的客户机—服务器架构提供服务器端的计算能力,还用来操纵、定制一个已存在系统所提供的功能,以及对其进行自动化。
本发明中,通过采用Qt平台,使用放置在独立的脚本文件中的ECMAScript模块来实现目标位置的生成。界面程序通过QtScript调用ECMAScript模块得到并使用生成的目标位置。当需要不同的目标轨迹时只需重新编写目标轨迹数据生成的ECMAScript模块即可,可以保持界面程序不变。
下面结合具体实施例进行说明
如图1所示,一种基于Qt脚本语言产生目标轨迹数据方法的具体步骤为:
第一步 选用Qt开发平台建立界面程序,负责完成脚本文件的读取和解释。
如图2-4所示,首先将脚本文件使用QFile读打开,然后使用文本流格式QTextStream将脚本文件内容读取。创建脚本引擎QScriptEngine,并为脚本文件创建输入参数。
在一个具体示例中,例如通过以下代码实现:
第二步 建立ECMAScript用来生成目标轨迹数据。
Qt从4.3开始,提供了ECMAScript支持,QtScript模块提供了让Qt应用程序脚本化的类,在Qt4中Webkit与QtScript使用了相同的javascript引擎实现。Qt包含完全集成的ECMA标准脚本引擎,ECMAScript是标准版本的JavaScript。QtScript提供脚本错误报告,用户可用自己的脚本跟踪程序缺陷。
在一个示例中,提供一个直线运动目标的轨迹脚本,通过以下代码实现:
第三步 界面程序通过QtScript调用ECMAScript模块得到目标轨迹,并将其通过网络发送。
在一个示例中,通过以下代码实现:
在一个应用场景中,首先建立目标轨迹脚本文件,然后界面程序调用脚本生成目标轨迹数据,然后修改目标轨迹脚本文件,最后界面程序调用新脚本生成目标轨迹数据,从而实现需要不同的目标轨迹时只需重新编写目标轨迹数据生成的ECMAScript模块即可,界面程序可以保持不变。
应理解的是,脚本语言极大地简化了“开发、部署、测试和调试”的周期过程,且大多数脚本语言都能够随时部署,而不需要耗时的编译/打包过程。实际中,脚本语言被Java或者COM这样的组件技术所包围,因此能够有效地利用代码,且很多脚本语言的技术要求通常要低一些,因此能够更容易地找到大量合适的技术人员。脚本语言的代码能够被实时生成和执行,这是一项高级特性,在某些应用程序里(例如JavaScript里的动态类型)是很有用也是必需的。
本发明中,通过采用Qt平台,使用放置在独立的脚本文件中的ECMAScript模块来实现目标位置的生成。界面程序通过QtScript调用ECMAScript模块得到并使用生成的目标位置。当需要不同的目标轨迹时只需重新编写目标轨迹数据生成的ECMAScript模块即可,界面程序可以保持不变。从而实现了当界面设置对目标轨迹进行设置和修改时,无需重新编写模拟目标软件。
所属领域的技术人员可以清楚地了解到,在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
Claims (7)
1.一种基于Qt脚本语言的目标轨迹数据产生方法,其特征在于,包括:
选用Qt开发平台建立界面程序,所述界面程序用于完成脚本文件的读取和解释;
建立ECMAScript脚本设计语言,所述ECMAScript脚本设计语言用于生成目标轨迹数据;及
所述界面程序通过QtScript模块调用所述ECMAScript脚本设计语言,得到所述目标轨迹数据,并通过网络发送所述目标轨迹数据;
QtScript模块提供了让Qt应用程序脚本化的类,QtScript提供脚本错误报告,用户基于自己的脚本跟踪程序缺陷。
2.根据权利要求1所述的目标轨迹数据产生方法,其特征在于,所述选用Qt开发平台建立界面程序包括:
使用QFile读打开所述脚本文件;
使用文本流格式QTextStream读取所述脚本文件的内容;
创建脚本引擎QScriptEngine;及
为所述脚本文件创建输入参数。
3.根据权利要求2所述的目标轨迹数据产生方法,其特征在于,所述使用QFile读打开脚本文件包括:
判断是否以只读形式打开所述脚本文件;
若是,则打开所述脚本文件;及
若否,则提示不能打开所述脚本文件。
4.根据权利要求2所述的目标轨迹数据产生方法,其特征在于,所述使用文本流格式QTextStream读取所述脚本文件内容包括:
确定文本流格式为QTextStream;
设置编码格式为UTF-8;
使用所述文本流格式QTextStream并以UTF-8格式读取所述脚本文件内容;及
关闭所述脚本文件。
5.根据权利要求2所述的目标轨迹数据产生方法,其特征在于,所述创建脚本引擎QScriptEngine包括:
创建所述脚本引擎QScriptEngine的解释器。
6.根据权利要求2所述的目标轨迹数据产生方法,其特征在于,所述为所述脚本文件创建输入参数包括:
直接赋值所述输入参数。
7.根据权利要求1所述的目标轨迹数据产生方法,其特征在于,所述ECMAScript脚本设计语言为标准版本JavaScript脚本设计语言。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911213307.9A CN110989996B (zh) | 2019-12-02 | 2019-12-02 | 一种基于Qt脚本语言的目标轨迹数据产生方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911213307.9A CN110989996B (zh) | 2019-12-02 | 2019-12-02 | 一种基于Qt脚本语言的目标轨迹数据产生方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110989996A CN110989996A (zh) | 2020-04-10 |
CN110989996B true CN110989996B (zh) | 2023-07-28 |
Family
ID=70089166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911213307.9A Active CN110989996B (zh) | 2019-12-02 | 2019-12-02 | 一种基于Qt脚本语言的目标轨迹数据产生方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110989996B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279902A (zh) * | 2018-02-08 | 2018-07-13 | 合肥盈云信息科技有限公司 | 基于Lua脚本技术的多终端共享底层框架生成、应用方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002251205A1 (en) * | 2001-03-30 | 2002-10-15 | British Telecommunications Public Limited Company | Multi-modal interface |
CN100511139C (zh) * | 2007-12-07 | 2009-07-08 | 上海科泰世纪科技有限公司 | 计算机软件系统基于xml和脚本语言应用程序开发运行方法 |
CN101334657B (zh) * | 2007-12-20 | 2010-12-15 | 清华大学 | 图形化交互式数控车削自动编程方法及系统 |
EP2382527A2 (en) * | 2008-12-30 | 2011-11-02 | France Telecom | User interface to provide enhanced control of an application program |
CN103077025B (zh) * | 2012-12-28 | 2015-11-18 | 锐达互动科技股份有限公司 | 一种封闭几何图形擦除轨迹线并生成新轨迹线的方法 |
CN102999346B (zh) * | 2012-12-31 | 2015-07-22 | 北京四方继保自动化股份有限公司 | 配电网智能自愈控制系统中基于QtScript的索引图自动生成方法 |
CN108109105A (zh) * | 2017-12-10 | 2018-06-01 | 西北工业大学 | 基于Qt框架与OpenGL可编程管线的数据可视化系统 |
CN109101304A (zh) * | 2018-07-05 | 2018-12-28 | 北京微播视界科技有限公司 | 界面的自动生成方法、装置、电子设备和计算机可读介质 |
-
2019
- 2019-12-02 CN CN201911213307.9A patent/CN110989996B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279902A (zh) * | 2018-02-08 | 2018-07-13 | 合肥盈云信息科技有限公司 | 基于Lua脚本技术的多终端共享底层框架生成、应用方法 |
Non-Patent Citations (1)
Title |
---|
基于轨迹运行理念下终端空域航迹管理研究;陈强;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;C031-517 * |
Also Published As
Publication number | Publication date |
---|---|
CN110989996A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8239823B2 (en) | Generating libraries for reflection without project compilation | |
US8407667B2 (en) | Inferring missing type information for reflection | |
US7086046B2 (en) | Method and apparatus for displaying compiler-optimizated code | |
KR102059705B1 (ko) | 적응식 이식가능 라이브러리 | |
CN111090433B (zh) | 一种数据处理的方法、装置和存储介质 | |
US20070061780A1 (en) | Enterprise resource planning system test framework | |
EP3134808A1 (en) | Metadata-driven dynamic specialization | |
US20120110444A1 (en) | Help Document Animated Visualization | |
CN1364260A (zh) | 软件翻译的内省编辑器系统、程序和方法 | |
CN108139891A (zh) | 针对外部文件的缺失包括建议 | |
CN104298534B (zh) | 基于Lua语言的编程方法和装置 | |
CN107015903B (zh) | 一种界面测试程序的生成方法、装置及电子设备 | |
US20220032457A1 (en) | Robotic Process Automation with Resilient Playback of Recordings | |
US20080222607A1 (en) | Extending Portability of Java Code Through the Use of AOP | |
US20060100975A1 (en) | Strongly-typed object oriented GUI automation framework | |
US8935657B2 (en) | Model-to-model transformation by kind | |
CN110989996B (zh) | 一种基于Qt脚本语言的目标轨迹数据产生方法 | |
US20180253287A1 (en) | Method for translation of assembler computer language to validated object-oriented programming language | |
CN115688108B (zh) | 一种webshell静态检测方法及系统 | |
CN111708543B (zh) | 一种减少Android项目代码重复度的方法 | |
CN115576560A (zh) | 一种动态类加载器的热重载方法、装置、设备和介质 | |
Parsons et al. | The java story | |
KR100846203B1 (ko) | 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체 | |
US7580962B1 (en) | Automatic code generation for co-simulation interfaces | |
Kalnins et al. | Tool support for MOLA |
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 |