基本系统与应用程序之间交互的方法以及传感器或发射器与流程

未命名 07-20 阅读:115 评论:0


1.本发明涉及一种用于创建支持应用程序的基本系统、尤其是支持应用程序的测量换能器或支持应用程序的传感器以及匹配的应用程序的方法。本发明还涉及用于执行该方法的测量换能器和传感器。


背景技术:

2.将首先参照作为传感器的基本系统的设计来解释由本发明解决的问题。
3.传感器,主要是光学传感器,检测物理参数(原始值,通常作为电压值)并由此计算与应用程序相关的测量值。一个示例是使用牛奶的光谱来计算牛奶中的脂肪含量。另一示例是使用测量介质的电导率来确定具体物质的浓度。负责将原始值转换为测量值的算法被称为(计算)模型。
4.传感器中的模型不能被任意补充乃至替换。传感器或者也就包或永久安装在固件中的仅一个模型的集合(或者只包括单个模型),其中永久集成的模型至多能够被参数化。
5.传感器在技术数据采集的可能性方面通常支持比最初预期更多的应用程序。例如,实际上为测量废水领域中的淤泥而开发的浊度传感器也能够通过使用测量原理来测量牛奶中的脂肪含量。然而,因为用于确定脂肪含量的模型只能够使传感器通过复杂的固件更新能够测量脂肪含量,所以传感器只能够被用于最初预期的应用程序。这尤其适用,因为在某些应用程序中,相关联的模型必须具体被适应于终端用户的具体操作环境,这将需要模型更新的高度灵活性。
6.该问题还能够被转移到作为测量换能器的基本系统的实施例(测量换能器通常也被称为发射器)。在给定了架构、存储器、微处理器等的情况下,测量换能器在原理上也能够比交付时存储在固件中的“多”。在稍后时间点,期望提供附加功能。
7.期望也支持未来的开发,并且期望开发过程以最简单的可能方式进行。


技术实现要素:

8.本发明基于以下目标:以简单方式扩展基本系统的功能范围,即,提供新的功能而不需要全面的固件更新。
9.该目标由一种用于创建支持应用程序的基本系统、尤其是支持应用程序的测量换能器或支持应用程序的传感器以及匹配的应用程序的方法实现,该方法包括以下步骤:创建基本系统从应用程序预期的、具有它们的名称和版本的一个或多个接口方法;创建基本系统为应用程序提供的、具有它们的名称和版本的一个或多个系统调用;检查接口方法和系统调用的语法和语义正确性;使用接口方法为基本系统创建接口存根;使用系统调用为应用程序创建系统调用存根;借助于系统调用和接口存根来创建基本系统;以及借助于接口方法和系统调用存根来创建应用程序。
10.在下文中,术语“应用程序”与术语“插件”同义使用,并且是带来有用的功能的可下载程序代码。此外,术语“基本系统”与“主机”同义使用。这尤其包含基本系统的固件。这
是在其中执行应用程序的测量换能器或传感器。
11.基本系统必须在应用程序执行前加载应用程序。所要求保护的想法使得基本系统可能只加载也为基本系统编写的应用程序;例如:测量换能器不应加载为传感器编写的应用程序。
12.特别是在步骤“使用接口方法为基本系统创建接口存根”和“使用系统调用为应用程序创建系统调用存根”中,情形是只要系统调用的版本不改变,它们就只被执行一次。
13.一个实施例规定,在步骤“使用接口方法为基本系统创建接口存根”和“使用系统调用为应用程序创建系统调用存根”之前,执行以下步骤:为特定的基本系统/应用程序组合创建存根模板集,其中步骤“使用接口方法为基本系统创建接口存根”和“使用系统调用为应用程序创建系统调用存根”是经由基本系统/应用程序组合的存根模板集来执行的。
14.一个实施例规定,在执行步骤“创建基本系统从应用程序预期的、具有它们的名称和版本的一个或多个接口方法”以及“创建基本系统为应用程序提供的、具有它们的名称和版本的一个或多个系统调用”之后,在每种情况下检查要创建的新版本是否与先前版本兼容。
15.一个实施例规定,步骤“借助于系统调用和接口存根来创建基本系统”和“借助于接口方法和系统调用存根来创建应用程序”通过自动化过程发生。
16.一个实施例规定,应用程序至少包括程序代码和元信息,程序代码包括主逻辑、由基本系统调用的接口方法、以及借助于其调用基本系统中的功能的系统调用存根,元信息至少包括应用程序的名称和版本、应用程序的目标系统、所预期的系统调用的名称和版本以及所提供的接口方法的名称和版本。
17.一个实施例规定,元信息包括:应用程序的最大存储器需求、应用程序的所需存储器需求、应用程序的所需计算需求、接口方法的时间预算或应用程序从基本系统预期的基本系统的属性,诸如,外围设备或终端的存在,尤其是显示器、控制按钮、以太网、蓝牙等的存在。
18.一个实施例规定,该方法包括以下步骤:尤其针对接口方法,从应用程序向基本系统返回至少一个返回值;和/或尤其经由系统调用,从基本系统向应用程序返回至少一个返回值。
19.一个实施例规定,基本系统包括多个应用程序。
20.一个实施例规定,基本系统是传感器,并且其中应用程序是用于使用模型来计算测量值的应用程序,其中传感器将原始值作为参数发射到应用程序,或者应用程序经由编程接口api检索原始值,其中主逻辑包括用于信号处理的算法和用于使用模型从原始值计算测量值的例程,并且其中测量值是返回值。
21.该目标进一步由一种用于执行如上所述的方法的传感器实现,该传感器包括用于检测测量介质的测量变量的传感器元件和具有存储器的数据处理单元。
22.一个实施例规定,传感器被设计为具有光源和光接收器的光学传感器;传感器尤其是分光计。
23.一个实施例规定,传感器被设计用于检测边界层——尤其是作为泥位传感器——或填充水平,具有用于在边界层或表面的方向上发射电磁波、光,尤其是可见光、声波或超声波的发射器,并且接收用于接收返回的波或光的接收器。
24.一个实施例规定,传感器被设计为二维光学传感器,尤其是用于颗粒或细菌计数。
25.一个实施例规定,传感器被设计为三维光学传感器,尤其是激光雷达传感器。
26.该目标进一步由一种用于执行如上所述的方法的测量换能器实现,该测量换能器包括具有存储器的数据处理单元。
附图说明
27.这将参照以下附图来更详细地解释。
28.图1示出了基本系统中的若干应用程序。
29.图2a到图2d示出了作为传感器或测量换能器的基本系统的实施例。
30.图3a/图3b示出了应用程序。
31.图4示出了接口方法的规范。
32.图5示出了系统调用的规范。
33.图6示出了元信息项。
34.图7示出了创建过程的接口描述。
35.图8示出了接口描述的变体之前/之后。
36.图9a到图9c示出了不同基本系统/应用程序组合的存根模板。
37.图10示意性地示出了支持应用程序的基本系统和匹配的应用程序的创建。
38.在附图中,相同特征利用相同附图标记标注。
具体实施方式
39.图1示出了具有可下载的应用程序2的支持应用程序的基本系统1的部分,例如具有可完全自由定义的信号处理部分3,即模型和参数化部分4。基本系统1包括具有存储器5的数据处理单元14,该存储器足够大以存储多个应用程序2(由自由区域表示)。图1象征性地示出了具有应用程序2的存储器5。
40.因此,应用程序2是向主机,即基本系统1,提供另外的功能的一段可加载(下载)的程序代码。该可加载的代码被结构化成在两端与基本系统1交互:
41.·
应用程序2中有一个或多个接口方法22,该一个或多个接口方法调用基本系统1以检索应用程序2中的某个功能;示例:测量值的计算,见下文
42.·
基本系统1经由一个或多个系统调用24a来提供功能,该一个或多个系统调用是经由应用程序2内的系统调用存根24检索的;示例:访问数据结构、传感器参数、传感器配置或扩展计算方法。
43.如果系统调用24a或接口方法22不存在,或者只存在于不兼容的版本中,或者与目标系统不匹配,即,应用程序2是为不正确的基本系统1编写的,那么应用程序2的执行被拒绝。如果应用程序2试图在运行时执行基本系统1中不存在的或者在不兼容的版本中存在的系统调用24a,那么该应用程序被中止。
44.基本系统1的固件被设计成使得该固件能够经由接口而接收应用程序2并将这些应用程序存储在内部。基本系统1提供通信接口6,经由该通信接口,基本系统1被告知要加载所存储的(一个或多个)应用程序2中的哪一个(哪些),例如以用于计算测量值。基本系统1经由通信接口6被连接到较高级别的单元。通信接口6通常通过线连接,并且能够服从于专
用协议或总线系统,诸如,hart、modbus、foundation fieldbus等。
45.在下文中,将首先讨论支持应用程序的基本系统。基本系统1能够被设计为传感器1a或测量换能器1b。在下文中,作为传感器1a的基本系统1的实施例将首先参照图2a来描述,而图2b到图2d示出了作为测量换能器1b的基本系统1的实施例。
46.传感器1a包括至少一个光源11、分光计13和数据处理单元14。传感器1和数据处理单元14被设计成运行所要求保护的方法的步骤,因此首先运行应用程序2。此外,数据处理单元14能够控制并调节传感器特定任务,诸如,打开和关闭光源11,或者执行数据处理。在该实施例中,尤其应注意的是,传感器1a的原始值借助于模型而被转换为测量值。
47.示出了光学传感器,更准确地分光计。这将在下文更详细地解释。然而,原理上,所要求保护的方法也能够被应用于具有其它物理或化学测量方法的其它传感器。分光计被设计成确定一种或多种物质的浓度,或者确定介质的脂肪含量。
48.分光计13仅在图2a中象征性地示出,并且包括例如至少一个光束成形元件,例如反射镜15、光栅16(通常是色散元件,例如也是棱镜)和接收器17。反射镜15和光栅16能够被配置为单个部件。接收器被配置为ccd传感器或线性阵列检测器。分光计13的入口处是入口狭缝18。例如,原理上,根据本发明的想法适用于所有光谱测量系统,而不管是否使用棱镜或光栅。
49.来自光源11的光从光源11在测量介质12的方向上透射,该光源例如被配置为氙闪光灯。光源11也能够被配置为led。如果光源11的发射光谱是温度相关的,那么传感器1a将包括温度传感器19,该温度传感器被布置在光源1处、该光源1中或者至少靠近该光源1。由此,如果需要,能够相对于温度来校正发射光谱。
50.示出了透射量度。出于此目的,光源11包括一个或多个窗口,该一个或多个窗口对于发射光是至少部分透明的。测量介质12通过窗口与传感器1的光学和电子部件分开。诸如吸收测量、散射测量或荧光测量等其它测量原理也是可能的。
51.下文将讨论作为测量换能器1b的基本系统1的实施例。这被示出在图2b、图2c和图2d中。
52.一般来说,测量换能器——也称为发射器——是根据固定关系将输入变量转换为输出变量的设备。
53.测量换能器1b被用在所谓的传感器装置200中。因此,传感器装置200至少包括测量换能器1b和传感器100。与图2a的传感器1a相反,图2b到图2d中提到的传感器100例如出于能量供应、存储容量、计算能力、布置或类型的原因不能独立地执行复杂的计算操作;例如,图2b到图2d中提到的传感器100不能借助于模型从原始值生成测量值。为了区分图2a中的“传感器”,图2b到图2d中的附图标记是三位数;该传感器特别标有附图标记“100”,除非它与图2a中的明确相同。
54.图2b到图2d示出了具有传感器100的测量换能器1b的三个不同实施例。在图2b中,测量换能器1b通过电缆111被连接到传感器100;在图2c中,测量换能器1b被集成在电缆111中,而电缆再次被连接到传感器100;在图2d中,测量换能器1b和传感器100形成一个单元。这将在下文中进一步解释。
55.图2b到图2d中的三个实施例的共同之处在于,传感器100的原始测量值在测量换能器1b中被处理,例如,被平均化和/或借助于校准模型转换为另一变量——例如,待确定
的过程变量——并且可能被发射到例如控制系统。
56.首先关于图2b:
57.传感器100包括第一物理接口103,传感器100借助于该第一物理接口被连接到测量换能器1b,并由此(双向地)交换数据并(单向地)被供应能量。电缆111是连接元件110的一部分,该连接元件能够在一端被连接到测量换能器1b,并且在另一端被连接到传感器100。在传感器侧端部,电缆111具有与第一物理接口103互补的第二物理接口113。物理接口103、113被配置为电隔离的接口,尤其是电感接口。物理接口103、113能够借助于机械插接连接而耦合在一起。机械插接连接是完全密封的,以使得没有流体,诸如,待测量的介质、空气或灰尘,能够从外部进入。
58.传感器100包括用于检测过程自动化的测量变量的至少一个传感器元件104。传感器100于是将是例如ph传感器,也称为isfet,通常是离子选择性传感器,即,用于以相应测量变量测量氧化还原电位、介质中的电磁波的吸收,例如,以在uv、ir和/或可见光范围内的波长、氧气、电导率、浊度、非金属材料的浓度或温度的传感器。
59.传感器100包括第一耦合体102,该第一耦合体包括第一物理接口103。连接元件110包括第二圆柱形耦合体112,该第二圆柱形耦合体被设计成与第一耦合体102互补,并且能够以套筒状端部部分滑动到第一耦合体102上,其中第二物理接口113被插入到第一物理接口103中。
60.传感器100包括数据处理单元105,例如微控制器,该数据处理单元处理测量变量的值,例如将它们转换为不同数据格式。出于能量和空间的原因,数据处理单元105被设计成在计算能力和存储器容量方面相当小或经济。因此,传感器100仅被设计成用于“简单的”计算操作,例如平均化、预处理和数字转换。数据处理单元105将取决于测量变量(即,传感器元件104的测量信号)的值转换为测量换能器1b能够理解的协议。
61.连接元件110同样能够包括数据处理单元115。数据处理单元105也被设计成“小型的”,并且能够用作数据的中继器。
62.若干传感器100也能够被连接到测量换能器1b。图2b中示出了两个传感器100,其中两个传感器中只有一个具有所有的附图标记。能够连接相同或不同的传感器。两个传感器中左侧的一个被示出为处于插入状态中。例如,多达八个传感器可以被连接到测量换能器1b。
63.测量换能器1b通过电缆121被连接到较高级别的单元120,诸如,控制系统。测量换能器1b经由电缆121将测量数据转发到控制系统120。在这种情况下,控制系统120被设计为过程控制系统(plc、sps)、pc或服务器。出于此目的,测量换能器1b将数据转换为控制系统能够理解的数据格式,这例如是在对应总线中进行的,诸如,hart、profibus pa、profibus dp、foundation fieldbus、modbus rs485或者甚至基于以太网的现场总线,诸如,ethernet/ip、profinet或modbus/tcp。
64.测量换能器1b包括显示器1b_1和一个或多个操作元件1b_2,诸如,按钮或旋钮,测量换能器1b能够借助于该一个或多个操作元件进行操作。例如,传感器100的测量数据或应用程序2的信息由显示器1b_1显示。传感器100也能够借助于操作元件1b_2和显示器1b_1上的对应视图被配置和参数化。测量换能器1b包括数据处理单元14。同样,测量换能器1b能够包括sd卡插槽1b_3,应用程序2能够经由该sd卡插槽被上传到测量换能器1b。测量换能器1b
还能够包括一个或多个无线模块1b_4,诸如,蓝牙、移动无线电(2g、3g、4g、5g)或其它,也可能包括无线总线协议,诸如,wirelesshart。
65.图2c表示传感器装置110的第二实施例。在这种情况下,只有一个传感器100精确地连接到测量换能器1b。在这种情况下,测量换能器1b仅被象征性地图示,在尺寸上小于图2b的测量换能器,并且大约是火柴盒的大小。在这种情况下,测量换能器1b能够被设计为独立单元,该独立单元能够被连接到电缆,或者如这里所示,直接被集成到电缆中。因此,测量换能器1b基本上由数据处理单元105组成。测量换能器1b不包括显示器,并且如果有的话,仅具有一个或两个操作元件,该一个或两个操作元件被配置成用于复位或打开和关闭。在该实施例中,测量换能器1b优选地不包括操作元件。因此,测量换能器1b包括无线模块1b_4,诸如,具有低功耗蓝牙协议栈的蓝牙模块。诸如手机、平板电脑、笔记本电脑等移动设备(未示出)由此能够被无线连接到测量换能器1b。借助于该移动设备,传感器100能够经由无线模块1b_4使用无线连接被配置和参数化。也可能以这种方式将应用程序2上传到测量换能器1b。图2b和图2c中的测量换能器具有基本相同的基本功能。
66.图2d中的测量换能器1b的实施例与其不同。传感器100和测量换能器1b没有经由电缆相互连接,并且测量换能器不是电缆的一部分。相反,传感器100和测量换能器1b形成单元。图2d示出了根据雷达原理的填充水平传感器。填充水平的其它原理是制导的并且自由辐射的雷达以及超声波,也用于检测极限水平,其中电容方法也能够被用于检测极限料位。用于该实施例的其它可能的传感器是根据科里奥利、磁感应、涡流和超声波原理的流量传感器。
67.一般来说,能够说图2a的传感器1a被配备有比图2b到图2d的传感器100强大的部件(存储器、微控制器
……
)。在图2b到图2d的实施例中,测量换能器1b承担大部分计算任务。然而,原理上,传感器1a也能够被连接到测量换能器1b。
68.不管基本系统1是如何设计的,根据本发明的想法都是经由一个或多个应用程序2来扩展功能。取决于实施例,这发生在传感器、测量换能器或两者中。
69.基本系统1(无论被配置为传感器1a还是测量换能器1b)的数据处理单元14包括由方形框表示的一个或多个应用程序2。应用程序2位于存储器5中。如果应用程序2还没有在存储器5中,那么应用程序2将被上传到存储器。这例如经由通信接口6进行。取决于基本系统1的实施例,应用程序2也能够例如经由诸如蓝牙等无线数据连接而被直接发射到基本系统1。同样,如果基本系统1包括这种可能性,那么应用程序2能够经由存储卡(例如,sd卡)而被加载到数据处理单元14中;在作为测量换能器1b的基本系统1的实施例中尤其如此。
70.在讨论创建支持应用程序的基本系统1的过程之前,应解释应用程序2本身。
71.应用程序2至少包括程序代码和元信息21,其中元信息21至少包括应用程序2的名称和版本、应用程序2的目标系统、所预期的系统调用24a的名称和版本以及所提供的接口方法22的名称和版本。应用程序2例如作为影像文件存在,应用程序2自身的实际程序代码和标识特征21(元信息)位于该影像文件中。
72.这也由图3a中的应用程序2的一般表示示出。程序代码包括三个部分:实际的主逻辑23、由基本系统1调用的一个或多个接口方法22以及借助于其调用基本系统1中的功能的一个或多个系统调用存根24。
73.应用程序2仅在应用程序2提供基本系统1预期的接口方法22并且基本系统1提供
应用程序2预期的系统调用24a时才能够在基本系统1上运行。
74.接口方法22和系统调用24a表示应用程序2与基本系统1之间的接口。因为这些接口旨在以向下兼容的方式随时间可扩展,所以这些接口将被版本化。
75.接口方法22和系统调用24a不是元信息21的一部分。这些是基本系统1的代码的部件。接口方法22和系统调用24a描述了元信息21可能涉及的事项。
76.基本系统1在应用程序2被加载之前评估的元信息21被存储在应用程序2中。图6以举例方式示出了这样一条元信息21。在下文中,将在括号中以斜体解释元信息21的示例性内容。
77.基于该信息,基本系统1能够决定是否已为基本系统1编写了应用程序2(softwareclass;固件中的应用程序框架拒绝运行不兼容的应用程序)、应用程序2的版本(version)、基本系统1是否以兼容版本提供应用程序2所预期的所有系统调用24a(depends,version)以及应用程序2是否以兼容版本提供基本系统1所预期的所有接口方法22(provides,version)。
78.元信息21通常包括应用程序2的制造商(manufacturer)、对于应用程序2的简要解释的描述(description)、创建日期(timestamputcms)、唯一名称(uniquename)和更可读的名称(friendlyname),例如以用于在基本系统的显示器上显示。
79.除了所提到的元信息21之外,这能够包括:应用程序2的最大存储器需求(可选地由heap和stack分离)、应用程序2的所需存储器需求(可选地由heap和stack分离)、应用程序2的所需计算需求或者接口方法22的时间预算。因此,应用程序2能够指定堆和栈需求的软性限制,并且基本系统1能够为每个应用程序的总存储器需求设定硬性限制。进一步地,元信息21能够包括应用程序2从基本系统1预期的基本系统1的属性,诸如,部件、外围设备或终端的存在,尤其是显示器、控制按钮、以太网、蓝牙等的存在。最后,元数据列出了它依赖的接口和部件,以及它提供的接口(参见最后一节和倒数第二节)。图6中没有示出所提到的所有元信息。元信息21例如作为xml文件存在。
80.如果提出了接口方法22的时间预算,那么基本系统1(或所生成的接口存根22a)将因此知道应用程序2何时花费太长时间来运行接口方法22,并且能够被中止。因此,基本系统1能够防止应用程序2中无意的无休止循环,否则这将使整个系统崩溃。如果超过了存储器需求或计算需求,这同样适用。
81.应用程序2的代码能够由任何算法组成。
82.传感器1a的主逻辑23能够被配置成例如将传感器的原始值转换为测量值。原始值是物理参数,诸如,电压值,而测量值表示例如牛奶的脂肪含量或待测量的介质中的具体物质的浓度。接口方法22例如是用于计算测量值的入口点。系统调用24例如是经优化的例程,这些经优化的例程频繁用于信号处理算法和传感器功能中,以便查询当前原始值并确定所计算的测量值。传感器1a能够将当前原始值作为参数给予应用程序2的接口方法22,或者应用程序2能够经由api查询传感器1a的当前原始值。应用程序2将测量值,如果以相应单位可适用,供应回传感器1a,例如作为返回值,或者通过提供api的传感器将测量值供应回传感器1a,应用程序经由该api传送当前测量值和单位。
83.图3b示出了应用程序2与基本系统1之间的关系。多个应用程序2能够同时在基本系统1上运行。这通过在图的中间指示的、位于彼此之下的拼图部分图示。在基本系统2中,
存在借助于其调用应用程序2中的接口方法22的接口存根22a。基本系统1以系统调用24a的形式提供应用程序2的功能。为了使应用程序2能够调用基本系统1中的系统调用24a,在应用程序2中有对应的系统调用存根24。
84.如图3b所示,能够同时运行多个应用程序2,但是相同类型的所有应用程序2具有相同接口。在一个实施例中,应用程序2在隔离环境中运行,以防止有缺陷的应用程序2导致主机崩溃。由于这种隔离,基本系统1不能直接调用应用程序2中的方法。应用程序2也不能直接调用基本系统1。应用程序2也在它们自己的地址空间中运行,并且默认不能访问基本系统1的数据。
85.相反,该过程如所示般运行。为了与应用程序2交互,在传感器侧有接口存根22a。应用程序2仅经由接口存根22a“进入和退出”。如果基本系统1调用存根22a,那么调度机制跳转到应用程序2并调用对应接口方法22。接口方法22调用执行其功能并返回的主逻辑23。主逻辑23也能够访问系统调用24a。在这种情况下,主逻辑23调用存根24,并且调度机制继而在基本系统侧上转发系统调用24a。现在,执行再次在基本系统1中发生,系统调用24a执行其动作,然后返回到应用程序2,并且最终,应用程序2返回到基本系统1。应用程序代码能够由主循环组成,使得这个循环能够永远重复。
86.基本系统1的每个支持应用程序的固件必须指定(一个或多个)接口,也就是说,必须为该基本系统1实现应用程序2的(一个或多个)接口方法22。因为接口能够随时间进一步开发,所以它们被版本化。如图4作为接口方法22的代码所示,接口规范包含接口的名称(name)、版本(version)和方法的列表(methods)。每个方法具有签名(signature)和唯一标识符(id)。标识符能够被显式地指定或自动发布。返回值是经由输出参考参数实现的。方法能够可选地具有时间预算(timebudget)。如果主机调用具有时间预算的方法,那么如果该方法超出预算,则主机终止插件。没有时间预算的插件方法在没有时间限制的情况下运行。
87.系统调用24a被实现在主机1上,并为插件2提供功能。例如,主机1能够经由系统调用24a提供用于对某些存储器区域进行读取或写入的方法。系统调用24a由版本化的接口规范定义。图5示出了作为系统调用接口规范的代码片段的结构。系统调用24a能够被分组,例如,这里由group表示。系统调用24a具有名称(诸如,“cthreadcontrol”或“cindexstructureaccess”)、唯一标识符(id)和版本(version)。同样的事项适用于系统调用24a本身的方法,如同适用于接口方法22一样。
88.因此,应用程序2仅在应用程序2提供基本系统1预期的接口方法22并且基本系统1提供应用程序2预期的系统调用24a时才能够在基本系统1上运行。因此,它们必须首先被创建。接口方法22和系统调用24a表示应用程序2与基本系统1之间的接口。因为这些接口旨在以向下兼容的方式随时间可扩展,所以这些接口将被版本化。
89.如上文进一步提到,在基本系统1中,存在借助于其调用应用程序2中的接口方法22的接口存根22a。为了使应用程序2能够调用系统调用24a,在应用程序2中有对应的系统调用存根24。
90.接口存根22a和系统调用存根24的手动实现很麻烦。手动版本化和确保接口的长期兼容性容易出错。出于该原因,这优选地通过自动化过程26进行。接口描述25包括:
91.·
包括基本系统1从应用程序1预期的版本(可选地具有签名)的接口方法22;以及
92.·
包括基本系统1提供给应用程序2的版本(可选地具有签名)的系统调用22a。
93.在自动化过程中,检查接口描述25的语法和语义正确性。如果描述是无错误的,那么用于基本系统2的接口存根22a和用于应用程序2的系统调用存根24将从该接口描述25生成。这被示出在图7中。只要版本不改变,存根22a、24只需要被生成一次。应用程序2于是能够重复使用这些存根22a、24。
94.基本系统通常在产品生命周期上进一步开发。因此,基本系统1的较新版本能够由新的系统调用24a补充,或者基本系统1能够从应用程序2预期附加接口方法22。相应地,也将扩展接口描述。在这种情况下,通常需要兼容的扩展。
95.图8示出了比较接口描述的变体之前/之后的可能性。假设基本系统1已在市场上以具有接口描述25a的版本a出现。已通过应用程序2的兼容的扩展而被扩展的、具有接口描述25b的版本b将稍后被发布。因此,应确保版本b的接口描述仅由对版本a的描述的兼容的扩展组成。出于此目的,将先前版本的接口描述25a与即将到来的版本的接口描述25b进行比较,并且例如创建关于两个描述是否兼容的(机器可评估)报告28。机器可评估性使得可能在基本系统1创建过程中以自动化方式执行兼容性测试,并且如果存在不兼容性,那么创建过程被终止。在这里所示的示例中,版本b的新系统调用24a与较旧版本a不兼容。原因是缺失调用syscall1。
96.图7示出了生成了存根或它们的代码。在第一实施例中,所得到的代码结构直接在过程26中被永久编程。然而,因为所生成的存根必须适配应用程序2和基本系统1,所以这种方法导致问题;例如,当基本系统1的软件架构改变时,所生成的存根将不再适配基本系统;并且对于每个新的基本系统,都将需要对过程进行复杂的调适。
97.出于该原因,由过程26生成的存根代码结构被转移到模板(附图标记27a、27b、27c)中。这些模板或模板集是类似模板的代码结构,过程26利用来自接口描述25的内容填充这些类似模板的代码结构。如果存根于是要被生成,那么过程26将接收以下信息:
98.·
接口描述25;以及
99.·
具有适配目标系统的存根代码结构的模板集。
100.为了支持基本系统1和应用程序2的新组合(例如,新的测量换能器1b,其代码基础不同于先前的测量换能器,或者已用另一编程语言实现),仅需要实现新的模板集。
101.图9a和图9b示出了基本系统1和应用程序2的各种组合中的存根模板,它们利用附图标记27a和27b标识。取决于组合,能够选择另一模板。图9c示出了另一组合的简单扩展——在这种情况下,专门为该组合创建了新模板27c。
102.最终从系统调用(24a)和接口存根(22a)创建基本系统1。
103.最终从接口方法22、系统调用存根24和主逻辑23创建应用程序2。这例如通过创建程序代码达成,该程序代码随后被编译或解释。创建被手动进行,或者还通过自动化过程进行。应用程序2由程序代码和元信息21组成。
104.传感器1必须能够加载和运行应用程序2,例如通过实现虚拟机的传感器固件,应用程序2在该虚拟机中被解释/运行。虚拟机被设计为解释器,尤其是仿真器、预先编译器、实时编译器、管理程序或其组合。然而,应用程序2也能够在基本系统1上“本地”运行。出于此目的,基本系统1包括例如预先编译器或实时编译器。应用程序2以对应格式存在于基本系统1上。对于要解释/运行的应用程序2,应用程序2必须包含可解释/可运行的程序代码,或者能够被转换为可解释/可运行的形式的程序代码,例如独立于机器的字节代码。同样,
程序必须以二进制格式存储,例如以可执行和链接格式(elf)存储。二进制格式提供了有关应用程序的存储器布局的信息,例如代码和数据的位置和大小。该信息对于加载应用程序2和使其准备好运行是必需的。
105.图10示出了支持应用程序的基本系统1,尤其是支持应用程序的测量换能器1b或支持应用程序的传感器1a以及匹配的应用程序2,的创建。从接口描述25进行,存在关于不同版本25a、25b是否彼此兼容的兼容性检查,并且报告28可选地被创建。这是通过(自动化)过程26进行的。如果兼容性检查成功,那么从接口描述25开始、可选地也通过(自动化)过程26、利用模板(这里是模板27a)创建存根。一方面,从中创建基本系统1,或者创建固件影像。另一方面,当基本系统1被完成时,应用程序2经由程序代码和元信息21被创建。
106.附图标记列表
[0107]1ꢀꢀꢀꢀꢀꢀꢀꢀ
基本系统
[0108]
1a
ꢀꢀꢀꢀꢀꢀꢀ
作为基本系统的传感器
[0109]
1b
ꢀꢀꢀꢀꢀꢀꢀ
作为基本系统的测量换能器
[0110]
1b_1
ꢀꢀꢀꢀꢀ
显示器
[0111]
1b_2
ꢀꢀꢀꢀꢀ
控制元件
[0112]
1b_3
ꢀꢀꢀꢀꢀ
sd卡插槽
[0113]
1b_4
ꢀꢀꢀꢀꢀ
无线模块
[0114]2ꢀꢀꢀꢀꢀꢀꢀꢀ
应用程序/插件
[0115]3ꢀꢀꢀꢀꢀꢀꢀꢀ
信号处理部分/模型
[0116]4ꢀꢀꢀꢀꢀꢀꢀꢀ
参数化部分
[0117]5ꢀꢀꢀꢀꢀꢀꢀꢀ
存储器
[0118]6ꢀꢀꢀꢀꢀꢀꢀꢀ
通信接口
[0119]
11
ꢀꢀꢀꢀꢀꢀꢀ
光源
[0120]
12
ꢀꢀꢀꢀꢀꢀꢀ
测量介质
[0121]
13
ꢀꢀꢀꢀꢀꢀꢀ
分光计
[0122]
14
ꢀꢀꢀꢀꢀꢀꢀ
数据处理单元
[0123]
15
ꢀꢀꢀꢀꢀꢀꢀ
反射镜
[0124]
16
ꢀꢀꢀꢀꢀꢀꢀ
光栅
[0125]
17
ꢀꢀꢀꢀꢀꢀꢀ
接收器
[0126]
18
ꢀꢀꢀꢀꢀꢀꢀ
入口狭缝
[0127]
19
ꢀꢀꢀꢀꢀꢀꢀ
温度传感器
[0128]
21
ꢀꢀꢀꢀꢀꢀꢀ
元信息
[0129]
22
ꢀꢀꢀꢀꢀꢀꢀ
接口方法
[0130]
22a
ꢀꢀꢀꢀꢀꢀ
接口存根
[0131]
23
ꢀꢀꢀꢀꢀꢀꢀ
主逻辑
[0132]
24
ꢀꢀꢀꢀꢀꢀꢀ
系统调用存根
[0133]
24a
ꢀꢀꢀꢀꢀꢀ
系统调用
[0134]
25
ꢀꢀꢀꢀꢀꢀꢀ
接口描述
[0135]
25a
ꢀꢀꢀꢀꢀꢀ
接口描述版本a
[0136]
25b
ꢀꢀꢀꢀꢀꢀ
接口描述版本b
[0137]
26
ꢀꢀꢀꢀꢀꢀꢀ
过程
[0138]
27a
ꢀꢀꢀꢀꢀꢀ
用于组合a的模板
[0139]
27b
ꢀꢀꢀꢀꢀꢀ
用于组合b的模板
[0140]
27c
ꢀꢀꢀꢀꢀꢀ
用于组合c的模板
[0141]
28
ꢀꢀꢀꢀꢀꢀꢀ
报告
[0142]
100
ꢀꢀꢀꢀꢀꢀ
传感器
[0143]
102
ꢀꢀꢀꢀꢀꢀ
耦合体
[0144]
103
ꢀꢀꢀꢀꢀꢀ
接口
[0145]
104
ꢀꢀꢀꢀꢀꢀ
传感器元件
[0146]
105
ꢀꢀꢀꢀꢀꢀ
数据处理单元
[0147]
110
ꢀꢀꢀꢀꢀꢀ
连接元件
[0148]
111
ꢀꢀꢀꢀꢀꢀ
电缆
[0149]
112
ꢀꢀꢀꢀꢀꢀ
耦合体
[0150]
113
ꢀꢀꢀꢀꢀꢀ
接口
[0151]
115
ꢀꢀꢀꢀꢀꢀ
数据处理单元
[0152]
120
ꢀꢀꢀꢀꢀꢀ
控制系统
[0153]
121
ꢀꢀꢀꢀꢀꢀ
电缆
[0154]
200
ꢀꢀꢀꢀꢀꢀ
传感器装置

技术特征:
1.一种用于创建支持应用程序的基本系统(1)、尤其是支持应用程序的测量换能器(1b)或支持应用程序的传感器(1a)以及匹配的应用程序(2)的方法,包括以下步骤:-创建所述基本系统(1)从所述应用程序(2)预期的、具有它们的名称和版本的一个或多个接口方法(22);-创建所述基本系统(1)为所述应用程序(2)提供的、具有它们的名称和版本的一个或多个系统调用(24a);-检查所述接口方法(22)和所述系统调用(24a)的语法和语义正确性;-使用所述接口方法(22)为所述基本系统(1)创建接口存根(22a);-使用所述系统调用(24a)为所述应用程序(2)创建系统调用存根(24);-借助于所述系统调用(24a)和所述接口存根(22a)来创建所述基本系统(1);以及-借助于所述接口方法(22)和所述系统调用存根(24)来创建所述应用程序(2)。2.根据权利要求1所述的方法,其中,在使用所述接口方法为所述基本系统创建接口存根和使用所述系统调用为所述应用程序创建系统调用存根的所述步骤之前,执行以下步骤:

为特定的基本系统/应用程序组合创建存根模板集(27、27a、27b、27c),其中使用所述接口方法为所述基本系统创建接口存根和使用所述系统调用为所述应用程序创建系统调用存根的所述步骤是通过所述基本系统/应用程序组合的所述存根模板集(27、27a、27b、27c)来执行的。3.根据权利要求1或2所述的方法,其中,在执行创建所述基本系统(1)从所述应用程序(2)预期的、具有它们的名称和版本的一个或多个接口方法(22)和创建所述基本系统(1)为所述应用程序(2)提供的、具有它们的名称和版本的一个或多个系统调用(24a)的所述步骤之后,检查要创建的新版本是否与先前版本兼容。4.根据前述权利要求中的任一项所述的方法,其中借助于所述系统调用(24a)和所述接口存根(22a)来创建所述基本系统(1)和借助于所述接口方法(22)和所述系统调用存根(24)来创建所述应用程序(2)的所述步骤通过自动化过程(26)发生。5.根据前述权利要求中的任一项所述的方法,其中所述应用程序(2)至少包括程序代码和元信息(21),所述程序代码包括

主逻辑(23),

由所述基本系统(1)调用的所述接口方法(22),以及

借助于其调用所述基本系统(1)中的功能的所述系统调用存根(24a),所述元信息(21)至少包括

所述应用程序(2)的名称和版本,

所述应用程序(2)的目标系统,

所预期的系统调用(24a)的名称和版本,以及

所提供的接口方法(22)的名称和版本。6.根据上一权利要求所述的方法,
其中所述元信息(21)包括:所述应用程序(2)的最大存储器需求、所述应用程序(2)的所需存储器需求、所述应用程序(2)的所需计算需求、所述接口方法(22)的时间预算、或所述应用程序(2)从所述基本系统(1)预期的所述基本系统(1)的属性,诸如,外围设备或终端的存在,尤其是显示器、控制按钮、以太网、蓝牙等的存在。7.根据前述权利要求中的任一项所述的方法,包括以下步骤:

尤其针对所述接口方法(22),从所述应用程序(2)向所述基本系统(1)返回至少一个返回值;和/或

尤其经由所述系统调用(24a),从所述基本系统(1)向所述应用程序(2)返回至少一个返回值。8.根据前述权利要求中的任一项所述的方法,其中所述基本系统(1)包括多个应用程序(2)。9.根据前述权利要求中的任一项所述的方法,其中所述基本系统(1)是传感器(1a),并且其中所述应用程序(2)是用于使用模型来计算测量值的应用程序,其中所述应用程序(2)的所述传感器(1a)将原始值作为参数发射,或者所述应用程序(2)经由编程接口api检索所述原始值,其中所述主逻辑(23)包括用于信号处理的算法和用于使用所述模型从原始值计算测量值的例程,并且其中所述测量值是返回值。10.一种用于执行根据前述权利要求中的任一项所述的方法的传感器(1a),包括

