v4.0.1

v4.0.1 是一次彻底的现代化升级,将 OpenMV IDE 从其长期使用的 Qt Creator 4.0.2 基础迁移到 Qt Creator 10.0.1。完整的 OpenMV 插件栈(帧缓冲区查看器、串行/协议、终端、直方图、阈值和关键点编辑器、视频工具以及固件刷写封装)已在新基础之上重新应用,同时还带来了精致的 Flat Light/Flat Dark 主题组合、可感知 OpenMV 的 Python 高亮、统一的固件加载器对话框,以及广泛的 ARM64 Linux 和 macOS 设备检测支持。Qt Creator 基础的更换是一次大规模的内部现代化改造,但不会破坏用户项目;少数默认行为和开发板定义确实发生了变化(见重大变更)。

亮点

  • Qt Creator 10.0.1 迁移。 IDE 从 Qt Creator 4.0.2 迁移到 10.0.1:上游 Qt Creator 被精简至其构建基础(98b95fd3b),整个 OpenMV 插件在新基础上重新加入(0e8047372)。

  • Flat Light 和 Flat Dark 主题。 随附一组精致的明/暗主题,并配有匹配的自定义编辑器语法高亮样式;主题选择器在常规设置中重新开放,但仅限于这两个主题,且默认主题现为 flat-dark21348924b13c3849e8)。

  • 原始 REPL 串行终端。 终端现在通过正规的 MicroPython 原始 REPL(CTRL-A/CTRL-D)状态机来运行、中断、重新加载和粘贴脚本,可可靠地处理较大的脚本(a7241079c)。

  • 可感知 OpenMV 的 Python 编辑。 OpenMV 的模块、类、函数、方法和参数会根据捆绑的文档进行语法高亮,并具有更智能的自动补全和可感知括号/冒号的自动缩进器(801eab8a88e9f967e79fdff9c6d)。

  • 统一的固件加载器对话框。 刷写现在会显示单个上下文相关的对话框(擦除磁盘 / 刷写固件 / 刷写引导加载程序),带有进度条以及可折叠、可记忆状态的显示/隐藏详情日志(5b51356f8)。

  • OpenMV Cam RT1062 支持。 为新的 i.MX RT1060 系列开发板添加了固件、DFU/闪存加载器、SDP/blhost 枚举以及 eFuse 烧录编程步骤(a6595f5f7),随后为其提供了一个独立的安全引导加载程序(SBL)开发板变体(d2b11c6c8)。

新功能

  • 自动化标志。 -auto_updaterelease / development / 路径)、-auto_erase-auto_run 标志可让 IDE 在连接时引导加载/擦除固件,然后运行打开的脚本;在引导加载程序重新连接后,IDE 会等待最多 10 秒以便摄像头重新枚举,然后再继续(b54affe79f4e03d978)。

  • ``-disable_stop`` 标志 以及一个 stop on connect/disconnect 菜单开关,可让用户在连接或断开时禁用停止脚本(02724ca7d)。

  • 连接/断开时停止脚本 开关(默认开启)将连接/断开与停止正在运行的脚本解耦;自动重连现在默认关闭(a0e78057f)。

  • 开发板类型提示。 当已连接的开发板报告的架构不在固件映射中时,IDE 现在会提示用户选择开发板类型(并记住上次选择),而不是以“Unsupported board architecture!”错误中止(b7165eb3d)。

  • OpenMV Python 语法高亮 使用从捆绑文档中填充的关键字列表,为已知的 OpenMV 模块、类、数据、函数、方法和参数着色(801eab8a8b4d481bf5)。

  • 约 300 个 KSyntaxHighlighting 语言定义 随编辑器一起提供,因此许多语言的源文件开箱即可高亮显示(39674a4dc)。

  • 捆绑的 OpenMV 示例脚本(Hello World、快照、视频录制、光流、事件摄像头、全局快门、FLIR Lepton 等)现已提交到 IDE 中并随其一起发布(938ac6bbe)。

  • 二进制/十六进制编辑器 已启用,用户可以打开并检查二进制文件,其工具栏经过精简以适配 OpenMV 用户界面(675bda966)。

  • 内存中文档比对。 新文件和只读示例现在会获得一个后备临时文件,以便对未保存的文档进行比对,且外部文件比对对话框会记住上次使用的文件夹(5281e5f6c2934d5216)。

  • 标签页编辑器插件 重新加入,为 IDE 提供了带标签页的文档栏;缩略图(minimap)插件源代码已重新加入,但在本次发布的构建中保持禁用(0e8047372)。

  • DfuSe 和 pydfu 后备刷写 已为无法通过序列号定位的 DFU 设备恢复,并在连接期间进行无对话框的自动擦除处理(e42a5be7d)。

  • i.MX RT eFuse 烧录。 固件编程现在会为 RT1060 系列开发板烧录一个 eFuse(efuse-program-once)(8053bb578a6595f5f7)。

  • Linux Root 安装向导页 让用户可以选择启用或禁用提权的 apt 库安装和 udev 规则安装,而不是总是运行它们(6bac80984)。

