• Ble Mesh的Heatbeat


    心跳

    将节点配置为定期发送称为心跳消息的消息。

    Heartbeat 消息的目的:

    1、表示该节点仍然处于活动状态。

    2、允许根据传递 Heartbeat 消息所需的跳数确定其与接收者的距离。

    Heartbaeat的opcode:

    和Friend request、Friend offer、Friend Pool等一样的Transport Control message,opcode为0x0A。

    Heartbaeat的配置:

    心跳行为是使用配置服务器模型(Configuration Server Model)配置的。可以配置必须发送 Heartbeat 消息的地址(通常是 Group Address)、必须发送 Heartbeat 消息的频率以及是无限期发送心跳消息还是限制和指定数量的发送心跳消息。

    Heartbeat验证网络可靠性:

    心跳消息包含并保持不变,即由心跳发起者设置的初始 TTL。这允许接收者确定消息到达所需的跃点数,从而通过将 TTL 设置为不高于所需值的值来优化他们随后发送到心跳源节点的消息。

    地址

    蓝牙网状网络使用各种地址类型的系统来识别单个元素或元素集。

    单播地址

    单播地址标识节点的单个特定元素。Provisioner管理单播地址的分配,并确保在网络中不分配重复地址。

    组地址

    组地址是表示一个或多个 元素的多播地址。组地址要么由蓝牙 SIG 定义,称为 SIG 固定组地址,要么是动态分配的。最多允许 256 个 SIG 固定组地址,在撰写本文时,仅定义了 4 个。这些被命名为 All-proxy、All-friends、All-relays 和 All-nodes。

    网状网络中最多可以有 16383 个组地址。

    虚拟地址

    虚拟地址是可以分配给一个或多个 元素的地址,跨越一个或多个 节点。它采用 128 位 UUID 值的形式,任何 元素 都可以与之关联,并且很像标签。

    网状网络中可能有多达 70 万亿个虚拟地址。

    未分配的地址

    这是一种特殊的地址类型,值为 0x0000。它的使用表明 元素 尚未配置或已分配单播地址。

    发布地址

    用作发布消息的目的地的地址称为发布地址。发布地址可以是单播地址、预先配置的组地址或虚拟地址。

    模型

    模型定义了一组 状态、 状态转换、 状态绑定、 消息 和其他相关行为。节点 中 的 元素 必须支持一个或多个模型,并且模型或模型定义了 元素 所具有的功能。蓝牙 SIG 定义了许多模型,其中许多被故意定位为“通用”模型,在广泛的设备类型中具有潜在的实用性。

    蓝牙网状网络中的所有通信都是使用 消息完成的,消息定义为模型规范的一部分。

    有两种类型的模型;服务器和客户端。

    一个模型可以扩展另一个模型。不扩展其他模型的模型称为“根模型”。不允许通过添加或删除行为来更改模型。对新需求的正确回应是扩展现有模型。

    最好通过考虑示例来理解模型的概念。

    最简单的通用模型是通用 OnOff 服务器模型。它定义了一个单独的 State,称为 Generic OnOff,它的值可能是 0x00 表示 Off 或 0x01 表示 On。该模型定义了四种类型的 Message。这四个 消息 是:

    通用 OnOff 获取
    通用 OnOff 集
    通用 OnOff 设置未确认
    通用开关状态
    Generic OnOff Get  Message被 支持 Generic OnOff Server Model 的Element接收时  ,会导致 Element 回复 Generic OnOff Status  Message ,该消息报告 Generic OnOff State的当前值 。

    Generic OnOff Set  Message被 支持 Generic OnOff 服务器模型的Element接收时  ,会导致 Generic OnOff  State的值 发生变化,并且可以预期包含该 Element的物理设备 将反映这种 状态 值以某种预期方式发生的变化(例如打开或关闭灯)。Generic OnOff Set 被称为 Acknowledged Message  ,这意味着它需要来自 Element的响应。在 Generic OnOff Set 的情况下,预期的响应是 Generic OnOff Status  Message。

    Generic OnOff Set Unacknowledged  Message与 Generic OnOff Set Message 具有相同的语义,  只是它不需要 元素 以状态 消息进行响应。

    通用 OnOff 状态 消息 可以由元素发送 以 报告 其 OnOff 状态。这是一个 未确认的消息, 因为接收它的元素 不需要响应 。

    蓝牙 SIG 定义的模型称为 SIG 模型。供应商也可以定义自己的模型,这些模型被称为供应商模型。

  • 相关阅读:
    golang leetcode算法小抄
    草莓病害图像数据集(YOLO使用,train为655张照片和val为487张照片)
    Jenkins自动化部署之流水线模式部署
    Java 大神面试经验
    django基于python的编制考试信息管理系统--python-计算机毕业设计
    飞桨科学计算套件PaddleScience
    浅谈 CRTP:奇异递归模板模式
    13.8 - 软件测试工作量及成本估算 3.9 - 软件测试成本估算示例
    03-条件分支及循环
    JavaEE-http/https/Tomcat(上)
  • 原文地址:https://blog.csdn.net/qq_38531460/article/details/126593178