v1.3.0

v1.3.0 כותב מחדש את שכבת התקשורת עם המצלמה סביב פרוטוקול פקודה/תגובה מובנה ומוסיף עדכון אוטומטי בתוך ה-IDE עבור ה-IDE עצמו ועבור המשאבים המצורפים אליו. הוא בנוי על Qt Creator 4.0.2 ומצורף עם קושחת מצלמת OpenMV בגרסה 2.0.0. במערכות macOS ו-Linux, צריבת קושחה ב-DFU דורשת כעת התקנה חד-פעמית של Python יחד עם libusb ו-pyusb; ראו שינויים שוברי תאימות.

עיקרי הדברים

  • שכבת תקשורת שנכתבה מחדש. קוד ניפוי השגיאות הטורי/USB נבנה מחדש סביב פרוטוקול פקודה/תגובה מובנה עם אורכי תגובה לכל פקודה והשהיות המתנה בהתחלה/בסוף, לקבלת פעולות חיבור, הרצת סקריפט, חוצץ פריימים (frame buffer) ומאתחל (bootloader) אמינות יותר.

  • עדכון אוטומטי בתוך ה-IDE. ה-IDE בודק כעת ב-openmv.io אם קיימת גרסה חדשה יותר ומציע כפתור Download, ובנפרד מוריד ומתקין חבילות משאבים מעודכנות (דוגמאות, קושחה, תיעוד) ולאחר מכן מבקש להפעיל מחדש.

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

  • צריבת קושחה ב-DFU בכל פלטפורמה. ניתן כעת לצרוב קושחה דרך DFU ב-Windows, macOS, Linux x86 ו-Linux x86_64, ובוחר הקושחה מקבל קבצי .dfu בנוסף ל-.bin.

  • מנגנון נסיגה אוטומטי ל-DFU. כאשר לא ניתן להגיע למאתחל (bootloader) הטורי במהלך עדכון קושחה, ה-IDE מציע כעת לשדרג דרך מאתחל ה-DFU של המצלמה במקום זאת, ומדריך אתכם בהוספת ג’מפר BOOT/RST.

תכונות חדשות

  • מנגנון עדכון בתוך ה-IDE. בודק ב-openmv.io אם קיימת גרסת IDE חדשה יותר ומציע כפתור Download שפותח את openmv.io/download, ומוריד, פורק ומתקין חבילות משאבים openmv-ide-resources-X.Y.Z.zip ישירות לתוך ה-IDE לפני שהוא מבקש להפעיל מחדש (8a1f92bb1, 194acd828, b0be97e3e).

  • כפתור גרסת קושחה לחיץ. תווית הגרסה בשורת הסטטוס הפכה ל-QToolButton המחובר לתהליך updateCam() שקורא את firmware/firmware.txt המצורף, משווה אותו למצלמה המחוברת, ומציע Firmware Update עם מחיקת מערכת קבצים פנימית אופציונלית כאשר קיימת גרסה חדשה יותר (b2ac8defe).

  • תמיכה בקבצי DFU. דיאלוג צריבת המאתחל/קושחה מקבל כעת קבצי .dfu בנוסף ל-.bin וכופה מחיקה מלאה של מערכת הקבצים הפנימית בעת צריבת .dfu. מסנן בוחר הקושחה הורחב ל-Firmware Binary (*.bin *.dfu) ותהליך המחיקה הכפויה של .dfu הוצג ב-4ad2be5f9, עם תיבת הסימון של המחיקה המסומנת-תמיד והמושבתת שמתחלפת אוטומטית בהתאם לסיומת הקובץ הנבחר שנוספה ב-b2ac8defe (4ad2be5f9, b2ac8defe).

  • מנגנון נסיגה אוטומטי ל-DFU בכשל מאתחל. כאשר עדכון קושחת .bin אינו יכול להפעיל את המאתחל (bootloader) הטורי, ה-IDE מדווח כעת Unable to connect to the bootloader! ולאחר מכן מציע לשדרג באמצעות מאתחל ה-DFU של המצלמה במקום זאת, מזהיר ש-DFU מוחק את מערכת הקבצים שבזיכרון הפלאש (flash) הפנימי ומדריך אתכם בהוספת חוט ג’מפר BOOT/RST ובחיבור מחדש לפני שהוא מריץ את DfuSeCommand.exe (Windows) (4ad2be5f9).

  • דוגמת HoG. נוספה דוגמת המחשה של היסטוגרמה של גרדיאנטים מכוונים (Histogram of Oriented Gradients) (09-Feature-Detection/hog.py) המשתמשת ב-img.find_hog() (b03a707f7).

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

  • הוחלף קוד קצב הבָּאוּד/החבילות הישן והאד-הוקי במחלקות OpenMVPluginSerialPortCommand/Result, באופקודים __USBDBG_* ו-__BOOTLDR_* ובעוזרים command()/commandResult() במקום write()/readAll()/isOpen() (b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).

  • התקנת מנהל ההתקן של היציאה הטורית ב-Windows היא כעת שקטה/לא-מלווה, ומחליפה את סקריפטי מנהל ההתקן openmv.cmd/pybcdc.cmd למתקינים מבוססי dpinst במקום InfDefaultInstall אינטראקטיבי, ומתקין ה-Visual C++ Redistributable (vcr.cmd, המריץ את vcredist_x86.exe ו-vcredist_x64.exe בשקט) נוסף ותוקן (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).

תיקוני באגים

  • תוקנו צריבת קושחה ותקשורת שנשברו בתוך מכונות וירטואליות, והורפו פסקי-זמן שונים של פקודות ותשאול חוצץ פריימים (frame buffer)/חוצץ-שידור כך שהחיבור וההרצה עמידים יותר. דיאלוג התכנות-מחדש מציין כעת שהוא ”may take up to 5 minutes“ ופסק הזמן של תהליך ה-DFU הועלה מ-240 שניות ל-300 שניות ב-324f243f9 (c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).

  • תוקנה השוואת עדכון-זמין של הקושחה/IDE כך שגרסת מינור או תיקון חדשה יותר אינה מפעילה עוד התראת שווא כאשר שדה גבוה יותר שווה, ונדרש מדיאלוג המאתחל להחזיק קובץ נבחר תקין לפני הצריבה (4ad2be5f9).

  • ידיות קבצים (רשימת לוחות, קבצי קושחה/גרסה) נסגרות כעת לאחר הקריאה, וריפוד חלקי-הצריבה של הקושחה תוקן לריפוד עד FLASH_WRITE_CHUNK_SIZE, ומונע ידיות דולפות וחלקים סופיים בעלי ריפוד שגוי במהלך עדכוני קושחה (4ad2be5f9).

  • תוקנו תפריט ה-Help של OpenMV וחלוניות הפלט: הפריט About OpenMV Cam אינו מתנגש עוד עם תפקיד ה-About של הפלטפורמה (AboutRoleApplicationSpecificRole), וחלוניות הפלט אינן תופסות עוד את קיצורי המקשים Alt/Cmd + מספר (a0694eac7).

  • פתיחת קישורי אינטרנט חיצוניים של OpenMV (פורומים, הורדה, תמיכה) מדווחת כעת בדיאלוג שגיאת ”Failed to open“ כאשר לא ניתן להפעיל את הכתובת במקום לא לעשות דבר בשקט (b0be97e3e).

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

  • בסיס Qt Creator: 4.0.2.

  • קושחת מצלמה מצורפת: עודכנה ל-2.0.0, עם firmware.bin/openmv.bin חדשים ועם firmware.dfu/bootloader.dfu/firmware.elf/bootloader.elf שנוספו לאחרונה עבור OMV2 ו-OMV7.

  • צריבת DFU ב-Windows נוספה באמצעות DfuSeCommand.exe של ST המצורף, חבילת מנהל ההתקן ST DfuSe USB (DfuSe v3.0.4.0 ב-Win7/Win8, v3.0.5.0 ב-Win8.1) ומתקין מנהל התקן dfuse.cmd (4ad2be5f9).

  • צריבת DFU ב-macOS וב-Linux עברה מקבצי dfu-util בנויים מראש לצורב pydfu.py מצורף, כאשר ה-IDE מציג את פקודות ההתקנה הנדרשות של libusb/pyusb. ac248c0ec הוסיף לזמן קצר קבצי dfu-util/dfu-prefix/dfu-suffix עבור Linux x86_64, אך 324f243f9 הסיר לאחר מכן את כולם לטובת pydfu.py. אף קובץ dfu-util אינו נשלח בגרסה הסופית; static.pro מצרף את ספריית הנתונים של pydfu עבור כל המארחים שאינם Windows, בעוד ש-Windows משתמש בתהליך ה-DfuSe המצורף (ac248c0ec, 324f243f9, 7837a07da).

  • כללי udev של Linux עודכנו לשימוש בהתאמת SUBSYSTEM (cam VID 1209/PID abd1 tty ו-STM DFU 0483/df11) כך שקישורי ההתקן וה-DFU עובדים ב-Linux 32-ביט, ובקשות רשת העוקבות אחר הפניות הוגנו עבור Qt ישן יותר (194acd828).

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

קבצי ה-dfu-util העצמאיים המצורפים עבור macOS ו-Linux הוסרו והוחלפו בצורב pydfu.py של Python. במערכות macOS ו-Linux, צריבת קושחה ב-DFU דורשת כעת התקנה חד-פעמית של Python יחד עם libusb ו-pyusb (ה-IDE מציג את פקודות ה-MacPorts/HomeBrew/apt-get המדויקות). Windows ממשיך להשתמש בתהליך מבוסס ה-DfuSe המצורף. אין שבירות בממשק הסקריפטים (scripting-API), ובסיס Qt Creator 4.0.2 אינו משתנה.