v4.8.9

v4.8.9 是一个基于 Qt Creator 14.0.2 构建的空闲效率与断开可靠性版本。它彻底改造了 IDE 监测硬件的方式,使其在无操作时停止轮询,收紧了连接/断开路径,并精简了捆绑的模型库。此范围内没有 Qt Creator 变基,但有几个默认行为和捆绑模型名称发生了变化,请查看下方的破坏性变更。

亮点

  • 事件驱动的硬件监测 取代了持续的设备轮询:IDE 现在在空闲时停止其扫描定时器,仅在响应实际的 USB 插拔和磁盘挂载/卸载事件时重新扫描串口和驱动器,大幅降低了空闲时的 CPU 和资源占用。

  • 空闲定时器按活动门控: 帧缓冲区事件定时器(此前每 1ms 触发一次)现在仅在连接时运行,终端光标闪烁定时器(500ms)现在仅在终端获得焦点时运行。

  • 后台导入同步默认关闭: 现在默认禁用对 ExamplesDocuments/OpenMV 导入文件夹的自动同步,并隐藏其菜单开关,因此 IDE 不再持续重新扫描这些文件夹。

  • 更快、更可靠的断开: 立即关闭串口并释放摄像头,调低了协议超时,卡死的摄像头现在会恢复而非挂起。

  • 更清晰的帧缓冲区模式按钮,显示 JPG ModeRAW Mode,让当前压缩状态一目了然。

新功能

  • 通过新的 HardwareMonitor 实现原生硬件事件监测,它在 macOS 上使用 IOKit 和 DiskArbitration、在 Windows 上使用仅消息的 WM_DEVICECHANGE 窗口、在 Linux 上使用 NETLINK_KOBJECT_UEVENT netlink 套接字来发出 hardwareEventDetected。串口扫描和驱动器扫描定时器现在受一个 10s 扫描窗口门控,该窗口在每次事件时重新开始(a6612fec9462b55f7b17c2e93c7)。

其他变更与改进

  • 帧缓冲区事件处理定时器(此前每 1ms 触发一次)现在在连接时启动、断开时停止,终端光标闪烁定时器(500ms)现在随终端获得/失去焦点而启动和停止,而非始终运行(a02afea53)。

  • 默认禁用对 ExamplesDocuments/OpenMV 导入文件夹的自动同步并隐藏该开关;文件夹扫描定时器不再在初始化时启动,仅在(现已隐藏的)操作启用时运行(478f83e97)。

  • 帧缓冲区格式切换按钮现在在开启 JPEG 压缩时显示 JPG Mode,关闭时显示 RAW Modec48831224)。

  • 连接时,IDE 现在始终对帧缓冲区应用该板卡的 JPEG 首选默认值,而非恢复此前保存的按板卡 JPG/RAW 选择(c48831224)。

错误修复

  • 断开连接现在会在 close() 中就地关闭串口并释放摄像头(及端口),使断开更快、更可靠(1e89410809d31bcf80)。

  • 现在在端口关闭时停止串口空闲定时器并清除 v2 协议标志,修复了断开后空闲定时器状态过期的问题(4bd2fd9ea)。

  • 调整了协议命令超时(打开超时从 5s 降至 2s,重新同步和 CHANNEL_SIZE 使用 1s 短超时),并且每个串口命令现在在失败时释放摄像头对象,使卡死的摄像头能更快恢复并断开,而非挂起(04aa6aea3)。

  • 修复了停止脚本时的锁定/挂起问题:脚本停止事件现在也会清除帧事件状态并重置帧就绪定时器(3695b0704)。

  • 协议现在能容忍来自摄像头的短读取,返回部分载荷或文本,而非丢弃它或报错(0c8ccd58e)。

平台与工具支持

  • Qt Creator 基础版本: 14.0.2。

  • AE3N6 模块与 PAG7936PS5520 传感器组合的板卡现在采用更高的 QVGA 默认值(此前仅 AE3 + PAG7936),因此受影响的示例会自动从 QQVGA 升级到 QVGA(fcc0c3227)。

  • 清理了捆绑的 ST MoveNet 姿态估计模型库:移除了冗余的逐张量(_pt)以及重复的 singlepose/st_movenet 变体,保留下来的逐通道热图模型被重命名为 movenet_singlepose_192movenet_singlepose_224movenet_singlepose_25618f66c4c1)。

  • 从模型库中移除了捆绑的 DeepLabV3 语义分割模型及其示例资源(a929e0dc1)。

破坏性变更

v4.8.8 与 v4.8.9 之间用户可见的行为变更和捆绑资源变更。

  • 连接时,帧缓冲区现在始终使用该板卡的 JPEG 首选默认值,并忽略此前保存的任何按板卡 JPG/RAW 选择(c48831224)。

  • 默认禁用对 ExamplesDocuments/OpenMV 导入文件夹的后台同步,并隐藏其开关(478f83e97)。

  • 移除或重命名了若干捆绑模型:DeepLabV3 语义分割模型已不存在,ST MoveNet 模型经过精简并重命名为 movenet_singlepose_192/224/256。引用旧模型文件名的脚本必须更新(a929e0dc118f66c4c1)。