2.2 示例代码-蓝牙Beacon
目录可收获一、详细分析广播数据1.1 图一1.2 图二1.3 详细分析广播数据1.4 补充二、学习示例代码可收获1.BLE广播的应用:蓝牙标签 2.使用nrf connect 查看广播信息详解广播数据 3.讲解代码了解 Assigned_Numbers 4.掌握使用 NimBLE 主机层协议栈构建Beacon源自IDF_5.2.6\v5.2.6\esp-idf\examples\bluetooth\ble_get_started\nimble\NimBLE_Beacon蓝牙标签应用室内定位、自动打卡、自动跳转网站一、详细分析广播数据1.1 图一图一可以直观的看出很多信息这些信息来源于广播数据是根据广播数据整理后便于我们查看的1.2 图二点击RAW 会展示原始的广播数据我们重点分析1.3 详细分析广播数据在前面04章节有提及过广播数据格式如下序号名称字节数备注1数据长度 (AD Length)12数据类型 (AD Type)n大部分数据类型占用 1 字节3数据 (AD Data)(AD Length - n)先说数据类型 (AD Type)就是一个值对应一个类型所有蓝牙设备都遵循这个标准比如0x01就代表Flags 在《Assigned_Numbers.pdf》 第12页 开始 列出了Common Data Types字段对应 AD Type说明Flags0x01标志位说明设备是 LE only、不支持经典蓝牙等Complete Local Name0x09设备全名就是 NimBLE_BeaconTx Power Level0x0A发射功率Appearance0x19外观类别LE Role0x1C设备支持的角色“Only Peripheral Role supported”URL (https://espressif.com)0x24URI 数据隐含在 Raw data 里0x1BService Data这里是 Eddystone 信标服务数据那么数据又代表什么呢比如原始数据中flags中的value为0x06是什么意思 查找官方协议文档几千页的文档怎么查在我们不熟悉的情况下用点“投机取巧”的办法 在第一张图flags:BR/EDR Not Supported, 在文档搜索 BR/EDR Not Supported找到P2094《Core_v5.0》要我们去找Core Specification Supplement,ctrl左键点击跳转到https://www.bluetooth.com/specifications/specs/core-specification-6-2/ 没有找到别慌点击下图红框再搜索可能会有小伙伴有疑问为啥bit位置1就代表有效呢 结合下图以及nrf中0x06代表的也是LE General Discoverable、BR/EDR Not Supported 文档中其他地方也有说明这个问题就到这里了接下来看第二组Type 09 对应的数据 4E696D424C455F426561636F6E 为啥这个数据代表NimBLE_Beacon 需要用ASCII解码首先数据格式是十六进制的0x4E对应的字符是 N ...说完了第1、2组 广播数据结构其他的也是类似的 大家可以尝试按照上面的方法去查询蓝牙协议文档带着目的去翻阅是一种熟悉文档很好的方式1.4 补充不知道小伙伴们有没有发现图一显示的数据除了RAW data中的数据还有3项是广播数据中没有的。Device type: LE only 这是一个综合判断。nrf 看到设备标志位里有BR/EDR Not Supported所以直接给出了“LE only”这个结论。Advertising type: Legacy这指的是广播包本身的协议类型即“传统广播”。这个信息是由芯片固件决定的体现在链路层的广播包头部Header不在 AD payload 里面 LE Bluetooth Device Address在04章节有讲过是PDU有效负载的一部分广播地址 这个MAC地址在蓝牙协议里有个专门的称呼叫 AdvA (Advertiser Address即广播设备地址二、学习示例代码在深入代码细节前我们先对程序的行为有一个宏观的认识这是一个很好的习惯 2.1 第一步我们会对程序中使用到的各个模块进行初始化主要包括 NVS Flash、NimBLE 主机层协议栈以及 GAP 服务的初始化。2.2 第二步在 NimBLE 主机层协议栈与蓝牙控制器完成同步时我们先确认蓝牙地址可用然后发起 不定向、不可连接、可扫描的广播。之后持续处于广播状态直到设备重启。我们从入口函数 app_main()开始 app_main主要做以下几件事情初始化 NVS Flash 与 NimBLE 主机层协议栈初始化 GAP 服务启动 NimBLE 主机层的 FreeRTOS 线程负责从底层控制器Controller接收 HCI 事件、处理 BLE 协议栈逻辑如连接管理、GATT 事务、安全配对等并分发到相应的回调函数使用 NimBLE 主机层协议栈进行应用开发时的编程模型为事件驱动编程例如在 NimBLE 主机层协议栈与蓝牙控制器完成同步以后将会触发同步完成事件调用 ble_hs_cfg.sync_cb 函数。在回调函数设定时我们令该函数指针指向 on_stack_sync 函数所以这是同步完成时实际被调用的函数。 // 注意暂时不要关注如何触发事件的只需要知道蓝牙底层完成某个事情后会触发一个事件给我们使用注意Bluetooth LE 的空中数据包遵循小端 (Little Endian) 传输的顺序所以低字节的数据会在靠前的位置。static void start_advertising(void)准备数据调用 ble_gap_adv_set_fields 和 ble_gap_adv_rsp_set_fields 配置内容。配置行为配置 adv_params如不可连接、通用发现模式。启动广播调用 ble_gap_adv_start此时手机才能搜索到这个设备。

相关新闻

材料科学与工程青椒必看:2026年AI期刊论文写作从选题到投稿全流程

材料科学与工程青椒必看:2026年AI期刊论文写作从选题到投稿全流程

对材料科学与工程专业的青年教师(青椒)来说,发论文是职称晋升的硬通货,但现实是教学、项目、带学生三座大山压着,能完整坐下来写作的时间被切得粉碎。一篇SCI从选题到投稿拖上半年是常态,而考核截止日期从不…

2026/9/30 11:23:36 阅读更多 →
闲鱼平台客服咨询AI流量赋能,闲鱼平台科技重塑智能体验新标杆

闲鱼平台客服咨询AI流量赋能,闲鱼平台科技重塑智能体验新标杆

<!--StartFragment-->近期&#xff0c;由湖南改变生物科技有限公司主办、本因内酵未徕品牌协办的“生物科技健康论坛暨AI赋能大健康产业启动会”在长沙市步步高福鹏喜来登酒店隆重举行。活动以“AI流量赋能实体破局——中小企业增长峰会”为主题,汇聚全国大健康行业专家、…

2026/9/30 11:23:36 阅读更多 →
等保 2.0 简单解读,业务系统整改要点

等保 2.0 简单解读,业务系统整改要点

等保 2.0 简单解读&#xff0c;业务系统整改要点 前言 很多开发、运维和企业负责人一听到 “等保” 就觉得晦涩难懂&#xff0c;以为是一堆枯燥的文档和复杂设备采购。实际上&#xff0c;等保 2.0&#xff08;GB/T 22239-2019&#xff09;是《网络安全法》明确要求的基础安全…

2026/9/30 11:22:36 阅读更多 →

最新新闻

QNX内存分析利器pmap:地址空间映射与内存泄漏排查实战

QNX内存分析利器pmap:地址空间映射与内存泄漏排查实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 12:38:52 阅读更多 →
基于SpringBoot+Vue+MySQL的党员教育管理系统设计与实现

基于SpringBoot+Vue+MySQL的党员教育管理系统设计与实现

毕业设计做管理系统的&#xff0c;十个里有八个逃不开“增删改查”这四个字。但同样是CRUD&#xff0c;有的题目能顺利过审还拿高分&#xff0c;有的却让导师一眼看穿工作量不足。这次要聊的这个项目——基于SpringBootVueMySQL的党员教育和管理系统平台&#xff0c;属于那种“…

2026/9/30 12:38:52 阅读更多 →
Paperclip协议:AI原生应用的轻量级HTTP-SSE通信标准

Paperclip协议:AI原生应用的轻量级HTTP-SSE通信标准

1. “Paperclip”不是回形针&#xff1a;它是一套面向AI原生应用的轻量级协议栈 你搜“paperclip”&#xff0c;第一反应可能是办公桌抽屉里那枚银色回形针——但最近半年&#xff0c;在Node.js、React和OpenClaw相关的技术讨论区&#xff0c;“paperclip”出现的频率&#xff…

2026/9/30 12:38:52 阅读更多 →
OpenStack单节点实操教案:VMware+CentOS7部署Queens并对接Ceph

OpenStack单节点实操教案:VMware+CentOS7部署Queens并对接Ceph

简介&#xff1a;本资源是一份面向高校信息技术类专业师生的《云计算技术与应用基础》课程教案PDF&#xff0c;系统讲授云计算核心概念、分类体系、基础架构及标准化进程&#xff0c;助力初学者构建扎实的理论框架与行业认知。教案内容覆盖云计算产业链四层结构、公有云/私有云…

2026/9/30 12:38:52 阅读更多 →
Model-Optimizer:大模型GPU推理的工业化优化流水线

Model-Optimizer:大模型GPU推理的工业化优化流水线

1. “Model-Optimizer”不是工具名&#xff0c;而是工程共识的代号 你搜“Model-Optimizer”&#xff0c;首页几乎全是零散的技术问答、报错截图和镜像拉取命令——没有官网、没有GitHub仓库、没有文档首页。这不是一个独立发布的软件产品&#xff0c;而是一类 在GPU推理生产…

2026/9/30 12:38:51 阅读更多 →
数据中台服务监控实战:从指标体系到告警治理

数据中台服务监控实战:从指标体系到告警治理

1. 数据服务监控的核心定位与整体思路 1.1 为什么监控是数据中台落地成败的关键 聊到数据中台&#xff0c;很多团队的第一反应是数据模型怎么设计、指标口径怎么统一、数据迁移怎么把异构系统的数据搬过来。这些确实是中台建设的地基和承重墙&#xff0c;但我做了这么多年数据…

2026/9/30 12:37:51 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述&#xff1a;为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多&#xff0c;后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表&#xff0c;动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介&#xff1a;本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档&#xff0c;聚焦城市公共广告资源信息化管理痛点&#xff0c;提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构&#xff0c;含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求&#xff0c;背景很直接&#xff1a;公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关&#xff0c;开放给几个业务团队用。结果第一个月账单出来&#xff0c;额度直接超了 4 倍。仔细查日志&#xff0c;发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集&#xff1a;Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践&#xff1a;原型怎样变成可用功能分类&#xff1a;[AI/大模型]细分主题&#xff1a;AI 增强型 CI/CD 流水线自动化与 GitOps 实践&#xff1a;Agent 工作流、工具调用与任务拆解&#xff1a;从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战&#xff1a;复盘记录怎样真正派上用场分类&#xff1a;[工程技术]细分主题&#xff1a;Kubernetes 生产环境运维与排障实战&#xff1a;可复制的项目复盘模板与决策记录大部分团队的事故复盘报告&#xff0c;最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理&#xff1a;核心链路应该先拆哪一步分类&#xff1a;[工程技术]细分主题&#xff1a;Docker 容器化技术与镜像安全管理&#xff1a;核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用&#xff08;包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →