前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >REDHAWK——波形

REDHAWK——波形

作者头像
Gnep@97
发布2024-03-20 14:48:06
1030
发布2024-03-20 14:48:06
举报
文章被收录于专栏:Gnep's_Technology_Blog

前言

本章讨论了在 REDHAWK 中波形的构建和执行。应用程序是表示波形实例的软件对象。波形是一个 XML 文件,描述了组件的部署、互连和配置。可以在沙箱以及在 REDHAWK 域中启动波形。本章讨论了作为域中运行应用程序启动波形的机制。

一、波形编辑器

接下来的部分将进一步描述波形的定义,以及在 IDE 中创建和操作波形的过程。像组件的属性文件(PRF)、软件组件描述符(SCD)和软件包描述符(SPD)XML 文件一样,波形完全由其软件组装描述符(SAD)文件(*.sad.xml)表示。REDHAWK IDE 提供了一种修改 XML 文件的方法,无需直接手动编辑这个文件。

1、概览标签页

在概览标签页内,定义了波形的名称、组装控制器和外部端口。

组装控制器是波形中指定为委托波形级别 start()stop()configure()query() 调用的组件实例。在复杂的波形中,组装控制器可以用来协调组件的生命周期。在简单的波形中,组装控制器的身份则不那么重要。

外部端口用于使组件端口可供其他应用程序使用,促进应用程序间的连通性。

开发者使用概览标签页来设置波形的组装控制器并描述波形。

以下步骤解释了如何设置组装控制器并描述波形。

  • 在波形的概览标签页上,从控制器下拉菜单中确保选择了 SigGen_1。
  • 在描述字段中,输入波形的描述。

2、组件标签页

组件标签页显示了各个组件实例化元素及其相关细节,这些细节可以被修改。

“All Components” 部分显示了当前波形中的所有组件,以及“添加…”和“移除”按钮,这些按钮可用于从波形中添加或移除选定的组件。

“组件”部分显示以下字段,可以选择以修改当前值:

  • 使用名称 - 编辑选定组件实例的使用名称元素和命名服务名称,这是基于组件的使用名称的。 “日志”部分显示以下字段,可以选择以修改当前值:
  • 启用复选框 - 为选定的组件实例启用或禁用日志配置元素。
  • 日志级别组合框 - 选择预定义的日志级别,包括:OFF(关闭)、FATAL(致命)、ERROR(错误)、WARN(警告)、INFO(信息)、DEBUG(调试)、TRACE(追踪)和ALL(全部)。更多信息,请参考日志记录。
  • 日志URI - 指定日志配置文件的URI。

3、图表标签页

在波形上的大部分工作都是在图表标签页内完成的。图表标签页与沙箱/Chalkboard 非常相似。不同于沙箱,只有存在于 SDRROOT 内的组件可以被添加到波形中。palette(调色板)包含了位于 SDRROOT 内的组件列表。从图表标签页,可以指示波形的外部端口,并且可以将组装控制器的角色指派给一个组件。

①、在波形中编辑组件属性

从图表标签页,可以设置组件的属性。当这些属性被设置时,它们变成特定于波形,并被写入描述此波形的 *.sad.xml 文件中。

以下步骤解释了如何在波形中编辑组件的属性。

  • 在波形的图表标签页,选择组件。
  • 在属性视图中,验证是否选中了属性标签页。
  • 选择您想要设置的属性,并编辑值。
②、在波形中编辑设备需求集

组件的设备需求集通过属性视图的需求标签页管理。当这些需求被设置后,它们将特定于波形,并写入到 *.sad.xml 文件中。有关设备需求集的更多信息,请参考将组件绑定到可执行设备的相关内容。

以下步骤解释如何编辑设备需求集。

  • 在波形的图表标签页上,选择组件。
  • 在属性视图中,确认需求标签页已被选中。
  • 要添加 ID 和值,请点击 + 并添加 ID 及其值。ID 和值可以是任何字母数字字符串值。这将为组件分配一个 devicerequires 键/值对。
  • 要删除 ID 和值,请选择该 ID 并点击 X。
③、启动顺序

波形内的每个组件都有一个数字,周围有一个圆圈,代表该组件的启动顺序。启动顺序代表组装控制器调用其 start() 方法的顺序。唯一没有启动顺序的组件是组装控制器,它总是假定启动顺序为 0。组装控制器有一个包含 0 的黄色圆圈。可以通过右键点击组件并从上下文菜单中选择 “提前移动启动顺序” 或 “推后移动启动顺序” 来更改启动顺序。可以通过右键点击组件并从上下文菜单中选择“设置为组装控制器”来更改组装控制器。

4、SAD 文件标签页

概览、组件和图表标签页中显示的信息在 SAD 文件的 XML 中有所表示。可以手动编辑 XML,但不推荐这样做。波形中使用的每个组件都在 SAD 文件中通过指向组件 SPD 文件的文件位置来引用。

检查 SAD 文件的说明如下:

  • 打开波形编辑器的 myWaveform.sad.xml 标签页。
  • 浏览 SAD 文件并识别:
    • 这个波形中使用的两个 SPD 文件的位置(记住,这个文件位置是相对于 $SDRROOT 的)
    • 组装控制器
    • 两个组件之间的连接
    • 在图表标签页设置的外部端口
    • 每个组件的启动顺序
    • 在 SigGen 组件上更改的属性
  • 在继续之前,返回到图表标签页并更改 dataDouble_out 端口,使其不再被标记为外部端口。
①、应用程序选项

在 SAD 文件中可以为应用程序设置两个选项:

  • STOP_TIMEOUT - 控制发生超时之前允许的时间。应用程序的 stop 函数委托给应用程序中的每个组件。在某些情况下,组件可能需要异常长的时间才能达到停止状态。为了防止这种超时,将应用程序的 STOP_TIMEOUT 选项配置为所需的值。默认的超时值是 3 秒。要完全去除超时,将值设置为 0 或 -1。
  • AWARE_APPLICATION - 控制组件对域感知的能力。默认的域感知值是 true。要去除组件对域的指向,将 AWARE_APPLICATION 选项设置为 false。

从 IDE 中的 SAD 文件概览标签页设置应用程序选项:

  • 要添加一个选项,请展开波形选项部分,点击添加,并输入值。
  • 要编辑一个选项,请展开波形选项部分,选择该选项并编辑值。
  • 要移除一个选项,请展开波形选项部分,选择该选项并点击移除。
  • 要使用文本编辑器设置应用程序选项,选项部分必须在SAD文件中的连接部分之后。

以下示例 XML 将超时设置为 5 秒,域名意识设置为 false:

代码语言:javascript
复制
<softwareassembly id="DCE:d67ebd01-d580-47ff-9fe6-5560a9d8f5f8" name="sample_waveform">
  <componentfiles>
    <componentfile id="SigGen_062a14e1-d152-4eb0-b580-821567b323c6" type="SPD">
      <localfile name="/components/rh/SigGen/SigGen.spd.xml"/>
    </componentfile>
  </componentfiles>
  <partitioning>
    <componentplacement>
      <componentfileref refid="SigGen_062a14e1-d152-4eb0-b580-821567b323c6"/>
      <componentinstantiation id="SigGen_1" startorder="0">
        <usagename>SigGen_1</usagename>
        <findcomponent>
          <namingservice name="SigGen_1"/>
        </findcomponent>
      </componentinstantiation>
    </componentplacement>
  </partitioning>
  <assemblycontroller>
    <componentinstantiationref refid="SigGen_1"/>
  </assemblycontroller>
  <connections/>
  <options>
     <option name="STOP_TIMEOUT" value="5"/>
     <option name="AWARE_APPLICATION" value="false"/>
  </options>
</softwareassembly>

二、创建和部署一个示例波形

本节描述了创建波形、将该波形部署到暂存区、启动域管理器和设备管理器、创建代表该波形的应用程序实例、发布应用程序以及关闭域管理器和设备管理器的过程。

在创建/销毁不同应用程序期间,域管理器和设备管理器通常会保持运行状态。

1、创建一个示例波形

以下是如何创建波形的描述:

  • 选择 文件 > 新建 > REDHAWK 波形项目
  • 将项目名称设置为 demo
  • 选择 完成

这将在 demo.sad.xml 文件上打开一个编辑器。 要向这个波形添加组件:

  • 选择 图表 标签页。
  • 在调色板中,将 SigGen 组件拖到图表上。
  • 在调色板中,将 HardLimit 组件拖到图表上。
  • 将连接从 SigGen_1 的 dataFloat_out 端口拖到 HardLimit_1 的 dataFloat_in 端口
  • 波形看起来像:
  • 如果 SigGen_1 没有黄色的 0,右键点击该组件并选择设置为装配控制器
  • 按 Ctrl+S 保存或选择 文件 > 保存。
  • 通过选择 X 或选择 文件 > 关闭所有 来关闭波形编辑器。

2、导出波形

以下是在 IDE 中导出波形的描述:

  • 在项目浏览器视图中(通常在左侧),选择 demo
  • 将 demo 项目拖到 REDHAWK Explorer 视图中的目标 SDR 上。

这会将波形安装到 SDRROOT/dom/waveforms 中。如果遇到权限拒绝错误,请确保根据从源代码安装框架的安装说明设置 SDRROOT。

