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)。

  • Raw-REPL 序列終端機。 終端機現在透過正規的 MicroPython raw-REPL(CTRL-A/CTRL-D)狀態機來執行、中斷、重新載入及貼上指令碼,可可靠處理較大的指令碼(a7241079c)。

  • OpenMV 感知的 Python 編輯。 OpenMV 的模組、類別、函式、方法與引數會根據隨附的文件進行語法突顯,並具備更聰明的自動完成功能,以及能感知括號/冒號的自動縮排器(801eab8a88e9f967e79fdff9c6d)。

  • 統一的韌體載入器對話框。 燒錄現在會顯示單一的情境式對話框(清除磁碟/燒錄韌體/燒錄開機載入程式),附帶進度列以及可摺疊、能記住狀態的「顯示/隱藏詳細資料」日誌(5b51356f8)。

  • OpenMV Cam RT1062 支援。 為全新的 i.MX RT1060 等級開發板新增了韌體、DFU/flash-loader、SDP/blhost 列舉,以及 eFuse 燒寫程式設計步驟(a6595f5f7),隨後又為其提供了獨立的 Secure Bootloader(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-versionopenmv/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)。

  • 自動完成優化。 自動完成會以各自的引數提示區分類別、方法與函式,使用適當的程式碼模型圖示,並依底線前綴尊重 public/protected/private 範圍;關鍵字完成處理器在明確(手動)觸發完成時,也會略過游標前方的開頭空白(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 桌面項目 新增了電子類別、描述註解,以及搜尋關鍵字(嵌入式電子、微控制器、micropython、電腦/機器視覺)(470e5702e)。

  • 資源遷移。 使用者資源已移至有版本標記的位置(舊的 qtcreator 資料夾會在啟動時移除),且 Windows 上無害的 DirectWrite 字體警告也已被抑制(a04af535170765dc2a)。

  • 隱藏的內部選項。 內部的 -color-theme Core 選項已從說明輸出中隱藏,且簡報模式已重新啟用(434c7b4cc)。

  • 重新套用的核心自訂內容 涵蓋精緻動作列/分頁元件、訊息管理員/輸出視窗、代理動作、語法突顯器與文字編輯器(0e8047372)。

  • QCustomPlot 2.1.1。 隨附的繪圖函式庫已更新,以相容 Qt 6.4 並正確處理動態變化的顯示 DPI(8801415fe)。

  • 外觀上的 UI 清理 涵蓋捲軸箭頭圖示、狀態列、文件分頁列的關閉按鈕,以及編輯器捲動條寬度;編輯器的「顯示檔案行尾」指示器現在預設為關閉(e0c4d23256a26f4430e130988fb)。

錯誤修正

  • 修正了 Linux 的 VID/PID 偵測,改為讀取 /sys/class/tty/<port>/device/uevent 以取得真正裝置的 VID/PID,繞過 QSerialPortInfo 回傳 USB 集線器識別碼的問題,使得位於集線器後方的相機能被正確偵測(28220b351)。

  • 修正了 Mac 上開機載入程式韌體燒錄的問題,方法是放寬端點大小斷言,並僅在寫入大小剛好為一個 USB 端點時才附加同步查詢封包(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/開機載入程式偵測中的數個「erase 後迭代器」錯誤,且自動重新連線現在會等到 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 韌體、flash-loader、簽署影像、imx.txt 項目,以及 secure-bootloader/eFuse 的 blhost 設定金鑰都已加入 OPENMV5 韌體資料夾(a6595f5f7);隨後該開發板被整併為單一的 OPENMV_RT1060 資料夾,並新增了獨立的 Secure Bootloader(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 燒錄能在 Raspberry Pi 等主機上運作(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 開機載入程式 的 flash loader(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 韌體),其中包含韌體,並在適用時包含 bootloader/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)。