IPEmotion高级应用之XML使用

供稿:北京风丘科技有限公司

  • 关键词:IPEmotion,XML使用,风丘科技
  • 作者:风丘科技
  • 摘要:为了在IPEmotion中实现拓展功能和用户自定义功能这些功能,往往我们需要使用XML文档来完成这一过程。本文接下来将向大家分享和简要的谈一谈XML文档在IPEmotion中一些具体应用实例。

引言

IPEmotion作为一款功能强大的上位机数据测量处理软件,拥有着很多强大的拓展功能和用户自定义功能,这些功能能够给予我们更加人性化和定制化的用户体验。为了在IPEmotion中实现这些功能,往往我们需要使用XML文档来完成这一过程。本文接下来将向大家分享和简要的谈一谈XML文档IPEmotion中一些具体应用实例。

XML简介 

在IPEmotion的某些配置中往往需要我们阅读和修改相应的XML文档以便在IPEmotion中实现特定的功能。为了我们能够更好的阅读理解和修改XML文档,该部分尽量以最简短的语言向大家介绍一下XML语言,满足我们非专业开发人员的一般阅读和修改需求。

所谓XML(Extensible Markup Language),即可扩展标记语言。其被设计用来结构化、存储以及传输信息。

XML文档本身仅是纯文本,不会产生任何行为或执行任何操作,需要有相应的应用程序有针对性地处理 XML 的标签才能够实现特定的功能,标签的功能性意义依赖于应用程序的特性。

XML主要有以下几个特点:

(1)用来传输数据而非显示数据;

(2)用户需自行定义标签,XML本身没有预定义标签;

(3)XML文档具有自我描述性。

首先我们以一个例子,用最简短的语言简单说明一下XML文档的结构。

1-1.png

上面的图片所展示的便是一段我们最为常见且相对简单的XML文档,其采用所谓的“树结构,自我描述性”的语法。

第一行是XML文档的声明,大多数XML文档以XML声明作为开始,它向解析器提供了关于文档的基本信息。XML文档的声明不是必需的,但建议大家使用声明,而且如果使用声明它一定要在文档的第一行。version说明了该文档使用的是XML版本是1.0,encoding是该文档所使用的字符编码,而且当XML文件中有中文时则必须使用encoding属性指明文档的字符编码。

第二行至倒数第二行是该文档的根元素,从XML所具有的“自我描述性语法”我们可以看出该文档所描述的是,即情书。

从第三行直至倒数第三行结束,我们可以轻易的看出这部分总共由3段结构对称相同的部分组成,分别是,它们是该文档的3个子元素,其中的heading="Heart"、heading='Miss'、heading='Waiting'分别是上述3个标签的属性。而它们3个子元素每个又同时拥有3个子元素,即。上述即展现了所谓的XML文档的“树结构”,每个XML文档相当于一颗树,这棵树从根部开始逐步向外不断的扩展形成分支。因此,每个XML文档在结构上必须有且只有一个根元素,根元素下的所有元素被称之为子元素,每个子元素又可以同时嵌套多个不同的子元素。

下图便清晰的展示出了这个情书XML文档的树结构:

2-1.png

最后一行是这个XML文档的注释,注释以结束,且注释中不能包含--,同时注释不允许嵌套。当然注释可以不放在文档的最后一行,正常情况下注释只要不放在声明之前(即第一行),其他的任意一行均可以存在注释。

由上述结构的解析我们可以看出,一个XML文档主要包括了声明,元素,属性,注释这几部分。除此之外,一个完备的XML文档还会有指令,实体、CDATA等部分组成,这些内容因为在我们后续IPEmotion的应用之中接触较少,在此不作相关的介绍与解释。

接下来我们依旧以上面的XML文档为例,简要讲解一下XML的语法。根据上述的结构介绍我们可以看出,XML文档的主体部分是元素,XML元素具体指的是从(且包括)开始标签直到(且包括)结束标签的部分,元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。以上文中的Letter1元素为例:

Mary

LuoShuai

The moonlight stands for my heart!

其中的分别就是开始标签和结束标签。同理,也分别代表不同的开始标签和结束标签,在开始标签与结束标签之间的部分即为该元素的内容。如果一个元素不包含任何内容,例如:,可以将其简写为,称其为空标签。关于XML元素的标签的注意事项,主要有以下几点:

(1)除空标记外,开始标签与结束标签成对存在且名称必须严格匹配;

(2)XML标签严格区分大小写;

