v4.0.1

v4.0.1 הוא מודרניזציה מהיסוד שמעבירה את OpenMV IDE מהבסיס הוותיק של Qt Creator 4.0.2 אל Qt Creator 10.0.1. כל מחסנית התוסף של OpenMV (מציג חוצץ הפריימים, סריאל/פרוטוקול, טרמינל, היסטוגרמה, עורכי סף ונקודות מפתח, כלי וידאו, ועוטפי צריבת קושחה) מיושמת מחדש על גבי הבסיס החדש, לצד צמד ערכות נושא מלוטשות Flat Light/Flat Dark, הדגשת תחביר Python מודעת-OpenMV, דיאלוג מאוחד לטעינת קושחה, ותמיכה רחבה בזיהוי התקנים ב-Linux ARM64 וב-macOS. שינוי בסיס Qt Creator הוא מודרניזציה פנימית גדולה אך אינו שובר פרויקטים של משתמשים; מספר התנהגויות ברירת מחדל והגדרות לוחות אכן השתנו (ראו שינויים שוברי תאימות).

עיקרי הדברים

  • מעבר ל-Qt Creator 10.0.1. ה-IDE עובר מ-Qt Creator 4.0.2 ל-10.0.1: גרסת ה-upstream של Qt Creator מצומצמת ליסודות הבנייה שלה (98b95fd3b) וכל תוסף OpenMV מתווסף מחדש על הבסיס החדש (0e8047372).

  • ערכות הנושא Flat Light ו-Flat Dark. צמד ערכות בהירה/כהה מלוטש מסופק עם סגנונות הדגשת תחביר מותאמים אישית של העורך; בורר ערכות הנושא נחשף מחדש בהגדרות הכלליות ומוגבל לשתי אלה בלבד, וכעת ברירת המחדל היא flat-dark (21348924b, 13c3849e8).

  • טרמינל סריאלי Raw-REPL. הטרמינל מריץ, קוטע, טוען מחדש ומדביק סקריפטים כעת דרך מכונת מצבים תקינה של MicroPython raw-REPL (CTRL-A/CTRL-D), ומטפל באמינות בסקריפטים גדולים יותר (a7241079c).

  • עריכת Python מודעת-OpenMV. מודולים, מחלקות, פונקציות, מתודות וארגומנטים של OpenMV מודגשים תחבירית מתוך התיעוד המצורף, עם השלמה אוטומטית חכמה יותר ומזחן אוטומטי מודע-סוגריים/נקודתיים (801eab8a8, 8e9f967e7, 9fdff9c6d).

  • דיאלוג מאוחד לטעינת קושחה. הצריבה מציגה כעת דיאלוג הקשרי יחיד (מחיקת דיסק / צריבת קושחה / צריבת מאתחל) עם פס התקדמות ויומן Show/Hide Details מתקפל וזוכר-מצב (5b51356f8).

  • תמיכה ב-OpenMV Cam RT1062. קושחה, טוענני DFU/flash, מנייה של SDP/blhost, ושלב תכנות של צריבת eFuse התווספו עבור הלוח החדש ממשפחת i.MX RT1060 (a6595f5f7), שלאחר מכן ניתן לו וריאנט לוח נפרד של Secure Bootloader (SBL) (d2b11c6c8).

תכונות חדשות

  • דגלי אוטומציה. הדגלים -auto_update (release / development / נתיב), -auto_erase, ו--auto_run מאפשרים ל-IDE לטעון/למחוק קושחה ואז להריץ את הסקריפט הפתוח בעת ההתחברות; לאחר התחברות מחדש של המאתחל ה-IDE ממתין עד 10 שניות לכך שהמצלמה תמנה מחדש לפני שהוא ממשיך (b54affe79, f4e03d978).

  • הדגל ``-disable_stop`` ומתג תפריט stop on connect/disconnect מאפשרים למשתמשים להשבית את עצירת הסקריפט בעת התחברות או התנתקות (02724ca7d).

  • מתג Stop Script on Connect/Disconnect (פעיל כברירת מחדל) מנתק את ההתחברות/התנתקות מעצירת הסקריפט הרץ; Auto Reconnect כעת מכובה כברירת מחדל (a0e78057f).

  • הצעת בחירת סוג לוח. כאשר לוח מחובר מדווח על ארכיטקטורה שאינה במיפוי הקושחה, ה-IDE מבקש כעת מהמשתמש לבחור את סוג הלוח (תוך זכירת הבחירה האחרונה) במקום להיכשל עם שגיאת ”Unsupported board architecture!“ (b7165eb3d).

  • הדגשת תחביר Python של OpenMV צובעת מודולים, מחלקות, נתונים, פונקציות, מתודות וארגומנטים מוכרים של OpenMV באמצעות רשימות מילות מפתח המאוכלסות מהתיעוד המצורף (801eab8a8, b4d481bf5).

  • כ-300 הגדרות שפה של KSyntaxHighlighting מסופקות עם העורך, כך שקובצי מקור בשפות רבות מודגשים מהקופסה (39674a4dc).

  • סקריפטי דוגמה מצורפים של OpenMV (Hello World, snapshot, הקלטת וידאו, optical flow, מצלמות אירוע, global shutter, FLIR Lepton, ועוד) מוטמעים כעת ומסופקים יחד עם ה-IDE (938ac6bbe).

  • עורך בינארי/הקסה מופעל כך שמשתמשים יכולים לפתוח ולבדוק קבצים בינאריים, עם סרגל כלים מקוצץ שמתאים לממשק של OpenMV (675bda966).

  • השוואת מסמכים בזיכרון. קבצים חדשים ודוגמאות לקריאה-בלבד מקבלים כעת קובץ זמני מגבה כך שניתן להשוות מסמכים שלא נשמרו, ודיאלוג השוואת הקבצים החיצוניים זוכר את התיקייה האחרונה ששימשה (5281e5f6c, 2934d5216).

  • תוסף עורך-עם-לשוניות מתווסף מחדש, ומעניק ל-IDE סרגל מסמכים עם לשוניות; מקור תוסף המפת-המיניאטורה הוסף מחדש אך הושאר מושבת בבנייה לגרסה זו (0e8047372).

  • צריבת fallback של DfuSe ו-pydfu משוחזרת עבור התקני DFU שלא ניתן למקד לפי מספר סידורי, עם טיפול מחיקה אוטומטי ללא דיאלוג במהלך ההתחברות (e42a5be7d).

  • צריבת eFuse של i.MX RT. תכנות הקושחה צורב כעת eFuse (efuse-program-once) עבור הלוחות ממשפחת RT1060 (8053bb578, a6595f5f7).

  • עמוד אשף Linux Root Installs מאפשר למשתמש להצטרף או לבחור שלא להשתתף בהתקנת ספריות apt המוגברת ובהתקנת כללי udev במקום להריץ אותן תמיד (6bac80984).

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

  • סריקת יציאות סריאליות ברקע. מניית היציאות הועברה מתהליכון הממשק לעובד ייעודי ScanSerialPortsThread כך שה-IDE נשאר מגיב במהלך הסריקה (7be4dab26).

  • זיהוי התקנים רחב יותר. סריקת היציאות שוכתבה לפונקציית עזר רב-שימושית filterPorts() המכלילה התקני picotool ו-i.MX DFU ומסווגת מחדש יציאות סריאליות מוכרות של מאתחל Arduino (NRF/RPI ישנים ו-PID של טוענן) כהתקני DFU (25a5d30fd).

  • יותר חלופות טרמינל. בעת הפעלת כלי הפעלת הווידאו המצורפים (Play Video File / Play RTSP Stream) ב-Linux, ה-IDE נופל כעת חזרה דרך lxterminal, konsole, ו-xfce4-terminal בנוסף ל-xterm ול-gnome-terminal (df54007e0).

  • דיווח על מפתחות לוח. רישום המצלמה מנתח כעת תגובת ”Remaining N“ כדי לומר למשתמש כמה מפתחות לוח נותרו, ומוסיף הודעת שגיאה נפרדת ”Invalid Board Key for Board Type“ (5759e73eb).

  • הורדות מאוחסנות ב-GitHub. בדיקות גרסה והורדות משאבים משתמשות כעת ב-raw.githubusercontent.com/openmv/openmv-ide-version ובגרסאות openmv/openmv-ide במקום ב-upload.openmv.io (994109c28).

  • HTTPS בכל מקום. כל בקשות האינטרנט של OpenMV (בדיקות גרסה, רישום SWD ID, הורדות משאבים וקושחה) משתמשות כעת ב-https:// (54347cad0).

  • אוטומציה של הגדרת Linux. המתקין מזהה ספריות וכללי udev חסרים, ובמידת הצורך מייצר setup.sh ניתן-להרצה עם פקודות ההתקנה המדויקות של apt-get/pip וכללי udev (וקובץ README שאומר למשתמש להריץ אותו) (c6dc705e6).

  • סובלנות ללוחות איטיים. הטרמינל הסריאלי מעלה את זמן ההמתנה לכל קריאה מ-1ms ל-10ms ופולט אישור ”OK“ כאשר סקריפט מסתיים (c935e4489).

  • התקדמות צריבה חלקה יותר. פסי התקדמות של טוען הקושחה עוברים כעת ממצב בלתי-מוגדר ל-0-100% מיד במקום לאחר ה-tick הראשון של האחוז, לאורך dfu-util, bossac, picotool, וצריבת i.MX (19d947308, 86d021f92).

  • שחזור מאתחל ישן מתווסף מחדש באמצעות מצב מאתחל לא-מהיר השולח פקודות מחיקה/כתיבה ללא ריפוד query-sync של המצב המהיר (c20112c07).

  • קונסולות כלים נקיות יותר. טרמינלי צריבת הקושחה (bossac, dfu-util, picotool, imx, כלי וידאו) רצים כעת כתהליכי קונסולה עצמאיים עם פלט פקודות מעוצב טוב יותר (8053bb578).

  • ליטוש השלמה אוטומטית. ההשלמה מבחינה בין מחלקות, מתודות ופונקציות עם רמזי ארגומנטים נפרדים, משתמשת בסמלי code-model תקינים, ומכבדת היקף public/protected/private לפי קידומת קו תחתון; מעבד השלמת מילות המפתח גם מדלג על רווחים מובילים לפני הסמן בהשלמה שמופעלת במפורש (ידנית) (8e9f967e7, 68b26b5fc).

  • דיאלוגים מאוחדים. הדיאלוגים האד-הוק של OpenMV מסוג ”Don’t show this again“ – כולל דיאלוג המידע של האתחול OpenMV Cam LED Colors ושאלות שדרוג הקושחה והדוגמאות – מאוחדים לדיאלוגים מסוג CheckableMessageBox ”Do Not Ask/Show Again“, כפתור ”Reset Do Not Ask/Show Again Dialogs“ התווסף להגדרות הכלליות, וסמני קיפול הקוד מושבתים כברירת מחדל (9fdff9c6d).

  • מיתוג מודע-ערכת-נושא. מסכי פתיחה במצב כהה, לוגואים של שבבי ST ו-NXP בכהה/בהיר בתיבת About, צבעי tooltip במצב כהה, וצבעי סמל השלמה אוטומטית תקינים התווספו (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).

  • ניקוי מציג התמונות. הפעולות שיתוף, רקע, מתאר, ו“הגדר כברירת מחדל“ מוסתרות, פעולת התאמה-למסך התווספה, וגודל התמונות המונפשות תוקן (b37c55e25).

  • ניקוי תפריט-הקשר. הערכים ”Show in File System View“, ”Open Terminal“, ”File Properties“, ו-”Add/Delete UTF-8 BOM on Save“ מוסתרים (5d862c78e).

  • טרמינל סריאלי כהה. הטרמינל העצמאי משתמש בערכת נושא כהה תקינה עם פסי גלילה מעוצבים, סמלי סרגל כלים מעודכנים, וטעינה מחדש נכונה של סמל פס הגלילה ב-high-DPI על פני מסכים שונים (5c3af6880).

  • ניקוי Find/Search. לוח התוצאות מקבל ערכת נושא כהה, בורר מנוע החיפוש מוסתר, התוויות פושטות, ו-Find-in-Files מוגדר כברירת מחדל לתיקיית Documents/OpenMV (20a806550).

  • זהות יישום. ה-IDE מציג כעת את סמל OpenMV התקין בשולחן העבודה, בשורת הכותרת, ובשורת המשימות (עם טיפול high-DPI ב-Windows), וה-id של ה-IDE שונה ל-openmvide (8ad1eed1f).

  • מסך פתיחה High-DPI מציג תמונת פתיחה פי 2 במסכי Retina/קנה-מידה 200% (626ff673e).

  • תיקון סרגל פעולות. סרגל הפעולות בצד שמאל (New File, Open, Save, Undo, Redo, Cut, Copy, Paste) תוקן וקיבל סמלי OpenMV מותאמים אישית (b8479b5d0).

  • לוגואים בדיאלוג About. שני הלוגואים של השותפים Arduino ו-Edge Impulse מוצגים כעת (Edge Impulse היה מוסתר בעבר) עם וריאנטים פי 2 ב-high-DPI, ועיצוב מסך הפתיחה המצורף עודכן (splash-small-2 / splash-large-2) (5facd8d9a).

  • Select Word Under Cursor מופעל; הפקודות Go to Block Start/End (Ctrl+[ / Ctrl+]) ו-Select Block Up/Down הופעלו מחדש לזמן קצר (36ed5b1a8) אך הושארו מושבתות בגרסה (626ff673e).

  • רשומת שולחן עבודה ב-Linux מקבלת קטגוריית Electronics, הערת תיאור Comment, ומילות מפתח לחיפוש Keywords (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).

  • הגירת משאבים. משאבי המשתמש הועברו למיקום עם גרסאות (תיקיית qtcreator הישנה מוסרת באתחול), ואזהרות font-face לא-מזיקות של DirectWrite ב-Windows מודחקות (a04af5351, 70765dc2a).

  • אפשרויות פנימיות מוסתרות. האפשרויות הפנימיות של Core -color ו--theme מוסתרות מפלט העזרה, ומצב המצגת הופעל מחדש (434c7b4cc).

  • התאמות ליבה שיושמו מחדש לסרגל הפעולות/וידג’ט הלשוניות המהודר, מנהל ההודעות/חלון הפלט, פעולות proxy, מדגיש התחביר, ועורך הטקסט (0e8047372).

  • QCustomPlot 2.1.1. ספריית התרשום המצורפת עודכנה לתאימות עם Qt 6.4 ולטיפול נכון בשינוי דינמי של DPI התצוגה (8801415fe).

  • ניקוי ממשק קוסמטי לסמלי חיצי פס הגלילה, שורת המצב, כפתורי הסגירה של סרגל לשוניות המסמכים, ורוחב הגוללן של העורך; מחוון ”Display File Line Ending“ של העורך כבוי כעת כברירת מחדל (e0c4d2325, 6a26f4430, e130988fb).

תיקוני באגים

  • תוקן זיהוי VID/PID ב-Linux על ידי קריאת /sys/class/tty/<port>/device/uevent לקבלת ה-VID/PID האמיתי של ההתקן, תוך עקיפת QSerialPortInfo שמחזיר את המזהים של רכזת ה-USB, כך שמצלמות מאחורי רכזות מזוהות נכון (28220b351).

  • תוקנה צריבת קושחת מאתחל ב-Mac על ידי הרפיית טענות גודל-endpoint וצירוף חבילת שאילתת הסנכרון רק כאשר כתיבה היא בדיוק בגודל endpoint אחד של USB (86d021f92).

  • תוקנו כלי הפעלת הווידאו ב-Linux: Play Video File / Play RTSP Stream מוסתרים כעת ב-Linux 32-bit וב-ARM (אין ffplay מצורף), עם חלופת gnome-terminal כאשר xterm אינו זמין, ובינארי ffmpeg של macOS שוחזר ממציין-מקום (d342649cc, d896f4225).

  • השהיות התחלה/סיום של איפוס המאתחל הוגדלו מ-0 ל-5 כדי למנוע חפיפה של פקודות מחיקה וכתיבה במהלך עדכוני קושחה (fabc168b6).

  • שחזור המאתחל יועל: כפיית המאתחל לתיקון מצלמה תקועה מדלגת על שאלות מיותרות, ולאחר איפוס מאתחל DFU ה-IDE מנסה אוטומטית לעדכן שוב במקום לבקש מהמשתמש להתחבר מחדש (12b924088).

  • אופשרה הפסקת פקודות dump של חוצץ הפריימים/חוצץ ה-TX הסריאליות באמצע העסקה (4a4afae1b).

  • הוסר העקיפה של ויתור-על-תקיעת-קריאה ביציאה הסריאלית שיכלה לרפד תגובות בבתים אפסיים, מה ששיפר את אמינות העברת ה-USB המהירה (0ee1d8e91).

  • תוקן ניפוי באגים ב-WiFi והתחברות-מחדש אוטומטית: יציאות WiFi מרעננות את חותמת הזמן של הראייה-האחרונה שלהן בעת גילוי מחדש, מספר באגים של iterator-לאחר-מחיקה בפרישת יציאות WiFi ובזיהוי DFU/מאתחל תוקנו, וההתחברות-מחדש האוטומטית ממתינה כעת עד שה-IDE אינו עסוק לפני שהיא מתחברת מחדש (cf0b67dc6).

  • תוקן ממיר הווידאו-ל-MJPEG כך שינתח את קצב הפריימים מפלט המקודד ויכתוב את דלתת המילישנייה הנכונה לכל פריים, כך שווידאו ממומר מתנגן במהירות הנכונה (4a7ad2057).

  • תוקן כשל בהפעלת צריבת הקושחה וכלי שורת הפקודה המצורפים על ידי כפיית מנגנון ה-QProcess ותיקון המשמר של לולאת האירועים של תהליך חוסם (200fe9f3c).

  • תוקנו סמלי ענף הרחבה/כיווץ של עץ עורך מערך הנתונים כך שיוצגו נכון במסכי HiDPI על ידי טעינה מחדש של גיליון סגנון הסמלים בעת שינוי device-pixel-ratio (a0e78057f).

  • עדכוני חבילה/משאבים מפעילים כעת אוטומטית מחדש את OpenMV IDE במקום פשוט לצאת לאחר ההתקנה (178ee1b8e).

  • תוקנה הדגשת תוצאות Find/חיפוש ופעולות תוצאת-חיפוש/פתיחת-קובץ נופלות חזרה לעורך הגלוי הראשון כאשר אין עורך נוכחי (48c402dfc).

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

  • תוקנו מספר באגי ממשק ב-macOS: סרגל הלשוניות אינו מציף עוד שגיאות טעינת-סמל ומוצג נכון בעת פתיחת קובץ (9be8c58de, 5322cf968).

  • תוקן עיצוב שורת המצב / לוח הפלט ויישור הבסיס ב-macOS וב-Linux (4fc4545de, d29b2baa0, a440d5cd8).

  • תוקנה הדפסת קוד-מקור כך שכותרת כותרת-העמוד תהיה בעלת שוליים עליונים וצדדיים תקינים במקום לגעת בקצה העמוד (786d6012c).

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

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

  • OpenMV IDE: 4.0.0 -> 4.0.1.

  • OpenMV Cam RT1062 (i.MX RT1060): קושחת RT1062 הראשונית, טוען ה-flash, תמונות חתומות, רשומת imx.txt, ומפתחות תצורת blhost של מאתחל-מאובטח/eFuse התווספו בתיקיית הקושחה OPENMV5 (a6595f5f7); לאחר מכן הלוח אוחד לתיקייה יחידה OPENMV_RT1060, ווריאנט לוח נפרד של Secure Bootloader (SBL) (OpenMV_Cam_RT1062_SBL) התווסף (d2b11c6c8, 5baf28c6e).

  • שרשרת כלי הצריבה המצורפת (blhost, bossac, dfu-util, dfuse + מנהלי התקן STM32, picotool, sdphost, ffmpeg, מנהלי התקן FTDI/Arduino) צורפה מחדש עבור Windows/macOS/Linux, כאשר הבינאריים של Linux מסומנים כניתנים-להרצה (fbfa4903a, bfb6b32e2, 9551c64da).

  • ARM64 Linux DFU: dfu-util aarch64 מצורף בתוספת זיהוי arm64 ברשימת ההתקנים ובהורדת הקושחה מאפשר צריבת DFU על מארחים כגון Raspberry Pi (16bc6fe0f, 470e5702e).

  • זיהוי התקני i.MX עובד כעת ב-Linux (ניתוח lsusb) וב-macOS (סריקת ioreg), ומאפשר טעינת קושחת i.MX RT על פלטפורמות אלה (e03ccbe71, 7cf505d09).

  • הגבלת פלטפורמה: השימוש ב-i.MX מוגבל ל-Windows/macOS/Linux-x86_64 עם שגיאה קריטית במקומות אחרים, וצריבת Portenta/Nicla על Linux ARM/ARM64 מציגה אזהרת ”DFU Util may not be stable on this platform“ (9513f6475).

  • OpenGL ב-Windows: עיבוד תוכנה שוחזר על ידי צירוף opengl32sw, Qt6OpenGL, ותמיכת Qt6Gui OpenGL בחבילה הפרוסה (aaaa1928f).

  • תיקיות/מזהי לוחות Arduino שונו. תיקיות הקושחה של Portenta, Nicla Vision, ו-Nano 33 BLE Sense ומזהי הלוח ב-boards.txt שונו ל-ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION, ו-ARDUINO_NANO_33_BLE_SENSE (a70d6562a); תיקיית/מזהה הלוח של Nano 33 BLE Sense הומרו לאחר מכן לאותיות קטנות arduino_nano_33_ble_sense כדי להתאים לשם הלוח שההתקן מדווח (22750d8c7, a801a81de).

  • מאתחל OPENMV_RT1060 טועני ה-flash (blhost_flash_loader.bin, sdphost_flash_loader.bin) עודכנו (5baf28c6e).

  • QCustomPlot: 2.1.1 (ספריית תרשום מצורפת) (8801415fe).

  • תמונות קושחה על-הדיסק צורפו מחדש עבור כל לוחות OpenMV/Arduino הנתמכים (OPENMV1-4P, OPENMV4_PRO, OPENMVPT, ARDUINO_NICLA_VISION, arduino_nano_33_ble_sense, ARDUINO_PORTENTA_H7, ARDUINO_NANO_RP2040_CONNECT, OPENMV_RT1060, CYW4343, בתוספת קושחת WiFi WINC1500), עם קושחה, ובמקום הרלוונטי, תמונות מאתחל/uvc (fbfa4903a).

