【蓝牙协议栈】【BLE】【IAS】蓝牙立即警报服务

蓝牙IAS协议(Immediate Alert Service)介绍

Immediate Alert Service(IAS,立即警报服务) 是蓝牙低功耗(Bluetooth Low Energy, BLE)中的一个标准服务,主要用于发出立即警报。它通常应用在需要触发设备如找回丢失设备或触发紧急报警的场景中。IAS服务的核心功能是为各种蓝牙设备提供立即警示功能,通过改变警示级别提醒用户,通常用于物联网设备、追踪器、可穿戴设备及安全设备中。


IAS协议核心功能

IAS协议的主要功能是允许设备通过蓝牙连接发送即时告警信息。具体来说,IAS协议包括以下功能:

  • 警报的触发与控制:IAS协议允许主机设备(例如手机)通过蓝牙直接控制从设备(例如蓝牙设备或查找追踪器)上的警报状态,依据需求触发不同级别的警报(例如,无警报、轻微警报和高强度警报)。
  • 远程通知功能:可以通过手机或控制设备远程触发设备(如智能钥匙扣、蓝牙报警器)发声、振动或闪烁,帮助用户快速定位设备或启用紧急报警功能。

‌告警级别设置‌:通过HCI(Host Controller Interface)接口,设备端可以设置告警级别,当达到设定的告警级别时,设备会触发相应的告警动作。
‌告警回调‌:当master设备写入新的告警级别时,设备端会收到写操作的回调,并根据告警级别进行相应的告警处理‌。

应用场景

  1. 防丢器/追踪器

    • 当无法找到放在某处的蓝牙防丢设备(如智能钥匙扣、钱包追踪器等)时,通过手机应用可以增大设备音量或者产生报警声音,以便快速定位设备。
  2. 安全报警设备

    • 在紧急情况下,通过远程触发设备的高强度警报(声音、振动)来吸引注意或通知其他人,常用于老年人健康监护设备或个人安全防护设备。
  3. 防盗设备

    • 如果某个蓝牙设备例如包、手提箱等被移开太远时,可以通过手机远程控制设备发出高强度警报,防止遗失或被盗。

IAS协议结构

在 GATT(通用属性配置文件)中,一个 BLE 服务由服务特征组成。
立即警报服务的UUID是 0x1802,它包含以下内容:

1. Immediate Alert Service(IAS):
  • UUID: 0x1802
  • 这是整个服务的唯一标识符,用来标识此服务的角色是用于触发警报的管理功能。
2. Alert Level Characteristic:
  • UUID: 0x2A06
  • 立即警报服务的唯一重要特征(Characteristic),用于设置警报的强度级别。
  • 它包含一个8位的值,用于表示不同的警报级别。

警报级别

Alert Level Characteristic 特征包含以下几种警报级别:

  • 0x00 - No Alert(无警报)

    • 设备不会发出任何警报。例如用户找到设备后关闭声音。
  • 0x01 - Mild Alert(轻微警报)

    • 设备会发出轻度的警报,这通常用于提醒用户设备位置,可能是震动或轻微的声音。
  • 0x02 - High Alert(强烈警报)

    • 设备发出高强度的警报,诸如高音量的声音报警或者很强的振动,以引起用户的最大注意。
警报级别通过单字节(1 Byte)的值进行表示和控制。具体值:
  • 0x00: 无警报。
  • 0x01: 轻微警报。
  • 0x02: 高强度警报。

主机可以通过写入 Alert Level Characteristic 来控制警报的级别。例如,当主机设备检测到某个事件(如距离远离)时,可以向从设备发送一个轻微或高强度警报请求。


IAS工作流程

  1. 连接设备:当基于 IAS 的蓝牙设备(如防丢器)与手机等主设备配对并连接后,主设备可以发现并访问此设备所包含的 IAS 服务。

  2. 设置警报级别:主设备根据环境或状态(例如设备离主设备太远或准备定位设备)将特征值 Alert Level 写入到IAS服务,指定不同的警报级别。

  3. 触发警报:从设备根据接收到的警报级别的值来触发相应的警报,如发出声音、震动、闪烁等。

IAS使用示例

以下是 IAS 服务在 BLE 设备中的使用场景:

  • 智能钥匙链(防丢器):如果你丢失了你的智能钥匙链,拿起手机打开 App,通过 IAS 发送高强度警报请求,智能钥匙链会发出响声,帮助你找到丢失的物品。同样,在找到物品后,可以通过发送无警报命令来取消报警。

  • 安全监控设备:安全设备遇到异常情况时,系统会自动通过 IAS 控制设备进入高警报状态,同时通过 BLE 立即通知用户。


示例代码

假设你要使用 Python 与 BLE 设备交互(通过蓝牙库 bluepy),你可以利用以下操作来控制 IAS 的报警级别。

from bluepy.btle import Peripheral# 设备地址,通过事先配对确定
device_address = "XX:XX:XX:XX:XX:XX"# IAS服务UUID和报警级别特征UUID
IAS_UUID = "1802"
ALERT_LEVEL_CHAR_UUID = "2A06"# 连接到设备
device = Peripheral(device_address)# 获取IAS服务
ias_service = device.getServiceByUUID(IAS_UUID)# 获取警报级别特征
alert_level_char = ias_service.getCharacteristics(ALERT_LEVEL_CHAR_UUID)[0]# 设置警报级别为高警报 (0x02)
alert_level_char.write(bytes([0x02]))print("高警报已触发")# 关闭警报 (0x00)
alert_level_char.write(bytes([0x00]))print("警报已关闭")# 断开连接
device.disconnect()

IAS(立即警报服务)与其他蓝牙警报服务

蓝牙标准中定义了多个与警报和通知相关的服务,IAS只是其中之一,适用于特定的应用场景。其他一些相关服务包括:

  • Link Loss Service (LLS),用于处理链路丢失时的报警(设备超出蓝牙通信范围时触发警报)。
  • Tx Power Service (TPS),传输功率服务,用于报告和调整设备通信的发射功率,以协调整体功耗和通信距离。

IAS在实际中的应用

  1. 智能防丢设备: 像 Tile、Chipolo、AirTag 等设备利用 IAS 协议通过智能手机触发警报,帮助用户寻找丢失物品。

  2. 医疗设备:某些医疗设备可能含有 IAS 协议,一旦患者需要紧急帮助,设备就可以触发高强度警报,从而提醒周围的人或医生注意。

  3. 儿童/宠物追踪器:通过 IAS服务,当孩子或宠物离开设定的区域时,跟踪设备可以触发警报,帮助监护人找到他们。


结论

蓝牙 IAS(立即警报服务)是一个简单而强大的工具,特别适合那些需要通过蓝牙触发远程警报的场景。其广泛用于智能追踪设备、安全报警设备和防丢产品,确保用户能迅速找到设备或在紧急情况下得到及时提醒。通过三种警报级别,开发人员可以根据不同的应用需求来灵活设计产品功能,提高用户体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/886089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「QT」文件类 之 QTextStream 文本流类

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C」C/C程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定制…

mysql 配置文件 my.cnf 增加 lower_case_table_names = 1 服务启动不了的原因

原因:在MySQL8.0之后的版本,只允许在数据库初始化时指定,之后不允许修改了 mysql 配置文件 my.cnf 增加 lower_case_table_names 1 服务启动不了 报错信息:Job for mysqld.service failed because the control process exited …

PVE纵览-安装系统卡“Loading Driver”的快速解决方案

PVE纵览-安装系统卡“Loading Driver”的快速解决方案 文章目录 PVE纵览-安装系统卡“Loading Driver”的快速解决方案摘要通过引导参数解决PVE安装卡在“Loading Driver”问题官方解决方法 关键字: PVE、 显卡、 Loading、 Driver、 nomodeset 摘要 在虚拟机…

[Android]相关属性功能的裁剪

1.将home界面的search bar 移除 /src/com/android/launcher3/graphics/LauncherPreviewRenderer.java // Add first page QSBif (FeatureFlags.QSB_ON_FIRST_SCREEN) {CellLayout firstScreen mWorkspaceScreens.get(FIRST_SCREEN_ID);View qsb mHomeElementInflater.infla…

Git的概念、安装、操作与分支管理和图形化界面TortoiseGit(小乌龟 )的安装与使用

目录 一、Git 概述 简介 安装 使用场景 二、Git 操作详解 使用git管理文件版本 使用 Git 管理代码 三、分支操作 使用小乌龟操作分支 创建新的分支 两个分支合并 四、总结 在当今的软件开发和文档编写等领域,版本控制工具至关重要。Git 作为其中的佼佼者…

边缘计算在智能制造中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 边缘计算在智能制造中的应用 边缘计算在智能制造中的应用 边缘计算在智能制造中的应用 引言 边缘计算概述 定义与原理 发展历程 …

设计模式之装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)

