v4.4.0

v4.4.0, OpenMV IDE’yi uzun süredir kullanılan Qt Creator 10.0.1 tabanından Qt Creator 14.0.2’ye taşıyan, tam OpenMV eklentisini ve her bir fork özelleştirmesini daha yeni tabanın üzerine yeniden uygulayan büyük bir modernizasyon sürümüdür. Bunun yanı sıra bu sürüm, çevrimdışı kod tamamlama için gömülü bir Python dil sunucusu paketler, GitHub Copilot’u her platformda etkinleştirir, yeni bir özel OpenMV DFU önyükleyicisi (bootloader) sunar ve OpenMV kameralarını yeni bir 37C5 USB satıcı kimliğine (vendor ID) taşır. Taban değişikliği büyük bir dahili modernizasyondur ancak kullanıcı projelerini bozmaz; az sayıdaki kullanıcıya görünür iş akışı değişikliği için Bozucu değişiklikler bölümüne bakın.

Öne çıkanlar

  • Qt Creator 14.0.2’ye geçiş. IDE, Qt Creator 10.0.1’den 14.0.2’ye geçiyor; tüm OpenMV eklentisi ve tüm // OPENMV-DIFF // özelleştirmeleri modern tabanın üzerine yeniden uygulanıyor (d6c895be8, 1fa75b397).

  • Gömülü Python dil sunucusu. IDE artık paketlenmiş bir pylsp (astroid 3.3.5 ile) içeriyor ve bunu otomatik kullanıyor; bu, Windows, macOS ve Linux x86_64’te ayrı bir pip kurulumu olmadan çevrimdışı Python/MicroPython kod tamamlaması sağlıyor (257addee0, 5a2b3e72f, 94470798d).

  • Tüm platformlarda GitHub Copilot. Copilot entegre edildi ve varsayılan olarak etkinleştirildi; Windows, macOS ve Linux için paketlenmiş bir Node.js 20.18.0 çalışma zamanı ile artık yalnızca belirli makinelerle sınırlı değil, ayrıca onu açmak için bir başlangıç iletişim kutusu eklendi (bb07d582b, 1cb967c5a, b37e48040).

  • Yeni OpenMV DFU önyükleyicisi. Tam olarak uygulanmış özel bir openmv_dfu önyükleyici (bootloader) akışı, aygıt yazılımı (firmware) güncellemelerini settings.json üzerinden yönetir; bu, en son sürümü yükle, belirli aygıt yazılımını yükle ve dosya sistemini sil seçeneklerini sunan bir “DFU modunda kart algılandı” iletişim kutusunun yanı sıra, kullanılamaz hale gelmiş kameraları kurtarmak için bir yedek önyükleyici yolu içerir (08b9d0676, 6a6a9351d, 6d78d6571).

  • Yeni kamera desteği. OpenMV Cam N6, RT1062 ve AE3 kartları eklendi ve kameralar güncellenmiş DFU sürücüleri ve udev kurallarıyla birlikte yeni 37C5 USB satıcı kimliğine (vendor ID) taşındı (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).

  • Daha güvenilir seri iletişim. Büyük seri iletişim düzeltmeleri, TinyUSB tabanlı kameralarda bozuk terminal metni ve rastgele bağlantı kopmalarını çözer (caeba6a16, 6cf122a3c).

Yeni özellikler

  • OpenMV DFU önyükleyicisi. Özel DFU sürücüleri ve bir yedek önyükleyici mekanizması içeren yeni bir openmv_dfu önyükleyici (bootloader) sistemi, aygıt yazılımı türleri genelinde kullanılamaz hale gelmiş kameraları kurtarır (6a6a9351d, 6d78d6571). Akış, aygıt yazılımı (firmware) güncellemelerini settings.json üzerinden yönetir ve en son sürümü yükle, belirli aygıt yazılımını yükle ve dosya sistemini sil seçenekleriyle bir “DFU modunda kart algılandı” iletişim kutusu sunar (08b9d0676, ef19133b6, 9c59d113c).

  • Bağlantı noktası seçicide kart adı. Seri bağlantı noktası seçim iletişim kutusu artık her bağlantı noktasını yoklar ve çıplak bir bağlantı noktası adı yerine algılanan kart adını bağlantı noktasının yanında gösterir (ör. COM3: OpenMV Cam H7) (9837d6cb5).

  • Sekmeli düzenleyici. Sekmeli düzenleyici eklentisi geri getirildi; düzenleyici alanının üstüne açık dosyalar arasında geçiş yapmak için bir belge sekmeleri satırı ekler (c8519c09f) ve artık sekme sıralamasını oturumlar arasında saklayıp geri yükler (55ccfb207).

  • Python sözdizimi vurgulaması. Düzenleyici için dizi biçimi, kayan nokta ve anahtar kelime kurallarıyla özel bir Python sözdizimi vurgulama tanımı ekler (9be46c0c3).

Diğer değişiklikler ve iyileştirmeler

  • Aygıt yazılımı yükleme yeniden düzenlemesi. Aygıt yazılımı yükleme kodu, tür başına ayrı önyükleyici işleyicilerine (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool) bölündü; Arduino DFU kartları için sıfırlamaya-dokun PID işleme ve alternatif VID/PID cihazları için açık “Legacy” kart varyantları eklendi (9f465f9f8).

  • STM32 ROM önyükleyici güvenlik önlemleri. IDE artık STM32 ROM kurtarma önyükleyicisine firmware.dfu/openmv.dfu yüklenmesi konusunda uyarıyor veya bunu engelliyor; bir çip ROM önyükleyici hatasından etkilenen STM32H7 kartlarının kullanılamaz hale gelmesini önlemek için yalnızca bootloader.dfu öneriliyor (c5ce0ae1a, e7cde1ec1).

  • Otomatik, sessiz Python LSP kurulumu. Python dil sunucusu artık bilgi çubuğu istemleri veya konsol mesajı kalabalığı olmadan otomatik olarak kuruluyor ve güncelleniyor (d89f5985f) ve Python otomatik tamamlama/belge üzerine gelme sistemi, paketlenmiş HTML kütüphane belgelerini ayrıştırarak anahtar kelime vurgulaması ve araç ipuçlarını yönlendiren özel bir OpenMV belge motoruna dönüştürüldü (47e02873b, 4f9853f21, 82cefc931).

  • Linux Python yorumlayıcı algılama. Linux’ta yorumlayıcı algılama artık otomatiktir; yalnızca PATH içindeki Python 3 yorumlayıcılarını dikkate alır ve en yenisini tek varsayılan olarak seçer (214fdc758).

  • Python ayarları temizliği. Yorumlayıcı başına yönetim grubu ve Interpreters sayfası gizlendi, Language Server Configuration bir Python kategorisi altına yerleştirildi ve kullanılmayan REPL ve yorumlayıcı seçici araç çubuğu düğmeleri Python düzenleyicisinde gizlendi (d89f5985f). Windows’ta IDE artık paketlenmiş gömülü python.exe dosyasını varsayılan yorumlayıcı olarak otomatik kaydediyor ve paketlenmiş dil sunucusu zaten kurulu kabul ediliyor (1d9ca003e, d89f5985f).

  • Daha temiz profil dizini. IDE artık kullanılmayan Qt Creator ayar dosyalarını (cihazlar, kitler, araç zincirleri, Qt sürümleri) yazmıyor ve dosyaları doğrudan düzenleyicide açıyor (3771b0107), artık sistemde qmake/Qt sürümlerini taramıyor (42807f25f) ve kullanılmayan cihaz/araç zinciri/kit mekanizmalarını yüklemekten ve başlangıç gürültüsünden kaçınıyor (902a357de, b2666a35b).

  • Daha güvenli güncellemeler. IDE’yi güncellemek artık kullanıcı kaynaklarını ezmiyor; yalnızca yönetilen kaynak klasörleri (örnekler, aygıt yazılımı, html, modeller) kaldırılıp yeniden kopyalanıyor, ek olarak micropython-headers kaldırılıyor (bu yol üzerinden yeniden kopyalanmak yerine ayrı olarak kuruluyor) ve firmware/settings.json eksik veya geçersizse daha net bir hata veriliyor (b4b8c208d, 3255ba4fb).

  • Daha hızlı DFU bağlantısı. DFU bağlantı bekleme süresi azaltıldı, böylece flaşlama ve bağlanma daha hızlı (11d8c9fe3, 4700bf678).

  • Geri getirilen OpenMV menüsü ve arayüz özelleştirmeleri. Sadeleştirilmiş OpenMV menü düzeni yeniden uygulandı; Build ve Debug menüleri gizlendi ve proje yönetimi eylemleri kaldırıldı (7503f2bec); kod tamamlama motoru, MicroPython otomatik tamamlama için sınıf/yöntem farkındalığını ve genel/özel anahtar kelime kapsamlarını yeniden kazandı (55fc348ea); terminal ANSI renk işleme, tema farkında parlak/soluk değerleri ve imleç-geri kaçış desteğiyle yeniden uygulandı (c6787a27a); ve görüntü görüntüleyici araç çubuğu, çözünürlük/yakınlaştırma araç ipuçları ve yeniden konumlandırılmış bir Ekrana Sığdır eylemiyle özelleştirildi (734fec693).

  • Geri getirilen paketlenmiş kaynaklar. Flaşlama araçları, DFU sürücüleri, aygıt yazılımı ve tam örnek/betik ağacı, geçiş sonrası soyma işleminin ardından paylaşılan kaynaklara geri getirildi (33c8354bc) ve OpenMV’nin özel uygulama başlangıç mantığı yeniden uygulandı: TextEditor eklentisini kesinlikle zorunlu kılar (OpenMV ve TabbedEditor eklenti kontrolleri mevcut ancak devre dışı), özel bir Qt mesaj işleyicisi kurar, -client/-pid/-block komut satırı seçeneklerini kaldırır ve tek örnek davranışını zorunlu kılar (06c788f3d).

  • Eksik eklenti hatası. Uygulama artık gerekli eklentiler eksik veya devre dışıysa net bir hatayla kesin olarak başarısız oluyor, OpenMV eklentisi bir Copilot bağımlılığı kazandı ve birkaç metin düzenleyici seçeneği (Behavior ayarlarındaki Prefer single line comments ve yorum konumu seçici ile Display ayarlarındaki Highlight selection) gizlendi (1bc02b1f3).

  • Daha kısa seri zaman aşımları. Seri protokol zaman aşımları, daha hızlı başarısızlık geri bildirimi için kısaltıldı (okuma 10000’den 5000 ms’ye, yazma 6000’den 3000 ms’ye) ve belgelenen -override_read_timeout varsayılanı buna uyacak şekilde güncellendi (641385af4).

  • Takılı kalan bağlantı noktası kurtarma. Komut ortasında takılı kalan seri bağlantı noktaları artık bir betik çalıştırma sorgusu yerine bir GET_STATE sorgusu (get-state ayarı üzerinden yapılandırılabilir) kullanılarak kurtarılıyor (a8598f550).

  • Ayarlar iletişim kutusu sırası. Ayarlar iletişim kutusu, sayfa listesinin OpenMV’nin amaçladığı sırada kalması için alfabetik kategori sıralama onay kutusunu gizler (1cb967c5a).

  • Copilot ayarları sadeleştirildi. Copilot ayarları sayfası yalnızca oturum açma/kimlik doğrulama ve proxy denetimlerine indirgendi; Copilot’u etkinleştir, Node.js yolu, dist yolu ve otomatik tamamlama seçenekleri gizlendi (1cb967c5a).

Hata düzeltmeleri

  • Seri okuma takılma zaman aşımı 10 kat artırılarak ve seri terminal metnini bozan GET_STATE tabanlı bir takılma giderme yolu devre dışı bırakılarak büyük seri iletişim sorunları düzeltildi (caeba6a16).

  • Bir çerçeve dökümü kilit açma komutu vererek ve bağlantıyı kesmek yerine okuma takılma işlemesini yeniden düzenleyerek TinyUSB tabanlı kameralarda rastgele seri bağlantı kopmaları düzeltildi (6cf122a3c).

  • Kamera get_state işlemesi kısa/eksik yanıtlara karşı toleranslı hale getirildi ve hata kurtarma sırasında arabelleğe alınan seri terminal metninin temizlenmesi sağlanarak günlük çıktısının kaybolmaması garanti edildi (c8b4248a6, 247a779dd).

  • OpenMV Cam aygıt yazılımı yüklemesi için DFU önyükleyici flash bölümü/alt ayar numaraları düzeltildi (a8700d12d).

  • Yeni bir hidden kart bayrağına uyularak, seri numarası filtrelemesi ters filtrelere geçirilerek ve Arduino Nano RP2040 Connect UF2 girişine çalışan bir picotool yapılandırması verilerek tüm önyükleyiciler geri getirildi (63cee629b).

  • İnsan tarafından okunabilir ve IMX kart türü seçimleri için ayrı geçmiş anahtarları kullanılarak önyükleyici kart türü seçim iletişim kutusunun yanlış değeri hatırlaması düzeltildi (a3325af32).

  • Ortalama çerçeve aralığı mikrosaniye cinsinden hesaplanarak, yeni bir v21 ImageWriter zaman biçimi desteklenerek ve dönüştürme sırasında boş pixmap’lere karşı koruma sağlanarak video kod dönüştürme (Video Kaydet) zaman damgası/kare hızı hesaplaması düzeltildi (f5c75c749, f8f762b3e).

  • Boş (null) bir pixmap alındığında histogram/çerçeve arabelleği görünümündeki bir çökme, pixmapUpdate() boş verilere karşı korunarak düzeltildi (622cf5ea8).

  • Metin düzenleyicideki üzerine gelme açıklama araç ipuçları geri getirildi, böylece metin işaretlerinin üzerine gelindiğinde açıklama araç ipucu tekrar görünüyor (1852d18e1).

  • GitHub Copilot ve LED renkleri bilgi iletişim kutularının, IDE bağlanmak veya flaşlamakla meşgulken açılması engellendi (f8f762b3e).

  • Dil istemcisine çökme koruması eklendi, böylece belge içeriği değişikliği işleme artık uç durumlarda IDE’yi çökertmiyor (7926ffe4c).

  • Python eklentisinin çıkmadan önce devam eden kontroller için eşzamansız olarak beklemesi sağlanarak, temiz bir IDE kapatmasını engelleyen Python dil sunucusu kontrolleri düzeltildi (9ff6c7936).

  • Linux’ta Python otomatik tamamlama düzeltildi: dil istemcisi kendini paketlenmiş micropython-headers üzerine köklendiriyor ve gereksiz düzenleyici araç çubuğu tamamlama açılır penceresi eylemi gizlendi (d37f66a9a, 56e748f9d, 016fa73eb).

  • Geçici/kaydedilmemiş dosyaların işlenmesi düzeltildi, böylece Farklı Kaydet dosya iletişim kutusunun başlangıç dizinini kullanıyor ve Öğeleri Kaydet iletişim kutusu ile Diff düzenleyici artık dahili geçici dosya yollarını göstermiyor (b7f0bb378, c8e7b6b8f, 6b128c34c).

  • Başlıksız/geçici bir arabelleği kaydetmek artık Farklı Kaydet iletişim kutusunu boş bir ad yerine uygun bir .py dosya adına varsayılan olarak ayarlıyor (3001fdfff).

  • Geçici/başlıksız belgeler artık değiştirildiğinde kaydedilmek üzere sunuluyor, otomatik kaydetmeden hariç tutuluyor ve Farklı Kaydet üzerinden doğru şekilde yönlendiriliyor (f87b71cf0).

  • Son Dosyalar menüsü sıralaması düzeltildi, böylece zaten listelenmiş bir dosyayı yeniden açmak artık onu yeniden sıralamıyor ve dosya iletişim kutusu artık projeler dizinine varsayılan olarak açılıyor (d49c0c993).

  • İşaretlenebilir mesaj kutularında zengin metin biçimi artık zorlanmayarak mesaj kutusu metin işleme düzeltildi, böylece ham metin doğru görüntüleniyor (0c565502f).

  • Araç ipucu renkleri düzeltildi, böylece araç ipuçları açık temada doğru işleniyor (35cbf077b).

  • Çekirdek ayarlar, dil istemcisi, MSVC araç zinciri, proje gezgini ve Python eklentileri genelinde genel Qt Creator kararlılık ve temizlik düzeltmeleri (836b163dc, 134f43cb8).

  • Arduino Nano 33 BLE Sense paketlenmiş aygıt yazılımı klasör adı düzeltildi (b1d8ac227) ve AE3 DFU önyükleyici ürün kimliği için Linux udev kuralı düzeltildi; udev’in büyük/küçük harfe duyarlı idProduct eşleşmesinin çalışması için 96E3 küçük harfli 96e3 olarak düzeltildi (2cd43c96b). AE3 DFU önyükleyici Linux udev kuralı ayrıca openmvdfu sembolik bağlantısı için 37c5:afe3 ürün kimliğine güncellendi (b99555637).

