初识REDHAWK

news2024/11/17 16:17:28

文章目录

  • 前言
  • 一、什么是 REDHAWK?
    • 1、概述
    • 2、REDHAWK 的应用
  • 二、REDHAWK 的流程管理和交互方法
    • 1、流程管理
    • 2、数据传输
  • 三、入门
    • 1、安装 REDHAWK
    • 2、IDE 快速入门
      • ①、启动 REDHAWK IDE
      • ②、打开 Chalkboard
      • ③、创建信号发生器
      • ④、测试组件的输入/输出响应


前言

REDHAWK 是一个基于 SCA (Software Communications Architecture) 标准的开源软件定义无线电 (SDR) 框架SCA 是一套定义了软件无线电组件如何交互和通信的标准,目的是提高软件无线电系统的互操作性和可重用性。REDHAWK 利用 SCA 的原则来支持广泛的无线电频谱处理应用,允许开发者构建、部署、和管理复杂的信号处理应用。通过使用 SCA,REDHAWK 提供了一个灵活和动态的环境,使得无线电和处理组件可以轻松地集成和配置。

因此,为了实现对波形在 SCA 上面进行部署,因此有必要学习一下 REDHAWK。


一、什么是 REDHAWK?

REDHAWK 是一个软件包,支持实时、支持网络的软件定义无线电 (SDR) 的设计、开发、部署、管理和升级

1、概述

REDHAWK 软件包由四个主要部分组成:

  • 一组用于管理软件应用程序分布式部署的程序
  • 一组工具,允许开发人员轻松创建可在 REDHAWK 环境中部署的软件
  • 一组用于检查和分析正在运行的 REDHAWK 系统内部情况的工具。
  • 一组信号处理构建块,开发人员可以将其组合成更大的定制应用程序

在 REDHAWK 中开发的信号处理应用程序可以部署在从单个 Linux 计算机到支持网络的 Linux 计算机系统的任何设备上。REDHAWK 解决了复杂的“幕后”硬件/软件集成挑战,以便开发人员可以专注于应用程序开发:基本 REDHAWK 使用不需要对硬件和软件系统的深入了解

REDHAWK 还标准化了数据接口、硬件管理和配置管理,这有利于非分布式应用程序开发人员。

2、REDHAWK 的应用

REDHAWK 是为开发 SDR 而设计的。相对于硬件定义的同类产品,SDR 具有高度可重新配置的优势。通过使用 REDHAWK,SDR 开发人员可以专注于信号处理算法,而不必担心在网络环境中部署此类算法的责任。

虽然 REDHAWK 旨在支持 SDR 的数据流需求,但它还有助于通过定义明确的通用接口等功能将其他软件和硬件资产集成到计算系统中

二、REDHAWK 的流程管理和交互方法

这里讨论 REDHAWK 的基本分解和部署以及用于支持基本功能单元之间通信的中间件

1、流程管理

REDHAWK 中的基本功能单元是组件,它代表主机上的单个进程。该组件支持初始化配置查询测试连接到其他组件以及终止组件所需的接口。它还管理一个处理线程,其中包含组件的功能输入/输出数据的缓冲。组件可以用 C++、Python 或 Java 编写。

波形是要作为应用程序部署到 REDHAWK 系统上的组件的逻辑集合,并在 XML 文件中定义波形允许开发人员创建由组件组成的算法将算法组合为单独的进程使 REDHAWK 能够将这些组件适当地部署到网络环境中。REDHAWK 通过为组件找到合适的主机、将组件部署到该主机以及在组件运行后对其进行管理来支持分布式计算。

2、数据传输

跨网络的数据交换是 REDHAWK 核心功能不可或缺的一部分。数据交换的管理是通过“中间件”来处理的“中间件”是一种复杂的软件基础设施,它提供了一种通用语言,可以通过任意媒体在任意语言之间有效地传输数据为 REDHAWK 选择的中间件是 omniORB,它是 CORBA(通用对象请求代理架构)规范的实现。REDHAWK 使用 omniORB,因为它比其他中间件实现提供了显著的技术优势。

