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

相关文章

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

spring AMQP代码生成rabbitmq的exchange and queue教程

《springAMQP代码生成rabbitmq的exchangeandqueue教程》使用SpringAMQP代码直接创建RabbitMQexchange和queue,并确保绑定关系自动成立,简... 目录spring AMQP代码生成rabbitmq的exchange and 编程queue执行结果总结s

从基础到高阶详解Python多态实战应用指南

《从基础到高阶详解Python多态实战应用指南》这篇文章主要从基础到高阶为大家详细介绍Python中多态的相关应用与技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、多态的本质:python的“鸭子类型”哲学二、多态的三大实战场景场景1:数据处理管道——统一处理不同数据格式

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

C#之枚举类型与随机数详解

《C#之枚举类型与随机数详解》文章讲解了枚举类型的定义与使用方法,包括在main外部声明枚举,用于表示游戏状态和周几状态,枚举值默认从0开始递增,也可手动设置初始值以生成随机数... 目录枚举类型1.定义枚举类型(main外)2.使用生成随机数总结枚举类型1.定义枚举类型(main外)enum 类型名字

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda