v4.0.1

v4.0.1 adalah modernisasi menyeluruh yang merebasis OpenMV IDE dari fondasi Qt Creator 4.0.2 yang sudah lama digunakan ke Qt Creator 10.0.1. Seluruh tumpukan plugin OpenMV (penampil buffer bingkai, serial/protokol, terminal, histogram, editor ambang batas dan titik kunci, alat video, dan pembungkus flashing firmware) diterapkan kembali di atas basis baru, bersama pasangan tema Flat Light/Flat Dark yang dipoles, penyorotan sintaks Python yang mengenal OpenMV, dialog pemuat firmware terpadu, dan dukungan deteksi perangkat ARM64 Linux dan macOS yang luas. Perubahan basis Qt Creator merupakan modernisasi internal yang besar namun tidak merusak proyek pengguna; beberapa perilaku default dan definisi board memang berubah (lihat Perubahan yang Merusak).

Sorotan

  • Rebase Qt Creator 10.0.1. IDE berpindah dari Qt Creator 4.0.2 ke 10.0.1: Qt Creator upstream dipreteli hingga dasar build-nya (98b95fd3b) dan seluruh plugin OpenMV ditambahkan kembali di atas fondasi baru (0e8047372).

  • Tema Flat Light dan Flat Dark. Pasangan tema terang/gelap yang dipoles hadir dengan gaya penyorotan sintaks editor khusus yang sesuai; pemilih Tema ditampilkan kembali di pengaturan Umum yang dibatasi hanya untuk keduanya, dan tema default sekarang adalah flat-dark (21348924b, 13c3849e8).

  • Terminal serial Raw-REPL. Terminal sekarang menjalankan, menginterupsi, memuat ulang, dan menempelkan skrip melalui mesin keadaan raw-REPL MicroPython yang tepat (CTRL-A/CTRL-D), menangani skrip yang lebih besar dengan andal (a7241079c).

  • Pengeditan Python yang mengenal OpenMV. Modul, kelas, fungsi, metode, dan argumen OpenMV disorot sintaksnya dari dokumentasi bawaan, dengan pelengkapan otomatis yang lebih cerdas dan auto-indenter yang mengenal tanda kurung/titik dua (801eab8a8, 8e9f967e7, 9fdff9c6d).

  • Dialog pemuat firmware terpadu. Flashing kini menampilkan satu dialog kontekstual (Erasing Disk / Flashing Firmware / Flashing Bootloader) dengan bilah kemajuan dan log Show/Hide Details yang dapat dilipat dan mengingat status (5b51356f8).

  • Dukungan OpenMV Cam RT1062. Firmware, pemuat DFU/flash, enumerasi SDP/blhost, dan langkah pemrograman burn eFuse ditambahkan untuk board kelas i.MX RT1060 baru (a6595f5f7), yang kemudian diberi varian board Secure Bootloader (SBL) tersendiri (d2b11c6c8).

Fitur baru

  • Flag otomatisasi. Flag -auto_update (release / development / jalur), -auto_erase, dan -auto_run memungkinkan IDE melakukan bootload/hapus firmware lalu menjalankan skrip yang terbuka saat terhubung; setelah koneksi ulang bootloader, IDE menunggu hingga 10 detik agar kamera melakukan enumerasi ulang sebelum melanjutkan (b54affe79, f4e03d978).

  • Flag ``-disable_stop`` dan toggle menu stop on connect/disconnect memungkinkan pengguna menonaktifkan penghentian skrip saat menghubungkan atau memutuskan (02724ca7d).

  • Toggle Stop Script on Connect/Disconnect (aktif secara default) memisahkan koneksi/pemutusan dari penghentian skrip yang sedang berjalan; Auto Reconnect sekarang default-nya nonaktif (a0e78057f).

  • Prompt tipe board. Ketika board yang terhubung melaporkan arsitektur yang tidak ada dalam pemetaan firmware, IDE kini meminta pengguna untuk memilih tipe board (mengingat pilihan terakhir) alih-alih membatalkan dengan error "Unsupported board architecture!" (b7165eb3d).

  • Penyorotan sintaks OpenMV Python mewarnai modul, kelas, data, fungsi, metode, dan argumen OpenMV yang dikenal menggunakan daftar kata kunci yang diisi dari dokumentasi bawaan (801eab8a8, b4d481bf5).

  • ~300 definisi bahasa KSyntaxHighlighting disertakan dengan editor, sehingga file sumber dalam banyak bahasa disorot secara otomatis (39674a4dc).

  • Skrip contoh OpenMV bawaan (Hello World, snapshot, perekaman video, optical flow, kamera event, global shutter, FLIR Lepton, dan lainnya) kini dikodekan dan disertakan bersama IDE (938ac6bbe).

  • Editor biner/hex diaktifkan sehingga pengguna dapat membuka dan memeriksa file biner, dengan toolbar yang dipangkas agar sesuai dengan UI OpenMV (675bda966).

  • Diff dokumen dalam memori. File baru dan contoh hanya-baca kini mendapatkan file temp pendukung agar dokumen yang belum disimpan dapat di-diff, dan dialog diff file eksternal mengingat folder terakhir yang digunakan (5281e5f6c, 2934d5216).

  • Plugin editor bertab ditambahkan kembali, memberikan IDE bilah dokumen bertab; sumber plugin minimap ditambahkan kembali tetapi dinonaktifkan dalam build untuk rilis ini (0e8047372).

  • Flashing fallback DfuSe dan pydfu dipulihkan untuk perangkat DFU yang tidak dapat ditargetkan berdasarkan nomor seri, dengan penanganan hapus otomatis tanpa dialog saat koneksi (e42a5be7d).

  • Burn eFuse i.MX RT. Pemrograman firmware sekarang membakar eFuse (efuse-program-once) untuk board kelas RT1060 (8053bb578, a6595f5f7).

  • Halaman wizard Linux Root Installs memungkinkan pengguna memilih untuk ikut atau tidak dalam instalasi library apt yang ditingkatkan dan instalasi aturan udev alih-alih selalu menjalankannya (6bac80984).

Perubahan dan peningkatan lainnya

  • Pemindaian port serial latar belakang. Enumerasi port dipindahkan dari thread UI ke worker ScanSerialPortsThread yang khusus sehingga IDE tetap responsif saat memindai (7be4dab26).

  • Deteksi perangkat yang lebih luas. Pemindaian port direfaktor menjadi helper filterPorts() yang dapat digunakan kembali, yang menggabungkan perangkat picotool dan i.MX DFU serta mengklasifikasikan ulang port serial bootloader Arduino yang dikenal (NRF/RPI PID lama dan loader) sebagai perangkat DFU (25a5d30fd).

  • Lebih banyak fallback terminal. Saat meluncurkan alat pemutaran video bawaan (Play Video File / Play RTSP Stream) di Linux, IDE kini beralih melalui lxterminal, konsole, dan xfce4-terminal selain xterm dan gnome-terminal (df54007e0).

  • Pelaporan board-key. Registrasi kamera kini mem-parse respons "Remaining N" untuk memberi tahu pengguna berapa banyak board key yang tersisa, dan menambahkan pesan error tersendiri "Invalid Board Key for Board Type" (5759e73eb).

  • Unduhan yang dihosting GitHub. Pemeriksaan versi dan unduhan sumber daya kini menggunakan raw.githubusercontent.com/openmv/openmv-ide-version dan rilis openmv/openmv-ide alih-alih upload.openmv.io (994109c28).

  • HTTPS di mana-mana. Semua permintaan web OpenMV (pemeriksaan versi, registrasi SWD ID, unduhan sumber daya dan firmware) kini menggunakan https:// (54347cad0).

  • Otomatisasi pengaturan Linux. Installer mendeteksi library yang hilang dan aturan udev, dan jika diperlukan, menghasilkan setup.sh yang dapat dieksekusi dengan perintah instalasi apt-get/pip dan aturan udev yang tepat (serta README yang memberitahu pengguna untuk menjalankannya) (c6dc705e6).

  • Toleransi board lambat. Terminal serial meningkatkan waktu tunggu per-baca dari 1ms menjadi 10ms dan mengeluarkan pengakuan "OK" ketika sebuah skrip selesai (c935e4489).

  • Kemajuan flashing yang lebih mulus. Bilah kemajuan pemuat firmware kini beralih dari tak tentu ke 0-100% secara langsung alih-alih setelah tanda persentase pertama, pada dfu-util, bossac, picotool, dan flashing i.MX (19d947308, 86d021f92).

  • Pemulihan bootloader lama ditambahkan kembali melalui mode bootloader non-fast yang mengirimkan perintah hapus/tulis tanpa padding query-sync mode fast (c20112c07).

  • Konsol alat yang lebih bersih. Terminal flashing firmware (bossac, dfu-util, picotool, imx, alat video) kini berjalan sebagai proses konsol mandiri dengan output perintah yang lebih terformat (8053bb578).

  • Poles auto-completion. Penyelesaian membedakan kelas, metode, dan fungsi dengan petunjuk argumen terpisah, menggunakan ikon model kode yang tepat, dan menghormati lingkup publik/dilindungi/privat berdasarkan awalan garis bawah; prosesor penyelesaian kata kunci juga melewati spasi di awal sebelum kursor pada penyelesaian yang diinvokasi secara eksplisit (manual) (8e9f967e7, 68b26b5fc).

  • Dialog terkonsolidasi. Dialog "Don't show this again" khusus OpenMV -- termasuk dialog info OpenMV Cam LED Colors saat startup dan prompt peningkatan firmware dan contoh -- disatukan ke dialog CheckableMessageBox "Do Not Ask/Show Again", tombol "Reset Do Not Ask/Show Again Dialogs" ditambahkan ke pengaturan Umum, dan penanda code folding dinonaktifkan secara default (9fdff9c6d).

  • Branding yang peka tema. Layar splash mode gelap, logo chip ST dan NXP gelap/terang di kotak About, warna tooltip mode gelap, dan warna ikon autocompletion yang tepat ditambahkan (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).

  • Pembersihan penampil citra. Aksi berbagi, latar belakang, garis luar, dan "set as default" disembunyikan, aksi fit-to-screen ditambahkan, dan ukuran citra animasi diperbaiki (b37c55e25).

  • Pembersihan menu konteks. "Show in File System View", "Open Terminal", "File Properties", dan entri "Add/Delete UTF-8 BOM on Save" disembunyikan (5d862c78e).

  • Terminal serial gelap. Terminal mandiri menggunakan tema gelap yang tepat dengan bilah gulir bergaya, ikon toolbar yang diperbarui, dan pemuatan ulang ikon bilah gulir high-DPI yang benar lintas layar (5c3af6880).

  • Pembersihan Find/Search. Panel hasil mendapatkan tema gelap, pemilih mesin pencari disembunyikan, label disederhanakan, dan Find-in-Files default ke folder Documents/OpenMV (20a806550).

  • Identitas aplikasi. IDE kini menampilkan ikon OpenMV yang tepat di desktop, bilah judul, dan taskbar (dengan penanganan high-DPI di Windows), dan id IDE diubah menjadi openmvide (8ad1eed1f).

  • Splash high-DPI menampilkan citra splash 2x pada tampilan Retina/skala 200% (626ff673e).

  • Perbaikan action bar. Action bar sebelah kiri (New File, Open, Save, Undo, Redo, Cut, Copy, Paste) diperbaiki dan diberi ikon OpenMV khusus (b8479b5d0).

  • Logo dialog About. Logo mitra Arduino dan Edge Impulse kini keduanya ditampilkan (Edge Impulse sebelumnya tersembunyi) dengan varian 2x high-DPI, dan karya seni splash bawaan diperbarui (splash-small-2 / splash-large-2) (5facd8d9a).

  • Select Word Under Cursor diaktifkan; perintah Go to Block Start/End (Ctrl+[ / Ctrl+]) dan Select Block Up/Down sempat diaktifkan kembali (36ed5b1a8) tetapi dibiarkan nonaktif pada rilis (626ff673e).

  • Entri desktop Linux mendapatkan kategori Electronics, komentar Deskripsi, dan Kata Kunci pencarian (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).

  • Migrasi sumber daya. Sumber daya pengguna dipindahkan ke lokasi berversi (folder qtcreator lama dihapus saat startup), dan peringatan font-face DirectWrite yang tidak berbahaya di Windows ditekan (a04af5351, 70765dc2a).

  • Opsi internal tersembunyi. Opsi Core internal -color dan -theme disembunyikan dari output bantuan, dan mode presentasi diaktifkan kembali (434c7b4cc).

  • Kustomisasi inti yang diterapkan ulang pada action bar/tab widget yang mewah, manajer pesan/jendela output, aksi proxy, penyorot sintaks, dan editor teks (0e8047372).

  • QCustomPlot 2.1.1. Library plotting bawaan diperbarui untuk kompatibilitas Qt 6.4 dan penanganan yang benar atas DPI tampilan yang berubah secara dinamis (8801415fe).

  • Pembersihan UI kosmetik pada ikon panah bilah gulir, bilah status, tombol tutup bilah tab dokumen, dan lebar scroller editor; indikator "Display File Line Ending" editor kini nonaktif secara default (e0c4d2325, 6a26f4430, e130988fb).

Perbaikan bug

  • Memperbaiki deteksi VID/PID Linux dengan membaca /sys/class/tty/<port>/device/uevent untuk VID/PID perangkat yang sebenarnya, mengatasi QSerialPortInfo yang mengembalikan pengidentifikasi hub USB, sehingga kamera di belakang hub terdeteksi dengan benar (28220b351).

  • Memperbaiki flashing firmware bootloader Mac dengan melonggarkan assertion ukuran endpoint dan hanya menambahkan paket sync query ketika penulisan tepat satu ukuran endpoint USB (86d021f92).

  • Memperbaiki alat pemutaran video di Linux: Play Video File / Play RTSP Stream kini disembunyikan pada Linux 32-bit dan ARM (tidak ada ffplay bawaan), dengan fallback gnome-terminal ketika xterm tidak tersedia, dan biner ffmpeg macOS dipulihkan dari placeholder (d342649cc, d896f4225).

  • Meningkatkan penundaan awal/akhir reset bootloader dari 0 menjadi 5 untuk menghindari tumpang tindih perintah hapus dan tulis selama pembaruan firmware (fabc168b6).

  • Menyederhanakan pemulihan bootloader: memaksa bootloader untuk memperbaiki cam yang rusak melewati prompt yang berlebihan, dan setelah reset bootloader DFU, IDE secara otomatis mencoba pembaruan ulang alih-alih meminta pengguna untuk terhubung kembali (12b924088).

  • Mengizinkan perintah dump serial frame-buffer/TX-buffer dibatalkan di tengah transaksi (4a4afae1b).

  • Menghapus solusi sementara pembacaan port serial yang berhenti yang dapat menambahkan respons dengan byte nol, meningkatkan keandalan transfer USB cepat (0ee1d8e91).

  • Memperbaiki debugging WiFi dan auto-reconnect: port WiFi memperbarui cap waktu terakhir-terlihat saat ditemukan kembali, beberapa bug iterator-setelah-hapus dalam pensiun port WiFi dan deteksi DFU/bootloader diperbaiki, dan auto-reconnect kini menunggu hingga IDE tidak sibuk sebelum menyambung kembali (cf0b67dc6).

  • Memperbaiki konverter video-ke-MJPEG untuk mem-parse frame rate dari output encoder dan menulis delta milidetik per-bingkai yang benar, sehingga video yang dikonversi diputar dengan kecepatan yang tepat (4a7ad2057).

  • Memperbaiki flashing firmware dan alat command-line bawaan yang gagal diluncurkan dengan memaksa backend QProcess dan memperbaiki guard event-loop proses-blocking (200fe9f3c).

  • Memperbaiki ikon cabang expand/collapse tree editor dataset agar ditampilkan dengan benar pada layar HiDPI dengan memuat ulang style sheet ikon saat perubahan rasio piksel perangkat (a0e78057f).

  • Pembaruan paket/sumber daya kini secara otomatis memulai ulang OpenMV IDE alih-alih hanya keluar setelah instalasi (178ee1b8e).

  • Memperbaiki penyorotan hasil Find/search dan membuat aksi buka hasil-pencarian/file beralih ke editor yang terlihat pertama ketika tidak ada editor saat ini (48c402dfc).

  • Memperbaiki dialog pemuat firmware agar teks peringatannya dihapus dan jendela mengubah ukuran dengan benar ketika operasi flashing selesai (c505c6ade).

  • Memperbaiki beberapa bug UI macOS: bilah tab tidak lagi menghasilkan spam kesalahan muat ikon dan ditampilkan dengan benar saat membuka file (9be8c58de, 5322cf968).

  • Memperbaiki gaya bilah status/panel output dan penyelarasan baseline pada macOS dan Linux (4fc4545de, d29b2baa0, a440d5cd8).

  • Memperbaiki pencetakan kode sumber agar header judul halaman memiliki margin atas dan samping yang tepat alih-alih menyentuh tepi halaman (786d6012c).

Dukungan platform dan alat

  • Basis Qt Creator: 10.0.1 (rebase dari 4.0.2).

  • OpenMV IDE: 4.0.0 -> 4.0.1.

  • OpenMV Cam RT1062 (i.MX RT1060): firmware RT1062 awal, flash-loader, citra bertanda tangan, entri imx.txt, dan kunci konfigurasi blhost secure-bootloader/eFuse ditambahkan di folder firmware OPENMV5 (a6595f5f7); board kemudian dikonsolidasikan ke satu folder OPENMV_RT1060, dan varian board Secure Bootloader (SBL) tersendiri (OpenMV_Cam_RT1062_SBL) ditambahkan (d2b11c6c8, 5baf28c6e).

  • Toolchain flashing bawaan (blhost, bossac, dfu-util, dfuse + driver STM32, picotool, sdphost, ffmpeg, driver FTDI/Arduino) dikemas ulang untuk Windows/macOS/Linux, dengan biner Linux yang ditandai sebagai dapat dieksekusi (fbfa4903a, bfb6b32e2, 9551c64da).

  • DFU ARM64 Linux: dfu-util aarch64 bawaan beserta deteksi arm64 dalam daftar perangkat dan unduhan firmware memungkinkan flashing DFU pada host seperti Raspberry Pi (16bc6fe0f, 470e5702e).

  • Deteksi perangkat i.MX kini berfungsi di Linux (mem-parse lsusb) dan macOS (memindai ioreg), memungkinkan pemuatan firmware i.MX RT di platform tersebut (e03ccbe71, 7cf505d09).

  • Pembatasan platform: penggunaan i.MX dibatasi untuk Windows/macOS/Linux-x86_64 dengan error kritis di tempat lain, dan flashing Portenta/Nicla di ARM/ARM64 Linux menampilkan peringatan "DFU Util may not be stable on this platform" (9513f6475).

  • OpenGL Windows: rendering perangkat lunak dipulihkan dengan menyertakan opengl32sw, Qt6OpenGL, dan dukungan Qt6Gui OpenGL dalam paket yang dideploy (aaaa1928f).

  • Folder/id board Arduino diganti nama. Folder firmware Portenta, Nicla Vision, dan Nano 33 BLE Sense serta id board boards.txt diganti nama menjadi ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION, dan ARDUINO_NANO_33_BLE_SENSE (a70d6562a); folder/id board Nano 33 BLE Sense kemudian ditulis huruf kecil menjadi arduino_nano_33_ble_sense agar sesuai dengan nama board yang dilaporkan perangkat (22750d8c7, a801a81de).

  • Pemuat flash bootloader OPENMV_RT1060 (blhost_flash_loader.bin, sdphost_flash_loader.bin) diperbarui (5baf28c6e).

  • QCustomPlot: 2.1.1 (library plotting bawaan) (8801415fe).

  • Citra firmware di disk dikemas ulang untuk semua board OpenMV/Arduino yang didukung (OPENMV1-4P, OPENMV4_PRO, OPENMVPT, ARDUINO_NICLA_VISION, arduino_nano_33_ble_sense, ARDUINO_PORTENTA_H7, ARDUINO_NANO_RP2040_CONNECT, OPENMV_RT1060, CYW4343, ditambah firmware WiFi WINC1500), dengan firmware dan, jika berlaku, citra bootloader/uvc (fbfa4903a).

Perubahan yang merusak

Ini adalah perubahan alur kerja dan perilaku yang terlihat pengguna; rebase Qt Creator 10.0.1 itu sendiri tidak merusak proyek atau skrip pengguna.

  • Definisi board i.MX RT1060 berubah. Entri EVKBMIMXRT1060 dan OPENMV5 digantikan oleh satu board OPENMV_RT1060 (OpenMV Cam RT1062, plus varian SBL), dan folder firmware lama dihapus (d2b11c6c8).

  • Timeout respons perintah default adalah 10000 ms (sebelumnya 5000 ms di 4.0.0); teks bantuan -override_read_timeout diperbarui untuk menyesuaikan (4a4afae1b).

  • Perilaku koneksi/pemutusan berubah. Auto Reconnect sekarang default-nya NONAKTIF, dan menghubungkan atau memutuskan tidak lagi menghentikan skrip yang berjalan secara default kecuali toggle "Stop Script on Connect/Disconnect" yang baru diaktifkan (defaultnya aktif) (a0e78057f).

  • Alur pembaruan memulai ulang IDE. Pembaruan paket/sumber daya kini memulai ulang OpenMV IDE secara otomatis alih-alih keluar setelah instalasi (178ee1b8e).

  • Id board Arduino diganti nama. Id board boards.txt dan folder firmware Portenta, Nicla Vision, dan Nano 33 BLE Sense diganti nama menjadi ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION, dan ARDUINO_NANO_33_BLE_SENSE (yang terakhir kemudian ditulis huruf kecil menjadi arduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).