Platform ve araç desteği

  • Qt Creator tabanı: 14.0.2 (10.0.1’den geçiş yapıldı).

  • OpenMV Cam N6 artık destekleniyor (VID:PID 37C5:1206, DFU önyükleyici 37C5:9206); aygıt yazılımı ayarları, bir Windows DFU sürücüsü ve bir Linux udev kuralı dahil (000ed8a87, 1b950c8c6).

  • OpenMV Cam RT1062 artık yeni bir özel USB VID/PID (37C5:1060) altında destekleniyor; DFU sürücüleri, udev kuralları ve eski birimler için korunan eski 1209:ABD1 girişleri dahil (f453bc945, d55d6441f).

  • OpenMV Cam AE3 artık destekleniyor; Windows DFU sürücüleri, aygıt yazılımı/yapılandırma görüntü ağacı ve USB VID/PID (37C5:16E3 çalışma zamanı / 37C5:96E3 önyükleyici olarak güncellendi) dahil (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).

  • Yeni USB VID/PID sistemi: OpenMV kameraları, yeni önyükleyici/DFU kimlikleriyle (ör. 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205) 37C5 satıcı kimliğine taşınıyor; eski 1209:ABD1 kartları Legacy olarak yeniden etiketlenirken hem eski hem de yeni aygıt yazılımı desteklenmeye devam ediyor (6d78d6571, 6a6a9351d, 500b1a0bf).

  • PAG7936 görüntü sensörü, tanınan sensör listesine eklendi (f9e3f3461).

  • Gömülü Python 3.13 yorumlayıcısı macOS, Linux x86_64, Linux arm64 ve Linux arm için paketlendi (9133b1516); yerel libpython3.13 ve ujson paylaşılan kütüphaneleriyle birlikte (d3aa663d8, a2cb24e74).

  • Paketlenmiş dil sunucusu: Windows, macOS ve Linux x86_64’te astroid 3.3.5 ile pylsp (257addee0). Windows derlemesi, python-lsp-server 1.12.0, jedi 0.17.2, docstring_to_markdown 0.15, pip 24.2 ve distlib 0.3.9 ile gömülü bir CPython içerir (9b6434602, 069807cd3, 5f2e45196, 3b6c6c312).

  • Paketlenmiş Node.js 20.18.0 “Iron” LTS çalışma zamanı, tüm platformlarda GitHub Copilot’u etkinleştirmek için Windows, macOS, Linux arm64, Linux x64 ve Linux armv7 için (bb07d582b, 6db78bf45, 1cb967c5a).

  • Alif Security Toolkit imzalı boot/sistem paketi ikili dosyaları ve kullanıcı kılavuzu, Alif tabanlı OpenMV kameraları (ör. AE3) sağlama amacıyla Windows, macOS ve Linux x86_64 için paketlendi (f63851be3).

  • Linux masaüstü entegrasyonu geri getirildi; bir uygulama masaüstü girişi ve AppStream meta verisi kuruluyor ve Python (.py) MIME türü kaydediliyor (3fa25f571).

Bozucu değişiklikler

Hiçbir betik API’si değişmedi. Aşağıdaki kullanıcıya görünür iş akışı ve davranış değişiklikleri fark edilebilir:

  • Yeni USB satıcı kimliği. OpenMV kameraları yeni ürün ve DFU önyükleyici kimlikleriyle 37C5 satıcı kimliğine taşınıyor; eski 1209:ABD1 VID’sindeki kartlar artık “Legacy” olarak etiketleniyor. IDE hem eski hem de yeni aygıt yazılımını aynı anda destekliyor, ancak Linux kullanıcıları yeni kimliklerin tanınması için güncellenmiş udev kurallarını yeniden kurmalıdır.

  • Eski kart girişleri gizlendi. OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal kartlarının eski varyantları artık yeni bir legacy kart bayrağı (önceden var olan hidden bayrağından farklı) aracılığıyla aygıt yazılımı/kart seçim listesinden bastırılıyor, böylece özellikle eski bir kart girişine ihtiyaç duyan kullanıcılar artık bunu açılır menüde görmeyecek (6d78d6571).

  • Daha kısa seri zaman aşımları. Varsayılan yanıt okuma zaman aşımı 10000 ms’den 5000 ms’ye ve yazma zaman aşımı 6000 ms’den 3000 ms’ye düşüyor (-override_read_timeout varsayılanı artık 5000 olarak belgeleniyor). Daha uzun varsayılanlara güvenen yavaş kartlar/bağlantılar daha erken zaman aşımına uğrayabilir.

Qt Creator 14.0.2 geçişi büyük bir dahili modernizasyondur ancak kullanıcı projeleri için bozucu değildir.