无人机Remote ID Beacon 帧字段详解

 80 00 00 00 FF FF FF FF FF FF 60 60 1F B0 13 D0 60 60 1F B0 13 D0 00 00 10 4F F1 1A 00 00 00 00 A0 00 20 04 00 18 52 49 44 2D 31 35 38 31 46 35 59 48 58 32 33 39 48 30 30 32 34 35 30 41 DD 53 FA 0B BC 0D B0 F1 19 03 01 12 31 35 38 31 46 35 59 48 58 32 33 39 48 30 30 32 34 35 30 41 00 00 00 11 16 B5 00 00 AA 10 8D 12 5E 64 77 3D 3E 08 35 08 D0 07 4B 04 DB 01 0A 00 41 09 98 0F 8D 12 A5 64 77 3D 01 00 00 00 00 00 00 01 1A 08 0F 45 BF 0C 00 00 78 56 AD 

以上为抓取无人机Remote ID的原始16进制数据(部分位置数据修改)

802.11 Beacon 帧 + OpenDroneID 协议完整解析(151 字节,0-150 索引)

1. 帧类型与整体结构

十六进制数据为802.11 管理帧(Beacon 帧),承载 OpenDroneID 协议数据(“Remote ID”,协议标准名称为 OpenDroneID)。帧结构符合 IEEE 802.11-2020 规范,通过供应商特定信息元素(VSIE,类型 0xDD) 嵌入无人机标识、位置、操作者信息,总长度 151 字节(0-150 索引),无数据缺失。

2. 帧头部解析(0-35 字节,共 36 字节)

偏移(字节)长度(字节)字段十六进制值说明
0-12帧控制字段80 00管理帧(类型 = 0),子类型 = Beacon 帧(0x8000),无加密、无分片,符合信标帧标准。
2-32持续时间00 00标准填充值,用于避免帧冲突,无特殊业务含义。
4-96目的地址FF FF FF FF FF FF广播地址,Beacon 帧需向所有设备发送,确保周边接收端能捕获。
10-156源地址60 60 1F B0 13 D0发送设备 MAC 地址(推测为无人机的无线模块 MAC,或其关联 AP 的 MAC)。
16-216BSSID60 60 1F B0 13 D0基本服务集标识,与源地址相同→基础设施模式(Beacon 帧由 AP 发送,BSSID=AP MAC,源地址 = AP MAC,非自组织模式)。
22-232序列控制00 00帧序列号(0)+ 分片号(0),为初始帧,无分片。
24-318时间戳10 4F F1 1A 00 00 00 00设备内部计时戳(单位:微秒),用于同步接收端时钟,无 UTC 映射意义。
32-332信标间隔A0 00小端序转换为0x00A0=160,单位为 “1024 微秒”,计算为160×1024=163840微秒=0.16384秒)。
34-352能力信息20 04二进制00100000 00000100→支持 ESS(基础设施网络)、支持隐私保护(WEP 加密),无其他扩展能力。

3. 信息元素(IE)解析(36-146 字节,共 111 字节)

帧头部后为 IE 字段,包含 SSID 和 OpenDroneID 核心数据,IE 结构遵循 “类型(1 字节)+ 长度(1 字节)+ 数据(长度值字节) ” 规范。

3.1 SSID 信息元素(36-61 字节,共 26 字节)

偏移(字节)长度(字节)字段十六进制值说明
361IE 类型00标准 IE 类型,标识后续为 SSID 字段。
371IE 长度18十六进制0x18=24字节,对应 SSID 数据长度(与后续 38-61 字节共 24 字节匹配)。
38-6124SSID52 49 44 2D 31 35 38 31 46 35 59 48 58 32 33 39 48 30 30 32 34 35 30 41ASCII 转换为RID-1581F5YHX239H002450A,为无人机的 “远程标识关联 ID”,非直接序列号(序列号在 Basic ID 消息中)。

3.2 OpenDroneID 供应商特定 IE(62-146 字节,共 85 字节)

偏移(字节)长度(字节)字段十六进制值说明
621IE 类型DD供应商特定 IE(VSIE),标识后续为厂商自定义数据。
631IE 长度53十六进制0x53=83字节,对应后续数据长度(64-146 字节共 83 字节,62+1+83=146,范围正确)。
64-663OUIFA 0B BC供应商标识(ASD-STAN,无人机行业标准组织)
671App Code0DOpenDroneID 应用代码(0x0D)

4. OpenDroneID 消息解析(68-146 字节,共 79 字节)

64-67 字节为 “OUI(3)+App Code(1)” 共 4 字节,68 字节开始为 OpenDroneID 消息包,总长度146-68+1=79字节(与 IE 长度 83-4=79 匹配)。

4.1 消息包头部(68-71 字节,共 4 字节)

