GNU Radio教程 7.多态类型PMT

2023-11-27 10:10
文章标签 类型 教程 多态 radio gnu pmt

本文主要是介绍GNU Radio教程 7.多态类型PMT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

多态类型 (PMT)

内容:

1   介绍

1.1 更复杂的类型

2   PMT 数据类型

3   插入和提取数据

4   字符串

5   测试和比较

6   字典

7   矢量图

7.1 斑点

8   对

9   PDU

10  序列化和反序列化

11  印刷

11.1   集合符号

12  Python 对象和 PMT 之间的转换

参数多态性的概念适用于数据类型和函数。可以计算或应用于不同类型值的函数称为多态函数。可以看起来是通用类型的数据类型(例如,具有任意类型元素的列表)被指定为多态数据类型,就像进行这种专门化的通用类型一样。

PMT并不是代表某一种数据类型,可以被赋予多种类型的值。比如标签tag和消息message都是PMT的应用场景,由于它很灵活,所以用在多个进程的通信很方便。

一、简介

    多态类型PMT用作从一个块/线程到另一个块/线程的数据载体,例如流标签和消息传递接口。PMT 数据类型可以表示从布尔值到字典的各种数据。它们在流标签和消息传递接口中大量使用。从某种意义上说,PMT 是一种用更灵活的方式扩展 C++ 严格类型的方法。最完整的 PMT 函数列表当然是源代码,特别是头文件pmt.h。本页总结了 PMT 最重要的特性和要点。

    让我们直接研究一些 Python 代码,看看我们如何使用 PMT:

首先,导入pmt模块。我们分别使用和调用from_long()和from_complex()为PMT分配两个值 (P和P2)。如我们所见,它们都是同一类型!这意味着我们可以通过 SWIG 将这些变量传递给 C++,C++ 可以相应地处理这种类型。

与上面代码相同的,使用C++的代码如下:

Python 和 C++ 中有两点很突出:首先,我们可以简单地打印 PMT 的内容。这怎么可能?好吧,PMT 具有将它们的值转换为字符串的内置功能(尽管这对所有类型都是不可能的)。其次,PMT 显然必须知道它们的类型,所以我们可以查询它,例如通过调用is_complex()方法。

注意:当独立运行上述代码时,编译器命令将类似于g++ pmt_tutorial.cpp -I$(gnuradio-config-info --prefix)/include -lgnuradio-pmt -o pmt_tutorial

    在将非 PMT 值分配给 PMT 时,我们可以使用from_*方法,并使用to_*方法转换回来:

    最后一行显示了pmt::mp()速记函数。它基本上节省了一些打字,因为它from_从给定的类型推断出正确的功能。

    字符串类型在 PMT 中扮演了一个特殊的角色并且有自己的转换器:

pmt::intern 是 pmt::string_to_symbol 的另一种说法。

有关转换函数的完整列表, 请参阅PMT 文档和头文件pmt.h。

在 Python 中,我们可以使用动态类型,实际上有一个辅助函数来进行这些转换(C++ 也有一个用于转换为 PMT 的辅助函数,称为 pmt::mp(),但它的功能不那么强大,而且还不如很有用,因为在 C++ 中类型总是严格已知的):

这篇关于GNU Radio教程 7.多态类型PMT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/427479

相关文章

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas