v4.8.11

v4.8.11 adalah rilis stabilitas dan kebenaran yang berfokus pada ketahanan macOS, serialisasi alat eksternal, dan keandalan pembaruan firmware. Ini dibangun di atas Qt Creator 14.0.2 (tidak berubah dari rilis sebelumnya) dan tidak mengandung perubahan yang merusak untuk proyek pengguna.

Sorotan

  • Penguatan crash macOS — menghilangkan abort NSRangeException diam yang intermiten yang disebabkan oleh memperbarui pilihan tree/list/combo sebelum panel atau popup sepenuhnya dibangun atau di tengah-async-refresh, di seluruh combo garis besar, hierarki panggilan/tipe, popup penyelesaian dan locator, pohon proyek, dan lainnya.

  • Alat eksternal yang diserialisasi — dialog progres loader kini bersifat application-modal dan menangguhkan semua polling perangkat, sehingga menjalankan dfu-util, bossac, picotool, dan alat lainnya tidak lagi dapat dimasuki kembali oleh aliran kamera atau koneksi ulang otomatis.

  • Pembaruan firmware yang andal — koneksi ulang otomatis tidak lagi dapat membajak pembaruan firmware di tengah-flash, yang sebelumnya membuang kelanjutan nyata dan memunculkan dialog DFU yang tidak diharapkan.

  • Keamanan Hello World — menghubungkan board tidak lagi sesekali menimpa program Hello World yang telah Anda ketikkan, dengan membandingkan terhadap snapshot yang bersih alih-alih flag modifikasi yang tidak dapat diandalkan.

  • Kesalahan DFU yang lebih jelas — kesalahan "no matching interface" kini menyebutkan board yang terdeteksi dan nama-nama file firmware yang diterimanya, alih-alih membuang VID/PID mentah.

Fitur baru

  • ST Edge AI (STM32N6) kini menghasilkan biner jaringan yang dapat direlokasi secara langsung melalui mode --relocatable kompiler, menghapus langkah relokasi Python terpisah dan bidang Relocation CLI Options tambahan dari dialog (7613135c5).

Perubahan dan peningkatan lainnya

  • Kesalahan antarmuka DFU kini menyebutkan board yang terdeteksi dan mencantumkan nama-nama file firmware yang diterima board tersebut, dengan panduan untuk mengganti nama atau memilih file yang benar, alih-alih membuang VID/PID mentah (ac509b369).

  • Navigasi tab macOS pintasan kini menggunakan Cmd+Shift+[ / Cmd+Shift+] yang dapat dijangkau (sebelum/berikutnya) dan Cmd+Alt+[ / Cmd+Alt+] (pindah) alih-alih Ctrl+PageUp / Ctrl+PageDown yang tidak dapat ditekan; pengikatan Windows dan Linux tidak berubah (6c09e10b1).

  • Permintaan Lisensi/board ke upload.openmv.io (check.php, insert.php, register.php) kini mengirimkan User-Agent bergaya browser per-platform sehingga server lisensi dapat mengidentifikasi OS klien (6bfd74b36).

Perbaikan bug

  • Memperbaiki crash macOS yang intermiten (abort NSRangeException diam tanpa dialog crash) di mana memperbarui pilihan tree/list/combo saat panel atau popup masih tersembunyi atau di tengah-async-refresh akan mengindeks ke cache aksesibilitas Cocoa yang belum dibangun. Pemilihan, pengguliran, dan perluasan kini ditangguhkan atau dijaga di seluruh combo garis besar, hierarki panggilan/tipe, popup penyelesaian kode, popup locator, dialog Save Items, pohon proyek, navigasi folder, Open Documents, daftar Issues/Tasks, dan combobox tampilan pohon (94c8f9def, ae40a3806, ed23b5c60, c6baf89cd, d7b6f5838, d8b70609c, 21740d9c2, 9217fc8a9, fe75924d5, 9cc247ffb, 3ca71e915, 559b6005f).

  • Memperbaiki crash macOS terpisah (NSRangeException/SIGABRT) di combobox garis besar kode yang disebabkan oleh indeks usang di luar rentang ketika server bahasa Python menyegarkan simbol secara asinkron; setCurrentIndex kini memvalidasi ulang batas baris/kolom terhadap model langsung (3e0ce89f1).

  • Memperkuat editor model ROMFS dan editor dataset terhadap perlombaan async QFileSystemModel dengan menunda pra-perluasan pohon hingga direktori selesai dimuat dan hanya memilih file/folder/model yang baru dibuat setelah model memiliki indeks yang valid untuk mereka (5eaa91aff).

  • Operasi alat eksternal (dfu-util, bossac, picotool, alif, imx, ST Cube, mpy-cross, vela, ST Edge AI, konversi video) tidak lagi membiarkan aliran kamera atau pekerjaan yang antri memasuki kembali operasi perangkat di belakang alat yang sedang berjalan: dialog progres loader kini bersifat application-modal dan polling perangkat sepenuhnya ditangguhkan saat ditampilkan (3069e8ec0).

  • Koneksi ulang otomatis tidak lagi membajak pembaruan firmware di tengah-flash melalui flag firmware-update-in-progress yang dikunci untuk seluruh operasi paksa/bootloader/hapus yang kini juga diperiksa oleh timer koneksi ulang (b7745484a).

  • Menghubungkan board tidak lagi sesekali menimpa program Hello World yang telah Anda ketikkan, dengan membandingkan dokumen langsung terhadap snapshot bersih yang diambil saat dibuka alih-alih mengandalkan flag modifikasi yang tidak dapat diandalkan sebelum melakukan auto-sync contoh per-sensor (6f4539d44).

  • Menggulir ke atas di terminal serial selama output berkelanjutan yang cepat tidak lagi menarik tampilan kembali ke bawah: jalur tambah kini mengikuti flag sticky user-scroll-intent alih-alih menurunkan ulang "at bottom" dari posisi scrollbar yang setiap potongan baru saja dipasang ulang (9aea0f1a2).

  • Escape kini menutup dialog Code Profiler secara andal terlepas dari widget anak mana yang memiliki fokus (203ffd1e6).

  • Di macOS, pintasan keyboard menu global dan perintah kini berfungsi di seluruh aplikasi alih-alih hanya ketika editor memiliki fokus, dengan menjadikan induk menu bar tersembunyi ke jendela utama di setiap platform (6d52cbe73).

  • Interpreter Python yang dibundel kini dipaksa sebagai default pada setiap peluncuran, sehingga default yang tersimpan lama tidak lagi menonaktifkan server bahasa Python secara diam-diam (penyelesaian dan petunjuk panggilan) (1d5069a52).

  • Memperkuat I/O pengaturan OpenMV terhadap re-entrancy: beginGroup / endGroup pada objek pengaturan global bersama (yang memunculkan dialog modal dan menjalankan event loop bersarang) digantikan dengan jalur kunci lengkap, sehingga akses pengaturan yang re-entrant selama dialog modal tidak lagi dapat salah menempatkan kunci di bawah grup yang salah. Jalur di disk identik byte-per-byte, sehingga pengaturan pengguna yang ada dipertahankan persis (91e78a9e3, f4bb9f48c).

  • Memperbaiki regresi di mana beberapa dialog dan pembantu yang menerima objek pengaturan bersama melakukan I/O kunci dasar di root pengaturan alih-alih di bawah OpenMV/, kehilangan geometri jendela model zoo, splitter, dan status perluasan serta status enam dialog loader (dfu-util, imx, bossac, alif, picotool, dan ST Cube Programmer) bersama dengan opsi kompiler mpy-cross, vela, dan ST Edge AI; grup kini dipanggang ke setiap kunci sehingga jalur yang benar digunakan (258448bdf).

Dukungan platform dan alat

  • Basis Qt Creator: 14.0.2.

  • OpenMV IDE versi ditingkatkan ke 4.8.11.

Perubahan yang merusak

Tidak ada. Semua perubahan adalah perbaikan bug dan peningkatan yang ditambahkan di atas basis Qt Creator 14.0.2 yang ada; proyek dan alur kerja yang ada tidak terpengaruh.