跳到主要内容

指标客户端

发现附近的指标服务器并通过蓝牙低功耗查看实时设备指标流。

发现标签页:扫描附近的指标服务器,显示状态和刷新控件。
当未找到服务器时,会显示故障排查清单。
发现标签页显示扫描指示器和可用服务器列表。

概览

指标客户端连接到另一台设备上运行的**指标服务器**,并实时显示服务器的实时指标。它接收 CPU 使用率、每核心 CPU 活动、设备标识(服务器名称、设备型号、设备名称)和时间戳——所有数据均通过蓝牙低功耗传输。

目录

标签页

指标客户端有两个标签页。您可以滑动切换或点击标签页标题。

  • 发现 — 扫描并连接附近的服务器。
  • 指标 — 查看已连接服务器的实时数据。

发现标签页

发现标签页是启动界面。它扫描附近的指标服务器外设并允许您连接其中一个。

发现状态卡片

状态卡片显示:

  • 扫描指示器 — 带有标签的彩色圆点:
    • 扫描中(蓝色,带加载动画)— 正在主动扫描外设。
    • 空闲(灰色)— 扫描已暂停。
  • 已发现的服务器 — 当前可见的指标服务器外设数量。
  • 刷新按钮 — 停止并重新启动 BLE 扫描以发现新服务器。

打开工具时会自动开始扫描。

可用服务器列表

在状态卡片下方,会列出已发现的服务器。仅显示广播指标服务器 BLE 服务 UUID 的外设——其他蓝牙设备会被过滤掉。

当未找到服务器时,会显示故障排查清单:

  • 有设备正在运行指标服务器工具
  • 已在设置中授予本地网络权限
  • 两台设备在同一网络/BLE 范围内

从 BLE 广播中消失的服务器会在列表中保留一小段宽限期(3 秒),以避免闪烁。

服务器行

每个已发现的服务器显示为一行,包含:

  • 服务器名称 — 在指标服务器中配置的名称(例如 "iPhone 16 Pro Max (iPhone17,2)")。显示名称有 1.5 秒的防抖动处理,以避免 BLE 广播名称变化时的快速闪烁。
  • RSSI — 以 dBm 为单位的信号强度,带有颜色编码的 3 格信号指示器:
    • 绿色(3 格)— 信号强(>= -60 dBm)
    • 橙色(2 格)— 信号中等(>= -75 dBm)
    • 红色(1 格)— 信号弱(< -75 dBm)
  • 服务可用性 — 绿色或灰色圆点,指示服务器是否正在广播指标服务 UUID。
  • 连接 / 断开按钮:
    • 连接(蓝色)— 向此服务器发起 BLE 连接。
    • 连接中(灰色,带加载旋转图标)— 连接进行中。
    • 断开(红色)— 断开与当前服务器的连接。

一次只支持连接一个服务器。当连接到一个服务器时,其他服务器行会被禁用。


指标标签页

连接后,指标标签页显示从服务器传输的实时数据。客户端在成功连接后会自动切换到此标签页。

连接状态卡片

顶部卡片显示:

  • 连接状态 — 带有标签的彩色圆点:
    • 已连接(绿色)
    • 已断开(红色)

连接后,会显示更多详细信息:

  • 信号强度 — 5 格指示器,带有质量标签(优秀、良好、一般、较差、很差)和以 dBm 为单位的原始 RSSI 值:

    RSSI 范围质量格数
    >= -50 dBm优秀5
    -51 至 -65 dBm良好4
    -66 至 -75 dBm一般3
    -76 至 -85 dBm较差2
    低于 -85 dBm很差1
  • RSSI 历史 — 信号强度读数的滚动折线图(最多 120 个样本),提供连接稳定性的直观展示。

  • 服务器标识 — 三个键值行显示服务器传输的数据:

    字段描述
    服务器名称在指标服务器中配置的名称(例如 "iPhone 16 Pro Max (iPhone17,2)")。
    设备型号服务器设备的营销名称(例如 "iPhone 16 Pro Max")。
    设备用户在 iOS 设置中分配的设备名称(例如 "Rogerio 的 iPhone 16ProMax")。
  • 错误消息 — 如果发生任何 BLE 错误(连接失败、断开连接等),会显示为红色警告。

  • 断开按钮(红色,全宽)用于终止连接。