前言: 两个本想描述一样的意思的词,只因一字只差就让人觉得一个是好牛,一个好搞笑。往往我们去开发编程写代码时也经常将一些不恰当的用法用于业务需求实现中,但却不能意识到。一方面是由于编码不多缺少较大型项目的实践&#xff…

使用热冻结数据层生命周期优化在 Elastic Cloud 中存储日志的成本

作者:来自 Elastic Jonathan Simon 收集数据对于可观察性和安全性至关重要,而确保数据能够快速搜索且获得低延迟结果对于有效管理和保护应用程序和基础设施至关重要。但是,存储所有这些数据会产生持续的存储成本,这为节省成本创造…

Node.js事件循环:解锁异步编程的奥秘

Node.js的事件循环是实现高性能、异步编程的关键机制。了解Node.js事件循环的工作原理和使用方法对于开发高效的应用程序至关重要。本文将深入介绍Node.js事件循环的原理、阶段和最佳实践,帮助您充分利用这一强大功能。 Node.js事件循环概述 Node.js事件循环是Node…

Windows docker下载minio出现“Using default tag: latestError response from daemon”

Windows docker下载minio出现 Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded 此类情况,一般为镜像地址问题。 {"registry-mirrors": ["https://docker.re…

20241114软考架构-------软考案例16答案

每日打卡题案例16答案 16.【2017年真题】 难度:简单 阅读以下关于软件架构评估的叙述,在答题纸上回答问题1和问题2.(共25分) 【说明】 某单位为了建设健全的公路桥梁养护管理档案,拟开发一套公路桥梁在线管理系统。在系统的需求分析与架构设…

使用C语言进行信号处理:从理论到实践的全面指南

1. 引言 在现代操作系统中,信号是一种进程间通信机制,它允许操作系统或其他进程向一个进程发送消息。信号可以用来通知进程发生了一些重要事件,如用户请求终止进程、硬件异常、定时器超时等。掌握信号处理技术对于开发健壮、高效的系统程序至…

7天用Go从零实现分布式缓存GeeCache(学习)(2)

参考:https://geektutu.com/post/geecache-day2.html // Cache 是一个 LRU 缓存(最近最少使用缓存),它不是并发安全的。 type Cache struct { maxBytes int64 // 缓存的最大字节数 nbytes int64 …

【微服务】Docker 容器化

一、初识Docker 1. 为什么需要 Docker 大型项目组件较多,运行环境也较为复杂,部署时会遇到一些问题: 依赖关系复杂,容易出现兼容性的问题开发、测试、生产环境有差异 Docker 如何解决依赖的兼容问题 将应用的Libs(…

curl命令提交大json

有个客户需要提交一个4M左右的pdf,接口里传的是pdf字节流base64编码后的字符串。 直接curl -XPOST -d json串 api接口会报 参数过长报错Argument list too long 网上搜了下解决方案把json串放到文本里然后通过json.txt引入参数 这一试不要紧,差点儿导致…

websocket身份验证

websocket身份验证 前言 上一集我们就完成了websocket初始化的任务,那么我们完成这个内容之后就应该完成一个任务,当客户端与服务端连接成功之后,客户端应该主动发起一个身份认证的消息。 身份认证proto 我们看一眼proto文件的内容。 我…

Scala学习记录,case class,迭代器

case class case class创建的对象的属性是不可改的 创建对象,可以不用写new 自动重写:toString, equals, hashCode, copy 自动重写方法:toString,equals,hashCode,copy 小习一下 1.case class 的定义语法是什么 基本形式:case …

mysql中的EXISTS和NOT EXISTS使用详解

本文来编写一个实例说下mysql中的EXISTS和NOT EXISTS使用详解 文章目录 exists用法SQL中in, not in, exists, not exists的区别使用实例本文小结 exists用法 exists: 如果括号内子查询语句返回结果不为空,说明where条件成立,就会执行主SQL语句。如果括号…

HTB:Precious[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机TCP端口进行开放扫描 使用curl访问靶机80端口 使用ffuf爆破一下子域 使用浏览器访问该域名 使用curl访问该域名响应头 使用exiftool工具查看该pdf信息 横向移动 USER_FLAG:adf5793a876a190f0c08b3b6247cec32…

【论文分享】三维景观格局如何影响城市居民的情绪

本次带来一篇SCI论文的全文翻译!该论文以上海LivingLine项目为例,探索利用时空Wi-Fi数据分析街道层面的城市活力。 【论文题目】Understanding street-level urban vibrancy via spatial-temporal Wi-Fi data analytics: Case LivingLine Shanghai 【题…