v1.3.0¶
v1.3.0 圍繞結構化的命令/回應協定重寫了相機通訊層,並為 IDE 本身及其隨附資源加入了 IDE 內自動更新功能。本版本以 Qt Creator 4.0.2 為基礎,並隨附 OpenMV 相機韌體 2.0.0。在 macOS 與 Linux 上,DFU 韌體燒錄現在需要一次性安裝 Python 以及 libusb 與 pyusb;請參閱重大變更。
重點摘要¶
重寫通訊層。 序列/USB 除錯程式碼圍繞結構化的命令/回應協定重新建構,每個命令具有各自的回應長度以及開始/結束等待延遲,使連線、執行指令碼、影格緩衝區與開機載入程式等操作更為可靠。
IDE 內自動更新程式。 IDE 現在會向
openmv.io檢查是否有更新版本,並提供 Download 按鈕,同時另外下載並安裝更新的資源套件(範例、韌體、文件),然後提示重新啟動。一鍵韌體更新。 狀態列上的韌體版本現在是一個可點擊的按鈕,會將已連線的相機與隨附韌體進行比對,並在有更新版本可用時提供一鍵更新。
全平台 DFU 韌體燒錄。 韌體現在可在 Windows、macOS、Linux x86 與 Linux x86_64 上透過 DFU 燒錄,且韌體選擇器除了
.bin之外也接受.dfu檔案。自動 DFU 後備機制。 當韌體更新期間無法連上序列開機載入程式時,IDE 現在會改為提供透過相機的 DFU 開機載入程式進行升級,並引導你加裝
BOOT/RST跳線。
新功能¶
IDE 內更新程式。 會向
openmv.io檢查是否有更新的 IDE 版本,並提供開啟openmv.io/download的 Download 按鈕,同時直接將openmv-ide-resources-X.Y.Z.zip資源套件下載、解壓並安裝至 IDE,然後提示重新啟動(8a1f92bb1、194acd828、b0be97e3e)。可點擊的韌體版本按鈕。 狀態列上的版本標籤改為串接到
updateCam()流程的QToolButton,該流程會讀取隨附的firmware/firmware.txt,將其與已連線的相機進行比對,並在有更新版本時提供 Firmware Update,可選擇是否清除內部檔案系統(b2ac8defe)。DFU 檔案支援。 開機載入程式/韌體燒錄對話方塊現在除了
.bin之外也接受.dfu檔案,並在燒錄.dfu時強制執行完整的內部檔案系統清除。韌體選擇器篩選器已擴充為Firmware Binary (*.bin *.dfu),.dfu強制清除流程於4ad2be5f9中引入,而b2ac8defe則加入了預設勾選且停用、會依所選檔案副檔名自動切換的清除核取方塊(4ad2be5f9、b2ac8defe)。開機載入程式失敗時的自動 DFU 後備機制。 當
.bin韌體更新無法啟動序列開機載入程式時,IDE 現在會回報Unable to connect to the bootloader!,然後改為提供使用相機的 DFU 開機載入程式進行升級,並警告 DFU 會清除內部快閃記憶體檔案系統,同時引導你加裝BOOT/RST跳線並重新連線,之後才執行DfuSeCommand.exe(Windows)(4ad2be5f9)。HoG 範例。 新增了使用
img.find_hog()的方向梯度直方圖視覺化範例(09-Feature-Detection/hog.py)(b03a707f7)。
其他變更與改進¶
以
OpenMVPluginSerialPortCommand/Result類別、__USBDBG_*與__BOOTLDR_*運算碼,以及command()/commandResult()輔助函式取代了舊的臨時鮑率/封包程式碼,不再使用write()/readAll()/isOpen()(b03a707f7、141122e21、b2ac8defe、1d72fe4bf、b4cf2fe43、c60936d5f)。Windows 序列埠驅動程式安裝現在改為靜默/無人值守,將
openmv.cmd/pybcdc.cmd驅動程式指令碼從互動式的InfDefaultInstall切換為以dpinst為基礎的安裝程式,並新增與修正了 Visual C++ 可轉散發套件安裝程式(vcr.cmd,靜默執行vcredist_x86.exe與vcredist_x64.exe)(a5a6e0590、754d0776d、b0be97e3e、452a29f0d、c051c6e30、ad1b674ef、565f1eccd)。
錯誤修正¶
修正了在虛擬機器內韌體燒錄與通訊中斷的問題,並放寬了各種命令逾時以及影格緩衝區/傳送緩衝區的輪詢,使連線與執行更為穩健。重新燒錄對話方塊現在會註明「最多可能需要 5 分鐘」,且 DFU 程序逾時已在
324f243f9中從 240 秒提高至 300 秒(c051c6e30、b0be97e3e、1d72fe4bf、b4cf2fe43、324f243f9、c60936d5f)。修正了韌體/IDE 更新可用性比對,使較新的次版本號或修補版本號在較高欄位相等時不再錯誤觸發,並要求開機載入程式對話方塊在燒錄前必須有有效的已選取檔案(4ad2be5f9)。
在讀取後關閉了檔案控制代碼(板卡清單、韌體/版本檔案),並修正了韌體燒錄區塊的填補,使其填補至
FLASH_WRITE_CHUNK_SIZE,避免韌體更新期間發生控制代碼洩漏與最終區塊填補錯誤(4ad2be5f9)。修正了 OpenMV 的
Help選單與輸出窗格:About OpenMV Cam 項目不再與平台的 About 角色衝突(AboutRole→ApplicationSpecificRole),且輸出窗格不再搶占Alt/Cmd+ 數字快捷鍵(a0694eac7)。開啟外部 OpenMV 網路連結(論壇、下載、支援)時,當無法啟動該 URL,現在會回報「Failed to open」錯誤對話方塊,而不再無聲無息地不做任何事(b0be97e3e)。
平台與工具支援¶
Qt Creator 基礎版本: 4.0.2。
隨附相機韌體: 更新至 2.0.0,包含新的
firmware.bin/openmv.bin,以及為 OMV2 與 OMV7 新增的firmware.dfu/bootloader.dfu/firmware.elf/bootloader.elf。新增 Windows DFU 燒錄,使用隨附的 ST
DfuSeCommand.exe、ST DfuSe USB 驅動程式套件(Win7/Win8 上為 DfuSe v3.0.4.0,Win8.1 上為 v3.0.5.0)以及dfuse.cmd驅動程式安裝程式(4ad2be5f9)。macOS 與 Linux DFU 燒錄 已從預先建置的
dfu-util二進位檔改為隨附的pydfu.py燒錄程式,IDE 會顯示所需的 libusb/pyusb 安裝命令。ac248c0ec曾短暫加入 Linux x86_64 的dfu-util/dfu-prefix/dfu-suffix二進位檔,但324f243f9隨後將其全部移除,改用pydfu.py。最終發行版本不包含任何dfu-util二進位檔;static.pro會為所有非 Windows 主機隨附pydfu資料目錄,而 Windows 則使用隨附的 DfuSe 流程(ac248c0ec、324f243f9、7837a07da)。Linux udev 規則 已更新為使用
SUBSYSTEM比對(相機 VID 1209/PID abd1 tty 與 STM DFU 0483/df11),使裝置與 DFU 符號連結在 32 位元 Linux 上能正常運作,且針對較舊的 Qt 對追蹤重新導向的網路請求加上了防護(194acd828)。
重大變更¶
隨附的 macOS 與 Linux 獨立 dfu-util 二進位檔已被移除,並改以 Python pydfu.py 燒錄程式取代。在 macOS 與 Linux 上,韌體 DFU 燒錄現在需要一次性安裝 Python 以及 libusb 與 pyusb(IDE 會顯示確切的 MacPorts/HomeBrew/apt-get 命令)。Windows 則繼續使用隨附的 DfuSe 流程。本版本沒有任何指令碼 API 的破壞性變更,且 Qt Creator 4.0.2 基礎版本維持不變。