用于检测测量介质的测量变量的传感器元件(104),

具有存储器(5)的数据处理单元(14)。11.根据上一权利要求所述的传感器(1a),其中所述传感器(1a)被设计为具有光源(11)和光接收器(17)的光学传感器,所述传感器(1a)尤其是分光计。12.一种用于执行根据前述权利要求中的任一项所述的方法的测量换能器(1b),包括

具有存储器(5)的数据处理单元(14)。

技术总结
本发明涉及基本系统与应用程序之间交互的方法以及传感器或发射器。公开了一种用于创建支持应用程序的基本系统、尤其是支持应用程序的测量换能器或支持应用程序的传感器以及匹配的应用程序的方法,包括以下步骤:创建基本系统从应用程序预期的、具有它们的名称和版本的一个或多个接口方法;创建基本系统为应用程序提供的、具有它们的名称和版本的一个或多个系统调用;检查接口方法和系统调用的语法和语义正确性;使用接口方法为基本系统创建接口存根;使用系统调用为应用程序创建系统调用存根;借助于系统调用和接口存根来创建基本系统;以及借助于接口方法和系统调用存根来创建应用程序。本发明还公开了用于执行该方法的传感器和测量换能器。感器和测量换能器。感器和测量换能器。


技术研发人员:斯特凡
受保护的技术使用者:恩德莱斯和豪瑟尔分析仪表两合公司
技术研发日:2022.12.15
技术公布日:2023/7/19
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