v4.4.0

v4.4.0 היא מהדורת מודרניזציה מרכזית שמעבירה את OpenMV IDE מבסיס Qt Creator 10.0.1 ארוך-השנים שלה לבסיס Qt Creator 14.0.2, תוך החלה מחדש של תוסף OpenMV המלא וכל התאמת הפיצול (fork) על גבי הבסיס החדש. נוסף על כך, מהדורה זו אורזת שרת שפת Python מוטמע להשלמת קוד לא-מקוונת, מפעילה את GitHub Copilot בכל פלטפורמה, מציגה מאתחל (bootloader) OpenMV DFU מותאם אישית חדש, ומעבירה את מצלמות OpenMV למזהה ספק USB חדש 37C5. שינוי הבסיס הוא מודרניזציה פנימית גדולה אך אינו שובר פרויקטים של משתמשים; ראו Breaking changes למספר המצומצם של שינויי תהליך-עבודה הגלויים למשתמש.

עיקרי הדברים

  • מעבר ל-Qt Creator 14.0.2. ה-IDE עובר מ-Qt Creator 10.0.1 ל-14.0.2, כשכל תוסף OpenMV וכל התאמות // OPENMV-DIFF // מוחלות מחדש על הבסיס המודרני (d6c895be8, 1fa75b397).

  • שרת שפת Python מוטמע. ה-IDE כעת מספק ועושה שימוש אוטומטי ב-pylsp מצורף (עם astroid 3.3.5), ומעניק השלמת קוד Python/MicroPython לא-מקוונת ללא התקנת pip נפרדת ב-Windows, macOS, ו-Linux x86_64 (257addee0, 5a2b3e72f, 94470798d).

  • GitHub Copilot בכל הפלטפורמות. Copilot משולב ומופעל כברירת מחדל, עם סביבת ריצה מצורפת של Node.js 20.18.0 ל-Windows, macOS, ו-Linux כך שהוא כבר אינו מוגבל למכונות נבחרות, בתוספת תיבת דו-שיח בהפעלה להפעלתו (bb07d582b, 1cb967c5a, b37e48040).

  • מאתחל (bootloader) OpenMV DFU חדש. תהליך מאתחל openmv_dfu מותאם אישית וממומש במלואו מנהל עדכוני קושחה מתוך settings.json, כולל תיבת דו-שיח ”board in DFU mode detected“ המציעה בחירות של התקנת-המהדורה-האחרונה, טעינת-קושחה-מסוימת, ומחיקת-מערכת-הקבצים, בתוספת נתיב מאתחל-גיבוי לשחזור מצלמות שהפכו לבלתי-שמישות (bricked) (08b9d0676, 6a6a9351d, 6d78d6571).

  • תמיכה במצלמות חדשות. מוסיף את לוחות OpenMV Cam N6, RT1062, ו-AE3, ומעביר את המצלמות למזהה ספק USB חדש 37C5 עם מנהלי התקני DFU מעודכנים וכללי udev (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).

  • תקשורת טורית אמינה יותר. תיקונים מרכזיים בתקשורת הטורית פותרים טקסט מעוות בטרמינל וניתוקים אקראיים עם מצלמות מבוססות-TinyUSB (caeba6a16, 6cf122a3c).

תכונות חדשות

  • מאתחל (bootloader) OpenMV DFU. מערכת מאתחל openmv_dfu חדשה עם מנהלי התקני DFU ייעודיים ומנגנון מאתחל-גיבוי משחזרת מצלמות בלתי-שמישות (bricked) על פני סוגי קושחה שונים (6a6a9351d, 6d78d6571). התהליך מנהל עדכוני קושחה מתוך settings.json ומציג תיבת דו-שיח ”board in DFU mode detected“ עם אפשרויות התקנת-המהדורה-האחרונה, טעינת-קושחה-מסוימת, ומחיקת-מערכת-הקבצים (08b9d0676, ef19133b6, 9c59d113c).

  • שם הלוח בבורר היציאות. תיבת בחירת היציאה הטורית כעת בודקת כל יציאה ומציגה את שם הלוח שזוהה לצד היציאה (לדוגמה COM3: OpenMV Cam H7) במקום שם יציאה גרידא (9837d6cb5).

  • עורך בלשוניות. תוסף העורך-בלשוניות שוחזר, ומוסיף שורת לשוניות מסמכים מעל אזור העורך למעבר בין קבצים פתוחים (c8519c09f), והוא כעת שומר ומשחזר את סדר הלשוניות בין הפעלות (55ccfb207).

  • הדגשת תחביר ל-Python. מוסיף הגדרת הדגשת-תחביר ייעודית ל-Python עבור העורך עם כללים לפורמט-מחרוזת, נקודה-צפה, ומילות-מפתח (9be46c0c3).

שינויים ושיפורים נוספים

  • ארגון מחדש של טעינת הקושחה. קוד טעינת הקושחה פוצל למטפלי מאתחל נפרדים לפי סוג (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool), בתוספת טיפול ב-PID של touch-to-reset עבור לוחות Arduino DFU וגרסאות לוח ”Legacy“ מפורשות עבור התקנים עם VID/PID חלופי (9f465f9f8).

  • אמצעי הגנה למאתחל-ה-ROM של STM32. ה-IDE כעת מזהיר או חוסם טעינת firmware.dfu/openmv.dfu אל מאתחל שחזור-ה-ROM של STM32, וממליץ רק על bootloader.dfu כדי למנוע הפיכת לוחות STM32H7 לבלתי-שמישים עקב באג במאתחל ה-ROM של השבב (c5ce0ae1a, e7cde1ec1).

  • התקנת LSP אוטומטית ושקטה של Python. שרת שפת Python כעת מתקין ומתעדכן אוטומטית ללא בקשות בשורת מידע או הצפת הודעות בקונסולה (d89f5985f), ומערכת ההשלמה-אוטומטית/ריחוף-תיעוד של Python עוצבה מחדש למנוע תיעוד OpenMV ייעודי שמנתח את מסמכי הספרייה ב-HTML המצורפים כדי להניע הדגשת מילות-מפתח ותיאורי כלי (47e02873b, 4f9853f21, 82cefc931).

  • זיהוי מפרש Python ב-Linux. זיהוי המפרש ב-Linux הוא כעת אוטומטי, ומתחשב רק במפרשי Python 3 מתוך PATH ובוחר את החדש ביותר כברירת המחדל היחידה (214fdc758).

  • ניקיון הגדרות Python. קבוצת הניהול לכל-מפרש ועמוד ה-Interpreters מוסתרים, ה-Language Server Configuration מתויק תחת קטגוריית Python, ולחצני סרגל הכלים של REPL ובורר-המפרש שאינם בשימוש מוסתרים בעורך ה-Python (d89f5985f). ב-Windows, ה-IDE כעת רושם אוטומטית את python.exe המוטמע המצורף כמפרש ברירת המחדל, כשהשרת השפה המצורף נחשב כמותקן כבר (1d9ca003e, d89f5985f).

  • ספריית פרופיל נקייה יותר. ה-IDE כבר אינו כותב קבצי הגדרות Qt Creator שאינם בשימוש (devices, kits, toolchains, גרסאות Qt) ופותח קבצים ישירות בעורך (3771b0107), כבר אינו סורק את המערכת אחר גרסאות qmake/Qt (42807f25f), ונמנע מטעינת מנגנון device/toolchain/kit שאינו בשימוש ומרעש בהפעלה (902a357de, b2666a35b).

  • עדכונים בטוחים יותר. עדכון ה-IDE כבר אינו דורס משאבי משתמש; רק תיקיות המשאבים המנוהלות (examples, firmware, html, models) מוסרות ומועתקות מחדש, כש-micropython-headers מוסר בנוסף (הוא מותקן בנפרד במקום להיות מועתק מחדש דרך נתיב זה), ושגיאה ברורה יותר אם firmware/settings.json חסר או לא תקין (b4b8c208d, 3255ba4fb).

  • חיבור DFU מהיר יותר. זמן ההמתנה לחיבור DFU צומצם כך שצריבה וחיבור מהירים יותר (11d8c9fe3, 4700bf678).

  • שחזור תפריט OpenMV והתאמות ממשק-המשתמש. פריסת תפריט OpenMV המוקפדת מוחלת מחדש, ומסתירה את תפריטי Build ו-Debug ומסירה פעולות ניהול-פרויקטים (7503f2bec); מנוע השלמת-הקוד מחזיר מודעות למחלקות/שיטות והיקפי מילות-מפתח ציבוריות/פרטיות עבור השלמה-אוטומטית של MicroPython (55fc348ea); עיבוד צבעי ANSI בטרמינל מוחל מחדש עם ערכים בהירים/עמומים מודעי-ערכת-נושא ותמיכה ברצף-בקרה של החזרת-סמן (c6787a27a); וסרגל הכלים של מציג התמונות מותאם אישית עם תיאורי כלי לרזולוציה/זום ופעולת Fit-to-Screen שמוקמה מחדש (734fec693).

  • שחזור משאבים מצורפים. כלי צריבה, מנהלי התקני DFU, קושחה, ועץ הדוגמאות/סקריפטים המלא משוחזרים אל משאבי ה-share לאחר הצמצום שבמעבר הבסיס (33c8354bc), ולוגיקת הפעלת היישום המותאמת אישית של OpenMV מוחלת מחדש: היא דורשת באופן קשיח את תוסף TextEditor (בדיקות תוספי OpenMV ו-TabbedEditor קיימות אך מושבתות), מתקינה מטפל הודעות Qt מותאם אישית, מסירה את אפשרויות שורת-הפקודה -client/-pid/-block, וכופה התנהגות של מופע-יחיד (06c788f3d).

  • כשל בעת חוסר תוסף. היישום כעת נכשל באופן קשיח עם שגיאה ברורה אם התוספים הנדרשים חסרים או מושבתים, תוסף OpenMV קיבל תלות ב-Copilot, ומספר אפשרויות עורך-טקסט (Prefer single line comments ובורר מיקום-ההערה בהגדרות Behavior, ו-Highlight selection בהגדרות Display) מוסתרות (1bc02b1f3).

  • זמני קצוב טוריים קצרים יותר. זמני הקצוב של הפרוטוקול הטורי קוצרו (קריאה מ-10000 ל-5000 אלפיות-שנייה, כתיבה מ-6000 ל-3000 אלפיות-שנייה) למשוב כשל מהיר יותר, כשברירת המחדל המתועדת של -override_read_timeout עודכנה בהתאם (641385af4).

  • שחזור יציאה תקועה. יציאות טוריות שתקועות באמצע פקודה משוחזרות כעת באמצעות שאילתת GET_STATE (ניתנת להגדרה דרך הגדרת get-state) במקום שאילתת הרצת-סקריפט (a8598f550).

  • סדר תיבת הדו-שיח של ההגדרות. תיבת הדו-שיח של ההגדרות מסתירה את תיבת הסימון למיון-קטגוריות-אלפביתי כך שרשימת העמודים נשארת בסדר המיועד של OpenMV (1cb967c5a).

  • הגדרות Copilot פושטו. עמוד הגדרות Copilot צומצם רק לפקדי הכניסה/אימות ו-proxy, ומסתיר את אפשרויות הפעלת-Copilot, נתיב-Node.js, נתיב-dist, והשלמה-אוטומטית (1cb967c5a).

תיקוני באגים

  • תוקנו בעיות מרכזיות בתקשורת טורית על ידי הגדלת זמן הקצוב לתקיעת קריאה טורית פי 10 והשבתת נתיב שחרור-תקיעה מבוסס-GET_STATE שעיוות טקסט בטרמינל-הטורי (caeba6a16).

  • תוקנו ניתוקים טוריים אקראיים עם מצלמות מבוססות-TinyUSB על ידי הוצאת פקודת שחרור frame-dump וארגון מחדש של טיפול בתקיעת-קריאה במקום ניתוק (6cf122a3c).

  • הטיפול ב-get_state של המצלמה הפך סובלני לתשובות קצרות/חלקיות והובטח שטקסט מאוגר בטרמינל-הטורי נשטף במהלך שחזור משגיאה כך שפלט הלוג אינו אובד (c8b4248a6, 247a779dd).

  • תוקנו מספרי מחיצת flash/alt-setting של מאתחל DFU עבור טעינת קושחה של OpenMV Cam (a8700d12d).

  • שוחזרו כל המאתחלים על ידי כיבוד דגל לוח hidden חדש, מעבר סינון מספרים-סידוריים למסננים הפוכים, ומתן תצורת picotool תקינה לרשומת ה-UF2 של Arduino Nano RP2040 Connect (63cee629b).

  • תוקנה תיבת הדו-שיח לבחירת סוג-לוח של המאתחל שזכרה את הערך השגוי על ידי שימוש במפתחות היסטוריה נפרדים לבחירות סוג-לוח קריאות-לאדם ו-IMX (a3325af32).

  • תוקן חישוב חותמת-זמן/קצב-פריימים של טרנסקודינג וידאו (Save Video) על ידי חישוב מרווח הפריימים הממוצע במיקרו-שניות, תמיכה בפורמט זמן v21 חדש של ImageWriter, והגנה מפני pixmaps ריקים (null) במהלך ההמרה (f5c75c749, f8f762b3e).

  • תוקנה קריסה בתצוגת ההיסטוגרמה/חוצץ-הפריימים כאשר התקבל pixmap ריק (null) על ידי הגנה על pixmapUpdate() מפני נתונים ריקים (622cf5ea8).

  • שוחזרו תיאורי כלי של הערות-ריחוף בעורך הטקסט כך שריחוף מעל סימוני טקסט מציג שוב את תיאור הכלי של ההערה (1852d18e1).

  • נמנע מתיבות הדו-שיח של מידע ה-GitHub Copilot וצבעי-ה-LED לקפוץ בעוד ה-IDE עסוק בחיבור או צריבה (f8f762b3e).

  • נוספה הגנה מפני קריסה בלקוח השפה כך שטיפול בשינוי-תוכן-מסמך כבר אינו מקריס את ה-IDE במקרי קצה (7926ffe4c).

  • תוקנו בדיקות שרת-שפת-Python שמנעו כיבוי נקי של ה-IDE על ידי גרימה לתוסף Python להמתין אסינכרונית לבדיקות בתהליך לפני יציאה (9ff6c7936).

  • תוקנה השלמה-אוטומטית של Python ב-Linux: לקוח השפה ממקם את עצמו בשורש micropython-headers המצורף ופעולת חלון-ההשלמה המיותרת בסרגל-הכלים-של-העורך מוסתרת (d37f66a9a, 56e748f9d, 016fa73eb).

  • תוקן הטיפול בקבצים זמניים/לא-שמורים כך ש-Save As משתמש בספריית ההתחלה של תיבת-הדו-שיח-לקבצים, ותיבת הדו-שיח Save Items ועורך ה-Diff כבר אינם מציגים נתיבי קבצים זמניים פנימיים (b7f0bb378, c8e7b6b8f, 6b128c34c).

  • שמירת חוצץ ללא-כותרת/זמני כעת מגדירה את תיבת הדו-שיח Save-As לברירת מחדל של שם קובץ .py תקין במקום שם ריק (3001fdfff).

  • מסמכים זמניים/ללא-כותרת מוצעים כעת לשמירה כאשר שונו, מוחרגים משמירה-אוטומטית, ומנותבים דרך Save-As כראוי (f87b71cf0).

  • תוקן סדר תפריט Recent Files כך שפתיחה מחדש של קובץ שכבר ברשימה אינה מסדרת אותו מחדש, ותיבת הדו-שיח לקבצים כעת מוגדרת לברירת מחדל לספריית הפרויקטים (d49c0c993).

  • תוקן עיבוד הטקסט של תיבת-הודעה על ידי הימנעות מכפיית פורמט rich-text על תיבות-הודעה שניתן לסמן, כך שטקסט גולמי מוצג כראוי (0c565502f).

  • תוקנו צבעי תיאורי-כלי כך שתיאורי הכלי מעובדים כראוי בערכת-הנושא הבהירה (35cbf077b).

  • תיקוני יציבות וניקיון כלליים של Qt Creator על פני הגדרות הליבה, לקוח השפה, שרשרת-הכלים MSVC, סייר הפרויקטים, ותוספי Python (836b163dc, 134f43cb8).

  • תוקן שם תיקיית הקושחה המצורפת של Arduino Nano 33 BLE Sense (b1d8ac227) ותוקן כלל ה-udev של Linux עבור מזהה המוצר של מאתחל ה-DFU של AE3, בתיקון 96E3 לאותיות קטנות 96e3 כך שהתאמת idProduct רגישת-רישיות של udev עובדת (2cd43c96b). כלל ה-udev של Linux עבור מאתחל ה-DFU של AE3 עודכן גם הוא למזהה המוצר 37c5:afe3 עבור הקישור הסימבולי openmvdfu (b99555637).

תמיכה בפלטפורמות וכלים

  • בסיס Qt Creator: 14.0.2 (מעבר מ-10.0.1).

  • OpenMV Cam N6 נתמך כעת (VID:PID 37C5:1206, מאתחל DFU 37C5:9206), כולל הגדרות קושחה, מנהל התקן DFU ל-Windows, וכלל udev ל-Linux (000ed8a87, 1b950c8c6).

  • OpenMV Cam RT1062 נתמך כעת תחת VID/PID של USB מותאם אישית חדש (37C5:1060), כולל מנהלי התקני DFU, כללי udev, ורשומות 1209:ABD1 מדור-קודם שנשמרו עבור יחידות ישנות יותר (f453bc945, d55d6441f).

  • OpenMV Cam AE3 נתמך כעת, כולל מנהלי התקני DFU ל-Windows, עץ קושחת/תצורת התמונה שלו, ו-VID/PID של USB (עודכן ל-37C5:16E3 בזמן-ריצה / 37C5:96E3 מאתחל) (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).

  • מערכת VID/PID חדשה של USB: מצלמות OpenMV עוברות למזהה ספק 37C5 עם מזהי מאתחל/DFU חדשים (לדוגמה 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205), ומתייגות מחדש לוחות 1209:ABD1 ישנים כ-Legacy תוך תמיכה בקושחה ישנה וחדשה כאחד (6d78d6571, 6a6a9351d, 500b1a0bf).

  • חיישן התמונה PAG7936 נוסף לרשימת החיישנים המזוהים (f9e3f3461).

  • מפרש Python 3.13 מוטמע מצורף עבור macOS, Linux x86_64, Linux arm64, ו-Linux arm (9133b1516), עם ספריות משותפות מקוריות libpython3.13 ו-ujson (d3aa663d8, a2cb24e74).

  • שרת שפה מצורף: pylsp עם astroid 3.3.5 ב-Windows, macOS, ו-Linux x86_64 (257addee0). בניית Windows מספקת CPython מוטמע עם python-lsp-server 1.12.0, jedi 0.17.2, docstring_to_markdown 0.15, pip 24.2, ו-distlib 0.3.9 (9b6434602, 069807cd3, 5f2e45196, 3b6c6c312).

  • Node.js 20.18.0 מצורף סביבת ריצה ”Iron“ LTS עבור Windows, macOS, Linux arm64, Linux x64, ו-Linux armv7 כדי לאפשר GitHub Copilot בכל הפלטפורמות (bb07d582b, 6db78bf45, 1cb967c5a).

  • Alif Security Toolkit קבצים בינאריים חתומים של boot/system-package ומדריך משתמש מצורפים עבור Windows, macOS, ו-Linux x86_64 לאספקת (provisioning) מצלמות OpenMV מבוססות-Alif (לדוגמה AE3) (f63851be3).

  • אינטגרציית שולחן-עבודה ב-Linux שוחזרה, ומתקינה רשומת שולחן-עבודה של יישום ומטא-נתוני AppStream ורושמת את סוג ה-MIME של Python (.py) (3fa25f571).

שינויים שוברים

אף API של scripting לא השתנה. ייתכן שיבחינו בשינויי תהליך-העבודה וההתנהגות הבאים הגלויים למשתמש:

  • מזהה ספק USB חדש. מצלמות OpenMV עוברות למזהה ספק 37C5 עם מזהי מוצר ומאתחל DFU חדשים; לוחות על ה-VID הישן 1209:ABD1 מתויגים כעת כ-”Legacy“. ה-IDE תומך בקושחה ישנה וחדשה בו-זמנית, אך משתמשי Linux חייבים להתקין מחדש את כללי ה-udev המעודכנים כדי שהמזהים החדשים יזוהו.

  • רשומות לוח מדור-קודם מוסתרות. גרסאות מדור-קודם של לוחות OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal מודחקות כעת מרשימת בחירת הקושחה/הלוח באמצעות דגל לוח legacy חדש (נבדל מדגל hidden הקיים מקודם), כך שמשתמשים הזקוקים ספציפית לרשומת לוח מדור-קודם כבר לא יראו אותה ברשימה הנפתחת (6d78d6571).

  • זמני קצוב טוריים קצרים יותר. זמן הקצוב לקריאת תגובה כברירת מחדל יורד מ-10000 אלפיות-שנייה ל-5000 אלפיות-שנייה וזמן הקצוב לכתיבה מ-6000 אלפיות-שנייה ל-3000 אלפיות-שנייה (ברירת המחדל של -override_read_timeout מתועדת כעת כ-5000). לוחות/קישורים איטיים שהסתמכו על ברירות המחדל הארוכות יותר עלולים לפקוע מוקדם יותר.

המעבר ל-Qt Creator 14.0.2 הוא מודרניזציה פנימית גדולה אך אינו שובר עבור פרויקטים של משתמשים.