v1.7.0

v1.7.0 新增了串口帧缓冲区分块与重组功能,使大帧能够通过调试串口链路传输;通过刷新(并在 Windows 上弹出)摄像头的 USB 大容量存储驱动器使带复位的断开连接更安全;并刷新了示例集。本版本基于 Qt Creator 4.0.2(与上一版本相同的基础版本),并新增了对交叉编译嵌入式 Linux 目标(如 Raspberry Pi)的构建支持。本版本没有破坏性变更。

亮点

  • 串口帧缓冲区分块 —— 大型帧缓冲区传输会被拆分为 MTU 大小的块并在像素缓冲区中重组,因此大帧可以通过调试串口链路传输。

  • 更安全的带复位断开连接 —— 在复位之前会先刷新摄像头的 USB 大容量存储驱动器(并在 Windows 上强制弹出),以便先同步文件系统。

  • 原子化文件保存 —— main.py 和关键点文件以原子方式写入,从而防止损坏并修复了一处将 main.py 写入错误位置的路径错误。

  • Raspberry Pi / 嵌入式 Linux —— 现已包含交叉编译构建支持。

  • 刷新的示例 —— 一套 Servo Shield 示例、新的特征检测演示以及 Image Reader/Writer 视频示例。

新功能

  • 串口帧缓冲区分块与重组。 帧缓冲区传输会被拆分为 MTU 大小的块并在像素缓冲区中重组,因此大帧可以使用默认 MTU 通过调试串口链路传输。新增了一个运行时 MTU 自动协商握手,其固件版本门限设置为 2.5.0,与同一提交中随附的 2.5.0 固件相匹配(96458ccef)。随后该门限在发布时被提升至 9.9.9,没有任何已发布的固件会报告此版本,因此摄像头使用默认 MTU 且不会发生协商(abd1dacb9)。

  • 带复位断开连接时的刷新/弹出。 带复位的断开连接现在会在复位之前刷新摄像头的 USB 大容量存储驱动器:在 Windows 上驱动器会被强制弹出,而在 Linux 和 macOS 上则会同步驱动器的文件系统(syncfs / sync_volume_np)。在所有三个平台上,失败时都会报告 Failed to eject 错误(243618791ff6b15aff1865ffd314fd4e89cf)。

  • Servo Shield 示例。 新增了一套 15-Servo-Shield 示例,演示由 PCA9685 驱动的舵机,其中包括一个 pca9685.py 驱动程序和一个 servo.py 辅助程序(abd1dacb9)。

  • 新的特征检测示例。09-Feature-Detection 下新增了 find_circles(霍夫变换)、find_rects(四阈值)、find_numbers(LeNet 数字识别)以及快速且稳健的线性回归示例(abd1dacb9)。

  • 视频与主板控制示例。 新增了用于从 SD 卡录制和回放快照流的 Image Reader/Writer 示例、一个 RTC 主板控制示例以及一个片上单元测试运行器(abd1dacb9)。

其他变更与改进

  • 重命名了 99-Tests 示例文件夹(原名 15-Tests),并新增了 unittests.py 运行器(abd1dacb9)。

错误修复

  • 强化了 main.py 和关键点文件的保存。这些写入操作被切换为原子化的 FileSaver 写入(先写入后最终确定)(4fd4e89cf),并修复了一处导致 main.py 被写入错误位置的缺失路径分隔符问题(1865ffd31)。

  • 通过将所有端口上的串口读取缓冲区扩大到 1MB 并增加读取停顿超时来改进串口可靠性,解决了 QSerialPort 的数据丢失问题(7f68368dc)。

  • 通过导出 MainWindow 并发出 show-event 信号修复了一处窗口分隔条布局故障,使 OpenMV 插件能够在主窗口显示时恢复布局(4895e20b7)。

平台与工具支持

  • Qt Creator 基础版本: 4.0.2。

  • 新增了对交叉编译嵌入式 Linux 目标(如 Raspberry Pi)的构建支持:部署 Qt 字体,修复 chrpath/RPATH 处理,使用主机二进制文件构建翻译,并添加了缺失的 qml 依赖项(73c052fcc8f0baa1315b9e9e82e45011ec2a)。

  • 将随附的 OpenMV 固件从 2.4.1 更新至 2.5.0(96458ccef)。

  • 将固件文件夹 OMV2/OMV3 重命名为 OPENMV2/OPENMV3,并提供了更新并重新构建的 STM32F427(OPENMV2)和 STM32F765(OPENMV3)固件及引导加载程序二进制文件(abd1dacb9)。

破坏性变更

无。本版本未引入任何用户可见的工作流或行为破坏,现有项目可继续不变地正常工作。