v4.4.0¶
v4.4.0 là bản phát hành hiện đại hóa lớn, nâng cấp nền tảng OpenMV IDE từ Qt Creator 10.0.1 lên Qt Creator 14.0.2, áp dụng lại toàn bộ plugin OpenMV và mọi tùy chỉnh fork trên nền tảng mới hơn. Ngoài ra, bản phát hành này tích hợp máy chủ ngôn ngữ Python nhúng để hoàn thành mã offline, bật GitHub Copilot trên mọi nền tảng, giới thiệu bootloader DFU tùy chỉnh OpenMV mới và chuyển đổi camera OpenMV sang USB vendor ID 37C5 mới. Thay đổi nền tảng là một hiện đại hóa nội bộ lớn nhưng không ảnh hưởng đến dự án người dùng; xem Các thay đổi không tương thích để biết những thay đổi workflow hiển thị với người dùng.
Điểm nổi bật¶
Nâng cấp nền tảng Qt Creator 14.0.2. IDE chuyển từ Qt Creator 10.0.1 lên 14.0.2, với toàn bộ plugin OpenMV và các tùy chỉnh
// OPENMV-DIFF //được áp dụng lại trên nền tảng hiện đại (d6c895be8, 1fa75b397).Máy chủ ngôn ngữ Python nhúng. IDE hiện đi kèm và tự động sử dụng
pylsptích hợp sẵn (với astroid 3.3.5), cung cấp tính năng hoàn thành mã Python/MicroPython offline mà không cần cài pip riêng trên Windows, macOS và Linux x86_64 (257addee0, 5a2b3e72f, 94470798d).GitHub Copilot trên mọi nền tảng. Copilot được tích hợp và bật theo mặc định, với runtime Node.js 20.18.0 tích hợp sẵn cho Windows, macOS và Linux, nên không còn bị giới hạn ở một số máy nhất định, cộng thêm hộp thoại khởi động để bật tính năng này (bb07d582b, 1cb967c5a, b37e48040).
Bootloader DFU OpenMV mới. Luồng bootloader
openmv_dfutùy chỉnh được triển khai đầy đủ điều khiển cập nhật firmware từsettings.json, bao gồm hộp thoại "phát hiện board ở chế độ DFU" với các lựa chọn cài phiên bản mới nhất, tải firmware cụ thể và xóa filesystem, cộng thêm đường dẫn fallback-bootloader để khôi phục camera bị hỏng (08b9d0676, 6a6a9351d, 6d78d6571).Hỗ trợ camera mới. Thêm các board OpenMV Cam N6, RT1062 và AE3, đồng thời chuyển đổi camera sang USB vendor ID
37C5mới với các driver DFU và quy tắc udev được cập nhật (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).Giao tiếp serial đáng tin cậy hơn. Các sửa lỗi giao tiếp serial lớn giải quyết vấn đề văn bản terminal bị nhiễu và ngắt kết nối ngẫu nhiên với camera dùng TinyUSB (caeba6a16, 6cf122a3c).
Tính năng mới¶
Bootloader DFU OpenMV. Hệ thống bootloader
openmv_dfumới với các driver DFU chuyên dụng và cơ chế fallback-bootloader khôi phục camera bị hỏng trên nhiều loại firmware (6a6a9351d, 6d78d6571). Luồng điều khiển cập nhật firmware từsettings.jsonvà hiển thị hộp thoại "phát hiện board ở chế độ DFU" với các tùy chọn cài phiên bản mới nhất, tải firmware cụ thể và xóa filesystem (08b9d0676, ef19133b6, 9c59d113c).Tên board trong bộ chọn cổng. Hộp thoại chọn cổng serial giờ đây thăm dò từng cổng và hiển thị tên board được phát hiện bên cạnh cổng (ví dụ:
COM3: OpenMV Cam H7) thay vì chỉ tên cổng (9837d6cb5).Trình soạn thảo dạng tab. Plugin trình soạn thảo dạng tab được khôi phục, thêm một hàng tab tài liệu phía trên vùng soạn thảo để chuyển đổi giữa các file đang mở (c8519c09f), và giờ đây lưu và khôi phục thứ tự tab qua các phiên làm việc (55ccfb207).
Tô sáng cú pháp Python. Thêm định nghĩa tô sáng cú pháp Python chuyên dụng cho trình soạn thảo với các quy tắc về định dạng chuỗi, số thực và từ khóa (9be46c0c3).
Các thay đổi và cải tiến khác¶
Tái cấu trúc tải firmware. Mã tải firmware được chia thành các trình xử lý bootloader riêng biệt theo từng loại (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool), thêm xử lý touch-to-reset PID cho board Arduino DFU và biến thể board "Legacy" rõ ràng cho các thiết bị VID/PID thay thế (9f465f9f8).
Biện pháp bảo vệ ROM-bootloader STM32. IDE giờ đây cảnh báo hoặc chặn việc tải
firmware.dfu/openmv.dfulên ROM recovery bootloader STM32, chỉ khuyến nghị dùngbootloader.dfuđể tránh làm hỏng các board STM32H7 bị ảnh hưởng bởi lỗi ROM bootloader của chip (c5ce0ae1a, e7cde1ec1).Cài đặt Python LSP tự động, im lặng. Máy chủ ngôn ngữ Python giờ đây cài đặt và cập nhật tự động mà không có thông báo infobar hay spam console (d89f5985f), và hệ thống tự động hoàn thành/xem tài liệu Python được tái cấu trúc thành engine tài liệu OpenMV chuyên dụng phân tích các tài liệu HTML thư viện tích hợp để tạo tô sáng từ khóa và tooltip (47e02873b, 4f9853f21, 82cefc931).
Phát hiện Python interpreter trên Linux. Việc phát hiện interpreter trên Linux giờ đây là tự động, chỉ xem xét các Python 3 interpreter từ
PATHvà chọn phiên bản mới nhất làm mặc định duy nhất (214fdc758).Dọn dẹp cài đặt Python. Nhóm quản lý per-interpreter và trang Interpreters bị ẩn, Language Server Configuration được đặt trong danh mục
Python, và các nút toolbar REPL và chọn interpreter không dùng được ẩn trong trình soạn thảo Python (d89f5985f). Trên Windows, IDE giờ tự động đăng kýpython.exenhúng tích hợp sẵn làm interpreter mặc định, với máy chủ ngôn ngữ tích hợp được coi là đã cài sẵn (1d9ca003e, d89f5985f).Thư mục profile gọn gàng hơn. IDE không còn ghi các file cài đặt Qt Creator không dùng (devices, kits, toolchains, Qt versions) và mở file trực tiếp trong trình soạn thảo (3771b0107), không còn quét hệ thống để tìm phiên bản qmake/Qt (42807f25f), và tránh tải máy móc device/toolchain/kit và nhiễu khởi động không dùng (902a357de, b2666a35b).
Cập nhật an toàn hơn. Cập nhật IDE không còn ghi đè tài nguyên người dùng; chỉ các thư mục tài nguyên được quản lý (examples, firmware, html, models) bị xóa và sao chép lại, với
micropython-headerscũng bị xóa thêm (được cài riêng thay vì sao chép qua đường dẫn này), và thông báo lỗi rõ ràng hơn nếufirmware/settings.jsonbị thiếu hoặc không hợp lệ (b4b8c208d, 3255ba4fb).Kết nối DFU nhanh hơn. Thời gian chờ kết nối DFU được rút ngắn để nạp firmware và kết nối nhanh hơn (11d8c9fe3, 4700bf678).
Khôi phục menu OpenMV và các tùy chỉnh UI. Bố cục menu OpenMV được áp dụng lại, ẩn các menu Build và Debug, xóa các hành động quản lý dự án (7503f2bec); engine hoàn thành mã lấy lại khả năng nhận biết class/method và phạm vi từ khóa public/private cho autocomplete MicroPython (55fc348ea); hiển thị màu ANSI terminal được áp dụng lại với các giá trị sáng/tối nhận biết theme và hỗ trợ escape cursor-back (c6787a27a); và thanh công cụ image viewer được tùy chỉnh với tooltip độ phân giải/thu phóng và hành động Fit-to-Screen được di chuyển (734fec693).
Khôi phục tài nguyên tích hợp. Công cụ nạp, driver DFU, firmware và toàn bộ cây ví dụ/tập lệnh được khôi phục vào tài nguyên chia sẻ sau khi tái cấu trúc rebase (33c8354bc), và logic khởi động ứng dụng tùy chỉnh của OpenMV được áp dụng lại: yêu cầu bắt buộc plugin
TextEditor(kiểm tra plugin OpenMV và TabbedEditor có nhưng bị tắt), cài trình xử lý tin nhắn Qt tùy chỉnh, xóa các tùy chọn dòng lệnh-client/-pid/-block, và buộc chạy đơn phiên (06c788f3d).Lỗi plugin thiếu. Ứng dụng giờ báo lỗi rõ ràng nếu các plugin cần thiết bị thiếu hoặc vô hiệu hóa, plugin OpenMV có thêm phụ thuộc Copilot, và một số tùy chọn trình soạn thảo văn bản (
Prefer single line commentsvà bộ chọn vị trí comment trong cài đặt Behavior, vàHighlight selectiontrong cài đặt Display) bị ẩn (1bc02b1f3).Thời gian chờ serial ngắn hơn. Thời gian chờ giao thức serial được rút ngắn (đọc 10000 xuống 5000 ms, ghi 6000 xuống 3000 ms) để phản hồi lỗi nhanh hơn, với giá trị mặc định
-override_read_timeoutđược cập nhật cho khớp (641385af4).Khôi phục cổng bị treo. Các cổng serial bị treo giữa chừng giờ được khôi phục bằng truy vấn
GET_STATE(có thể cấu hình qua cài đặt get-state) thay vì truy vấn script-running (a8598f550).Thứ tự hộp thoại cài đặt. Hộp thoại cài đặt ẩn hộp kiểm sắp xếp danh mục theo bảng chữ cái để danh sách trang giữ đúng thứ tự mong muốn của OpenMV (1cb967c5a).
Cài đặt Copilot đơn giản hóa. Trang cài đặt Copilot được thu gọn chỉ còn các điều khiển đăng nhập/xác thực và proxy, ẩn các tùy chọn bật Copilot, đường dẫn Node.js, đường dẫn dist và tự động hoàn thành (1cb967c5a).
Sửa lỗi¶
Sửa các vấn đề giao tiếp serial lớn bằng cách tăng thời gian chờ đọc serial lên 10 lần và vô hiệu hóa đường dẫn unstuck dựa trên
GET_STATEđang làm nhiễu văn bản terminal serial (caeba6a16).Sửa lỗi ngắt kết nối serial ngẫu nhiên với camera dùng TinyUSB bằng cách phát lệnh mở khóa frame-dump và xử lý lại read-stall thay vì ngắt kết nối (6cf122a3c).
Làm cho việc xử lý
get_statecủa camera chấp nhận được các phản hồi ngắn/không đầy đủ và đảm bảo văn bản terminal serial được đệm được xả trong quá trình khôi phục lỗi để không mất output log (c8b4248a6, 247a779dd).Sửa số phân vùng flash/alt-setting của bootloader DFU cho tải firmware OpenMV Cam (a8700d12d).
Khôi phục tất cả bootloader bằng cách tôn trọng cờ board
hiddenmới, chuyển lọc số serial sang bộ lọc ngược, và cấu hình picotool hoạt động cho mục UF2 Arduino Nano RP2040 Connect (63cee629b).Sửa lỗi hộp thoại chọn loại board bootloader ghi nhớ sai giá trị bằng cách dùng các khóa lịch sử riêng biệt cho lựa chọn loại board dạng readable và IMX (a3325af32).
Sửa lỗi tính toán timestamp/frame-rate khi chuyển mã video (Save Video) bằng cách tính khoảng thời gian khung hình trung bình theo micro giây, hỗ trợ định dạng thời gian
ImageWriterv21 mới và bảo vệ chống pixmap null trong quá trình chuyển đổi (f5c75c749, f8f762b3e).Sửa lỗi crash trong view biểu đồ tần suất/bộ đệm khung hình khi nhận pixmap rỗng (null) bằng cách bảo vệ
pixmapUpdate()chống dữ liệu null (622cf5ea8).Khôi phục tooltip chú thích hover trong trình soạn thảo văn bản để di chuột qua các mark văn bản hiện lại tooltip chú thích (1852d18e1).
Ngăn các hộp thoại thông tin GitHub Copilot và màu LED xuất hiện khi IDE đang bận kết nối hoặc nạp firmware (f8f762b3e).
Thêm bảo vệ crash trong language client để xử lý thay đổi nội dung tài liệu không còn làm crash IDE trong các trường hợp ngoại lệ (7926ffe4c).
Sửa lỗi kiểm tra máy chủ ngôn ngữ Python ngăn IDE tắt sạch bằng cách làm plugin Python chờ bất đồng bộ các kiểm tra đang xử lý trước khi thoát (9ff6c7936).
Sửa lỗi autocomplete Python trên Linux: language client định gốc tại
micropython-headerstích hợp và ẩn hành động popup hoàn thành toolbar trình soạn thảo dư thừa (d37f66a9a, 56e748f9d, 016fa73eb).Sửa xử lý file tạm thời/chưa lưu để Save As sử dụng thư mục ban đầu của hộp thoại file, và hộp thoại Save Items cùng trình soạn thảo Diff không còn hiển thị đường dẫn file tạm thời nội bộ (b7f0bb378, c8e7b6b8f, 6b128c34c).
Lưu bộ đệm chưa đặt tên/tạm thời giờ mặc định hộp thoại Save-As thành tên file
.pythích hợp thay vì tên trống (3001fdfff).Các tài liệu tạm thời/chưa đặt tên giờ được đề nghị lưu khi được chỉnh sửa, loại trừ khỏi tự động lưu và được chuyển đúng qua Save-As (f87b71cf0).
Sửa thứ tự menu Recent Files để mở lại file đã có trong danh sách không sắp xếp lại thứ tự, và hộp thoại file giờ mặc định về thư mục projects (d49c0c993).
Sửa lỗi hiển thị văn bản trong message box bằng cách không còn ép định dạng rich-text trên các message box có hộp kiểm, để văn bản thô hiển thị đúng (0c565502f).
Sửa màu tooltip để tooltip hiển thị đúng trong theme sáng (35cbf077b).
Các sửa lỗi ổn định và dọn dẹp Qt Creator chung trên cài đặt core, language client, MSVC toolchain, project explorer và plugin Python (836b163dc, 134f43cb8).
Sửa tên thư mục firmware tích hợp cho Arduino Nano 33 BLE Sense (b1d8ac227) và sửa quy tắc udev Linux cho product ID bootloader DFU AE3, sửa
96E3thành chữ thường96e3để matchidProductphân biệt hoa thường của udev (2cd43c96b). Quy tắc udev Linux cho bootloader DFU AE3 cũng được cập nhật lên product ID37c5:afe3cho symlinkopenmvdfu(b99555637).
Hỗ trợ nền tảng và công cụ¶
Nền tảng Qt Creator: 14.0.2 (nâng cấp từ 10.0.1).
OpenMV Cam N6 hiện được hỗ trợ (VID:PID 37C5:1206, DFU bootloader 37C5:9206), bao gồm cài đặt firmware, driver DFU cho Windows và quy tắc udev Linux (000ed8a87, 1b950c8c6).
OpenMV Cam RT1062 hiện được hỗ trợ với USB VID/PID tùy chỉnh mới (37C5:1060), bao gồm driver DFU, quy tắc udev và các mục legacy 1209:ABD1 được giữ lại cho các đơn vị cũ hơn (f453bc945, d55d6441f).
OpenMV Cam AE3 hiện được hỗ trợ, bao gồm driver DFU cho Windows, cây ảnh firmware/config và USB VID/PID (cập nhật lên 37C5:16E3 runtime / 37C5:96E3 bootloader) (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).
Hệ thống USB VID/PID mới: Camera OpenMV chuyển sang vendor ID
37C5với các ID bootloader/DFU mới (ví dụ: 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205), đổi nhãn các board 1209:ABD1 cũ là Legacy trong khi vẫn hỗ trợ cả firmware cũ và mới (6d78d6571, 6a6a9351d, 500b1a0bf).PAG7936 cảm biến ảnh được thêm vào danh sách cảm biến nhận biết (f9e3f3461).
Python 3.13 nhúng được tích hợp cho macOS, Linux x86_64, Linux arm64 và Linux arm (9133b1516), với thư viện chia sẻ
libpython3.13vàujsongốc (d3aa663d8, a2cb24e74).Máy chủ ngôn ngữ tích hợp:
pylspvới astroid 3.3.5 trên Windows, macOS và Linux x86_64 (257addee0). Bản Windows đi kèm CPython nhúng với python-lsp-server 1.12.0, jedi 0.17.2, docstring_to_markdown 0.15, pip 24.2 và distlib 0.3.9 (9b6434602, 069807cd3, 5f2e45196, 3b6c6c312).Node.js 20.18.0 "Iron" LTS runtime tích hợp cho Windows, macOS, Linux arm64, Linux x64 và Linux armv7 để bật GitHub Copilot trên mọi nền tảng (bb07d582b, 6db78bf45, 1cb967c5a).
Alif Security Toolkit các tệp nhị phân boot/system-package đã ký và hướng dẫn người dùng tích hợp cho Windows, macOS và Linux x86_64 để cung cấp camera OpenMV dựa trên Alif (ví dụ: AE3) (f63851be3).
Tích hợp Linux desktop được khôi phục, cài đặt mục desktop của ứng dụng, metadata AppStream và đăng ký loại MIME Python (
.py) (3fa25f571).
Các thay đổi không tương thích¶
Không có thay đổi API scripting. Các thay đổi workflow và hành vi hiển thị với người dùng sau đây có thể được nhận thấy:
USB vendor ID mới. Camera OpenMV chuyển sang vendor ID
37C5với các product ID và DFU bootloader ID mới; các board có VID1209:ABD1cũ giờ được gán nhãn "Legacy". IDE hỗ trợ cả firmware cũ lẫn mới cùng lúc, nhưng người dùng Linux phải cài lại các quy tắc udev đã cập nhật để nhận biết các ID mới.Các mục board Legacy bị ẩn. Các biến thể Legacy của board OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal giờ bị ẩn khỏi danh sách chọn firmware/board qua cờ board
legacymới (khác với cờhiddentrước đây), do đó người dùng cần mục board legacy cụ thể sẽ không còn thấy trong dropdown (6d78d6571).Thời gian chờ serial ngắn hơn. Thời gian chờ đọc phản hồi mặc định giảm từ 10000 ms xuống 5000 ms và thời gian chờ ghi từ 6000 ms xuống 3000 ms (giá trị mặc định
-override_read_timeoutgiờ được ghi lại là 5000). Các board/kết nối chậm vốn dựa vào thời gian chờ dài hơn có thể hết thời gian chờ sớm hơn.
Việc nâng cấp nền tảng Qt Creator 14.0.2 là một hiện đại hóa nội bộ lớn nhưng không ảnh hưởng đến dự án người dùng.