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

类厂,变长参数,序列化

目的

在记录nav2中的各类信息,保存到文件中,以便后面回放来分析算法的编程中发现。
各种信息记录的数据不同,可能还会有变化,所以决定采用类厂模式,参见C++设计模式入门

记录的基类

有个信息记录的基类,不同的记录对应不同的子类。

enum rcdType{RT_NA,RT_nav2Info,RT_controlPt,RT_Msg_Cmd_Vel,RT_Msg_Carrot,RT_Msg_GPath,RT_Msg_LPath
};

目前的信息类型,后面估计要有扩展,用类扩展符合封装扩展的模式设计准则

class RcdBase
{
public:RcdBase(){m_rcdType=RT_NA;}virtual bool apply_(){cout<<"Error:call apply_ in RcdBase instead of in real Rcd !"<<endl;return false;}virtual bool SetData_(int vn,...){cout<<"Error:call setData_ in RcdBase instead of in real Rcd !"<<endl;return false;}virtual bool save2File_(ofstream& ofs){cout<<"Error:call save2File_ in RcdBase instead of in real Rcd !"<<endl;return false;}friend RcdClaossFactory;int m_index;int m_timeMs;rcdType m_rcdType;
};

上面的是基类

子类举例

class Rcd_Msg_Cmd_vel: public RcdBase
{
public:Rcd_Msg_Cmd_vel(){m_rcdType=RT_Msg_Cmd_Vel;}~Rcd_Msg_Cmd_vel(){

相关文章:

类厂,变长参数,序列化

目的 在记录nav2中的各类信息,保存到文件中,以便后面回放来分析算法的编程中发现。 各种信息记录的数据不同,可能还会有变化,所以决定采用类厂模式,参见C++设计模式入门 记录的基类 有个信息记录的基类,不同的记录对应不同的子类。 enum rcdType{RT_NA,RT_nav2Info,R…...

LLK的2023年度总结

文章目录 一月二月三月四月五月六月七月八月九月十月十一月十二月 一月 此时的俺还在沉浸在蓝桥杯的练习和女朋友的甜蜜期&#xff0c;感觉没啥大长进。然后荣幸地知道了自己C语言实验因为某种非技术原因而挂科了。此时自己地目标由保研自然地转换到考研比赛就业的方向了。接着…...

Redis-浅谈redis.conf配置文件

Redis.conf Redis.conf是Redis的配置文件&#xff0c;它包含了一系列用于配置Redis服务器行为和功能的选项。 以下是Redis.conf中常见的一些选项配置&#xff1a; bind: 指定Redis服务器监听的IP地址&#xff0c;默认为127.0.0.1&#xff0c;表示只能本地访问&#xff0c;可以…...

【liunx】线程池+单例模式+STL,智能指针和线程安全+其他常见的各种锁+读者写者问题

线程池单例模式STL,智能指针和线程安全其他常见的各种锁读者写者问题 1.线程池2.线程安全的单例模式3.STL,智能指针和线程安全4.其他常见的各种锁4.读者写者问题 喜欢的点赞&#xff0c;收藏&#xff0c;关注一下把&#xff01; 1.线程池 目前我们学了挂起等待锁、条件变量、信…...

Golang的API项目快速开始

开启一个简单的API服务。 golang的教程网上一大堆&#xff0c;官网也有非常详细的教程&#xff0c;这里不在赘述这些基础语法教程&#xff0c;我们意在快速进入项目开发阶段。 golang好用语法教程传送门&#xff1a; m.runoob.com/go/ 编写第一个API 前提&#xff1a;按照上一…...

机器学习_实战框架

文章目录 介绍机器学习的实战框架1.定义问题2.收集数据和预处理(1).收集数据(2).数据可视化(3).数据清洗(4).特征工程(5).构建特征集和标签集(6).拆分训练集、验证集和测试集。 3.选择算法并建立模型4.训练模型5.模型的评估和优化 介绍机器学习的实战框架 一个机器学习项目从开…...

Java8常用新特性

目录 简介 1.默认方法 2..Lambda表达式 3.Stream API 4.方法引用 5.Optional类 简介 Java 8是Java编程语言的一个重要版本&#xff0c;引入了许多令人兴奋和强大的新特性。这些特性使得Java程序更加现代化、灵活和高效。让我们一起来探索一些Java 8的常用新特性吧&#…...

Go语言中的Channel

1. 简介 Channel是Go语言中一种重要的并发原语&#xff0c;它允许goroutine之间安全地交换数据。Channel是一个类型化的队列&#xff0c;它可以存储一个特定类型的值。goroutine可以通过发送和接收操作来向channel中写入和读取数据。 2. Channel的类型 Channel的类型由其元素…...

Unity中URP下实现深度贴花

文章目录 前言一、场景设置二、实现思路1、通过深度图求出像素所在视图空间的Z值2、通过模型面片的求出像素在观察空间下的坐标值3、结合两者求出 深度图中像素的 XYZ值4、再将此坐标转换到模型的本地空间&#xff0c;把XY作为UV来进行纹理采样 三、URP下实现1、通过深度图求出…...

openssl3.2 - 官方demo学习 - cipher - aesccm.c

文章目录 openssl3.2 - 官方demo学习 - cipher - aesccm.c概述笔记END openssl3.2 - 官方demo学习 - cipher - aesccm.c 概述 aesccm.c 是 AES-192-CCM 的加解密应用例子, 用的EVP接口. 看到不仅仅要用到key, iv, data, 在此之前还要设置 nonce, tag, 认证数据. 为啥需要设置…...

点云从入门到精通技术详解100篇-基于多传感器融合的智能汽车 环境感知(下)

目录 基于激光雷达点云的目标检测 4.1 点云神经网络检测模型 4.2 点云预处理...

蓝桥杯单片机组备赛——蜂鸣器和继电器的基本控制

文章目录 一、蜂鸣器和继电器电路介绍二、题目与答案2.1 题目2.2 答案2.3 重点函数解析 一、蜂鸣器和继电器电路介绍 可以发现两个电路一端都接着VCC&#xff0c;所以我们只要给另一端接上低电平就可以让蜂鸣器和继电器进行工作。与操作LED类似&#xff0c;只不过换了一个74HC5…...

嵌入式linux 编译qt5(以v851s为例)

本文参考Blev大神的博客&#xff1a;Yuzuki Lizard V851S开发板 --移植 QT5.12.9教程&#xff08;群友Blev提供&#xff09; - Allwinner / 柚木PI-V851S - 嵌入式开发问答社区 (100ask.net) 一. 环境准备 1.下载qt5源码&#xff1a;Open Source Development | Open Source …...

uniapp 实战 -- app 的自动升级更新(含生成 app 发布页)

uniapp 提供了 App升级中心 uni-upgrade-center &#xff0c;可以便捷实现app 的自动升级更新&#xff0c;具体编码和配置如下&#xff1a; 1. 用户端 – 引入升级中心插件 下载安装插件 uni-upgrade-center - App https://ext.dcloud.net.cn/plugin?id4542 pages.json 中添加…...

微服务http调用其他服务的方法

在对应需要调的服务配置文件加上路径 #审批方案微服务配置 server.port: 9004 upload.path: /alldev/u01/ schedule.cron.countDown: 0 0 8-18 * * ? statistics.syskey: ywsp schedule.countDown.isExecute: true post.url.updateStatus: http://10.3.2.222:8888/ecological…...

vagrant 用户名密码登录

正常登录后 sudo -i 切换到root权限 vim /etc/ssh/vim sshd_config 将PasswordAuthentication no设置 为yes 重启sshd.service服务 systemctl restart sshd.service...

强化学习应用(三):基于Q-learning的无人机物流路径规划研究(提供Python代码)

一、Q-learning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于马尔可夫决策过程&#xff08;MDP&#xff09;的问题。它通过学习一个价值函数来指导智能体在环境中做出决策&#xff0c;以最大化累积奖励。 Q-learning算法的核心思想是通过不断更新一个称为Q值的…...

探索SQL性能优化之道:实用技巧与最佳实践

SQL性能优化可能是每个数据库管理员和开发者在日常工作中必不可少的一个环节。在大数据时代&#xff0c;为确保数据库系统的响应速度和稳定性&#xff0c;掌握一些实用的SQL优化技巧至关重要。 本文将带着开发人员走进SQL性能优化的世界&#xff0c;深入剖析实用技巧和最佳实践…...

Github项目推荐-Insomnia

项目地址 GitHub地址&#xff1a;GitHub - Kong/insomnia 官网&#xff1a;The Collaborative API Development Platform - Insomnia 项目简述 想必大家都知道PostMan吧。Insomnia可以说是PostMan的开源平替。页面ui很不错&#xff0c;功能强大&#xff0c;使用也比较方便。…...

python 语法

闭包 在函数嵌套的前提下&#xff0c;内部函数使用了外部函数的变量&#xff0c;并且外部函数返回了内部函数&#xff0c;我们把这个使用外部函数变量的内部函数称为闭包。 def outfunc(arg):def innerFunc(msg):print(f"<{msg}> {arg} <{msg}>")retu…...

HFSS新手避坑指南:从零搭建Dipole天线,手把手搞定S11与3D方向图

HFSS新手避坑指南&#xff1a;从零搭建Dipole天线&#xff0c;手把手搞定S11与3D方向图 第一次打开HFSS时&#xff0c;满屏的英文菜单和复杂的参数设置界面&#xff0c;很容易让人望而生畏。特别是当导师或老板扔给你一个简单的Dipole天线仿真任务&#xff0c;要求你"尽快…...

MUSE快速入门指南:5步完成英语-西班牙语词向量映射

MUSE快速入门指南&#xff1a;5步完成英语-西班牙语词向量映射 【免费下载链接】MUSE A library for Multilingual Unsupervised or Supervised word Embeddings 项目地址: https://gitcode.com/gh_mirrors/mu/MUSE MUSE&#xff08;Multilingual Unsupervised or Super…...

Pikachu文件包含漏洞的花式玩法:从源码读取到蚁剑GetShell全记录

Pikachu文件包含漏洞的深度利用&#xff1a;从源码审计到权限维持实战 在网络安全领域&#xff0c;文件包含漏洞一直是渗透测试中的"黄金门票"。不同于简单的SQL注入或XSS攻击&#xff0c;文件包含漏洞往往能带来更直接的服务器控制权。本文将带你深入Pikachu靶场&am…...

Elsevier投稿遇Publishing Options卡死?别慌,试试这3个亲测有效的急救方案(附Edge浏览器操作)

Elsevier投稿遇Publishing Options卡死&#xff1f;3个急救方案与Edge浏览器实战指南 凌晨三点&#xff0c;实验室的灯光依然亮着。张教授盯着屏幕上那个纹丝不动的"Publishing Options"页面&#xff0c;手指无意识地敲击着桌面。距离返修截止只剩不到12小时&#xf…...

HDLC(高级数据链路控制):从帧结构解析到C语言模拟实现

1. HDLC协议基础&#xff1a;从比特流到可靠传输 第一次接触HDLC协议时&#xff0c;我盯着那串01111110的标志位发了半天呆——这不就是个简单的比特序列吗&#xff1f;怎么就能成为整个协议的基础&#xff1f;后来在调试卫星通信模块时才发现&#xff0c;正是这个看似简单的设…...

从零到一:在Windows系统上部署JDK11与Neo4j 4.3.5开发环境

1. 环境准备&#xff1a;JDK11与Neo4j 4.3.5的版本选择 刚开始接触Java和图数据库时&#xff0c;我踩过不少版本不兼容的坑。比如有一次装了最新版JDK17&#xff0c;结果Neo4j死活启动不了&#xff0c;折腾半天才发现是版本冲突。所以现在每次搭建环境&#xff0c;我都会先确认…...

解锁小米平板5的Windows潜能:从Android平板到完整PC体验的驱动革命

解锁小米平板5的Windows潜能&#xff1a;从Android平板到完整PC体验的驱动革命 【免费下载链接】MiPad5-Drivers Based on Surface Duo Drivers. 项目地址: https://gitcode.com/gh_mirrors/mi/MiPad5-Drivers 你是否曾想过&#xff0c;将手中的小米平板5从一台Android设…...

从MATLAB到Python:脑网络连通性分析之PLI/wPLI的跨平台实现与结果对比

从MATLAB到Python&#xff1a;脑网络连通性分析之PLI/wPLI的跨平台实现与结果对比 神经科学研究中&#xff0c;脑网络连通性分析正成为理解认知功能与疾病机制的重要工具。其中&#xff0c;相位滞后指数&#xff08;PLI&#xff09;及其加权版本&#xff08;wPLI&#xff09;因…...

Pipfile vs requirements.txt:10个关键差异对比分析

Pipfile vs requirements.txt&#xff1a;10个关键差异对比分析 【免费下载链接】pipfile 项目地址: https://gitcode.com/gh_mirrors/pi/pipfile 在Python开发中&#xff0c;依赖管理是项目成功的关键环节。Pipfile和requirements.txt作为两种主流的依赖管理方式&…...

如何永久保存微信聊天记录?WeChatExporter 开源工具帮你解决数据备份难题

如何永久保存微信聊天记录&#xff1f;WeChatExporter 开源工具帮你解决数据备份难题 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾担心微信聊天记录会随着手机…...