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

相关文章

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

MySQL 安装配置超完整教程

《MySQL安装配置超完整教程》MySQL是一款广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典MySQLAB公司开发,目前属于Oracle公司旗下产品,:本文主要介绍MySQL安装配置... 目录一、mysql 简介二、下载 MySQL三、安装 MySQL四、配置环境变量五、配置 MySQL5.1

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

Logback在SpringBoot中的详细配置教程

《Logback在SpringBoot中的详细配置教程》SpringBoot默认会加载classpath下的logback-spring.xml(推荐)或logback.xml作为Logback的配置... 目录1. Logback 配置文件2. 基础配置示例3. 关键配置项说明Appender(日志输出器

Kali Linux安装实现教程(亲测有效)

《KaliLinux安装实现教程(亲测有效)》:本文主要介绍KaliLinux安装实现教程(亲测有效),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载二、安装总结一、下载1、点http://www.chinasem.cn击链接 Get Kali | Kal