(3)标签必须正确有序的嵌套;

(4)标签名称不能以数字、XML、Xml、xml开头且不能含有空格。

其中的heading="Heart"是开始标签的属性。关于属性的注意事项,主要有以下几点:

(1)属性由属性名与属性值构成,中间用等号连接;

(2)属性值必须使用单引号或双引号括起来;

(3)属性的名称必须遵循与标签名相同的命名规范;

(4)属性必须在元素的开始标签或空标签中进行声明;

(5)一个元素中不能包含相同的属性名。

除了上述的一些简介,XML文档的更多使用细节的学习大家感兴趣可以自行下去搜索学习,本文在此只是做一个满足我们日常IPEmotion应用的重要知识的总结和指引。

看完上述的XML文档的结构与语法的总结,大家回过头来再看上文中的XML文档便一目了然,层次清晰。为了后续在IPEmotion中方便修改和验证解析XML文档,在此向大家推荐安装Foxe软件,该软件是是一款洁、快速的XML 编辑器,功能完善,附带有完整帮助文档,并且是单一可执行文件。该软件的用户界面如下图所示。 

3-1.png

3. XML文档在IPEmotion中的应用简介

该部分我们将聚焦2个应用案例来和大家分享XML文档在IPEmotion中是如何进行应用的,并且XML的配置具体在IPEmotion中实现了哪些功能。

3.1 XML文档在IPEmotion自定义公式中的应用

很多时候为了满足客户的测量需求,往往需要我们自定义一些公式来计算处理所测得的物理量。当我们使用IPEmotion自定义公式的功能时,需要向IPEmotion提供3个相应的自定义文件来实现自定义公式的功能:

(1)DLL文件,涵盖自定义公式的内部计算过程;

(2)XML文件,使IPEmotion识别自定义公式并执行计算;

(3)HTML文件,对自定义公式使用的帮助说明。

上述3个类型的文件,其中DLL文件和XML文件是必须存在的,HTML文件作为自定义公式的提示说明并不是必须的。DLL文件由我们使用C++代码编写后生成,XML文件则负责对C++代码编写的公式完成描述。生成所需自定义公式的DLL文件和XML文件后,将其拷贝至以下目录:

C:\User\Public\Documents\IPETRONIK\IPEmotion\Custom\UserOperation

然后启动IPEmotion,在公式编辑器里我们便可以看到相应的自定义公式了。由此我们可以看出,XML文档是连接DLL文件和IPEmotion的桥梁,其重要性不言而喻。接下来我们以一个具体的自定义多项式公式为例,详细为大家演示说明一遍XML文档在自定义公式当中的应用。

根据之前的讲解,我们首相需要用C++编写一个自定义公式的工程,本例所展示的自定义公式的cpp源文件的部分代码如下图所示:

4-1.png 

C++代码的解析和细节不在我们的讨论范围内,本文主要展示的是如何通过C++代码的简单阅读然后准确的完成我们所需XML文件。

由上述的标注红线部分的代码我们可以大致看出,该自定义多项式(Polynom)所描述的计算过程。在此我们将源代码中的参数m_dA简写为a,测量通道m_pdSource简写为x,则该多项式(Polynom)为:

P=a^2 x+ax+a

清楚了自定义多项式的通项公式后,大多数情况下其在C++工程中所编写的是一个功能函数,计算过程只是其中的一部分,所以我们还需要其他的信息将这个多项式函数描述在XML文档中描述完整。下图则展示在整个工程的头文件(.h文件)中对此自定义公式的一些声明。

5-1.png

由此我们可以看出该工程包含的几个声明:Create、Dispose、Initialize、Execute、Reset、Terminate。简要了解完这个自定义多项式工程后,接下来我们便要使用XML文档将其逻辑清晰,信息全面的描述出来以供IPEmotion准确的识别。下图便是这个自定义公式的整个XML描述文档,经过第二章的XML结构和语法介绍,想必大家读起来很轻松。

我们可以清晰的看到XML文档依次对之前代码中声明的功能Create、Dispose等进行了描述,元素description的内容“Polynom of type a*a*x+a*x+a”描述了这是什么公式,此段信息也将显示在IPEmotion中。同时从标签我们看出这个自定义公式有一个操作数(Operand),即上述公式中测量通道x;还有一个初始化参数(InitParam),即上述公式中的参数a。在此次演示中我们在XML文档将参数a赋值为4,则我们的计算公式变为如下:

P=20X+4

6-1.png

完成准备工作后,将上述DLL文件和XML文档放入相应位置,然后再打开IPEmotion软件,打开该软件的公式编辑器,我们便可以从运算符的下拉菜单中找到自己所定义的公式,该公式的描述即为之前XML文档中的描述内容。具体示例如下图所示。

7-1.png

 

最后一步,则是对该自定义公式功能的简单验证。我们在IPEmotion利用函数生成器生成一个正弦曲线,然后将正弦曲线的振幅作为该自定义公式的操作数。最后运行显示,计算结果如下几幅图所示。

 

8-1.png

9-1.png

10-1.png

当我们将振幅设置为1、4、5时,对应的数值为24、84、104。很显然,结算结果满足之前的公式“P=20X+4”。到此为止,我们完成了自定义公式的创建和功能的测试,想必大家也更加立体感性的了解了XML文档在IPEmotion自定义公式中的使用。

3.2 XML文档在IPEmotion项目参数配置中的应用

用户在使用IPEmotion进行车辆信号测量和相关的诊断时,往往需要生成一个对应的项目报告以便保存项目信息和测量数据。IPEmotion在原始的项目功能栏下,提供如下的默认参数列表:

11-1.png

这样的项目列表显然显得过于死板,使用起来不够灵活。但是我们可以使用XML文档来自定义和修改默认的项目参数列表。IPEmotion软件分别提供2种自定义的项目参数列表,一种便是上述的用于项目功能分类下项目属性本身参数列表的定义和修改;另一种则用于信号功能分类下记录仪的本地项目设置的参数列表的定义和修改。

上述2种自定义项目参数每种均需要2个XML文档,具体如下所示:

(1)projectPar.xml:用来定义记录仪的本地项目参数的名称和相关属性。

(2)projectData.xml:用来定义记录仪的本地项目参数的值。

(3)globalPar.xml:用来定义IPEmotion本身项目参数的名称和相关属性。

(4)globalData.xml:用来定义IPEmotion本身项目参数的值。

需要注意的是,4种XML文档的名称必须严格按照上述要求且不能更改,否则将无法实现自定义功能。写好的XML文档放在如下目录:

C:\User\Public\Documents\IPETRONIK\IPEmotion\ ProjectTemplate

完成以上操作后,打开IPEmotion软件便可以使用我们自己自定义的参数了。接下来我们以IPEmotion本身的自定义项目参数为例简要说明一下。

首先我们将2个XML文档放在所需位置

12-1.png

接下来最为关键的就是XML文档的描述撰写,IPETRONIK官方为我们提供了相应的模板以供我们使用,在此不再赘述。以下2图则分别部分展示了此次演示我们所定义的参数名称和它们相对应的值。

13-1.png

14-1.png

如上这张参数值定义的XML文档中,我们可以清晰的看到关于用户邮件参数的值我们定义了LuoShuai@windhill.com.cn、CheXiaoi@windhill.com.cn、LiJunwei@windhill.com.cn。公司名称的值我们定义了WINDHILL、Bavarian Motor Work、Mercedes-Benz等。

最后我们打开IPEmotion的项目功能栏,具体如下所示:

由此我们看出XML文档所描述的功能在IPEmotion实现了显示和使用,上述便是XML文档在IPEmotion项目参数配置方面的应用,当然我们也可以不设置值的强制选项,自由填写也是可以的,只需在相应的XML文档做修改即可,更多的细节大家可以自行探索。记录仪的本地项目参数配置与此同理,在此不再演示。

4.总结

本文首先向大家简要介绍了XML文档的结构和语法,然后通过2个例子较为详细的向大家讲解和演示了XML文档在IPEmotion中的应用。之所以选此题目展开撰写文章,是因为XML文档在IPEmotion软件中的应用极为广泛,IPEmotion很多强大的参数配置和自定义功能均需要XML文档这个桥梁完成转接和搭建,故在此本人也只是浅谈XML文档在IPEmotion中的应用。有关更多的XML文档在IPEmotion配置中的应用,还需要我们大家一起不断的去探索、实践、交流学习。当然了,如果时间精力允许,可以将XML文档在IPEmotion中的使用作为一个专题,本人也会后续不断的跟进推出“XML浅谈二、XML浅谈三”等。


联系我们:

640.gif

风丘联系方式-01.jpg

发布时间:2019年11月14日 15:49  人气:   审核编辑(王静 )
更多内容请访问(北京风丘科技有限公司
相关链接

我有需求