שינויים שוברי תאימות

אלה שינויי זרימת עבודה והתנהגות הנראים למשתמש; מעבר Qt Creator 10.0.1 עצמו אינו שובר פרויקטים או סקריפטים של משתמשים.

  • הגדרות לוח i.MX RT1060 השתנו. הרשומות EVKBMIMXRT1060 ו-OPENMV5 הוחלפו בלוח יחיד OPENMV_RT1060 (OpenMV Cam RT1062, בתוספת וריאנט SBL), ותיקיות הקושחה הישנות הוסרו (d2b11c6c8).

  • זמן הקצוב המהוגדר של תגובת-פקודה הוא 10000 ms (היה 5000 ms ב-4.0.0); טקסט העזרה של -override_read_timeout עודכן כך שיתאים (4a4afae1b).

  • התנהגות התחברות/התנתקות השתנתה. Auto Reconnect כעת מכובה כברירת מחדל, והתחברות או התנתקות אינן עוצרות עוד את הסקריפט הרץ כברירת מחדל אלא אם המתג החדש ”Stop Script on Connect/Disconnect“ מופעל (הוא מופעל כברירת מחדל) (a0e78057f).

  • זרימת העדכון מפעילה מחדש את ה-IDE. עדכוני חבילה/משאבים מפעילים כעת אוטומטית מחדש את OpenMV IDE במקום לצאת לאחר ההתקנה (178ee1b8e).

  • מזהי לוחות Arduino שונו. מזהי הלוח ב-boards.txt ותיקיות הקושחה של Portenta, Nicla Vision, ו-Nano 33 BLE Sense שונו ל-ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION, ו-ARDUINO_NANO_33_BLE_SENSE (האחרון הומר לאחר מכן לאותיות קטנות arduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).