自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 雷达的区别与联系

然而,需要注意的是,并不是所有的毫米波雷达都采用相控阵技术,因此不能简单地将毫米波雷达归类为相控阵雷达。雷达是一种利用无线电波进行目标探测和定位的电子设备,不同类型的雷达在结构、工作原理、性能特点以及应用领域等方面存在显著的区别与联系。豪米波雷达并不直接对应于上述提到的脉冲雷达、连续波雷达、相控阵雷达、合成孔径雷达(SAR)或激光雷达中的某一种,但它可以根据其工作原理和特性进行归类。发展目标:随着科技的进步和应用领域的拓展,各种类型的雷达都在朝着更高精度、更小体积、更低功耗和更广应用场景的方向发展。

2024-12-26 17:20:10 423

原创 飞行器控制系统——导航、制导与控制

根据感知、规划、控制这三层架构可以有如下的研究内容。感知层面,除了传统的导航滤波算法,可以做的研究有多源数据融合;目标识别、定位、检测;以及当下很火的slam。规划层面,将飞行器上升到一个无人智能体的概念后,可以研究任务分配、智能决策。有了任务输出后,根据任务决策,进行路径规划与优化,有了期望路径,可以去做跟踪控制。控制层面,除了传统经典控制方法,还可以研究自适应控制、鲁棒控制、最优控制等。另外一方面针对有些模型无法获取的情况,系统辨识也是一个不错的方向。

2024-12-20 13:34:21 1049

原创 C++ std::future与std::promise

当向std::promise设置值时抛出异常,如果没有妥善处理,可能会导致结果永远不会被设置,而等待的std::future将永远阻塞。在调用get()之前,先检查std::future::valid()和std::future::wait_for(),确保操作的安全性。使用std::future::wait_for()或std::future::wait_until()来控制等待时间,避免无限期阻塞。下面的示例展示了如何使用std::async启动一个异步任务,并通过std::future获取结果。

2024-12-20 09:57:14 895

原创 C++中的高阶函数:std::function

例如,std::function<void(int)>表示接收一个整数参数,并且不返回任何值的回调函数,std::function<std::string(const std::string&)>表示接收一个字符串参数,并且返回一个字符串的回调函数。std::function是一个通用的、多态的函数封装器,它的实例可以对任何可以调用的目标实体进行存储、复制和调用操作,包括普通函数、Lambda表达式、函数指针和带有operator()的类等。在这个例子中,我们首先使用了一个自由函数作为任务函数。

2024-12-13 14:49:31 2029

原创 无人机飞行模式(Ardupilot和MAVLink协议)(STABILIZE、ALTITUDE HOLD、LOITER、GUIDE、AUTO、LAND、RTL)

LOITER:LOITER模式是控制无人系统的一种更易访问的模式,一旦用户不向RC控制器提供输入,它便保持无人系统的当前位置,方向和高度。高度保持:一种更舒适的控制无人系统的模式,用户无需担心为无人系统保持固定的高度,因为自动驾驶仪会自动控制 PID控制器控制无人机的高度。LAND和RTL模式可用于违反导航安全和地理围栏的情况,例如,可以在自动驾驶仪上编程,如果电池电量低于一定水平,则无人系统需要立即降落或返回起始位置 自动。RTL模式,也称为返回发射,将迫使无人系统返回执行起飞的起始位置。

2024-07-17 20:10:41 1518

原创 Log4Cpp

log4cpp

2024-05-30 14:21:14 130

原创 SerialPort

【代码】SerialPort。

2024-05-30 12:18:36 139

原创 UdpSoket

【代码】UdpSoket。

2024-05-30 10:54:51 146

原创 TcpThread

【代码】TcpThread。

2024-05-30 10:52:55 141

原创 TcpSocket

【代码】TcpSocket。

2024-05-30 10:49:59 138

原创 TcpServer

【代码】TcpServer。

2024-05-30 10:21:27 124

原创 简单说明GPL和LGPL协议

GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

2024-05-06 09:30:23 2642

原创 std::function详解

std::function是一个函数包装模板,可以包装下列这几种可调用元素类型:函数、函数指针、类成员函数指针或任意类型的函数对象(例如定义了operator()操作并拥有函数闭包)。std::function对象可被拷贝和转移,并且可以使用指定的调用特征来直接调用目标元素。当std::function对象未包裹任何实际的可调用元素,调用该std::function对象将抛出std::bad_function_call异常。

2024-04-09 10:19:22 6535

原创 C++11中的lambda函数

默认情况下,lambda函数是const函数,当lambda函数使用值传递时,mutable使得函数可以const限制,可以修改值传递进来的参数。:捕获列表,捕获列表出现在lambda函数的起始处,[]也被称为lambda的引出符,编译器根据引出符判断接下来的代码是否是lambda函数。[=,&a,&b] :表示引用传递的方式捕获变量a和b,值传递方式捕获所有父作用域变量。statement:函数体实现,除了可以使用参数列表的参数,也可以使用捕获列表的值。[var] :表示值传递方式捕获变量var。

2024-03-11 11:12:32 439

原创 v-model和:model的区别

场景:在使用el-form时,form上面使用的是:model;而在表单里面的el-input使用的是v-model。那么这两者有什么区别呢?

2024-02-23 12:13:42 896 1

原创 详解vue中中localStorage的使用方法

对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:localStorage 和sessionStorage。

2024-02-23 10:03:03 979

原创 vue中template原理

在Vue中,每个组件都会有一个对应的虚拟DOM数,在更新时,Vue会通过对比新旧虚拟DOM,找出需要更新的节点,并将其更新到真实DOM中。其中,v-bind能够绑定Vue实例中的数据到DOM元素中,v-model则能实现双向绑定,v-for可以实现循环渲染,v-if则可以实现条件渲染等功能。总的来说,Vue的template语法是非常强大和灵活的,Vue能够通过将其解析成虚拟DOM,实现高效的数据更新,让我们不需要关注手动操作DOM的细节,让我们专注在数据处理和业务逻辑上。

2024-02-01 12:12:39 850

原创 HTML常用标签

定义 HTML 文档… 文档的信息HTML 文档的元信息文档的标题文档与外部资源的关系文档的样式信息… 可见的页面内容注释。

2024-01-12 11:00:14 427

原创 C++友元函数和友元类(C++ friend关键字)

例如将类 B 声明为类 A 的友元类,那么类 B 中的所有成员函数都是类 A 的友元函数,可以访问类 A 的所有成员,包括 public、protected、private 属性的。如果声明了类 B 是类 A 的友元类,不等于类 A 是类 B 的友元类,类 A 中的成员函数不能访问类 B 中的 private 成员。如果类 B 是类 A 的友元类,类 C 是类 B 的友元类,不等于类 C 是类 A 的友元类。注意,友元函数不同于类的成员函数,在友元函数中不能直接访问类的成员,必须要借助对象。

2023-12-13 10:09:13 1748

原创 Qt 面试指南

栈区(stack)堆区(heap)抽象数据结构:后进先出全局区(静态区)(static)文字常量区程序代码区栈是自动分配释放,一级缓存,类似数组的结构。堆是由程序员分配释放,二级缓存,速度慢些,先进后出。

2023-12-13 09:28:44 1695

原创 static_cast、dynamic_cast、const_cast和reinterpret_cast(四种类型转换运算符)

C/C++类型转换的本质在 C/C++ 中,不同的数据类型之间可以相互转换:无需用户指明如何转换的称为自动类型转换(隐式类型转换),需要用户显式地指明如何转换的称为强制类型转换(显式类型转换)。隐式类型转换利用的是编译器内置的转换规则,或者用户自定义的转换构造函数以及类型转换函数(这些都可以认为是已知的转换规则),例如从 int 到 double、从派生类到基类、从type *到void *、从 double 到 Complex 等。type *是一个具体类型的指针,例如int *、double *、

2023-12-05 12:19:12 931

原创 vs番茄助手突然不显示并且重新安装也不显示

2023-12-01 16:38:16 1162

原创 Qt信号槽机制和事件机制的理解

唯一不同的是:槽还可以和信号连接在一起,在这种情况下,每当发射这个信号的时候,就会自动调用这个槽。内省功能对于实现信号和槽是必需的,并且允许应用程序的开发人员在运行时获得有关QObject 子类的“元信息”(meta-information),包括一个含有对象的类名以及它所支持的信号和槽的列表。(3) 信号与槽在多线程时支持异步调用在单线程应用时,你可以把信号与槽看成是一种对象间的同步通信机制,这是因为在这种情况下,信号的释放过程是阻塞的,一定要等到槽函数返回后这个过程才结束,也就是不支持异步调用。

2023-11-29 14:52:09 1507

原创 C++工程师面试必问面试题

答:当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。智能指针的一种通用实现技术是使用引用计数。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;

2023-11-29 09:35:39 570

原创 Qt5.13 编译QFtp

Qt5.13 编译QFtp源码

2022-12-13 10:44:39 129

原创 log4cpp 的使用

log4cpp 使用

2022-11-03 14:58:58 1095

原创 QVector对存储数据的释放

QVector对存储数据的释放

2022-08-26 11:10:36 1794

原创 Qt删除文件夹及文件

Qt删除文件夹及文件夹下的文件

2022-08-24 18:51:53 10890 1

原创 C++中的前置声明

C++头文件中关于类和结构体的前置声明

2022-08-24 18:48:08 1662

原创 vector的几种清空容器(删除)办法

vector清空内存的方法

2022-08-09 09:31:20 5670

原创 Ribbon风格菜单栏

Ribbon风格界面介绍

2022-07-11 17:18:19 852

原创 QGIS开发入门知识

QGIS开发入门知识

2022-07-11 17:17:06 1636

原创 QGIS二次开发环境搭建

QGIS二次开发环境搭建

2022-07-05 16:54:40 1719

原创 H264 视频码流分析

H264视频码流分析

2022-06-01 15:39:48 1680

原创 QTableView插入QCheckBox复选框

通过实现QAbstractItemDelegate的paint()函数。这种方法和《C++_GUI_Qt4_编程(第二版)》中第十章的自定义委托例子,画星星的作法是一样的,都是通过 QApplication::style()->drawControl(QStyle::CE_CheckBox,&check_box_style_option,painter);这个函数,只不过选择的元素是QCheckBox的。#ifndef CCHECKBOXMODEL_H#define CCHECKBOX

2022-04-28 15:33:25 3387 1

原创 QTableView 实现在单元格添加下拉框 QComboBox

1)通过setIndexWidget方法实现实现:1)继承代理类,实现自定义代理,网上很多教程,这里不再赘叙;2)更加方便的方法,使用接口:void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget);其实QTableWidget的setCellWidget借口内部也是调用 setIndexWidget。示例代码:Widget::Widget(QWidget *parent) : QW

2022-04-28 15:22:09 14298 3

原创 Qt之QTableWidget 表头添加QComBox

重写QHeaderView重写HeaderView,然后设置到对应的tablewidget中去。class CheckBoxHeaderView : public QHeaderView{ Q_OBJECTpublic: CheckBoxHeaderView(int checkColumnIndex, Qt::Orientation orientation, QWidget * parent = 0) : QHeaderView(orientation, parent) { /

2022-04-28 14:48:04 1755

原创 C++中 delete 和 delete[] 的区别

delete 释放new分配的单个对象指针指向的内存delete[] 释放new分配的对象数组指针指向的内存(1). 针对简单类型 使用new分配后的不管是数组还是非数组形式内存空间用两种方式均可 如:int *a = new int[10];delete a; //方式1delete [] a; //方式2此种情况中的释放效果相同,原因在于:分配简单类型内存时,内存大小已经确定,系统可以记忆并且进行管理,在析构时,系统并不会调用析构函数,它直接通过指针可以获取实际分配的

2022-03-24 15:19:55 228

转载 TinyXML2使用教程

TinyXML2使用教程原文转自 http://blog.youkuaiyun.com/K346K346/article/details/487504171.TinyXML2概述TinyXML2是simple、small、efficient开源的C++ XML文件解析库,可以很方便的应用到现有的项目之中。非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作。TinyXML2详细介绍与源码获取方法详见:TinyXML2官网。2. TinyXML1与TinyXML2对比TinyXML1与TinyXM

2022-03-18 17:59:00 2483

原创 编程设计模式中委托 和代理模式的区别

编程设计模式中委托 和代理模式什么区别?委托更接近于观察者模式。设计模式中,是没有委托模式的,委托是一种机制,用于事件的触发。在java中,实现观察者模式,观察者必须要实现update方法,在被观察者通知时,调用这个方法。观察者模式的缺点是,由于要实现观察者的update方法,所以,耦合比较严重,入侵性强。如果,之前写好的类,要成为一个被观察者,则必须要更改这个类。并且,这个类可能已经有了可以处理问题的方法,但是却还要实现方法。还有,就是语义上的缺点。update方法到底是啥意思呢?这个方法可能是实现通知

2022-03-02 16:27:15 1316

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除