文章目录
- [🏪 欢迎来到蓝牙便利店](#🏪 欢迎来到蓝牙便利店)
-
- [1️⃣ ADVERTISER(广告员)](#1️⃣ ADVERTISER(广告员))
- [2️⃣ GATT Server(服务员)](#2️⃣ GATT Server(服务员))
- [3️⃣ Service(货架区域)](#3️⃣ Service(货架区域))
- [4️⃣ Characteristic(具体商品)](#4️⃣ Characteristic(具体商品))
- [🔄 完整流程举例](#🔄 完整流程举例)
- [📊 一张图总结](#📊 一张图总结)
- [💡 记忆口诀](#💡 记忆口诀)
🏪 欢迎来到蓝牙便利店
1️⃣ ADVERTISER(广告员)
就像便利店门口的霓虹灯招牌
- 不停地向周围喊话:"我在这里!我叫XX便利店!"
- 路过的人(手机)能看到这个招牌,知道附近有这家店
- 你可以选择进店,也可以路过不理
- 特点:单向广播,不需要连接就能看到
生活例子:
- 你打开手机蓝牙搜索,看到"小米手环"、"AirPods"这些设备名
- 就是它们的ADVERTISER在广播"我在这儿"
2️⃣ GATT Server(服务员)
就像便利店里的服务员
- 当你走进店(连接设备)后,服务员开始为你服务
- 你可以问他:"你们有什么商品?"
- 你可以买东西(读数据),也可以退货(写数据)
- 特点:需要先连接才能交互
3️⃣ Service(货架区域)
就像便利店里的不同货架区
一个便利店有很多区域:
- 🍫 零食区
- 🥤 饮料区
- 📰 杂志区
- 🔋 生活用品区
每个Service就是一个功能区域:
- 心率服务:提供心率数据
- 电池服务:显示电量
- 温度服务:提供温度读数
真实例子:
- 智能手环可能有:"心率Service"、"步数Service"、"电量Service"
4️⃣ Characteristic(具体商品)
就像货架上的具体商品
在"饮料区"(Service)里有:
- 🥤 可乐(商品1)
- 🧃 果汁(商品2)
- 💧 矿泉水(商品3)
每个Characteristic是具体的数据:
- 心率值:比如"75 bpm"
- 步数:比如"8000步"
- 电量百分比:比如"80%"
操作方式:
- 读(Read):看标签价格
- 写(Write):往购物车放商品
- 通知(Notify):店员主动告诉你"新品到货啦!"
🔄 完整流程举例
场景:用手机连接智能手环
- 广播阶段(ADVERTISER)
手环不停喊话:"我是小米手环,我在这里!"
手机:听到了,我要连接你! - 连接成功(GATT Server启动)
手机:连上了!你有什么功能?
手环:欢迎光临,我这里有好几个服务哦~ - 浏览服务(Service)
手机:给我看看你的"心率服务"
手环:好的,心率服务里有这些数据... - 读取数据(Characteristic)
手机:心率值是多少?(读取Characteristic)
手环:当前心率75 bpm
手机:开启持续监测模式(写入Characteristic)
手环:好的,我每秒都会通知你新数据(Notify)
📊 一张图总结
蓝牙设备(一家便利店)
│
├─ ADVERTISER(门口招牌)→ "我在这里!"
│
└─ GATT Server(服务员)→ 连接后提供服务
│
├─ Service 1(心率货架)
│ ├─ Characteristic: 心率值(75 bpm)
│ └─ Characteristic: 测量间隔(1秒)
│
├─ Service 2(电池货架)
│ └─ Characteristic: 电量(80%)
│
└─ Service 3(步数货架)
├─ Characteristic: 今日步数(8000步)
└─ Characteristic: 目标步数(10000步)
💡 记忆口诀
- ADVERTISER = 门口喊 🔊(不需要进店就能听到)
- GATT Server = 店里服务员 👨💼(进店后才能交流)
- Service = 货架区 🏪(一类功能的集合)
- Characteristic = 具体商品 📦(真正的数据)