REDHAWK——组件

文章目录

  • 前言
  • 一、REDHAWK 核心资产
    • 1、REDHAWK 基本组件
    • 2、REDHAWK 基本设备
    • 3、REDHAWK 基本波形
    • 4、REDHAWK 共享库
    • 5、REDHAWK 设备依赖性
  • 二、创建组件项目
    • 1、组件向导
    • 2、组件描述符
    • 3、端口
    • 4、属性
    • 5、记录
    • 6、为组件生成代码
  • 三、创建并运行 Hello World 组件


前言

组件模块化构建块,可以插入任意数量的信号处理应用程序中以执行特定且可重用的功能。组件完全由其接口、属性和功能定义。示例包括调谐、滤波和抽取宽带信号的组件以及执行 FM 解调的组件。某些组件不可避免地需要自定义实现,但大多数信号处理功能可以重用和共享。

组件可以在波形内互连在一起以创建完整的信号处理应用程序,也可以在 REDHAWK sandbox 中独立运行以在本地主机上执行琐碎的任务。下图描绘了波形中各分量的组成。
在这里插入图片描述
通过使用 REDHAWK 框架,基本处理元素可以封装为组件并由其他 REDHAWK 兼容系统重用。使用 REDHAWK IDE 和附带的代码生成器,可以自动生成许多用于控制和输入/输出的代码。下图描述了将任意处理算法封装到自动生成的 REDHAWK 组件包装器中。
在这里插入图片描述


一、REDHAWK 核心资产

REDHAWK 打包了由入门/示例组件、设备、波形和共享库组成的核心资产。

1、REDHAWK 基本组件

REDHAWK 基本组件是入门/示例 REDHAWK 组件的集合。这些组件提供简单的 DSP 功能,同时演示 REDHAWK 的许多功能和用例。
在这里插入图片描述
下表包含 REDHAWK 基本组件的名称和描述。
在这里插入图片描述
在这里插入图片描述

2、REDHAWK 基本设备

REDHAWK 基本设备是入门/示例 REDHAWK 设备的集合。下表包含 REDHAWK 基本设备的名称和描述。
在这里插入图片描述

3、REDHAWK 基本波形

REDHAWK 基本波形是入门/示例 REDHAWK 波形的集合。下表包含 REDHAWK 基本波形的名称和描述。
在这里插入图片描述

4、REDHAWK 共享库

REDHAWK 共享库是入门/示例共享库的集合。
在这里插入图片描述
下表包含通用 REDHAWK 共享库的名称和描述。
在这里插入图片描述

5、REDHAWK 设备依赖性

下表描述了 REDHAWK 设备使用的外部共享库。这些库是用 REDHAWK 打包和分发的,但不由 REDHAWK 管理。
在这里插入图片描述

二、创建组件项目

下面概述了组件的结构。

1、组件向导

在 REDHAWK IDE 中,REDHAWK 环境中新组件、设备或其他工件的开发包含在 Eclipse 项目中。每个特定于 REDHAWK 的工件都与一个向导相关联,该向导引导开发人员完成创建项目所需的步骤,该项目支持正常运行所需的最少部分。对于组件,默认项目设置允许开发人员选择 Python、C++ 和 Java 作为开发语言。要启动 IDE 并开始创建组件,请运行 eclipseIDE 安装目录中的二进制文件。然后,选择“文件”>“新建”>“REDHAWK 组件项目”。

2、组件描述符

REDHAWK 组件通过三个 XML 文件进行描述软件包描述符 (SPD) 文件 ( .spd.xml)、属性文件 (PRF) 文件 ( .prf.xml) 和软件组件描述符 (SCD) 文件 ( .scd.xml)。SPD 的作用是描述与组件关联的所有文件:PRF 和 SCD 文件、所有二进制文件以及关联的数据文件。PRF 文件包含该组件支持的所有属性的描述。SCD 文件包含组件输入/输出的描述。

REDHAWK IDE 使用内部模型来维护组件设计的状态。该模型是上述三个 XML 文件以及项目特定信息(如开发语言)的 Java 表示。组件开发透视图的主屏幕包含多个选项卡。其中一些选项卡用于面板,一些选项卡用于 XML 文件。可用于组件设计的不同面板用于更改此模型;该模型会自动连续映射到三个 XML 文件。这种意识是对称的;就像面板中的更改会导致 XML 文件中的更改一样,XML 文件中的更改也会导致面板的自动更新。

3、端口

数据流入和流出组件是通过使用端口来完成的。端口被描述为提供(输入)或使用(输出)端口。这种命名约定通常被认为是违反直觉的,因此需要进行解释。端口是组件的 RPC 接口。因此,输入端口提供可由输出端口使用的功能。

REDHAWK 包含各种促进互操作性的标准化接口。这些接口是通过端口来实现的。当在 REDHAWK IDE 的组件生成向导中选择端口时,会自动生成实现这些接口的代码。