实时指标卡片

当正在接收指标时,此卡片显示:

字段描述
CPU 使用率服务器设备的当前整体 CPU 使用百分比(例如 30.0%),以大数字显示。
核心数服务器设备的 CPU 核心数量(例如 6)。
最后更新最近指标数据包的时间戳,显示为时间字符串。

CPU 使用历史

显示服务器 CPU 使用率随时间变化的滚动折线图。该图表最多保存 100 个数据点,在 1 秒更新频率下提供约 100 秒的历史记录。

每核心使用率

当服务器提供每核心 CPU 数据时,会在历史图表下方显示每核心使用率视图。这显示每个独立 CPU 核心的当前使用百分比,与 CPU 监视器工具中使用的每核心可视化相同。

无指标状态

当未连接或尚未收到指标时,指标标签页会显示一个占位符,带有图表图标和提示,引导您使用发现标签页连接服务器。


如何与指标服务器配合使用

  1. 在您想要观察的设备上,打开工具 > 指标服务器并点击启动服务器
  2. 在运行指标客户端的设备上,打开工具 > 指标客户端
  3. 发现标签页中,找到服务器并点击连接
  4. 客户端会自动切换到指标标签页显示实时读数。

权限

  • 蓝牙权限 — BLE 扫描和连接所必需。如果权限被拒绝,请在 iOS 设置中为 Lirum 启用蓝牙访问。
  • 蓝牙权限由 CoreBluetooth 自动处理。系统提示会在工具首次初始化时出现。

技术细节

  • 客户端使用 CBCentralManager 作为 BLE 中心设备。它扫描所有附近的外设,并过滤列表以仅显示广播指标服务器服务 UUID 的外设。
  • 连接后,客户端发现指标服务器 GATT 服务并订阅摘要每核心通知特征。
  • 指标以二进制负载形式大约每秒到达一次。客户端解码:
    • 摘要:服务器名称、设备型号、设备名称、整体 CPU 使用率(Float)、核心数(UInt16)、时间戳(UInt64 毫秒)。
    • 每核心:核心数、每核心使用率数组(每核心一个 Float)、时间戳(UInt64 毫秒)。
  • 客户端支持 v1(旧版)和 v2(当前版)负载格式,以向后兼容旧版指标服务器。v2 添加了设备型号、服务器名称作为单独字段,以及毫秒精度的时间戳。
  • 已连接服务器的 RSSI2 秒通过 readRSSI() 轮询一次。维护最多 120 个样本的 RSSI 历史用于信号图表。
  • 信号平滑 — 在发现列表中,RSSI 值经过指数平滑处理(alpha = 0.15)以减少信号格的视觉抖动。
  • 名称稳定化 — 发现列表中的服务器显示名称有 1.5 秒的防抖动处理,以防止 BLE 广播名称快速变化时的闪烁。
  • 消失宽限期 — 从 BLE 广播中消失的服务器会在列表中保留 3 秒后才被移除,防止列表闪烁。
  • 启用了 CoreBluetooth 状态恢复,允许客户端在应用被系统重新启动时恢复现有连接。
  • 指标历史上限为 100 条记录,在默认 1 秒更新间隔下对应约 100 秒的数据。

注意事项与限制

  • 此工具使用蓝牙低功耗,而非 Wi-Fi 网络。两台设备必须在 BLE 范围内。
  • 一次只支持连接一个服务器。
  • RSSI 是信号强度的近似指标,可能会因环境因素而波动。
  • 指标流包括 CPU 使用率、每核心使用率、核心数和设备标识。其他设备指标(内存、存储、温度)目前不传输。
  • visionOS 上,指标客户端不可用,因为该平台不支持 BLE 中心设备角色。