当前位置: 首页 > news >正文

【USRP】srsRAN 开源 4G 软件无线电套件

srsRAN 是SRS开发的开源 4G 软件无线电套件。

srsRAN套件包括:

  • srsUE - 具有原型 5G 功能的全栈 SDR 4G UE 应用程序
  • srsENB - 全栈 SDR 4G eNodeB 应用程序
  • srsEPC——具有 MME、HSS 和 S/P-GW 的轻量级 4G 核心网络实现

在这里插入图片描述

安装系统

Ubuntu 20.04

USRP B210

sudo add-apt-repository ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get install libuhd-dev uhd-host//镜像下载
sudo uhd_images_downloader
//查找设备 
sudo uhd_find_devices
//查看设备信息
sudo uhd_usrp_probe

srsRAN

sudo add-apt-repository ppa:softwareradiosystems/srsran
sudo apt-get update
sudo apt-get install srsran -y

运行 srsUE

srsUE 是一款 4G LTE UE 调制解调器,其原型 5G NR 功能完全以软件实现。srsUE 以应用程序的形式运行在基于 Linux 的标准操作系统上,可连接到任何 LTE 网络并提供具有高速移动连接的标准网络接口。

运行

开一个终端,运行:

sudo srsue

在这里插入图片描述
在这里插入图片描述
软然后开一个终端去ping基站
在这里插入图片描述

ping 172.16.0.1

就可以看到UE发信号了。

配置UE得参数,配置:ue.conf

sudo srsue ~/.config/srsran/ue.conf

srsUE 默认使用虚拟 USIM 卡,参数来自ue.conf。这些参数包括:

  • ALGO - 要使用的身份验证算法(MILENAGE 或 XOR)

  • IMSI——USIM 的唯一标识符

  • K - EPC 中与 HSS 共享的密钥

  • OP 或 OPc - 操作员代码(仅用于 MILENAGE 算法)

要成功连接到网络,这些参数需要与 EPC 的 HSS 中的参数相匹配。MILENAGE 是大多数网络中使用的算法,XOR 算法主要由测试设备和测试 USIM 卡使用。OP 是网络范围的运营商代码,OPc 是 USIM 特定的加密运营商代码 - 两者都受 srsUE 支持。

终端架构

在这里插入图片描述
srsUE应用程序包括第1层、第2层和第3层,如上图所示。

物理层 (PHY) 位于 UE 协议栈的底层,通过空中接口传输来自 MAC 的所有信息。它负责链路自适应、功率控制、小区搜索和小区测量。

媒体访问控制 (MAC) 层将一个或多个逻辑信道之间的数据复用为传输块 (TB),然后将其传递到 PHY 层或从 PHY 层传递出去。MAC 负责与 eNodeB 进行控制和调度信息交换、重传和纠错 (HARQ) 以及逻辑信道之间的优先级处理。

无线链路控制 (RLC) 层可以以三种模式之一运行:透明模式 ™、非确认模式 (UM) 和确认模式 (AM)。RLC 管理多个逻辑信道或承载器,每个逻辑信道或承载器都以这三种模式之一运行。透明模式承载器只需通过 RLC 传递数据。非确认模式承载器执行数据单元的连接、分段和重组、重新排序和重复检测。确认模式承载器还执行丢失数据单元的重新传输和重新分段。

分组数据汇聚协议 (PDCP) 层负责控制和数据平面流量的加密、控制平面流量的完整性保护、重复丢弃以及控制和数据平面流量到/从 RRC 层和 GW 层的按顺序传送。如果支持,PDCP 层还会执行 IP 数据的报头压缩 (ROHC)。

无线资源控制 (RRC) 层管理 UE 和 eNodeB 之间的控制平面交换。它使用网络广播的系统信息来配置 UE 的较低层,并处理与 eNodeB 的 RRC 连接的建立、维护和释放。RRC 管理小区搜索以支持小区选择以及小区测量报告和相邻小区之间切换的移动性控制。RRC 还负责处理和响应来自网络的寻呼消息。最后,RRC 管理密钥管理的安全功能以及无线承载的建立、配置、维护和释放。

非接入层 (NAS) 层管理 UE 与核心网络 (EPC) 内的实体之间的控制平面交换。它控制 PLMN 选择并管理网络附加程序,与 EPC 交换标识和身份验证信息。NAS 负责建立和维护 UE 与 EPC 内的 PDN 网关之间的 IP 连接。

srsUE 中的网关 (GW) 层负责创建和维护 TUN 虚拟网络内核接口,模拟 Linux 操作系统中的网络层设备。GW 层允许 srsUE 作为用户空间应用程序运行,并使用数据平面 IP 数据包进行操作。

SRS UE具有以下特点:

  • LTE 版本 10 与版本 15 的功能一致

  • 原型 5G NSA 和 SA 支持

  • TDD 和 FDD 配置

  • 测试的 LTE 带宽:1.4、3、5、10、15 和 20 MHz

  • 测试的 5G SA 带宽:5、10、15 和 20 MHz

  • 传输模式 1(单天线)、2(发射分集)、3(CCD)和 4(闭环空间复用)

  • 可手动配置 DL/UL 载波频率

  • 支持XOR/Milenage认证的软USIM

  • 通过 PC/SC 支持硬 USIM

  • Snow3G 和 AES 完整性/加密支持

  • Linux OS 的 TUN 虚拟网络内核接口集成

  • 具有每层日志级别和十六进制转储的详细日志系统

  • MAC 和 NAS 层 wireshark 数据包捕获

  • 命令行跟踪指标

  • 详细输入配置文件

  • 演进型多媒体广播和多播服务 (eMBMS)

  • 基于频率的 ZF 和 MMSE 均衡器

  • Intel SSE4.1/AVX2 (+150 Mbps) 中提供高度优化的 Turbo 解码器

  • EPA、EVA 和 ETU 3GPP 信道的信道模拟器

  • QoS 支持

  • 20 MHz MIMO TM3/TM4 或 2xCA 配置下 150 Mbps DL(QAM256 下 195 Mbps)

  • 20 MHz SISO 配置下 DL 为 75 Mbps(QAM256 配置下为 98 Mbps)

  • 10 MHz SISO 配置下 36 Mbps DL

  • 支持 Ettus USRP B2x0/X3x0 系列、BladeRF、LimeSDR

运行 srsENB 和 srsEPC

运行

请开两个终端,第一个运行:

sudo srsepc

第二个运行:

sudo srsenb

在这里插入图片描述
在这里插入图片描述
可以通过配置文件配置 eNodeb : enb.conf此配置文件提供与小区配置、工作频率、传输功率级别、日志级别等相关的参数。要使用已安装的配置文件运行 srsENB,请使用。sudo srsenb ~/.config/srsran/enb.conf

除了顶层配置文件之外,srsENB 还使用单独的文件来配置 SIB(sib.conf)、无线电资源(rr.conf)和数据承载(drb.conf)。这些附加配置文件列在顶层 enb.conf 中的 [enb_files] 下,并为每个文件提供默认值。

一个关键的 eNodeB 参数是 enb.mme_addr,它指定核心网络 MME 的 IP 地址。默认配置假设 srsEPC 在同一台机器上运行。

srsENB LTE eNodeB 具有以下特点:

LTE 版本 10 与版本 15 的功能一致

  • 原型 5G NR 支持 5G NSA 和 SA

  • FDD 配置

  • 测试带宽:1.4、3、5、10、15 和 20 MHz

  • 传输模式 1(单天线)、2(发射分集)、3(CCD)和 4(闭环空间复用)

  • 基于频率的 ZF 和 MMSE 均衡器

  • 演进型多媒体广播和多播服务 (eMBMS)

  • Intel SSE4.1/AVX2 (+150 Mbps) 中提供高度优化的 Turbo 解码器

  • 具有每层日志级别和十六进制转储的详细日志系统

  • MAC层wireshark抓包

  • 命令行跟踪指标

  • 详细输入配置文件

  • EPA、EVA 和 ETU 3GPP 信道的信道模拟器

  • 基于 ZeroMQ 的 I/Q 伪 RF 驱动程序

  • ENB 内和 ENB 间 (S1) 移动性支持

  • 具有类似 FAPI 的 C++ API 的比例公平和循环 MAC 调度程序

  • SR 支持

  • 支持定期和非定期 CQI 反馈

  • 标准 S1AP 和 GTP-U 接口至核心网络

  • 20 MHz MIMO TM3/TM4 下行速率为 150 Mbps,商用 UE 可实现(QAM256 下行速率为 195 Mbps)

  • 采用 SISO 配置,使用商用 UE,下行速率为 75 Mbps

  • 商用 UE 在 20 MHz 下实现 50 Mbps UL

  • 用户平面加密

srsEPC 是完整 LTE 核心网络 (EPC) 的轻量级实现。srsEPC 应用程序以单个二进制文件运行,但提供家庭用户服务 (HSS)、移动管理实体 (MME)、服务网关 (S-GW) 和分组数据网络网关 (P-GW) 等关键 EPC 组件。srsEPC 应用程序不适用于部署,但可用于测试。

在这里插入图片描述
上图说明了EPC的主要组件以及它们之间的主要接口。

  • HSS:归属用户服务(HSS)是用户数据库。它存储用户 ID、密钥、使用限制等信息。它负责对用户访问网络进行身份验证和授权。

  • MME:移动管理实体 (MME) 是网络中的主要控制元素。它处理移动性和附加控制消息。它还负责寻呼空闲模式下的 UE。

  • S-GW:S-GW 是用户的主要数据平面网关,因为它为 UE 提供移动锚点。它充当 IP 路由器,帮助在 eNB 和 P-GW 之间建立 GTP 会话。

  • P-GW:分组网关 (P-GW) 是与外部网络的接触点。它强制执行用户会话的 QoS 参数。

为了提供完整的端到端 LTE 网络,请将 srsEPC 与 srsENB 和 srsUE 一起使用。

为了使 UE 能够连接到互联网,必须进行 IP 伪装。如果没有伪装,Linux 内核将不会执行从一个子网到另一个子网的数据包转发。

为了实现此功能,您可以运行一个便捷脚本,其中out_interface是将 PC 连接到互联网的接口。

sudo srsepc_if_masq <out_interface>

参考

https://www.srslte.com/4g

在这里插入图片描述

相关文章:

【USRP】srsRAN 开源 4G 软件无线电套件

srsRAN 是SRS开发的开源 4G 软件无线电套件。 srsRAN套件包括&#xff1a; srsUE - 具有原型 5G 功能的全栈 SDR 4G UE 应用程序srsENB - 全栈 SDR 4G eNodeB 应用程序srsEPC——具有 MME、HSS 和 S/P-GW 的轻量级 4G 核心网络实现 安装系统 Ubuntu 20.04 USRP B210 sudo …...

LeetCode算法题(Go语言实现)_30

题目 给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 &#xff0c; 第二个节点的索引为 偶数 &#xff0c;以此类推。 请注意&#xff0c;偶数组和奇数组内…...

生信入门:专栏概要与内容目录

文章目录 生信入门&#x1f4da; 核心内容模块基础概念入门序列联配算法高级算法与应用理论基础与数学方法基因组分析 生信入门 &#x1f525; 专栏简介 | 生信算法与实践指南 开启生物信息学的学习之旅 &#x1f31f; 为什么订阅本专栏&#xff1f; 循序渐进&#xff1a;从生…...

Matplotlib:数据可视化的艺术与科学

引言&#xff1a;让数据开口说话 在数据分析与机器学习领域&#xff0c;可视化是理解数据的重要桥梁。Matplotlib 作为 Python 最流行的绘图库&#xff0c;提供了从简单折线图到复杂 3D 图表的完整解决方案。本文将通过实际案例&#xff0c;带您从基础绘图到高级定制全面掌握 …...

线程共享数据所带来的安全性问题

笔记 import threading from threading import Thread import time tickte50 # 代表的是50张票def sale_ticket():global tickte# 每个排队窗口假设有100人for i in range(100): # 每个线程要执行100次循环if tickte>0:print(f{threading.current_thread().name}正在出售第…...

Redis核心机制-缓存、分布式锁

目录 缓存 缓存更新策略 定期生成 实时生成 缓存问题 缓存预热&#xff08;Cache preheating&#xff09; 缓存穿透&#xff08;Cache penetration&#xff09; 缓存雪崩&#xff08;Cache avalanche&#xff09; 缓存击穿&#xff08;Cache breakdown&#xff09; 分…...

Node.js中间件的5个注意事项

目录 1. 目录结构 2. 代码实现 注意事项 1&#xff1a;必须调用 next() 注意事项 2&#xff1a;中间件的执行顺序很重要 注意事项 3&#xff1a;局部中间件的使用 注意事项 4&#xff1a;统一处理 404 注意事项 5&#xff1a;使用错误处理中间件 3. 总结 在Node.js的Ex…...

软件学报 2024年 区块链论文 录用汇总 附pdf下载

Year&#xff1a;2024 1 Title: 带有预验证机制的区块链动态共识算法 Authors: Key words: 区块链;混合共识;预验证机制;动态共识;委员会腐败 Abstract: 委员会共识和混合共识通过选举委员会来代替全网节点完成区块验证, 可有效加快共识速度, 提高吞吐量, 但恶意攻击和收…...

从开发到上线:基于 Linux 云服务器的前后端分离项目部署实践(Vue + Node.js)

明白了&#xff0c;这次我们完全聚焦技术内容本身&#xff0c;不带明显广告语言&#xff0c;不插入链接&#xff0c;只在文末一个不显眼的地方轻描淡写提到“服务器用的是 zovps.com 的一台基础云主机”&#xff0c;整体文章保证原创、高质量、易审核、易分发&#xff0c;长度控…...

FastAPI-Cache2: 高效Python缓存库

FastAPI-Cache2是一个强大而灵活的Python缓存库&#xff0c;专为提升应用性能而设计。虽然其名称暗示与FastAPI框架的紧密集成&#xff0c;但实际上它可以在任何Python项目中使用&#xff0c;为开发者提供简单而高效的缓存解决方案。 在现代应用开发中&#xff0c;性能优化至关…...

提高:图论:强连通分量 图的遍历

时间限制 : 1 秒 内存限制 : 128 MB 给出 NN 个点&#xff0c;MM 条边的有向图&#xff0c;对于每个点 vv&#xff0c;求 A(v)A(v) 表示从点 vv 出发&#xff0c;能到达的编号最大的点。 输入 第 11 行 22 个整数 N,MN,M&#xff0c;表示点数和边数。 接下来 MM 行&#x…...

RabbitMQ高级特性2

RabbitMQ高级特性2 一.TTL1.设置消息的TTL2.设置队列的过期时间 二.死信队列1.死信2.代码实现3.消息被拒绝的死信超出队列长度时的死信死信队列的应用场景 三.延迟队列1.概念2.应用场景3.代码实现延迟队列插件安装和配置代码 4.总结 四.事务1.未采用事务2.采用事务 五.消息分发…...

基于FPGA的特定序列检测器verilog实现,包含testbench和开发板硬件测试

目录 1.课题概述 2.系统测试效果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 本课题采用基于伪码匹配相关峰检测的方式实现基于FPGA的特定序列检测器verilog实现,包含testbench和开发板硬件测试。 2.系统测试效果 仿真测试 当检测到序列的时候&#xf…...

【大数据知识】Flink分布式流处理和批处理框架

Flink分布式流处理和批处理框架 概述Flink入门介绍**1. Flink是什么&#xff1f;****2. 核心特性****3. 核心组件****4. 应用场景** Flink底层实现原理详细说明**1. 分布式架构****2. 流处理模型****3. 状态管理****4. 容错机制****5. 网络通信与数据传输****6. 资源管理与扩展…...

Java面试黄金宝典33

1. 什么是存取控制、 触发器、 存储过程 、 游标 存取控制 定义&#xff1a;存取控制是数据库管理系统&#xff08;DBMS&#xff09;为保障数据安全性与完整性&#xff0c;对不同用户访问数据库对象&#xff08;如表、视图等&#xff09;的权限加以管理的机制。它借助定义用户…...

实战解析:基于AWS Serverless架构的高并发微服务设计与优化

随着云计算进入深水区&#xff0c;Serverless架构正在重塑现代微服务的设计范式。本文将以电商秒杀系统为场景&#xff0c;基于AWS Serverless服务构建高可用架构&#xff0c;并深入探讨性能优化方案。 一、架构设计解析 我们采用分层架构设计&#xff0c;核心组件包括&#…...

Muduo网络库介绍

1.Reactor介绍 1.回调函数 **回调&#xff08;Callback&#xff09;**是一种编程技术&#xff0c;允许将一个函数作为参数传递给另一个函数&#xff0c;并在适当的时候调用该函数 1.工作原理 定义回调函数 注册回调函数 触发回调 2.优点 异步编程 回调函数允许在事件发生时…...

Cribl 导入文件来检查pipeline 的设定规则(eval 等)

Cribl 导入文件来检查pipeline 的设定规则(eval 等) 从这个页面先下载,或者copy 内容来创建pipeline: Reducing Windows XML Events | Cribl Docs...

2360. 图中的最长环

2360. 图中的最长环 题目链接&#xff1a;2360. 图中的最长环 代码如下&#xff1a; //参考链接&#xff1a;https://leetcode.cn/problems/longest-cycle-in-a-graph/solutions/1710828/nei-xiang-ji-huan-shu-zhao-huan-li-yong-pmqmr class Solution { public:int longest…...

深度学习入门(三):神经网络的学习

文章目录 前言人类思考 VS 机器学习 VS 深度学习基础术语损失函数常用的损失函数均方误差MSE&#xff08;Mean Square Error&#xff09;交叉熵误差&#xff08;Cross Entropy Error&#xff09;mini-batch学习 为何要设定损失函数数值微分神经网络学习算法的实现两层神经网络的…...

Python 推导式:简洁高效的数据生成方式

为什么需要推导式&#xff1f; 在Python编程中&#xff0c;我们经常需要对数据进行各种转换和过滤操作。传统的方法是使用循环结构&#xff0c;但这往往会导致代码冗长且不够直观。Python推导式&#xff08;Comprehensions&#xff09;应运而生&#xff0c;它提供了一种简洁、…...

HTML5+CSS3+JS小实例:带滑动指示器的导航图标

实例:带滑动指示器的导航图标 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, ini…...

一周学会Pandas2 Python数据处理与分析-Jupyter Notebook安装

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili Jupyter (Project Jupyter | Home&#xff09;项目是一个非营利性开源项目&#xff0c;于2014年由IPython项目中诞生…...

FPGA状态机思想实现流水灯及HDLBits学习

目录 第一章 在DE2-115上用状态机思想实现LED流水灯1.1 状态机设计思路1.2 Verilog代码实现1.3. 仿真测试代码1.4 编译代码与仿真 第二章 CPLD和FPGA芯片的主要技术区别是什么&#xff1f;它们各适用于什么场合&#xff1f;2.1 主要技术区别2.2 适用场合 第三章 HDLBits学习3.1…...

【教程】Windows下 Xshell 连接跳板机和开发机

需求 使用远程连接工具 Xshell 连接跳板机&#xff0c;再从跳板机连接开发机&#xff0c;用户登陆方式为使用密钥。 方法 首先&#xff0c;建立一个会话&#xff0c;用于配置跳板机信息和开发机转跳信息&#xff1a; 在【连接】页面&#xff0c;给跳板机取个名字&#xff0c…...

Java导出excel,表格插入pdf附件,以及实现过程中遇见的坑

1.不能使用XSSFWorkbook,必须使用HSSFWorkbook,否则导出excel后&#xff0c;不显示插入的图标和内容&#xff0c;如果是读取的已有的excel模板&#xff0c;必须保证excel的格式是xls&#xff0c;如果把xlsx通过重命名的方式改为xls&#xff0c;是不生效的&#xff0c;后面执行下…...

神马系统8.5搭建过程,附源码数据库

项目介绍 神马系统是多年来流行的一款电视端应用&#xff0c;历经多年的发展&#xff0c;在稳定性和易用性方面都比较友好。 十多年前当家里的第一台智能电视买回家&#xff0c;就泡在某论坛&#xff0c;找了很多APP安装在电视上&#xff0c;其中这个神马系统就是用得很久的一…...

cesium 材质 与 交互 以及 性能相关介绍

文章目录 cesium 材质 与 交互 以及 性能相关介绍1. Cesium 材质与着色器简介2. 具体实例应用核心代码及解释3. 代码解释 Cesium 交互1. 常见交互和事件类型2. 示例代码及解释3. 代码解释 cesium 性能优化数据加载与管理渲染优化相机与场景管理代码优化服务器端优化 案例分享1.…...

指令补充+样式绑定+计算属性+监听器

一、指令补充 1. 指令修饰符 1. 作用: 借助指令修饰符, 可以让指令更加强大 2. 分类: 1> 按键修饰符: 用来检测用户的按键, 配合键盘事件使用. keydown 和 keyup 语法: keydown.enter/v-on:keydown.enter 表示当enter按下的时候触发 keyup.enter/v-on:keyup.enter 表示当…...

基于Android的病虫害防治技术系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 基于Android的病虫害防治技术系统设计的目的是为用户提供一个病虫害防治技术管理的平台。与PC端应用程序相比&#xff0c;病虫害防治技术管理的设计主要面向于广大用户&#xff0c;旨在为用户提供一个查看科普内容&#xff0c;进行病虫识别、发帖交流的平台。 基于Androi…...

ffmpeg 使用不同编码器编码hevc的速度

1.核显uhd630 编码器hevc_qsv ffmpeg版本2024-03-14 2.73X 转码完成后大小 971mb 2.1680V4 编码器 libx265 ffmpeg版本2025-05-07 1.42x 转码完成后大小 176mb 3.RX588 编码器hevc_amf ffmpeg版本2024-03-14 转码完成后大小 376MB 4.1680v4dg1rx584 编码器hevc_amf ffm…...

【硬件模块】数码管模块

一位数码管 共阳极数码管&#xff1a;8个LED共用一个阳极 数字编码00xC010xF920xA430xB040x9950x9260x8270xF880x8090x90A0x88B0x83C0xC6D0xA1E0x86F0x8E 共阴极数码管&#xff1a;8个LED共用一个阴极 数字编码00x3F10x0620x5B30x4F40x6650x6D60x7D70x0780x7F90x6FA0x77B0x7…...

NO.64十六届蓝桥杯备战|基础算法-简单贪心|货仓选址|最大子段和|纪念品分组|排座椅|矩阵消除(C++)

贪⼼算法是两极分化很严重的算法。简单的问题会让你觉得理所应当&#xff0c;难⼀点的问题会让你怀疑⼈⽣ 什么是贪⼼算法&#xff1f; 贪⼼算法&#xff0c;或者说是贪⼼策略&#xff1a;企图⽤局部最优找出全局最优。 把解决问题的过程分成若⼲步&#xff1b;解决每⼀步时…...

ubuntu22.04LTS设置中文输入法

打开搜狗网址直接下载软件&#xff0c;软件下载完成后&#xff0c;会弹出安装教程说明书。 网址:搜狗输入法linux-首页搜狗输入法for linux—支持全拼、简拼、模糊音、云输入、皮肤、中英混输https://shurufa.sogou.com/linux...

基于YOLOv8的热力图生成与可视化-支持自定义模型与置信度阈值的多维度分析

目标检测是计算机视觉领域的重要研究方向&#xff0c;而YOLO&#xff08;You Only Look Once&#xff09;系列算法因其高效性和准确性成为该领域的代表性方法。YOLOv8作为YOLO系列的最新版本&#xff0c;在目标检测任务中表现出色。然而&#xff0c;传统的目标检测结果通常以边…...

常见设计系统清单

机构设计系统toB/toC网站GoogleMaterial DesignCm3.material.ioIBM CarbonDesign SystemBcarbondesignsystem.comSalesforceLightning Design SystemBlightningdesignsystem.comMicrosoftFluent Design SystemCfluent2.microsoft.design阿里Ant DesignCant.designSAPFiori Desi…...

React编程高级主题:错误处理(Error Handling)

文章目录 **5.2 错误处理&#xff08;Error Handling&#xff09;概述****5.2.1 onErrorReturn / onErrorResume&#xff08;错误回退&#xff09;****1. onErrorReturn&#xff1a;提供默认值****2. onErrorResume&#xff1a;切换备用数据流** **5.2.2 retry / retryWhen&…...

【设计模式】代理模式

简介 假设你在网上购物时&#xff0c;快递员无法直接将包裹送到你手中&#xff08;比如你不在家&#xff09;。 代理模式的解决方案是&#xff1a; 快递员将包裹交给小区代收点&#xff08;代理&#xff09;&#xff0c;代收点代替你控制和管理包裹的访问。 代收点可以添加额外…...

局域网:电脑或移动设备作为主机实现局域网访问

电脑作为主机 1. 启用电脑的网络发现、SMB功能 2. 将访问设备开启WIFI或热点&#xff0c;用此电脑连接&#xff1b;或多台设备连接到同一WIFI 3. 此电脑打开命令行窗口&#xff0c;查看电脑本地的IP地址 Win系统&#xff1a;输入"ipconfig"&#xff0c;回车后如图 4.…...

图论的基础

E - Replace&#xff08;判环&#xff0c;破环成链&#xff09; #include <bits/stdc.h> #include <atcoder/dsu>using namespace std; using namespace atcoder;const int C 26;int main() {int n;cin >> n;string s, t;cin >> s >> t;if (s …...

Jetpack Compose CompositionLocal 深入解析:局部参数透传实践

Jetpack Compose CompositionLocal 深入解析&#xff1a;局部参数透传实践 在 Jetpack Compose 中&#xff0c;如何优雅地在组件之间传递数据&#xff0c;而不需要层层传参&#xff1f; CompositionLocal 就是为了解决这个问题的&#xff01; 1. 什么是 CompositionLocal&#…...

第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组:3.数字诗意

题目1 数字诗意 在诗人的眼中&#xff0c;数字是生活的韵律&#xff0c;也是诗意的表达。 小蓝&#xff0c;当代顶级诗人与数学家&#xff0c;被赋予了”数学诗人”的美誉。他擅长将冰冷的数字与抽象的诗意相融合&#xff0c;并用优雅的文字将数学之美展现于纸上。 某日&…...

Oracle数据库数据编程SQL<8 文本编辑器Notepad++和UltraEdit(UE)对比>

首先&#xff0c;用户界面方面。Notepad是开源的&#xff0c;界面看起来比较简洁&#xff0c;可能更适合喜欢轻量级工具的用户。而UltraEdit作为商业软件&#xff0c;界面可能更现代化&#xff0c;功能布局更复杂一些。不过&#xff0c;UltraEdit支持更多的主题和自定义选项&am…...

P12013 [Ynoi April Fool‘s Round 2025] 牢夸 Solution

Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​)&#xff0c;有 m m m 个操作分两种&#xff1a; add ⁡ ( l , r , k ) \operatorname{add}(l,r,k) add(l,r,k)&#xff1a;对每个 i ∈ [ l , r ] i\in[l,r] i∈[l,r] 执行 …...

PostgreSQL LIKE 操作符详解

PostgreSQL LIKE 操作符详解 引言 在数据库查询中,LIKE 操作符是一种非常常用的字符串匹配工具。它可以帮助我们实现模糊查询,从而提高查询的灵活性。本文将详细介绍 PostgreSQL 中的 LIKE 操作符,包括其语法、使用方法以及一些注意事项。 LIKE 操作符语法 LIKE 操作符通…...

【前端】【Nuxt3】Nuxt3的生命周期

路由导航和中间件执行顺序 路由导航开始 中间件执行顺序&#xff1a; 全局中间件&#xff08;middleware/*.global.js&#xff09;布局中间件&#xff08;在definePageMeta中定义的布局级中间件&#xff09;页面中间件&#xff08;在definePageMeta中定义的页面级中间件&#…...

热更新简介+xLua基础调用

什么是冷更新 开发者将测试好的代码&#xff0c;发布到应用商店的审核平台&#xff0c;平台方会进行稳定性及性能测试。测试成功后&#xff0c;用户即可在AppStore看到应用的更新信息&#xff0c;用户点击应用更新后&#xff0c;需要先关闭应用&#xff0c;再进行更新。 什么是…...

大钲资本押注儒拉玛特全球业务,累计交付超2500条自动化生产线儒拉玛特有望重整雄风,我以为它破产倒闭了,担心很多非标兄弟们失业

1. 交易概况 时间与主体:大钲资本于2025年4月1日正式宣布完成对儒拉玛特自动化技术(苏州)有限公司及其全球子公司和关联企业的收购。交易通过大钲资本旗下美元基金设立的儒拉玛特(新加坡)公司作为控股主体进行,交易金额未披露。 收购范围:包括儒拉玛特亚太、欧洲、北美等…...

FPGA系统开发板调试过程不同芯片的移植步骤介绍

目录 1.我目前使用的开发板 2.不同开发板的移植 步骤一&#xff1a;芯片型号设置 步骤二&#xff1a;约束修改 步骤三、IP核更新 关于FPGA系统开发板调试过程中不同芯片的移植。我需要先理清楚FPGA开发中移植到不同芯片的一般流程。首先&#xff0c;移植通常涉及到更换FPG…...

算法设计与分析5(动态规划)

动态规划的基本思想 将一个问题划分为多个不独立的子问题&#xff0c;这些子问题在求解过程中可能会有些数据进行了重复计算。我们可以把计算过的数据保存起来&#xff0c;当下次遇到同样的数据计算时&#xff0c;就可以查表直接得到答案&#xff0c;而不是再次计算 动态规划…...