801-203_各无人机厂家对RemoteID支持情况汇总

1. 大疆DJI

参考链接:大疆无人机RemoteID支持情况

DJI航拍无人机的RID广播信息包含以下信息:

  1. ID等身份认证
  2. 无人机的纬度、经度、几何高度和速度
  3. 控制站的纬度、经度和几何高度的指示
  4. 时间信息、紧急状态信息

支持RID的航拍无人机型号

大疆无人机支持RID型号列表
序号无人机机型支持情况备注
1DJI Mavic 4 Pro支持
2DJI Flip支持
3DJI Air 3S支持
4DJI Neo支持WIFI直连模式下和脱控模式下不支持
5DJI Mini 4K支持V01.07.0400 及以后
6DJI Avata 2V01.00.0300 及以后
7DJI Mini 4 Pro支持V01.00.0400 及以后
8DJI Air 3支持V01.00.1200 及以后
9DJI Mini 3支持V01.00.05.00 及以后
10DJI Mini 2 SE支持V01.00.05.00 及以后
11DJI Mavic 3 Pro支持
12DJI Mavic 3 Classic支持
13DJI Mavic 3支持

说明:1. RID功能属于中国民航法规强制要求开启的功能,该功能无法关闭。

           2. RID信息是标准格式,传输过程中不加密。

2. 亿航Ehang

3. 纵横JOUAV

4. 道通智能AUTEL

5. 极飞XAG

6. 傲势AOSSCI

7. 普宙科技GDU

8. 极目EAVISION

9. 沃飞长空AEROFUGIA

10. 昊翔Yuneec

11. 哈博森HUBSAN

12. 派诺特Parrot

13. AEE一电科技

14. 智飞星

15. 植保

16. 瓴乐智能

17. 翔顺

Read more

C++ 多线程同步之条件变量(condition_variable)实战

C++ 多线程同步之条件变量(condition_variable)实战

C++ 多线程同步之条件变量(condition_variable)实战 💡 学习目标:掌握 C++ 标准库中条件变量的使用方法,理解条件变量与互斥锁的协同工作机制,能够解决多线程间的等待-通知问题。 💡 学习重点:std::condition_variable 的核心接口、wait() 与 notify_one()/notify_all() 的配合使用、生产者-消费者模型的实现。 49.1 条件变量的引入场景 在多线程编程中,我们经常会遇到线程需要等待某个条件满足后再执行的场景。 比如生产者线程生产数据后,消费者线程才能消费;队列不为空时,消费者才能从中取数据。 如果仅用互斥锁实现,消费者线程只能不断轮询检查条件,这会造成 CPU 资源的浪费。 ⚠️ 注意事项:单纯的轮询会导致 CPU 空转,降低程序运行效率,条件变量就是为解决这类问题而生的。 举个简单的轮询反例,消费者不断检查队列是否有数据: #include<iostream>

MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用)

MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用)

MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用) MinGW-w64安装教程——C/C++编译器GCC的Windows版本 一、MinGW的定义 MinGW,全称是Minimalist GNU for Windows,即“适用于Windows的精简版GNU工具集”。它是一套面向Windows平台的开发工具套件,核心包含一系列GNU工具与库,能够支撑本地Windows应用程序的编译与构建工作。其核心目标是在Windows操作系统中,搭建起类似Unix/Linux环境的开发场景,让开发者无需切换系统,就能便捷地在Windows平台上编写、编译C语言、C++等程序。 二、MinGW的主要组件 * MinGW的功能实现依赖于多个核心组件的协同作用,各组件职责明确,具体如下: * 1. GCC(GNU编译器集合)作为开源编译器套件的代表,GCC支持C、C++、Fortran等多种编程语言。在MinGW工具集中,GCC承担着核心的编译任务,负责将开发者编写的源代码转化为可在Windows平台运行的可执行文件

对于C++:继承的解析—下

对于C++:继承的解析—下

开篇介绍: hello 大家,这篇博客我将带领着继续去解析C++中的继承的剩余的知识,我们话不多说,直接开始。 派生类(子类)的默认成员函数: OK大家,现在呈现在大家眼前的是C嘎嘎继承中,最重要最核心最关键的部分,请大家抓好扶手,坐稳了,我们出发。 构造函数: 在 C++ 的继承关系中,派生类(子类)对象初始化时,有一条核心规则:必须先通过基类(父类)的构造函数完成基类部分成员的初始化,之后才能再处理子类自身成员的初始化。这是因为子类对象的内存中包含着基类的成员,这些成员的初始化逻辑由基类自己的构造函数负责,子类无法直接干预。 具体来看,基类是否有默认构造函数(包括无参构造函数或全缺省构造函数),会影响派生类构造函数的写法: 如果基类存在默认构造函数,那么派生类的构造函数会自动隐式地调用这个默认构造函数来初始化基类部分,我们不需要在代码中特意写明。 但如果基类没有默认构造函数(比如只定义了带参数且非全缺省的构造函数),情况就不同了。这时派生类的构造函数必须在初始化列表阶段,明确指定要调用基类中的哪个构造函数,否则编译器会报错。因为此时基类没有能 “无参数直接调用”

C++幻象:内存序、可见性与指令重排

C++幻象:内存序、可见性与指令重排

C++ 井发的假象:内存序、可见性与指令重排 写在前面:当你第一次把 std::atomic、memory_order 这些词读到手软时,可能会觉得这是 OS 或硬件工程师的专属领域。但其实理解内存模型并不需要掌握每一条 CPU 手册的汇编,只要抓住核心概念与工程实践,你就能写出既高效又安全的并发代码。 本文面向有一定 C++ 并发基础的读者(知道线程、互斥量、基本的 std::atomic 用法),但想把“为什么这样”弄清楚。我们会从 std::atomic 的语义出发,讲清 CPU cache coherence、内存屏障(fence)、指令重排 和 happens-before 的关系——不是空洞的定义,而是大量实战例子、容易踩的坑和调试技巧。文风尽量自然、通俗,