4、属性

属性提供了一种调整组件配置或设置的方法,同时还允许外部实体(例如程序、UI 或状态脚本)检查组件的状态。属性是组件配置的主要手段。

有四种类型的属性:simple、simple sequence、struct 和 struct sequence。属性 simple 具有特定基元类型的单个值(例如,short 或 float)。一个 simple sequence 是相同原始类型的值的数组。一个 struct 属性是包含一组命名和/或属性 struct 的结构。一个 struct sequence 是一组相同 struct 类型实例的数组。

属性还有一种表示使用该属性的角色的类型。种类可以是 property、allocation、 或 message。该 property 类型用于配置和状态。该 allocation 类型用于表达对设备提供的能力的要求。该 message 类型仅与属性一起使用 struct 以在 REDHAWK 内发送事件消息。

5、记录

组件,无论使用哪种语言来实现,都包含对记录器的访问。C++、Python 和 Java 中的日志记录使用log4j由 Apache Software Foundation 维护的强大日志框架。

6、为组件生成代码

创建组件项目并在 SPD 编辑器中输入组件的适当详细信息后,IDE 可以为该项目生成框架代码。要开始代码生成过程,请单击 SPD 编辑器概述面板右上角的 “生成所有实现”按钮。
在这里插入图片描述

三、创建并运行 Hello World 组件

1、创建一个新的 REDHAWK component Project,将其起名为 HelloWorld,并点击 Generate All Component Implementations
在这里插入图片描述
2、在该 HelloWorld.cpp 文件中,将以下包含添加到文件的开头:

#include <iostream>

在这里插入图片描述
3、在该 HelloWorld.cpp 文件中,将以下代码添加到方法中 serviceFunction():

std::cout<<"Hello world"<<std::endl;

在这里插入图片描述
4、编译项目
Project -> Build Project

5、打开一个终端,启动 Python 会话,并执行下面的命令:

from ossie.utils import sb
hello_world = sb.launch("HelloWorld")
sb.start()

在这里插入图片描述
可以看到,Python 会话一直在打印 “Hello World”,按 ctrl+D 退出


我的qq:2442391036,欢迎交流!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DAY09 软考中级备考笔记】机组:信息加密,系统可靠性

机组&#xff1a;信息加密&#xff0c;系统可靠性 3月8日 – 天气&#xff1a;晴 1. 信息加密 信息加密分为了对称加密和非对称加密&#xff1a; 对称加密&#xff1a;加密和解密的密钥相同且不公开 优点是加密速度快缺点是加密的强度不高&#xff0c;密钥分发困难常见算法&…

es 聚合操作(二)

书接上文&#xff0c;示例数据在上一篇&#xff0c;这里就不展示了 一、Pipeline Aggregation 支持对聚合分析的结果&#xff0c;再次进行聚合分析。 Pipeline 的分析结果会输出到原结果中&#xff0c;根据位置的不同&#xff0c;分为两类&#xff1a; Sibling - 结果和现有…

“禁止互撕”新规第二天,热搜把#章子怡“怒怼”网友#推上了榜一

3月12日&#xff0c;微博热搜发布公告&#xff0c;对热搜词条处置规则进行了更新。 针对热搜词条长期以来存在的引战互撕、挑唆对立等不良现象&#xff0c;热搜生态秩序亟待改善&#xff0c;微博给出了两大解决方案&#xff1a; 一是更新热搜词条处置规则&#xff0c;当热搜词…

1456.定长子串中元音的最大数目

题目&#xff1a;给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。 解题思路&#xff1a; 1.右侧新进入窗口的字母为元音字母&#xff0c;左侧移出窗口的字母…

qiankun:vite/webpack项目配置

相关博文&#xff1a; https://juejin.cn/post/7216536069285429285?searchId202403091501088BACFF113F980BA3B5F3 https://www.bilibili.com/video/BV12T411q7dq/?spm_id_from333.337.search-card.all.click qiankun结构&#xff1a; 主应用base&#xff1a;vue3historyv…

3.1_8 两级页表

文章目录 3.1_8 两级页表&#xff08;一&#xff09;单级页表存在的问题&#xff08;二&#xff09;如何解决单级页表的问题&#xff1f;&#xff08;三&#xff09;两级页表的原理、地址结构&#xff08;四&#xff09;如何实现地址变换&#xff08;五&#xff09;需要注意的几…

基于51单片机的数控直流可调电源设计[proteus仿真]

181基于51单片机的数控直流可调电源设计[proteus仿真] 电源系统这个题目算是课程设计和毕业设计中常见的题目了&#xff0c;本期是一个基于51单片机的数控直流可调电源设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】&#xff0c;赞赏任意文章 2&#xffe…

动态内存管理(下)