偏移(字节)长度(字节)字段十六进制值说明
681消息计数器B0递增计数器(0xB0=176),用于接收端去重或排序,无其他业务含义。
691消息类型 + 协议版本F1高 4 位0xF=15Message Pack(消息包,含多个子消息);低 4 位0x1F3411-20 (1.1)(协议版本)。
701子消息大小19十六进制0x19=25字节,单个子消息固定长度(符合 OpenDroneID 标准,所有子消息均为 25 字节)。
711子消息数量03共 3 个子消息(类型 0、1、4),无类型 2/3(可选消息,非强制发送)。

4.2 子消息 1:Basic ID 消息(72-96 字节,类型 0,共 25 字节)

偏移(字节)长度(字节)字段十六进制值说明
721消息类型 + 协议版本01高 4 位0x0=0Basic ID(基本标识消息);低 4 位0x1F3411-20 (1.1)
731ID 类型 + 无人机类型12高 4 位0x1Serial Number (ANSI/CTA-2063-A)(序列号类型);低 4 位0x2Helicopter (or Multirotor)(多旋翼)。
74-9320无人机序列号31 35 38 31 46 35 59 48 58 32 33 39 48 30 30 32 34 35 30 41ASCII 转换为1581F5YHX239H002450A,与 SSID 前缀一致,为无人机唯一序列号。
94-963保留字段00 00 00协议预留,无数据,填充 0。

4.3 子消息 2:Location/Vector 消息(97-121 字节,类型 1,共 25 字节)

偏移(字节)长度(字节)字段十六进制值说明
971消息类型 + 协议版本11高 4 位0x1=1Location/Vector(位置消息);低 4 位0x1F3411-20 (1.1)
981状态 + 标志16高 4 位0x1On Ground(地面状态,未起飞);低 4 位0x6(二进制0110)→bit2=1:高度类型AGL(离地高度);bit1=1:东西方向West(西向);bit0=0:速度乘数0.25
991方向B5原始值0xB5=181°,结合西向标志→181+180=361°361°=Unknown
1001水平速度00原始值0× 乘数0.25=0 m/s(地面静止)。
1011垂直速度00原始值0×0.5 m/s(协议单位)=0 m/s(无升降)。
102-1054无人机纬度AA 10 8D 12小端序重组为12 8D 10 AA0x128D10AA=311230730,协议单位1e-7 °311230730÷1e7=31.123073°(北纬)。
106-1094无人机经度5E 64 77 3D小端序重组为3D 77 64 5E0x3D77645E=10312346541031234654÷1e7=103.1234654°(东经)。
110-1112气压高度3E 08小端序重组为08 3E0x083E=2110,协议公式(值×0.5)-10002110×0.5-1000=55米
112-1132大地高度35 08小端序重组为08 350x0835=21012101×0.5-1000=50.5米
114-1152AGL 高度D0 07小端序重组为07 D00x07D0=20002000×0.5-1000=0米(地面状态)。
1161精度组合4B高 4 位0x4vertAccuracies[4]=<10 m(垂直精度);低 4 位0xBhorizAccuracies[11]=<3 m(水平精度)。
1171气压 / 速度精度04高 4 位0x0vertAccuracies[0]>=150 m(气压高度精度);低 4 位0x4speedAccuracies[4]=<0.3 m/s(速度精度)。
118-1192小时内时间戳DB 01小端序重组为01 DB0x01DB=475,协议单位0.1秒475×0.1=47.5秒
1201时间戳精度0A低 4 位0xA0xA×0.1=1.0秒(时间戳精度);高 4 位保留(0x0)。
1211保留字段00协议预留。

4.4 子消息 3:System 消息(122-146 字节,类型 4,共 25 字节)

偏移(字节)长度(字节)字段十六进制值说明
1221消息类型 + 协议版本41高 4 位0x4=4System(系统消息);低 4 位0x1F3411-20 (1.1)
1231系统标志09二进制00001001→高 4 位0x0(系统状态:正常运行);低 4 位0x9(保留,非原 “系统状态 + 保留”,协议无低 4 位定义)。
124-1274操作者纬度98 0F 8D 12小端序重组为12 8D 0F 980x128D0F98=311234456311234456÷1e7=31.1234456°(北纬)。
128-1314操作者经度A5 64 77 3D小端序重组为3D 77 64 A50x3D7764A5=10312347251031234725÷1e7=103.1234725°(东经)。
1321操作者高度类型01OperatorLocTypes[1]=Dynamic(动态位置,非原 “大地水准面”)。
133-1342操作者高度00 00小端序0x0000=0,协议单位0.5米0×0.5=0米(相对大地水准面)。
135-1384系统时间戳00 01 1A 08小端序重组为08 1A 01 000x081A0100=135921920。OpenDroneID 协议系统时间戳 epoch 为2019-01-01 00:00:00(Unix 时间戳 1546272000),计算为1546272000+135921920=1,682,193,920
1391无人机分类0F此处为分类字段,非类型字段。
140-1456保留字段45 0F 8D 12 A5 64协议预留,含厂商自定义数据(如硬件版本)。
1461保留字段45协议预留,填充 0x45,非原 “校验位”(校验位在帧尾部 FCS 中)。