验证波形是否已安装:

  • 在 REDHAWK Explorer 视图中,展开目标 SDR。
  • 展开波形。
  • 验证是否显示了 demo 波形。

3、在运行时环境上运行波形

本节提供了如何启动波形作为应用程序并释放应用程序的概述。

①、启动域

首先,启动域管理器和设备管理器。

如果 REDHAWK 是从 RPM 包安装的,那么域管理器和设备管理器在 localhost 上已准备好可立即使用。要在 IDE 中启动一个默认域,请按照以下步骤操作:

  • 在 REDHAWK Explorer 视图中(默认情况下,在窗口的右侧),右键点击目标 SDR 元素并选择启动域…:
  • 我这里没有一个 Device Manager 栏,所以需要先解决这个问题

<1>、创建一个 REDHAWK Node Project

<2>、命名为 DeviceManagerTest,Domain Manager 选择为 REDHAWK_DEV

<3>、拖一个 GPP 设备到 Diagram

在这里插入图片描述
在这里插入图片描述

<4>、ctrl+s保存后拖拽到 Target SDR 进行安装

<5>、再次启动域管理器和设备管理器

可以看到 DeviceManagerTest 存在了,双击 DeviceManagerTest

可以看到 GPP 已跑起来了

这将启动一个域管理器和一个设备管理器,设备管理器管理一个单独的 GPP 设备。域管理器和设备管理器的输出将在控制台视图中显示。如果此视图不可见,选择 窗口 > 显示视图 > 控制台。要停止这些进程,点击终止图标(红色方块)。要在控制台之间切换,点击显示选定控制台图标(计算机监视器):

REDHAWK_DEV 域连接显示在 REDHAWK Explorer 视图中。其状态为已连接,并且没有错误。现在,一个域管理器进程和一个设备管理器进程存在于主机上。

关闭域方法如下: 通常,域管理器和设备管理器会无限期运行;这些程序旨在长时间运行,因为整个域的不同部分(例如,设备管理器、应用程序和 $SDRROOT 上的文件)会有进有出。然而,出于以下程序的目的,解释了关闭正在运行的域的过程。为了干净地关闭,最好是断开域连接并停止已启动的进程。

  • 在 REDHAWK Explorer 视图中,右键点击 REDHAWK_DEV 域并选择断开连接
  • 在控制台视图中,从显示选定控制台图标选择设备管理器控制台。
  • 要停止设备管理器,请点击终止图标。
  • 在控制台视图中,从显示选定控制台图标选择域管理器控制台。
  • 要停止域管理器,请点击终止图标。
  • 选择 文件 > 退出。

域管理器和设备管理器进程不再存在于主机上。域条目仍然以断开连接的状态保留在 REDHAWK Explorer 视图中,表明该域不再可见。这种从环境中解耦正在运行的域的方式,使得 REDHAWK Explorer 能够与网络上任意数量的域进行交互,其中每个域的生命周期都不受 IDE 的控制。

②、启动波形
  • 在 REDHAWK Explorer 视图中,右键点击 REDHAWK_DEV 域连接。
  • 选择启动波形…
  • 选择 demo 波形,然后选择完成。

可以看到如下界面:

  • 要启动波形,选择工具栏中的启动波形(绿色三角形)按钮。

这会打开波形浏览器。通过展开 REDHAWK_DEV 域连接和波形文件夹,在 REDHAWK Explorer 中显示波形。

③、打开绘图
  • 左键点击 dataFloat_out 端口以选择它。
  • 右键点击端口打开端口上下文菜单。
  • 选择绘制端口数据。这会打开一个显示绘图数据的绘图。
  • 为了清晰地查看绘图中的正弦波,降低 SigGen 产生的频率。
  • 打开属性视图并将频率属性更改为 50 的值。
④、停止并释放应用程序
  • 选择工具栏中的停止波形(红色方块)按钮。绘图停止更新。
  • 选择工具栏中的释放波形(红色 X)按钮。波形浏览器关闭。
⑤、关闭域

最后,关闭域管理器和设备管理器。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、波形编辑器
    • 1、概览标签页
      • 2、组件标签页
        • 3、图表标签页
          • ①、在波形中编辑组件属性
          • ②、在波形中编辑设备需求集
          • ③、启动顺序
        • 4、SAD 文件标签页
          • ①、应用程序选项
      • 二、创建和部署一个示例波形
        • 1、创建一个示例波形
          • 2、导出波形
            • 3、在运行时环境上运行波形
              • ①、启动域
              • ②、启动波形
              • ③、打开绘图
              • ④、停止并释放应用程序
              • ⑤、关闭域
          相关产品与服务
          图数据库 KonisGraph
          图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档