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

[学习] RTKLib详解:rtcm2.c、rtcm3.c、rtcm3e与rtcmn.c

RTKLib详解:rtcm2.crtcm3.crtcm3ertcmn.c


本文是 RTKLlib详解 系列文章的一篇,目前该系列文章还在持续总结写作中,以发表的如下,有兴趣的可以翻阅。

[学习] RTKlib详解:功能、工具与源码结构解析
[学习]RTKLib详解:pntpos.c与postpos.c
[学习]RTKLib详解:rtkcmn.c与rtkpos.c
[学习]RTKLib详解:ppp.c与ppp_ar.c
[学习]RTKLib详解:ephemeris.c与rinex.c
[学习]RTKLib详解:sbas.c与rtcm.c
[学习]RTKLib详解:rtksvr.c与streamsvr.c
[学习]RTKLib详解:convkml.c、convrnx.c与geoid.c
[学习]RTKLib详解:datum.c、download.c与lambda.c
[学习]RTKLib详解:ionex.c、options.c与preceph.c
[学习] RTKLib详解:qzslex.c、rcvraw.c与solution.c
[学习] RTKLib详解:rtcm2.c、rtcm3.c、rtcm3e与rtcmn.c


文章目录

  • RTKLib详解:`rtcm2.c`、`rtcm3.c`、`rtcm3e`与`rtcmn.c`
    • Part A: rtcm2.c 文件解析
      • 一、文件整体说明
      • 二、执行流程与函数调用关系
      • 三、主要函数说明
        • 3.1 `rtcm2_init`
        • 3.2 `rtcm2_read_frame`
        • 3.3 `rtcm2_decode_header`
        • 3.4 `rtcm2_decode_msg`
        • 3.5 `rtcm2_apply_corr`
      • 四、关键算法数学原理与推导
        • RTCM2 Type 1 伪距校正公式
    • Part B: rtcm3.c 文件解析
      • 一、文件整体说明
      • 二、执行流程与函数调用关系
      • 三、主要函数说明
        • 3.1 `rtcm3_init`
        • 3.2 `rtcm3_read_frame`
        • 3.3 `rtcm3_decode_header`
        • 3.4 `rtcm3_decode_msm`
        • 3.5 `rtcm3_apply_corr`
      • 四、关键算法数学原理与推导
        • MSM 消息压缩编码
    • Part C: rtcm3e.c 文件解析
      • 一、文件整体说明
      • 二、执行流程与函数调用关系
      • 三、主要函数说明
        • 3.1 `rtcm3e_register`
        • 3.2 `rtcm3e_decode`
        • 3.3 `rtcm3e_handler`
      • 四、关键算法数学原理与推导
    • Part D: rtcmn.c 文件解析
      • 一、文件整体说明
      • 二、执行流程与函数调用关系
      • 三、主要函数说明
        • 3.1 `crc24q`
        • 3.2 `time2gpst`
        • 3.3 `xyz2pos`
      • 四、关键算法数学原理与推导
        • 地理坐标转换公式


Part A: rtcm2.c 文件解析

一、文件整体说明

rtcm2.c 是 RTKLIB 中用于解析 RTCM 2.x 格式差分数据的核心模块。该文件实现了对 RTCM SC-104 Version 2.x 消息的解码,支持 GPS 差分校正数据的提取,包括伪距、载波相位修正和基准站坐标等信息。

主要功能:

  • 解析 RTCM 2.x 消息帧。
  • 支持 Type 1/2/3/9/16 等主流消息类型。
  • 提供校正数据与接收机状态同步。

主要特色:

  • 支持实时流与文件模式。
  • 自动处理消息分段与 CRC 校验。
  • 可扩展至多基准站数据。

二、执行流程与函数调用关系

程序执行流程如下:

  1. 初始化 RTCM2 解析器。
  2. 逐帧读取原始数据并提取消息头。
  3. 解码消息体并校验 CRC。
  4. 提取校正数据并更新状态。

函数调用关系如下:

main
rtcm2_init
rtcm2_read_frame
rtcm2_decode_header
rtcm2_decode_msg
rtcm2_apply_corr

三、主要函数说明

3.1 rtcm2_init
int rtcm2_init(rtcm_t *rtcm)

功能:
初始化 RTCM2 解析器,清空缓冲区和状态变量。

输入参数:

  • rtcm: RTCM 解析器结构体指针。

返回值:

  • 成功返回 1,失败返回 0。

3.2 rtcm2_read_frame
int rtcm2_read_frame(FILE *fp, unsigned char *buff, int *len)

功能:
从文件或流中读取 RTCM2 帧数据,识别帧起始标志。

输入参数:

  • fp: 文件指针。
  • buff: 缓冲区。
  • len: 输出读取长度。

返回值:

  • 成功返回字节数,失败返回负值。

3.3 rtcm2_decode_header
int rtcm2_decode_header(const unsigned char *buff, int *msg_type, int *length)

功能:
解码 RTCM2 帧头部,获取消息类型和长度。

输入参数:

  • buff: 数据缓冲区。
  • msg_type: 输出消息类型。
  • length: 输出消息体长度。

返回值:

  • 成功返回 1,失败返回 0。

3.4 rtcm2_decode_msg
int rtcm2_decode_msg(rtcm_t *rtcm, const unsigned char *buff)

功能:
根据消息类型解码具体数据内容(如 Type 1/3 校正数据)。

输入参数:

  • rtcm: 解析器结构体。
  • buff: 消息体数据缓冲区。

返回值:

  • 成功返回 1,失败返回 0。

3.5 rtcm2_apply_corr
int rtcm2_apply_corr(rtcm_t *rtcm, obs_t *obs)

功能:
将解码后的校正数据应用到观测值结构体。

输入参数:

  • rtcm: 解析器结构体。
  • obs: 观测值结构体指针。

返回值:

  • 成功返回 1,失败返回 0。

四、关键算法数学原理与推导

RTCM2 Type 1 伪距校正公式

伪距修正量 Δ P \Delta P ΔP 由基准站差分残差计算:

Δ P = P r e f − ρ r e f \Delta P = P_{ref} - \rho_{ref} ΔP=Prefρref

其中:

  • P r e f P_{ref} Pref: 基准站伪距观测值。
  • ρ r e f \rho_{ref} ρref: 基准站几何距离(由星历和基准站坐标计算)。

接收机应用修正后伪距为:

P c o r r = P r a w − Δ P P_{corr} = P_{raw} - \Delta P Pcorr=PrawΔP


Part B: rtcm3.c 文件解析

一、文件整体说明

rtcm3.c 是 RTKLIB 中用于解析 RTCM 3.x 格式差分数据的核心模块。该文件支持多系统(GPS/GLONASS/Galileo/BDS)、多频段校正数据的解码,兼容 RTCM SC-104 Version 3.x 标准。

主要功能:

  • 解析 RTCM3 消息帧。
  • 支持 MSM(Multiple Signal Messages)系列多频校正消息。
  • 提供电离层延迟和硬件偏差修正。

主要特色:

  • 支持多 GNSS 系统。
  • 高效的 MSM 消息压缩解码。
  • 支持网络 RTK(NTRIP)协议。

二、执行流程与函数调用关系

程序执行流程如下:

  1. 初始化 RTCM3 解析器。
  2. 读取并同步消息帧头。
  3. 解码消息类型与长度。
  4. 处理 MSM 格式校正数据。

函数调用关系如下:

main
rtcm3_init
rtcm3_read_frame
rtcm3_decode_header
rtcm3_decode_msm
rtcm3_apply_corr

三、主要函数说明

3.1 rtcm3_init
int rtcm3_init(rtcm_t *rtcm)

功能:
初始化 RTCM3 解析器,设置默认参数。

输入参数:

  • rtcm: 解析器结构体。

返回值:

  • 成功返回 1,失败返回 0。

3.2 rtcm3_read_frame
int rtcm3_read_frame(FILE *fp, unsigned char *buff, int *len)

功能:
从流中读取 RTCM3 帧数据并同步帧头。

输入参数:

  • fp, buff, len: 同上。

返回值:

  • 成功返回字节数,失败返回负值。

3.3 rtcm3_decode_header
int rtcm3_decode_header(const unsigned char *buff, int *msg_type, int *length)

功能:
解码 RTCM3 帧头部,获取消息类型和长度。

输入参数:

  • buff: 数据缓冲区。
  • msg_type, length: 输出参数。

返回值:

  • 成功返回 1,失败返回 0。

3.4 rtcm3_decode_msm
int rtcm3_decode_msm(rtcm_t *rtcm, const unsigned char *buff)

功能:
解码 MSM 格式校正数据,提取伪距、载波相位和信号强度。

输入参数:

  • rtcm, buff: 同上。

返回值:

  • 成功返回 1,失败返回 0。

3.5 rtcm3_apply_corr
int rtcm3_apply_corr(rtcm_t *rtcm, obs_t *obs)

功能:
将 MSM 数据应用到观测值结构体。

输入参数:

  • rtcm, obs: 同上。

返回值:

  • 成功返回 1,失败返回 0。

四、关键算法数学原理与推导

MSM 消息压缩编码

MSM 消息采用差分编码压缩多个卫星的观测值。对于第 i i i 颗卫星,伪距差分修正量为:

Δ P i = P i − P r e f \Delta P_i = P_i - P_{ref} ΔPi=PiPref

其中 P r e f P_{ref} Pref 为参考卫星的伪距。通过差分编码减少冗余数据,提升传输效率。


Part C: rtcm3e.c 文件解析

一、文件整体说明

rtcm3e.c 是 RTKLIB 中用于扩展 RTCM3 协议支持的模块,主要用于兼容厂商自定义消息格式(如 Trimble、Leica 的私有扩展)。该文件增强了 RTKLIB 对非标准 RTCM3 消息的解析能力。

主要功能:

  • 解析厂商扩展 RTCM3 消息。
  • 支持自定义校正数据与设备状态信息。
  • 提供扩展消息注册机制。

主要特色:

  • 模块化扩展接口。
  • 兼容主流厂商私有协议。
  • 动态注册扩展消息处理器。

二、执行流程与函数调用关系

程序执行流程如下:

  1. 注册扩展消息处理器。
  2. 识别扩展消息类型。
  3. 调用对应解析函数。

函数调用关系如下:

main
rtcm3e_register
rtcm3e_decode
rtcm3e_handler

三、主要函数说明

3.1 rtcm3e_register
int rtcm3e_register(int msg_type, void (*handler)(rtcm_t *))

功能:
注册特定类型扩展消息的解析函数。

输入参数:

  • msg_type: 扩展消息类型。
  • handler: 解析函数指针。

返回值:

  • 成功返回 1,失败返回 0。

3.2 rtcm3e_decode
int rtcm3e_decode(rtcm_t *rtcm, const unsigned char *buff)

功能:
识别扩展消息类型并调用对应解析函数。

输入参数:

  • rtcm, buff: 同上。

返回值:

  • 成功返回 1,失败返回 0。

3.3 rtcm3e_handler
void rtcm3e_handler(rtcm_t *rtcm)

功能:
示例扩展消息处理函数,提取厂商自定义数据。

输入参数:

  • rtcm: 解析器结构体。

四、关键算法数学原理与推导

无直接数学推导,但涉及位操作与变长编码技术。例如,厂商扩展消息可能使用 TLV(Type-Length-Value)结构编码数据。


Part D: rtcmn.c 文件解析

一、文件整体说明

rtcmn.c 是 RTKLIB 中 RTCM 协议的通用工具模块,提供跨版本(2.x/3.x)的共享函数,如 CRC 校验、时间戳转换和坐标系变换。

主要功能:

  • 提供 CRC-24Q、CRC-16 校验算法。
  • 实现 GNSS 时间系统转换。
  • 支持坐标系转换(ECEF <-> LLH)。

主要特色:

  • 高复用性工具函数。
  • 精度优化的数学计算。
  • 跨平台兼容性。

二、执行流程与函数调用关系

程序执行流程如下:

  1. 调用通用 CRC 校验函数。
  2. 转换时间戳与坐标。

函数调用关系如下:

main
crc24q
time2gpst
xyz2pos

三、主要函数说明

3.1 crc24q
unsigned int crc24q(const unsigned char *buff, int len)

功能:
计算 RTCM3 消息的 CRC-24Q 校验码。

输入参数:

  • buff: 数据缓冲区。
  • len: 数据长度。

返回值:

  • CRC 校验结果。

3.2 time2gpst
double time2gpst(gtime_t t, int *week)

功能:
将通用时间结构体转换为 GPS 周数与周秒。

输入参数:

  • t: 时间结构体。
  • week: 输出 GPS 周数。

返回值:

  • GPS 周秒。

3.3 xyz2pos
void xyz2pos(const double *xyz, double *pos)

功能:
将 ECEF 坐标转换为地理坐标(LLH)。

输入参数:

  • xyz: ECEF 坐标(3D 向量)。
  • pos: 输出 LLH 坐标(纬度、经度、高度)。

四、关键算法数学原理与推导

地理坐标转换公式

ECEF 到 LLH 的迭代解法:

ϕ n + 1 = arctan ⁡ ( z + e ′ 2 b sin ⁡ 3 θ p − e 2 a cos ⁡ 3 θ ) h = p cos ⁡ ϕ − N \begin{aligned} \phi_{n+1} &= \arctan\left( \frac{z + e'^2 b \sin^3 \theta}{p - e^2 a \cos^3 \theta} \right) \\ h &= \frac{p}{\cos \phi} - N \end{aligned} ϕn+1h=arctan(pe2acos3θz+e′2bsin3θ)=cosϕpN

其中:

  • p = x 2 + y 2 p = \sqrt{x^2 + y^2} p=x2+y2
  • θ = arctan ⁡ ( z p ) \theta = \arctan\left( \frac{z}{p} \right) θ=arctan(pz)
  • N = a 1 − e 2 sin ⁡ 2 ϕ N = \frac{a}{\sqrt{1 - e^2 \sin^2 \phi}} N=1e2sin2ϕ a

研究学习不易,点赞易。
工作生活不易,收藏易,点收藏不迷茫 :)


相关文章:

[学习] RTKLib详解:rtcm2.c、rtcm3.c、rtcm3e与rtcmn.c

RTKLib详解&#xff1a;rtcm2.c、rtcm3.c、rtcm3e与rtcmn.c 本文是 RTKLlib详解 系列文章的一篇&#xff0c;目前该系列文章还在持续总结写作中&#xff0c;以发表的如下&#xff0c;有兴趣的可以翻阅。 [学习] RTKlib详解&#xff1a;功能、工具与源码结构解析 [学习]RTKLib详…...

MCU ESP32-S3+SD NAND(贴片式T卡):智能皮电手环(GSR智能手环)性能与存储的深度评测

在智能皮电手环与数据存储领域&#xff0c;主控MCU ESP32-S3FH4R2 与 存储SD NAND MKDV2GIL-AST 的搭档堪称行业新典范。二者深度融合低功耗、高速读写、SMART 卓越稳定性等核心优势&#xff0c;以高容量、低成本的突出特性&#xff0c;为大规模生产场景带来理想的数据存储方案…...

股指期货套期保值怎么操作?

股指期货套期保值就是企业或投资者通过持有与其现货市场头寸相反的期货合约&#xff0c;来对冲价格风险的一种方式。换句话说&#xff0c;就是你在股票市场上买了股票&#xff08;现货&#xff09;&#xff0c;担心股价下跌会亏钱&#xff0c;于是就在期货市场上卖出相应的股指…...

Pytorch的Dataloader使用详解

PyTorch 的 DataLoader 是数据加载的核心组件&#xff0c;它能高效地批量加载数据并进行预处理。 Pytorch DataLoader基础概念 DataLoader基础概念 DataLoader是PyTorch基础概念 DataLoader是PyTorch中用于加载数据的工具&#xff0c;它可以&#xff1a;批量加载数据&#xf…...

Ros2 - Moveit2 - DeepGrasp(深度抓握)

本教程演示了如何在 MoveIt 任务构造器中使用抓握姿势检测 (GPD)和 Dex-Net 。 GPD&#xff08;左&#xff09;和 Dex-Net&#xff08;右&#xff09;用于生成拾取圆柱体的抓取姿势。 https://moveit.picknik.ai/main/_images/mtc_gpd_panda.gif 入门 如果您还没有这样做&am…...

【DRAM存储器五十一】LPDDR5介绍--CK、WCK、RDQS单端模式、Thermal Offset、Temperature Sensor

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考资料:《某LPDDR5数据手册》 、《JESD209-5C》 目录 CK、WCK、RDQS单端模式 Thermal Offset Temperature Sensor...

【springcloud学习(dalston.sr1)】Eureka 客户端服务注册(含源代码)(四)

d该系列项目整体介绍及源代码请参照前面写的一篇文章【springcloud学习(dalston.sr1)】项目整体介绍&#xff08;含源代码&#xff09;&#xff08;一&#xff09; 这篇文章主要介绍Eureka客户端服务注册到eureka的server端。 上篇文章【springcloud学习(dalston.sr1)】Eurek…...

数据结构 栈和队列

文章目录 &#x1f4d5;1.栈(Stack)✏️1.1 栈的基本操作✏️1.2 栈的模拟实现&#x1f516;1.2.1 构造方法&#x1f516;1.2.2 扩容方法&#x1f516;1.2.3 判断栈是否为空或是否满&#x1f516;1.2.4 存储元素&#x1f516;1.2.5 删除元素&#x1f516;1.2. 6 获取栈顶元素 ✏…...

[数据结构]5. 栈-Stack

栈-Stack 1. 介绍2. 栈的实现2.1 基于链表的实现2.2 基于数组的实现 3. 栈操作CreateInitilizateDestoryPushPopTopEmptySize 1. 介绍 栈&#xff08;stack&#xff09; 是一种遵循先入后出逻辑的线性数据结构。顶部称为“栈顶”&#xff0c;底部称为“栈底”。把元素添加到栈…...

Git的安装和配置(idea中配置Git)

一、Git的下载和安装 前提条件&#xff1a;IntelliJ IDEA 版本是2023.3 &#xff0c;那么配置 Git 时推荐使用 Git 2.40.x 或更高版本 下载地址&#xff1a;CNPM Binaries Mirror 操作&#xff1a;打开链接 → 滚动到页面底部 → 选择2.40.x或更高版本的 .exe 文件&#xf…...

QT-1.信号与槽

一、信号与槽机制概述 四、信号与槽的连接 六、自定义信号与槽 思考 定义与作用 &#xff1a;信号与槽是Qt中的核心通信机制&#xff0c;用于实现对象间的数据交互和事件处理。当特定事件发生时&#xff0c;对象会发出信号&#xff0c;而与之相连的槽函数会被自动调用。 特点 …...

常用的应用层网络协议对比

概述 协议通信模式加密支持传输层主要特点典型应用场景WSS全双工是&#xff08;TLS/SSL&#xff09;TCP安全的实时双向通信实时聊天、在线游戏WebSocket (WS)全双工否TCP持久连接、低延迟协同编辑、实时通知HTTPS请求-响应是&#xff08;TLS/SSL&#xff09;TCP安全性强、兼容…...

数据结构与算法:状压dp

前言 状压dp在整个动态规划专题里特别重要,用位信息表示元素的思想更是重中之重。 一、状态压缩 1.内容 对于一些带路径的递归,通常来讲没法改记忆化搜索和严格位置依赖的动态规划。但如果这个路径的数据量在一定范围内,就可以考虑使用一个整数status的位信息0和1来存路…...

Spring Cloud Gateway 聚合 Swagger 文档:一站式API管理解决方案

前言 在微服务架构中&#xff0c;随着服务数量的增加&#xff0c;API文档管理变得越来越复杂。每个微服务都有自己的Swagger文档&#xff0c;开发人员需要记住每个服务的文档地址&#xff0c;这无疑增加了开发难度。本文将介绍如何使用Spring Cloud Gateway聚合所有微服务的Sw…...

Android 适配之——targetSdkVersion 30升级到31-34需要注意些什么?

在Android 16即将到来的之际。也就是targetSdkVersion即将出现36&#xff0c;而30已然会成为历史。那么我的项目已经停留在30很久了。是时候要适配一下适用市场的主流机型了。正常来查找资料的&#xff0c;无非就是已经升级和准备升级targetSdkVersion开发版本。所以你是哪一种…...

网络运维过程中的常用命令

一、通用网络命令 ping 作用&#xff1a;测试与目标 IP 或域名的连通性。 示例&#xff1a; ping www.baidu.com # 持续发送ICMP包 ping -c 4 8.8.8.8 # 发送4个包后停止 traceroute/tracert 功能&#xff1a;追踪数据包经过的路由节点。 示例&#xff1a; traceroute…...

[Java实战]Spring Boot 3整合JWT实现无状态身份认证(二十四)

[Java实战]Spring Boot 3整合JWT实现无状态身份认证&#xff08;二十四&#xff09; 一、JWT简介与核心概念 1. JWT是什么&#xff1f; JSON Web Token (JWT) 是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在各方之间安全地传输信息。JWT由三部分组成&am…...

【Java-EE进阶】SpringBoot针对某个IP限流问题

目录 简介 1. 使用Guava的RateLimiter实现限流 添加Guava依赖 实现RateLimiter限流逻辑 限流管理类 控制器中应用限流逻辑 2. 使用计数器实现限流 限流管理类 控制器中应用限流逻辑 简介 针对某个IP进行限流以防止恶意点击是一种常见的反爬虫和防止DoS的措施。限流策…...

软考冲刺——案例分析题 MUX VLAN

上一篇文章介绍了VLAN高级应用的Super VLAN&#xff0c;本次介绍MUX VLAN内容&#xff0c;MUX VLAN在2024.11月考察过选择题&#xff0c;案例题中有可能出现。 考点一&#xff1a;MUX VLAN原理及实现方式&#xff1b;通过简答题出现。 考点二&#xff1a;配置命令填空。 一&…...

Git 用户名与邮箱配置全解析:精准配置——基于场景的参数选择

目录 一、配置查看&#xff1a;理解多层级配置体系二、精准配置&#xff1a;基于场景的参数选择1. 仓库级配置&#xff08;推荐&#xff09;2. 用户级配置3. 系统级配置 三、历史提交信息修改1. 修改最近一次提交2. 修改多个历史提交&#xff08;危险操作&#xff09; 五、配置…...

OpenHarmony平台驱动开发(十七),UART

OpenHarmony平台驱动开发&#xff08;十七&#xff09; UART 概述 功能简介 UART指异步收发传输器&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;&#xff0c;是通用串行数据总线&#xff0c;用于异步通信。该总线双向通信&#xff0c;可以实现全双工…...

仿生眼机器人(人脸跟踪版)系列之一

文章不介绍具体参数&#xff0c;有需求可去网上搜索。 特别声明&#xff1a;不论年龄&#xff0c;不看学历。既然你对这个领域的东西感兴趣&#xff0c;就应该不断培养自己提出问题、思考问题、探索答案的能力。 提出问题&#xff1a;提出问题时&#xff0c;应说明是哪款产品&a…...

Redis的Pipeline和Lua脚本适用场景是什么?使用时需要注意什么?

Redis Pipeline 和 Lua 脚本详解 一、Pipeline&#xff08;管道&#xff09; 定义 一种批量执行命令的机制&#xff0c;客户端将多个命令一次性发送给服务器&#xff0c;减少网络往返时间&#xff08;RTT&#xff09; 适用场景 ✅ 批量数据操作&#xff08;如万级 key 的写入…...

【Pycharm】pycharm修改注释文字的颜色

一、默认颜色-灰色 这个默认的灰色视觉效果太弱&#xff0c;不便于学习时使用 二、修改颜色 打开Settings 也可以从右上角设置那里打开 还可以快捷键Ctrl&#xff0b;Alt&#xff0b;S打开 找到这个页面把这个√取消掉 然后就能自定义颜色啦...

webgl2着色语言

一、数据类型 标量&#xff1a;布尔型、整型、浮点型 向量&#xff1a;基本类型&#xff1a;bool、int、float 数量 &#xff1a; 2&#xff0c;3&#xff0c;4 矩阵&#xff1a; 移位、旋转、缩放等变换 采样器&#xff1a; 执行纹理采样的相关操作 结构体&#xff1a; 为开…...

Nginx+Lua 实战避坑:从模块加载失败到版本冲突的深度剖析

Nginx 集成 Lua (通常通过 ngx_http_lua_module 或 OpenResty) 为我们提供了在 Web 服务器层面实现动态逻辑的强大能力。然而,在享受其高性能和灵活性的同时,配置和使用过程中也常常会遇到各种令人头疼的问题。本文将结合实际案例,深入分析在 Nginx+Lua 环境中常见的技术问题…...

什么是alpaca 或 sharegpt 格式的数据集?

环境&#xff1a; LLaMA-Factory 问题描述&#xff1a; alpaca 或 sharegpt 格式的数据集&#xff1f; 解决方案&#xff1a; “Alpaca”和“ShareGPT”格式的数据集&#xff0c;是近年来在开源大语言模型微调和对话数据构建领域比较流行的两种格式。它们主要用于训练和微调…...

C++效率掌握之STL库:map set底层剖析及迭代器万字详解

文章目录 1.map、set的基本结构2.map、set模拟实现2.1 初步定义2.2 仿函数实现2.3 Find功能实现2.4 迭代器初步功能实现2.4.1 运算符重载2.4.2 --运算符重载2.4.3 *运算符重载2.4.4 ->运算符重载2.4.5 !运算符重载2.4.6 begin()2.4.7 end() 2.5 迭代器进阶功能实现2.5.1 set…...

使用 Docker Desktop 安装 Neo4j 知识图谱

一、简介 Neo4j是一个高性能的&#xff0c;基于java开发的&#xff0c;NOSQL图形数据库&#xff0c;它将结构化数据存储在网络上而不是表中&#xff1b;它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。 Neo4j分为企业版和社区版&#xff0c;企业版可以创…...

从构想到交付:专业级软开发流程详解

目录 ​​一、软件开发生命周期&#xff08;SDLC&#xff09;标准化流程​​ 1. 需求工程阶段&#xff08;Requirement Engineering&#xff09; 2. 系统设计阶段&#xff08;System Design&#xff09; 3. 开发阶段&#xff08;Implementation&#xff09; 4. 测试阶段&a…...

时源芯微| KY键盘接口静电浪涌防护方案

KY键盘接口静电浪涌防护方案通过集成ESD保护元件、电阻和连接键&#xff0c;形成了一道有效的防护屏障。当键盘接口受到静电放电或其他浪涌冲击时&#xff0c;该方案能够迅速将过电压和过电流引导至地&#xff0c;从而保护后续电路免受损害。 ESD保护元件是方案中的核心部分&a…...

数据库故障排查指南:从理论到实践的深度解析

数据库作为现代信息系统的核心组件&#xff0c;承载着数据存储、查询和事务处理等关键任务。然而&#xff0c;数据库系统在运行过程中可能遭遇各种故障&#xff0c;从硬件故障到软件配置问题&#xff0c;从性能瓶颈到安全漏洞&#xff0c;这些问题都可能影响业务的连续性和数据…...

电脑开机提示按f1原因分析及解决方法(6种解决方法)

经常有网友问到一个问题,我电脑开机后提示按f1怎么解决?不管理是台式电脑,还是笔记本,都有可能会遇到开机需要按F1,才能进入系统的问题,引起这个问题的原因比较多,今天小编在这里给大家列举了比较常见的几种电脑开机提示按f1的解决方法。 电脑开机提示按f1原因分析及解决…...

常用的Java工具库

1. Collections 首先是 java.util 包下的 Collections 类。这个类主要用于操作集合&#xff0c;我个人非常喜欢使用它。以下是一些常用功能&#xff1a; 1.1 排序 在工作中&#xff0c;经常需要对集合进行排序。让我们看看如何使用 Collections 工具实现升序和降序排列&…...

NC65开发环境(eclipse启动)在企业报表中的报表数据中心里计算某张报表时,一直计算不出数据的解决办法。

NC65开发环境&#xff08;eclipse启动&#xff09;在企业报表中的报表数据中心里计算某张报表时&#xff0c;一直计算不出数据的解决办法。 如下图&#xff0c;在报表数据中心&#xff0c;针对现金内部往来明细表计算5月的数据&#xff0c;然后报表下面一张显示计算&#xff0c…...

React 第三十九节 React Router 中的 unstable_usePrompt Hook的详细用法及案例

React Router 中的 unstable_usePrompt 是一个用于在用户尝试离开当前页面时触发确认提示的自定义钩子&#xff0c;常用于防止用户误操作导致数据丢失&#xff08;例如未保存的表单&#xff09;。 一、unstable_usePrompt用途 防止意外离开页面&#xff1a;当用户在当前页面有…...

《P4391 [BalticOI 2009] Radio Transmission 无线传输 题解》

题目描述 给你一个字符串 s1​&#xff0c;它是由某个字符串 s2​ 不断自我连接形成的&#xff08;保证至少重复 2 次&#xff09;。但是字符串 s2​ 是不确定的&#xff0c;现在只想知道它的最短长度是多少。 输入格式 第一行一个整数 L&#xff0c;表示给出字符串的长度。…...

使用ECS搭建云上博客wordpress(ALMP)

一、需求分析与技术选型 1. 架构组成及含义 本文使用ECS云服务器&#xff0c;采用ALMP架构搭建wordpress。组件具体的含义如下表&#xff1a; 组件作用WordPress中的功能体现Linux操作系统基础&#xff0c;提供稳定运行环境支持PHP运行和服务器管理ApacheWeb服务器&#xff…...

Scratch游戏 | 企鹅大乱斗

有没有过无聊到抓狂的时刻&#xff1f;试试这款 企鹅大乱斗 吧&#xff01;超简单的玩法&#xff0c;让你瞬间告别无聊&#xff01; &#x1f3ae; 玩法超简单 等待屏幕出现 ”Go!” 疯狂点击&#xff0c;疯狂拍打企鹅&#xff01; &#x1f4a5; 游戏特色 解压神器&#x…...

深入理解SpringBoot中的SpringCache缓存技术

深入理解SpringBoot中的SpringCache缓存技术 引言 在现代应用开发中&#xff0c;缓存技术是提升系统性能的重要手段之一。SpringBoot提供了SpringCache作为缓存抽象层&#xff0c;简化了缓存的使用和管理。本文将深入探讨SpringCache的核心技术点及其在实际业务中的应用场景。…...

URP相机如何将场景渲染定帧模糊绘制

1&#xff09;URP相机如何将场景渲染定帧模糊绘制 2&#xff09;为什么Virtual Machine会随着游戏时间变大 3&#xff09;出海项目&#xff0c;打包时需要勾选ARMv7吗 4&#xff09;Unity是手动还是自动调用GC.Collect 这是第431篇UWA技术知识分享的推送&#xff0c;精选了UWA社…...

嵌入式中深入理解C语言中的指针:类型、区别及应用

在嵌入式开发中,C语言是一种基础且极为重要的编程语言,其中指针作为一个非常强大且灵活的工具,广泛应用于内存管理、动态数据结构的实现以及函数参数的传递等方面。然而,尽管指针的使用极为常见,很多开发者在掌握其基本使用后,往往对指针的深入理解还不够。本文将深入分析…...

.NET程序启动就报错,如何截获初期化时的问题json

一&#xff1a;背景 1. 讲故事 前几天训练营里的一位朋友在复习课件的时候&#xff0c;程序一跑就报错&#xff0c;截图如下&#xff1a; 从给出的错误信息看大概是因为json格式无效导致的&#xff0c;在早期的训练营里曾经也有一例这样的报错&#xff0c;最后定位下来是公司…...

WeakAuras Lua Script ICC (BarneyICC)

WeakAuras Lua Script ICC &#xff08;BarneyICC&#xff09; https://wago.io/BarneyICC/69 全量英文字符串&#xff1a; !WA:2!S33c4TXX5bQv0kobjnnMowYw2YAnDKmPnjnb4ljzl7sqcscl(YaG6HvCbxaSG7AcU76Dxis6uLlHNBIAtBtRCVM00Rnj8Y1M426ZH9XDxstsRDR)UMVCTt0DTzVhTjNASIDAU…...

Sunsetting 创建 React App

&#x1f916; 作者简介&#xff1a;水煮白菜王&#xff0c;一位前端劝退师 &#x1f47b; &#x1f440; 文章专栏&#xff1a; 前端专栏 &#xff0c;记录一下平时在博客写作中&#xff0c;总结出的一些开发技巧和知识归纳总结✍。 感谢支持&#x1f495;&#x1f495;&#…...

Python笔记:c++内嵌python,c++主窗口如何传递给脚本中的QDialog,使用的是pybind11

1. 问题描述 用的是python 3.8.20, qt版本使用的是5.15.2, PySide的版本是5.15.2, pybind11的版本为2.13.6 网上说在python脚本中直接用PySide2自带的QWinWidget&#xff0c;如from PySide2.QtWinExtras import QWinWidget&#xff0c;但我用的版本中说没有QWinWidget&#x…...

环境配置与MySQL简介

目录 1 环境配置 2 MySQL简介 1 环境配置 本专栏使用CentOS7进行讲解。首先我们查看系统中是否已经安装了MySQL&#xff0c;可以使用rpm -qa 命令查看系统安装包/压缩包 列表 这只是看我们是否下载过对应安装包&#xff0c;不一定就安装了。如果我们需要重新下载&#xff0c;…...

Unity3D游戏内存管理优化指南

前言 Unity3D 的内存管理机制较为复杂&#xff0c;开发者需要理解其内存分布以避免内存泄漏和性能问题。以下是 Unity3D 游戏内存分布的核心概览&#xff0c;结合托管堆、本地堆、资源内存等关键模块&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;大家…...

深度解析 Sora:从技术原理到多场景实战的 AI 视频生成指南【附学习资料包下载】

一、技术架构与核心能力解析 1.1 时空建模体系的创新突破 Sora 在视频生成领域的核心优势源于其独特的时空建模架构。区别于传统将视频拆解为单帧处理的模式,Sora 采用时空 Patch 嵌入技术,将连续视频序列分割为 32x32 像素的时空块(每个块包含相邻 3 帧画面),通过线性投…...

Maven构建流程详解:如何正确管理微服务间的依赖关系-当依赖的模块更新后,我应该如何重新构建主项目

文章目录 一、前言二、Maven 常用命令一览三、典型场景说明四、正确的构建顺序正确做法是&#xff1a; 五、为什么不能只在 A 里执行 clean install&#xff1f;六、进阶推荐&#xff1a;使用多模块项目&#xff08;Multi-module Project&#xff09;七、总结 一、前言 在现代…...