5. 帧尾部:填充位与 FCS(147-150 字节,共 4 字节)

此部分为 802.11 帧强制字段:

偏移(字节)长度(字节)字段十六进制值说明
147-1482填充位00 00802.11 帧要求总长度≥2346 字节(无线传输最小帧长),此处为凑足长度的填充值,无业务含义。
149-1502FCS(帧校验序列)56 AD循环冗余校验(CRC-16),确保数据完整性(非原 “消息包校验位”)。

Read more

ChatGPT免费版与微软Copilot深度对比:技术选型与新手避坑指南

作为一名开发者,最近在项目里想集成一个AI助手,面对市面上眼花缭乱的选择,尤其是免费的ChatGPT和微软力推的Copilot,到底该选哪个?这确实是个让人纠结的问题。我花了一些时间,从技术实现、实际调用到性能表现,做了一次比较深入的对比和测试,希望能给同样有选择困难的朋友们一些参考。 1. 市场定位与典型场景:它们各自擅长什么? 简单来说,你可以把ChatGPT免费版看作一个“通用型对话专家”,而微软Copilot更像一个“深度集成在微软生态里的专业副驾驶”。 * ChatGPT免费版:它的核心优势在于强大的通用对话和文本生成能力。无论是头脑风暴、撰写邮件、学习新概念,还是进行开放式的创意讨论,它都能提供质量不错的回应。对于开发者而言,它非常适合用于: * 学习新技术:解释复杂的编程概念或算法。 * 代码解释与重构:将一段代码丢给它,让它解释逻辑或提出优化建议。 * 生成示例代码:根据自然语言描述,快速生成某个功能的代码片段原型。 * 微软Copilot:它的设计初衷就是提升开发和生产效率,与Visual Studio Code、GitHub、Micros

SensioFrameworkExtraBundle路由注解完全指南:从基础到高级

SensioFrameworkExtraBundle路由注解完全指南:从基础到高级 【免费下载链接】SensioFrameworkExtraBundleAn extension to Symfony FrameworkBundle that adds annotation configuration for Controller classes 项目地址: https://gitcode.com/gh_mirrors/se/SensioFrameworkExtraBundle SensioFrameworkExtraBundle是Symfony FrameworkBundle的扩展,提供了控制器类的注解配置功能,让开发者能够通过注解轻松定义路由规则,大幅提升开发效率。本文将从基础到高级,全面介绍如何使用该bundle的路由注解功能。 📚 路由注解基础:快速入门 路由注解是SensioFrameworkExtraBundle最核心的功能之一,它允许你直接在控制器类和方法上定义路由信息,无需单独维护路由配置文件。 基本使用方法 在控制器类上使用@Route注解可以定义基础路

旧电脑 Win7 复活计划:编译与运行 llama.cpp (Qwen3版)

旧电脑 Win7 复活计划:编译与运行 llama.cpp (Qwen3版)

🦕 旧电脑 Win7 复活计划:编译与运行 llama.cpp (Qwen3版) 这份指南专为不支持新版软件的 Windows 7 设计,通过本地编译实现大模型运行。 手动编译可以获得最好的性能,不想自己手动编译 可以直接使用下面编译好的bin文件,同时包含下面用到的相关软件和替换文件httplib.h 链接:https://pan.quark.cn/s/2c5f627c93d7 提取码:cSJh 📋 0. 软件版本清单 请务必确保使用以下特定版本,以保证在 Win7 下的兼容性: 软件名称文件名 (根据截图)作用备注编译环境w64devkit-x64-2.5.0.7z.exe提供 GCC 编译器核心工具构建工具cmake-3.31.10-windows-x86_64.msi生成编译配置必须安装到默认路径源码工具Git_for_Windows_(64bit)_v2.45.

从零开始创建cli-progress自定义预设:打造独一无二的进度条样式

从零开始创建cli-progress自定义预设:打造独一无二的进度条样式 【免费下载链接】cli-progress :hourglass: easy to use progress-bar for command-line/terminal applications 项目地址: https://gitcode.com/gh_mirrors/cl/cli-progress 在开发命令行应用时,一个直观美观的进度条能极大提升用户体验。cli-progress作为一款轻量级的命令行进度条工具,不仅提供了丰富的预设样式,更支持开发者创建完全自定义的进度条风格。本文将带你一步步打造专属于你的进度条预设,让你的命令行应用脱颖而出。 认识cli-progress预设系统 cli-progress的预设系统位于项目的presets/目录下,通过模块化的方式组织不同风格的进度条配置。系统默认提供了四种预设:legacy、shades_classic、shades_grey和rect,这些预设定义了进度条的外观、字符和格式。 不同预设样式的进度条展示,从左到右分别为legacy、shades_