其他变更与改进

  • 后台串行端口扫描。 端口枚举已从 UI 线程移至专用的 ScanSerialPortsThread 工作线程,使 IDE 在扫描时保持响应(7be4dab26)。

  • 更广泛的设备检测。 端口扫描被重构为可复用的 filterPorts() 辅助函数,它纳入了 picotool 和 i.MX DFU 设备,并将已知的 Arduino 引导加载程序串行端口(NRF/RPI 旧版和加载器 PID)重新分类为 DFU 设备(25a5d30fd)。

  • 更多终端后备方案。 在 Linux 上启动捆绑的视频播放工具(播放视频文件 / 播放 RTSP 流)时,IDE 现在除了 xtermgnome-terminal 之外,还会依次后备到 lxterminalkonsolexfce4-terminaldf54007e0)。

  • 开发板密钥报告。 摄像头注册现在会解析“Remaining N”响应,以告知用户还剩多少个开发板密钥,并新增了一条独立的“Invalid Board Key for Board Type”错误消息(5759e73eb)。

  • GitHub 托管的下载。 版本检查和资源下载现在使用 raw.githubusercontent.com/openmv/openmv-ide-version 以及 openmv/openmv-ide 的发布版本,而不是 upload.openmv.io994109c28)。

  • 全面启用 HTTPS。 所有 OpenMV 网络请求(版本检查、SWD ID 注册、资源和固件下载)现在都使用 https://54347cad0)。

  • Linux 安装自动化。 安装程序会检测缺失的库和 udev 规则,必要时会生成一个可执行的 setup.sh,其中包含确切的 apt-get/pip 和 udev 规则安装命令(以及一个提示用户运行它的 README)(c6dc705e6)。

  • 慢速开发板容错。 串行终端将其每次读取的等待时间从 1ms 提高到 10ms,并在脚本完成时发出“OK”确认(c935e4489)。

  • 更流畅的刷写进度。 固件加载器进度条现在会立即从不确定状态切换到 0-100%,而不是等到第一次百分比跳动之后,这适用于 dfu-util、bossac、picotool 和 i.MX 刷写(19d94730886d021f92)。

  • 旧引导加载程序恢复 通过一种非快速引导加载程序模式重新加入,该模式发送擦除/写入命令时不带快速模式的查询同步填充(c20112c07)。

  • 更清晰的工具控制台。 固件刷写终端(bossac、dfu-util、picotool、imx、视频工具)现在作为独立的控制台进程运行,命令输出格式更好(8053bb578)。

  • 自动补全优化。 补全功能会区分类、方法和函数,并提供单独的参数提示,使用正确的代码模型图标,并通过下划线前缀来遵循公有/受保护/私有作用域;关键字补全处理器在显式(手动)调用补全时还会跳过光标前的前导空白(8e9f967e768b26b5fc)。

  • 整合的对话框。 OpenMV 各处临时的“不再显示此项”对话框——包括启动时的 OpenMV Cam LED Colors 信息对话框以及固件升级和示例提示——已统一到 CheckableMessageBox 的“不再询问/显示”对话框上,常规设置中新增了一个“重置不再询问/显示对话框”按钮,且代码折叠标记默认禁用(9fdff9c6d)。

  • 可感知主题的品牌标识。 新增了暗色模式的启动画面、关于框中的暗/明 ST 和 NXP 芯片徽标、暗色模式的工具提示颜色以及正确的自动补全图标颜色(d85fdeb199895a8395f45ceaaea7f3e1f383)。

  • 图像查看器清理。 隐藏了分享、背景、轮廓和“设为默认”操作,新增了适应屏幕操作,并修复了动画图像的尺寸调整(b37c55e25)。

  • 上下文菜单清理。 隐藏了“在文件系统视图中显示”“打开终端”“文件属性”以及“保存时添加/删除 UTF-8 BOM”条目(5d862c78e)。

  • 暗色串行终端。 独立终端使用正规的暗色主题,带有样式化的滚动条、更新的工具栏图标,以及跨屏幕正确的高 DPI 滚动条图标重新加载(5c3af6880)。

  • 查找/搜索清理。 结果面板获得了暗色主题,搜索引擎选择器被隐藏,标签得到简化,且“在文件中查找”默认指向 Documents/OpenMV 文件夹(20a806550)。

  • 应用程序标识。 IDE 现在在桌面、标题栏和任务栏上显示正确的 OpenMV 图标(在 Windows 上进行高 DPI 处理),且 IDE id 已更改为 openmvide8ad1eed1f)。

  • 高 DPI 启动画面 在 Retina/200% 缩放显示器上显示 2 倍尺寸的启动图像(626ff673e)。

  • 操作栏修复。 左侧操作栏(新建文件、打开、保存、撤销、重做、剪切、复制、粘贴)已修复并配上了自定义 OpenMV 图标(b8479b5d0)。

  • 关于对话框徽标。 现在同时显示 Arduino 和 Edge Impulse 合作伙伴徽标(Edge Impulse 之前是隐藏的),带有高 DPI 2 倍变体,且更新了捆绑的启动画面素材(splash-small-2 / splash-large-2)(5facd8d9a)。

  • 选择光标下的单词 已启用;前往块起始/结束(Ctrl+[ / Ctrl+])和向上/向下选择块命令曾短暂重新启用(36ed5b1a8),但在发布版本中保持禁用(626ff673e)。

  • Linux 桌面条目 新增了 Electronics 类别、描述性 Comment 以及搜索 Keywords(嵌入式电子、微控制器、micropython、计算机/机器视觉)(470e5702e)。

  • 资源迁移。 用户资源已移至带版本号的位置(旧的 qtcreator 文件夹会在启动时被移除),且 Windows 上无害的 DirectWrite 字体警告被抑制(a04af535170765dc2a)。

  • 隐藏的内部选项。 内部的 -color-theme Core 选项已从帮助输出中隐藏,且演示模式已重新启用(434c7b4cc)。

  • 重新应用的核心定制 应用于花式操作栏/标签页控件、消息管理器/输出窗口、代理操作、语法高亮器和文本编辑器(0e8047372)。

  • QCustomPlot 2.1.1。 捆绑的绘图库已更新以兼容 Qt 6.4 并正确处理动态变化的显示 DPI(8801415fe)。

  • 外观 UI 清理 涉及滚动条箭头图标、状态栏、文档标签栏关闭按钮以及编辑器滚动条宽度;编辑器的“显示文件行尾”指示器现在默认关闭(e0c4d23256a26f4430e130988fb)。

错误修复

  • 通过读取 /sys/class/tty/<port>/device/uevent 获取真实设备的 VID/PID,修复了 Linux 上的 VID/PID 检测,绕过了 QSerialPortInfo 返回 USB 集线器标识符的问题,从而使集线器后面的摄像头能被正确检测(28220b351)。

  • 通过放宽端点大小断言,并且仅在写入大小恰好为一个 USB 端点时才追加同步查询数据包,修复了 Mac 上的引导加载程序固件刷写(86d021f92)。

  • 修复了 Linux 上的视频播放工具:播放视频文件 / 播放 RTSP 流现在在 32 位和 ARM Linux 上隐藏(没有捆绑 ffplay),在 xterm 不可用时后备到 gnome-terminal,且 macOS 的 ffmpeg 二进制文件已从占位符恢复(d342649ccd896f4225)。

  • 将引导加载程序复位的起始/结束延迟从 0 增加到 5,以避免固件更新期间擦除和写入命令重叠(fabc168b6)。

  • 简化了引导加载程序恢复流程:强制进入引导加载程序以修复变砖的摄像头时会跳过多余的提示,且在 DFU 引导加载程序复位后,IDE 会自动重试更新,而不是要求用户重新连接(12b924088)。

  • 允许在事务中途中止串行帧缓冲区/TX 缓冲区转储命令(4a4afae1b)。

  • 移除了可能用零字节填充响应的串行端口读取停滞放弃临时方案,提高了快速 USB 传输的可靠性(0ee1d8e91)。

  • 修复了 WiFi 调试和自动重连:WiFi 端口在被重新发现时会刷新其上次出现的时间戳,纠正了 WiFi 端口退役和 DFU/引导加载程序检测中的若干“擦除后迭代器”错误,且自动重连现在会等到 IDE 不繁忙时才重新连接(cf0b67dc6)。

  • 修复了视频转 MJPEG 转换器,使其从编码器输出中解析帧率并写入正确的每帧毫秒增量,以便转换后的视频以正确的速度播放(4a7ad2057)。

  • 通过强制使用 QProcess 后端并纠正阻塞进程的事件循环保护,修复了固件刷写和捆绑命令行工具无法启动的问题(200fe9f3c)。

  • 通过在设备像素比变化时重新加载图标样式表,修复了数据集编辑器树形展开/折叠分支图标在 HiDPI 显示器上的渲染问题(a0e78057f)。

  • 包/资源更新现在会自动重启 OpenMV IDE,而不是在安装后仅仅退出(178ee1b8e)。

  • 修复了查找/搜索结果高亮,并使搜索结果/打开文件操作在没有当前编辑器时后备到第一个可见的编辑器(48c402dfc)。

  • 修复了固件加载器对话框,使其在刷写操作完成时清除警告文本并正确调整窗口大小(c505c6ade)。

  • 修复了若干 macOS UI 错误:标签栏不再刷屏报告图标加载错误,并在打开文件时正确显示(9be8c58de5322cf968)。

  • 修复了 macOS 和 Linux 上状态栏/输出窗格的样式和基线对齐(4fc4545ded29b2baa0a440d5cd8)。

  • 修复了源代码打印,使页面标题页眉具有适当的顶部和侧边边距,而不是紧贴页面边缘(786d6012c)。

平台与工具支持

  • Qt Creator 基础: 10.0.1(从 4.0.2 迁移而来)。

  • OpenMV IDE: 4.0.0 -> 4.0.1。

  • OpenMV Cam RT1062(i.MX RT1060):初始的 RT1062 固件、闪存加载器、签名映像、imx.txt 条目以及安全引导加载程序/eFuse blhost 配置键已添加到 OPENMV5 固件文件夹中(a6595f5f7);随后该开发板被整合到单个 OPENMV_RT1060 文件夹中,并添加了一个独立的安全引导加载程序(SBL)开发板变体(OpenMV_Cam_RT1062_SBL)(d2b11c6c85baf28c6e)。

  • 捆绑的刷写工具链(blhost、bossac、dfu-util、dfuse + STM32 驱动、picotool、sdphost、ffmpeg、FTDI/Arduino 驱动)已为 Windows/macOS/Linux 重新捆绑,且 Linux 二进制文件被标记为可执行(fbfa4903abfb6b32e29551c64da)。

  • ARM64 Linux DFU: 捆绑的 aarch64 dfu-util 加上设备列表和固件下载中的 arm64 检测,使得在树莓派等主机上进行 DFU 刷写成为可能(16bc6fe0f470e5702e)。

  • i.MX 设备检测 现在可在 Linux(解析 lsusb)和 macOS(扫描 ioreg)上工作,从而在这些平台上启用 i.MX RT 固件加载(e03ccbe717cf505d09)。

  • 平台限制: i.MX 的使用被限制在 Windows/macOS/Linux-x86_64 上,在其他平台上会出现严重错误,且在 ARM/ARM64 Linux 上刷写 Portenta/Nicla 会显示“DFU Util may not be stable on this platform”警告(9513f6475)。

  • Windows OpenGL: 通过在部署包中捆绑 opengl32swQt6OpenGL 和 Qt6Gui OpenGL 支持,恢复了软件渲染(aaaa1928f)。

  • Arduino 开发板文件夹/id 重命名。 Portenta、Nicla Vision 和 Nano 33 BLE Sense 的固件文件夹以及 boards.txt 中的开发板 id 已重命名为 ARDUINO_PORTENTA_H7ARDUINO_NICLA_VISIONARDUINO_NANO_33_BLE_SENSEa70d6562a);随后 Nano 33 BLE Sense 的文件夹/开发板 id 被改为小写 arduino_nano_33_ble_sense 以匹配设备报告的开发板名称(22750d8c7a801a81de)。

  • OPENMV_RT1060 引导加载程序 闪存加载器(blhost_flash_loader.binsdphost_flash_loader.bin)已更新(5baf28c6e)。

  • QCustomPlot: 2.1.1(捆绑的绘图库)(8801415fe)。

  • 磁盘上的固件映像 已为所有受支持的 OpenMV/Arduino 开发板(OPENMV1-4POPENMV4_PROOPENMVPTARDUINO_NICLA_VISIONarduino_nano_33_ble_senseARDUINO_PORTENTA_H7ARDUINO_NANO_RP2040_CONNECTOPENMV_RT1060CYW4343,外加 WINC1500 WiFi 固件)重新捆绑,包含固件以及在适用情况下的引导加载程序/uvc 映像(fbfa4903a)。

重大变更

这些是用户可见的工作流和行为变更;Qt Creator 10.0.1 迁移本身不会破坏用户项目或脚本。

  • i.MX RT1060 开发板定义已更改。 EVKBMIMXRT1060OPENMV5 条目被单个 OPENMV_RT1060 开发板(OpenMV Cam RT1062,外加一个 SBL 变体)取代,旧的固件文件夹已被移除(d2b11c6c8)。

  • 默认命令响应超时 为 10000 ms(在 4.0.0 中为 5000 ms);-override_read_timeout 的帮助文本已相应更新(4a4afae1b)。

  • 连接/断开行为已更改。 自动重连现在默认为关闭,且连接或断开默认不再停止正在运行的脚本,除非启用了新的“连接/断开时停止脚本”开关(其默认为开启)(a0e78057f)。

  • 更新流程会重启 IDE。 包/资源更新现在会自动重启 OpenMV IDE,而不是在安装后退出(178ee1b8e)。

  • Arduino 开发板 id 重命名。 Portenta、Nicla Vision 和 Nano 33 BLE Sense 的 boards.txt 开发板 id 和固件文件夹已重命名为 ARDUINO_PORTENTA_H7ARDUINO_NICLA_VISIONARDUINO_NANO_33_BLE_SENSE(后者随后被改为小写 arduino_nano_33_ble_sense)(a70d6562a22750d8c7a801a81de)。