使用 omniORB 的主要好处包括:

  • omn​​iORB 是一个易于构建和安装的小软件包。它默认支持 Python 和 C++,并且可以轻松扩展以支持 Java。
  • omn​​iORB 数据传输非常高效。omn​​iORB 通信机制的可插拔特性允许使用多种底层传输协议,这些协议可以根据部署环境进行定制。例如,位于同一主机上的组件使用 Unix 域套接字来传输数据,作为基于 IP 的通信的替代方案。
  • CORBA 处理不同主机类型之间的数据转换(例如,32 位与64 位系统以及大端与小端)。
  • CORBA 支持 Any 类型,允许接口之间的通用兼容性。
  • omn​​iORB 实现了开放标准 CORBA,允许系统开发人员使用他们可能想要用于其基础设施的任何其他 CORBA 实现来与底层 REDHAWK 系统进行交互。

总之,omniORB 是一个简单高效的中间件包,允许 C++、Python 或 Java 程序相互交互。REDHAWK 框架缓解了 CORBA 的缺点,而 CORBA 固有的优点,如平台独立性、泛型类型支持、强类型接口和开放标准,为 REDHAWK 带来了强大的功能。

三、入门

1、安装 REDHAWK

REDHAWK 核心框架和 IDE 的安装是通过一组 RPM 进行的。使用 RPM 可以自动安装 REDHAWK 运行所需的依赖项以及自动安装核心框架和 IDE。

我的本地环境为虚拟机中 CentOS7.4 + REDHAWK 2.3.1,安装步骤请参考官方教程:REDHAWK 2.3.1 安装步骤

2、IDE 快速入门

下面进行 REDHAWK 信号处理开发环境的简单示例

以下部分讨论如何启动 REDHAWK IDE、如何打开黑板、如何创建信号发生器以及如何测试组件的输入/输出响应。

①、启动 REDHAWK IDE

<1>、使用以下命令启动 REDHAWK IDE:

rhide

<2>、如果提示指定工作区位置,请选择适当的位置并选择“确定”。
在这里插入图片描述
打开后的主界面如下:
在这里插入图片描述

②、打开 Chalkboard

从 REDHAWK Explorer 视图中展开 Sandbox,然后双击 Chalkboard。
在这里插入图片描述

③、创建信号发生器

<1>、从 Chalkboard Palette 中,将 SigGen (python) 组件拖到 Chalkboard 画布中。

  • 在 Palette 中,如果未显示 SigGen 组件,请在 Components 下左键单击rh文件夹以显示可用组件的列表。
  • 如果未显示 Python 实现,请通过左键单击组件名称左侧的箭头来展开实现列表。显示列表后,左键单击所需的实施。
  • 当组件加载完成后,其背景颜色为蓝色。
    在这里插入图片描述
    <2>、右键单击 SigGen 组件,然后单击 “Start”。
    在这里插入图片描述
    <3>、右键单击 SigGen 组件,然后单击“Show Properties”。从“Properties”视图中,将频率更改为 20Hz,将幅度更改为 1V
    在这里插入图片描述
    <4>、右键单击 SigGen 的 “dataFloat_out” 端口,然后单击 “Plot Port Data”,可以看到 20Hz,幅度为1 V的正弦波
    在这里插入图片描述
    <5>、右键单击 SigGen 组件,然后单击 “停止”。

④、测试组件的输入/输出响应

<1>、从 Chalkboard Palette 中,将 HardLimit (python) 组件拖动到 Chalkboard 画布中。
在这里插入图片描述
<2>、单击并从 SigGen的dataFloat_out 端口拖动到 HardLimit dataFloat_in 端口
在这里插入图片描述
<3>、右键单击 SigGen 组件,然后单击 “Start”,右键单击 HardLimit 组件,然后单击 “Start”。
在这里插入图片描述
<4>、右键单击 HardLimit 的 dataFloat_out 端口,然后单击 “Plot Port Data”。

现在打开两个绘图端口视图,每个绘图端口对应一个视图。

在这里插入图片描述
<5>、右键单击 SigGen 组件,然后单击“Show Properties”,从“Properties”视图中,将幅度更改为 5,HardLimit dataFloat_out 端口的绘图端口视图现在将输出限制为 1。
在这里插入图片描述


我的qq:2442391036,欢迎交流!


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

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

相关文章

跨平台是什么意思?——跟老吕学Python编程

跨平台是什么意思&#xff1f;——跟老吕学Python编程 跨平台跨平台释义跨平台软件数据库管理系统(DBMS)&#xff1a;网站服务器、应用程序服务器&#xff1a;网络浏览器&#xff1a; 跨平台编程语言跨平台详细解说跨平台应用前景 跨平台 计算机领域术语 跨平台概念是软件开发中…

Python 强大邮件处理库 Imbox

目录 IMAP Mailbox Imbox 安装 特性 提取邮件内容 处理附件 安全性 示例 1&#xff1a;读取收件箱中的邮件 2&#xff1a;搜索并下载附件 3&#xff1a;连接到IMAP服务器获取所有邮件 结论 IMAP Mailbox IMAP&#xff08;Internet Message Access Protocol&#x…

Ps:清理

清理 Purge命令位于“编辑”菜单下&#xff0c;它主要用于释放 Photoshop 使用的内存资源&#xff0c;有助于提高系统的性能。 通过使用“清理”命令&#xff0c;用户可以有效管理 Photoshop 的资源使用&#xff0c;特别是在处理大型文件或进行长时间编辑会话时。 定期清理可以…

什么是GoogLeNet,亮点是什么,为什么是这个结构?

GooLeNet 亮点 最明显的亮点就是引入了Inception&#xff0c;初衷是多卷积核增加特征的多样性&#xff0c;提高泛化能力 &#xff0c;比如&#xff0c;最下边是一个输入层&#xff0c;然后这个输入分别传递给1*1&#xff0c;3 * 3 &#xff0c;5 * 5和一个最大池化层&#xff…

盘点5个正规靠谱的赚钱平台,有手机或电脑就可以增收

找到一个真正靠谱的赚钱平台是一个不错的起点。接下来的一些建议&#xff0c;都是为了让你能在互联网的宇宙世界中&#xff0c;平稳地走出创收的第一步。 1&#xff0c;自媒体写文章 写文章是一项非常适合文学爱好者的兼职工作。如果你拥有良好的文学功底和写作技巧&#xff…

智慧公厕_智慧化公厕_智慧的公厕_公厕智慧化_智能智慧公厕_智慧化的公厕

在当代城市发展中&#xff0c;智慧公厕作为公共厕所信息化的主要表现形式&#xff0c;正在以惊人的速度推动着城市公共环境卫生的智慧化进程。作为智慧城市体系的重要组成部分&#xff0c;智慧公厕不仅提供方便、卫生的公共厕所服务&#xff0c;还提升了城市整体形象&#xff0…

人民网(人民号)如何发布文章新闻,人民网怎么投稿,附人民日报价格多少钱

最近有很多朋友问到一个问题&#xff0c;就是人民网如何发布文章新闻&#xff0c;以及人民网怎么投稿。作为一个专业的媒体发稿平台&#xff0c;媒介多多网为大家提供了一个非常好的解决方案。 首先&#xff0c;人民网作为我国权威媒体之一&#xff0c;其新闻发布渠道非常严谨…

【最新版】ChatGPT/GPT4科研应用与AI绘图论文写作(最新增加Claude3、Gemini、Sora、GPTs技术及AI领域中的集中大模型的最新技术)

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

Vue3自定义Hooks一键换肤教程

核心 使用CSS变量, 准备两套CSS颜色, 一套是在 light模式下的颜色,一套是在dark模式下的颜色dark模式下的 CSS 权重要比 light 模式下的权重高, 不然当我们给html添加自定义属性[data-themedark]的时候, dark模式权重比light低,会一直不起效果当我们点击 dark 模式的时候, 给 …

消息队列 MQ

文章目录 1. MQ 相关概念1.1 什么是 MQ1.2 为什么要用 MQ1.3 MQ 分类1.4 MQ 的选择 1. MQ 相关概念 1.1 什么是 MQ MQ(message queue)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&#xff0c;只不过队列中存放的内容是 message 而已&#x…

Linux--文件类型与权限

Linux上一切皆文件; 蓝色的是目录文件 Linux不以文件的扩展名来区分文件类型,而是在文件属性中有一列专门记录文件类型. ls -l 可以查看 普通文件:.c .cpp .h .txt .pdf .xls (-) 目录文件:文件夹 (d) 管道文件:用于进程间通信的一种文件 (p) 链接文件:相当于W…

[ROS 系列学习教程] rosbag C++ API

ROS 系列学习教程(总目录) 本文目录 一、rosbag::Bag1.1 常用接口1.2 其他接口 二、rosbag::View2.1 常用接口2.1.1 代码示例 rosbag 的 C API 主要有两个类&#xff0c;用于写bag文件的Bag类&#xff0c;和用于读bag文件的View类。 一、rosbag::Bag 用于写bag文件。 头文件…

【C语言步行梯】分支语句if...else、switch详谈

&#x1f3af;每日努力一点点&#xff0c;技术进步看得见 &#x1f3e0;专栏介绍&#xff1a;【C语言步行梯】专栏用于介绍C语言相关内容&#xff0c;每篇文章将通过图片代码片段网络相关题目的方式编写&#xff0c;欢迎订阅~~ 文章目录 什么是语句&#xff1f;引入分支语句&am…

力扣hot10---大根堆+双端队列

题目&#xff1a; 大根堆思路&#xff1a; 维护最大值&#xff0c;应该首先想到大根堆。C中对应着priority_queue&#xff0c;这里用pair<int,int>来记录对应的值和在nums中的索引。所以有priority_queue<pair<int,int>> q。在大根堆中&#xff0c;用q.top()…

C++的类与对象(三):构造函数、析构函数、对象的销毁顺序

目录 类的6个默认成员函数 构造函数 语法 特性 析构函数 特性 对象的销毁顺序​​​​​​​​​​​​​​ 类的6个默认成员函数 问题&#xff1a;一个什么成员都没的类叫做空类&#xff0c;空类中真的什么都没有吗&#xff1f; 基本概念&#xff1a;任何类在什么都不…

使用swagger生成接口文档

使用swagger生成接口文档 有时候一份清晰明了的接口文档能够极大地提高前后端双方的沟通效率和开发效率。本文将介绍如何使用swagger生成接口文档。 swagger生成接口文档 swagger介绍 Swagger本质上是一种用于描述使用JSON表示的RESTful API的接口描述语言。Swagger与一组开…

MT笔试题

前言 某团硬件工程师的笔试题&#xff0c;个人感觉题目的价值还是很高的&#xff0c;分为选择题和编程题&#xff0c;选择题考的是嵌入式基础知识&#xff0c;编程题是两道算法题&#xff0c;一道为简单难度&#xff0c;一道为中等难度 目录 前言选择题编程题 选择题 C语言中变…

突破编程_前端_JS编程实例(目录导航)

1 开发目标 目录导航组件旨在提供一个滚动目录导航功能&#xff0c;使得用户可以方便地通过点击目录条目快速定位到对应的内容标题位置&#xff0c;同时也能够随着滚动条的移动动态显示当前位置在目录中的位置&#xff1a; 2 详细需求 2.1 标题提取与目录生成 组件需要能够自…

【PHP+代码审计】PHP基础——运算符

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

数据分析-Pandas两种分组箱线图比较

数据分析-Pandas两种分组箱线图比较 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表&am…