1.C/C程序的内存开辟 C/C程序内存分配的几个区域&#xff1a; 1. 栈区&#xff08;stack&#xff09;&#xff1a;在执行函数时&#xff0c;函数内局部变量的存储单元都可以在栈上创建&#xff0c;函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中…

谈谈你对Java平台的理解?

从你接触 Java 开发到现在&#xff0c;你对 Java 最直观的印象是什么呢&#xff1f;是它宣传的 “Write once, run anywhere”&#xff0c;还是目前看已经有些过于形式主义的语法呢&#xff1f;你对于 Java 平台到底了解到什么程度&#xff1f;请你先停下来总结思考一下。 今天…

TikTok新手如何起号?环境因素与内容创新技巧

相信很多刚入行的TikTok玩家都遇到过一个难题&#xff0c;那就是账号权重低&#xff0c;播放量在个位数徘徊&#xff0c;其实都是因为还没起号&#xff01;那么具体如何起号呢&#xff1f;下面小编也给大家分享一下技巧。 一、如何起号 1、明确注册 TikTok 账号的目的 无论是…

怎么把mp4转换成amv格式?如何下载amv格式视频?

MP4&#xff08;MPEG-4 Part 14&#xff09;是一种通用的视频文件格式&#xff0c;广泛用于多媒体应用。作为MPEG-4标准的一部分&#xff0c;MP4以其卓越的压缩性能、出色的视频质量和广泛的兼容性成为当前最流行的视频格式之一。 AMV文件格式的介绍 AMV文件格式起源于中国公司…

深入理解JAVA异常(自定义异常)

目录 异常的概念与体系结构 异常的概念&#xff1a; 异常的体系结构&#xff1a; 异常的分类&#xff1a; 异常的处理 防御式编程 LBYL: EAFP: 异常的抛出 异常的捕获 异常声明throws try-catch捕获并处理 finally 面试题&#xff1a; 异常的处理流程 异常处…

计算机网络——OSI网络层次模型

计算机网络——OSI网络层次模型 应用层表示层会话层传输层TCP和UDP协议复用分用 网络层数据链路层物理层OSI网络层次模型中的硬件设备MAC地址和IP地址MAC地址IP地址MAC地址和IP地址区别 OSI网络层次模型通信过程解释端到端点到点端到端和点到点的区别 我们之前简单介绍了一下网…

sqllab第十三关通关笔记

知识点&#xff1a; 登录框处常见的语句(一般都是查询语句) where usernamewhere username""where usernam()where username("")错误注入知识回顾这里使用错误注入 通过admin admin登录发现没有任何回显信息&#xff1b;但是有成功登录的提示 通过bp抓包…

CSPM有必要换吗?目前持有PMP?

从事项目管理岗位的&#xff0c;尤其是国企工作的&#xff0c;建议换一个&#xff0c;但是有进一步发展打算的&#xff0c;可以直接考CSPM-3级更好&#xff0c;PMP持证增持的是CSPM-2级证书&#xff0c;相对来说是个初级证书&#xff0c;CSPM-3级含金量更高。 一、什么是 CSPM…

美众议院通过强制要求 TikTok 剥离的法案; 首个 AI 软件工程师上线丨 RTE 开发者日报 Vol.165

开发者朋友们大家好&#xff1a; 这里是**「RTE 开发者日报」**&#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 …

交换机/路由器的存储介质-华为

交换机/路由器的存储介质-华为 本文主要介绍网络设备的存储介质组成。 SDRAM&#xff08;同步动态随机存取内存&#xff09; 系统运行内存&#xff0c;相当于电脑的内存&#xff1b; NVRAM&#xff08;Non-Volatile Random Access Memory&#xff0c;非易失性随机访问存储器…

高等数学相关知识点整理汇总

说明&#xff1a;由于工作原因可能更新不及时&#xff0c;内容逐步完善中… 一、空间解析几何与向量代数 二、多元函数的微分学 三、重积分 四、曲线积分与曲面积分 五、常微分方程 六、无穷级数

基于HarmonyOS ArkTS中秋国庆祝福程序、以代码之名,写阖家团圆祝福

中秋、国庆双节将至&#xff0c;作为程序员&#xff0c;以代码之名&#xff0c;表达对于阖家团圆的祝福。本节将演示如何在基于HarmonyOS ArkUI的SwiperController、Image、Swiper等组件来实现节日祝福轮播程序。 规则要求具体要求如下&#xff1a; 1、根据主题&#xff0c;用…

Flutter 核心原理 - UI 框架(UI Framework)

Flutter 既能保证很高的开发效率&#xff0c;又能获得很好的性能。 这两年 Flutter 技术热度持续提高&#xff0c;整个 Flutter 生态和社区也发生了翻天覆地的变化。目前Flutter 稳定版发布到了3.0&#xff0c;现在已经支持移动端、Web端和PC端&#xff0c;通过Flutter 开发的…