v4.4.0¶
v4.4.0 เป็นรุ่นการปรับปรุงครั้งใหญ่ที่ย้ายฐาน OpenMV IDE จาก Qt Creator 10.0.1 ที่ใช้มาอย่างยาวนานไปสู่ Qt Creator 14.0.2 โดยนำปลั๊กอิน OpenMV และการปรับแต่ง fork ทั้งหมดมาใช้ใหม่บนฐานที่ใหม่กว่า นอกจากนี้ รุ่นนี้ยังรวม Python language server แบบฝังตัวสำหรับการเติมโค้ดแบบออฟไลน์ เปิดใช้งาน GitHub Copilot บนทุกแพลตฟอร์ม แนะนำ OpenMV DFU bootloader แบบกำหนดเองใหม่ และย้าย OpenMV cameras ไปใช้ USB vendor ID ใหม่ 37C5 การเปลี่ยนฐานนี้เป็นการปรับปรุงภายในครั้งใหญ่ แต่ไม่กระทบโปรเจกต์ของผู้ใช้ ดู Breaking changes สำหรับการเปลี่ยนแปลงเล็กน้อยที่ผู้ใช้อาจสังเกตเห็น
ไฮไลต์¶
การย้ายฐาน Qt Creator 14.0.2 IDE ย้ายจาก Qt Creator 10.0.1 เป็น 14.0.2 โดยนำปลั๊กอิน OpenMV ทั้งหมดและการปรับแต่ง
// OPENMV-DIFF //ทุกรายการมาใช้ใหม่บนฐานที่ทันสมัยกว่า (d6c895be8, 1fa75b397)Python language server แบบฝังตัว 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 runtime ในตัวสำหรับ Windows, macOS และ Linux ทำให้ไม่จำกัดเฉพาะเครื่องที่เลือกไว้อีกต่อไป พร้อมกล่องโต้ตอบตอนเริ่มต้นสำหรับเปิดใช้งาน (bb07d582b, 1cb967c5a, b37e48040)
OpenMV DFU bootloader ใหม่ ระบบ bootloader
openmv_dfuที่ใช้งานได้อย่างสมบูรณ์ขับเคลื่อนการอัปเดต เฟิร์มแวร์จากsettings.jsonรวมถึงกล่องโต้ตอบ "พบบอร์ดในโหมด DFU" ที่มีตัวเลือกติดตั้งรุ่นล่าสุด โหลดเฟิร์มแวร์เฉพาะ และลบไฟล์ระบบ พร้อมเส้นทาง fallback-bootloader สำหรับกู้คืน cameras ที่เสียหาย (08b9d0676, 6a6a9351d, 6d78d6571)รองรับ camera ใหม่ เพิ่ม OpenMV Cam N6, RT1062 และบอร์ด AE3 และย้าย cameras ไปใช้ USB vendor ID ใหม่
37C5พร้อมไดรเวอร์ DFU และกฎ udev ที่อัปเดต (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571)Serial ที่เชื่อถือได้มากขึ้น การแก้ไขการสื่อสาร serial ครั้งใหญ่แก้ปัญหาข้อความ terminal เสียและการตัดการเชื่อมต่อแบบสุ่มกับ cameras ที่ใช้ TinyUSB (caeba6a16, 6cf122a3c)
คุณลักษณะใหม่¶
OpenMV DFU bootloader ระบบ bootloader
openmv_dfuใหม่พร้อมไดรเวอร์ DFU เฉพาะและกลไก fallback-bootloader กู้คืน cameras ที่เสียหายในทุกประเภท เฟิร์มแวร์ (6a6a9351d, 6d78d6571) ระบบขับเคลื่อนการอัปเดตเฟิร์มแวร์จากsettings.jsonและแสดงกล่องโต้ตอบ "พบบอร์ดในโหมด DFU" พร้อมตัวเลือกติดตั้งรุ่นล่าสุด โหลดเฟิร์มแวร์เฉพาะ และลบไฟล์ระบบ (08b9d0676, ef19133b6, 9c59d113c)ชื่อบอร์ดใน port picker กล่องโต้ตอบการเลือก serial port ตอนนี้ตรวจสอบแต่ละพอร์ตและแสดงชื่อบอร์ดที่ตรวจพบถัดจากพอร์ต (เช่น
COM3: OpenMV Cam H7) แทนที่จะแสดงแค่ชื่อพอร์ต (9837d6cb5)Editor แบบมีแท็บ ปลั๊กอิน tabbed-editor ถูกกู้คืนมา เพิ่มแถวแท็บเอกสารเหนือพื้นที่ editor สำหรับสลับระหว่างไฟล์ที่เปิดอยู่ (c8519c09f) และตอนนี้บันทึกและกู้คืนลำดับแท็บข้ามเซสชัน (55ccfb207)
การไฮไลต์ไวยากรณ์ Python เพิ่มคำจำกัดความการไฮไลต์ไวยากรณ์ Python เฉพาะสำหรับ editor พร้อมกฎ string-format, float และ keyword (9be46c0c3)
การเปลี่ยนแปลงและการปรับปรุงอื่น ๆ¶
การปรับโครงสร้างการโหลดเฟิร์มแวร์ โค้ดการโหลดเฟิร์มแวร์ถูกแยกออกเป็น handler bootloader แยกตามประเภท (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool) เพิ่มการจัดการ touch-to-reset PID สำหรับบอร์ด Arduino DFU และตัวแปรบอร์ด "Legacy" ที่ชัดเจนสำหรับอุปกรณ์ VID/PID สำรอง (9f465f9f8)
การป้องกัน STM32 ROM-bootloader IDE ตอนนี้เตือนหรือบล็อกการโหลด
firmware.dfu/openmv.dfuลงบน STM32 ROM recovery bootloader โดยแนะนำให้ใช้เฉพาะbootloader.dfuเพื่อหลีกเลี่ยงการทำให้บอร์ด STM32H7 เสียหายจากบั๊ก ROM bootloader ของชิป (c5ce0ae1a, e7cde1ec1)การตั้งค่า Python LSP อัตโนมัติและไม่มีการแจ้งเตือน Python language server ตอนนี้ติดตั้งและอัปเดตโดยอัตโนมัติโดยไม่มีการแจ้งใน infobar หรือข้อความ console (d89f5985f) และระบบ Python autocomplete/documentation hover ถูกปรับปรุงใหม่เป็น OpenMV doc engine เฉพาะที่แยกวิเคราะห์เอกสาร HTML ไลบรารีในตัวเพื่อขับเคลื่อนการไฮไลต์ keyword และ tooltip (47e02873b, 4f9853f21, 82cefc931)
การตรวจจับ Python interpreter บน Linux การตรวจจับ interpreter บน Linux ตอนนี้เป็นอัตโนมัติ โดยพิจารณาเฉพาะ Python 3 interpreters จาก
PATHและเลือกอันที่ใหม่ที่สุดเป็นค่าเริ่มต้นเดียว (214fdc758)การทำความสะอาดการตั้งค่า Python กลุ่มการจัดการ per-interpreter และหน้า Interpreters ถูกซ่อน Language Server Configuration ถูกจัดอยู่ในหมวดหมู่
Pythonและปุ่ม REPL และ interpreter-selector toolbar ที่ไม่ได้ใช้ถูกซ่อนใน Python editor (d89f5985f) บน Windows IDE ตอนนี้ลงทะเบียนpython.exeในตัวที่ฝังอยู่เป็น interpreter เริ่มต้นโดยอัตโนมัติ โดยถือว่า language server ในตัวติดตั้งแล้ว (1d9ca003e, d89f5985f)ไดเรกทอรีโปรไฟล์ที่สะอาดขึ้น IDE ไม่เขียนไฟล์การตั้งค่า Qt Creator ที่ไม่ใช้อีกต่อไป (devices, kits, toolchains, Qt versions) และเปิดไฟล์โดยตรงใน editor (3771b0107) ไม่สแกนระบบหา qmake/Qt versions (42807f25f) และหลีกเลี่ยงการโหลด device/toolchain/kit machinery ที่ไม่ได้ใช้และ startup noise (902a357de, b2666a35b)
การอัปเดตที่ปลอดภัยยิ่งขึ้น การอัปเดต IDE ไม่เขียนทับทรัพยากรของผู้ใช้อีกต่อไป เฉพาะโฟลเดอร์ทรัพยากรที่จัดการ (examples, firmware, html, models) เท่านั้นที่ถูกลบและคัดลอกใหม่ โดย
micropython-headersถูกลบเพิ่มเติม (ติดตั้งแยกต่างหากแทนที่จะคัดลอกผ่านเส้นทางนี้) และข้อผิดพลาดที่ชัดเจนขึ้นหากfirmware/settings.jsonหายไปหรือไม่ถูกต้อง (b4b8c208d, 3255ba4fb)การเชื่อมต่อ DFU ที่เร็วขึ้น เวลารอการเชื่อมต่อ DFU ถูกลดลงเพื่อให้การแฟลชและการเชื่อมต่อเร็วขึ้น (11d8c9fe3, 4700bf678)
เมนู OpenMV และการปรับแต่ง UI ที่กู้คืนมา เลย์เอาต์เมนู OpenMV ที่กระชับถูกนำมาใช้ใหม่ โดยซ่อนเมนู Build และ Debug และลบ actions การจัดการโปรเจกต์ (7503f2bec); engine การเติมโค้ดได้รับการรับรู้คลาส/เมธอดและขอบเขต keyword public/private สำหรับ MicroPython autocomplete กลับคืนมา (55fc348ea); การเรนเดอร์สี ANSI ของ terminal ถูกนำมาใช้ใหม่พร้อมค่า bright/dim ที่รับรู้ธีมและรองรับ escape cursor-back (c6787a27a); และ toolbar ของ image viewer ถูกปรับแต่งด้วย tooltip ความละเอียด/ซูมและ action Fit-to-Screen ที่ย้ายตำแหน่ง (734fec693)
ทรัพยากรในตัวที่กู้คืนมา เครื่องมือแฟลช, ไดรเวอร์ DFU, เฟิร์มแวร์ และต้นไม้ตัวอย่าง/สคริปต์ทั้งหมดถูกกู้คืนลงใน share resources หลังจากการ strip-down rebase (33c8354bc) และ logic การเริ่มต้น application แบบกำหนดเองของ OpenMV ถูกนำมาใช้ใหม่: ต้องการปลั๊กอิน
TextEditorอย่างเคร่งครัด (การตรวจสอบปลั๊กอิน OpenMV และ TabbedEditor มีอยู่แต่ปิดใช้งาน), ติดตั้ง Qt message handler แบบกำหนดเอง, ลบตัวเลือก command-line-client/-pid/-blockและบังคับพฤติกรรม single-instance (06c788f3d)ความล้มเหลวของปลั๊กอินที่หายไป แอปตอนนี้ล้มเหลวอย่างชัดเจนพร้อมข้อผิดพลาดที่ชัดเจนหากปลั๊กอินที่จำเป็นหายไปหรือปิดใช้งาน ปลั๊กอิน OpenMV ได้รับการพึ่งพา Copilot และตัวเลือก text-editor หลายตัว (
Prefer single line commentsและตัวเลือก comment-position ใน Behavior settings และHighlight selectionใน Display settings) ถูกซ่อน (1bc02b1f3)Timeout serial ที่สั้นลง Timeout ของโปรโตคอล serial ถูกลดลง (read 10000 เป็น 5000 ms, write 6000 เป็น 3000 ms) เพื่อการตอบสนองต่อความล้มเหลวที่เร็วขึ้น โดยค่าเริ่มต้น
-override_read_timeoutที่บันทึกไว้ถูกอัปเดตให้ตรงกัน (641385af4)การกู้คืนพอร์ตที่ค้าง Serial ports ที่ค้างอยู่กลางคำสั่งตอนนี้ถูกกู้คืนโดยใช้คิวรี
GET_STATE(กำหนดค่าได้ผ่านการตั้งค่า get-state) แทนคิวรีแบบ script-running (a8598f550)ลำดับกล่องโต้ตอบการตั้งค่า กล่องโต้ตอบการตั้งค่าซ่อนช่องทำเครื่องหมายการเรียงลำดับหมวดหมู่ตามตัวอักษรเพื่อให้รายการหน้าอยู่ในลำดับที่ OpenMV ตั้งใจไว้ (1cb967c5a)
การตั้งค่า Copilot ที่เรียบง่ายขึ้น หน้าการตั้งค่า Copilot ถูกลดลงเหลือเพียงการควบคุม sign-in/auth และ proxy โดยซ่อน enable-Copilot, Node.js-path, dist-path และตัวเลือก auto-complete (1cb967c5a)
การแก้ไขบั๊ก¶
แก้ไขปัญหาการสื่อสาร serial หลักโดยเพิ่ม timeout การหยุด serial read เป็น 10 เท่าและปิดใช้งานเส้นทาง unstuck ที่ใช้
GET_STATEซึ่งทำให้ข้อความ serial-terminal เสีย (caeba6a16)แก้ไขการตัดการเชื่อมต่อ serial แบบสุ่มกับ cameras ที่ใช้ TinyUSB โดยออกคำสั่ง frame-dump unlock และปรับปรุงการจัดการ read-stall แทนที่จะตัดการเชื่อมต่อ (6cf122a3c)
ทำให้การจัดการ
get_stateของ camera ทนต่อการตอบกลับสั้น/บางส่วนและมั่นใจว่าข้อความ serial-terminal ที่บัฟเฟอร์ไว้ถูก flush ระหว่างการกู้คืนข้อผิดพลาดเพื่อไม่ให้ log output สูญหาย (c8b4248a6, 247a779dd)แก้ไขหมายเลข flash partition/alt-setting ของ DFU bootloader สำหรับการโหลดเฟิร์มแวร์ OpenMV Cam (a8700d12d)
กู้คืน bootloaders ทั้งหมดโดยรับรอง
hiddenboard flag ใหม่ สลับการกรอง serial-number เป็น inverse filters และให้ entry UF2 ของ Arduino Nano RP2040 Connect มีการกำหนดค่า picotool ที่ใช้งานได้ (63cee629b)แก้ไขกล่องโต้ตอบการเลือกประเภทบอร์ด bootloader ที่จำค่าผิดโดยใช้ history keys แยกต่างหากสำหรับการเลือกประเภทบอร์ดแบบ human-readable และ IMX (a3325af32)
แก้ไขการคำนวณ timestamp/frame-rate การแปลงวิดีโอ (Save Video) โดยคำนวณช่วงเวลาเฉลี่ยของเฟรมเป็นไมโครวินาที รองรับรูปแบบเวลา
ImageWriterv21 ใหม่ และป้องกัน null pixmaps ระหว่างการแปลง (f5c75c749, f8f762b3e)แก้ไข crash ใน histogram/framebuffer view เมื่อได้รับ pixmap ว่าง (null) โดยป้องกัน
pixmapUpdate()จากข้อมูล null (622cf5ea8)กู้คืน tooltip คำอธิบาย hover ใน text editor เพื่อให้การ hover เหนือเครื่องหมายข้อความแสดง annotation tooltip อีกครั้ง (1852d18e1)
ป้องกันไม่ให้กล่องโต้ตอบข้อมูล GitHub Copilot และ LED-colors แสดงขึ้นมาขณะที่ IDE กำลังเชื่อมต่อหรือแฟลชอยู่ (f8f762b3e)
เพิ่มการป้องกัน crash ใน language client เพื่อให้การจัดการ document-content-change ไม่ crash IDE ในกรณี edge cases (7926ffe4c)
แก้ไขการตรวจสอบ Python language-server ที่ป้องกันการปิด IDE อย่างสะอาดโดยทำให้ Python plugin รอการตรวจสอบที่กำลังดำเนินอยู่แบบ asynchronous ก่อนออก (9ff6c7936)
แก้ไข Python autocomplete บน Linux: language client ฝังตัวเองที่
micropython-headersในตัวและ action popup การเติมโค้ด editor-toolbar ที่ซ้ำกันถูกซ่อน (d37f66a9a, 56e748f9d, 016fa73eb)แก้ไขการจัดการไฟล์ชั่วคราว/ที่ยังไม่บันทึกเพื่อให้ Save As ใช้ไดเรกทอรีเริ่มต้นของ file-dialog และกล่องโต้ตอบ Save Items และ Diff editor ไม่แสดงเส้นทางไฟล์ชั่วคราวภายใน (b7f0bb378, c8e7b6b8f, 6b128c34c)
การบันทึก buffer ที่ไม่มีชื่อ/ชั่วคราวตอนนี้ตั้งค่าเริ่มต้นกล่องโต้ตอบ Save-As เป็นชื่อไฟล์
.pyที่เหมาะสมแทนที่จะเป็นชื่อว่าง (3001fdfff)เอกสารชั่วคราว/ที่ไม่มีชื่อตอนนี้ถูกเสนอให้บันทึกเมื่อมีการแก้ไข ถูกยกเว้นจาก autosave และถูกส่งผ่าน Save-As อย่างถูกต้อง (f87b71cf0)
แก้ไขลำดับเมนู Recent Files เพื่อไม่ให้การเปิดไฟล์ที่มีอยู่แล้วในรายการเรียงลำดับใหม่ และ file dialog ตอนนี้ตั้งค่าเริ่มต้นเป็นไดเรกทอรีโปรเจกต์ (d49c0c993)
แก้ไขการเรนเดอร์ข้อความ message-box โดยไม่บังคับรูปแบบ rich-text บน message boxes ที่มีช่องทำเครื่องหมายอีกต่อไป เพื่อให้ข้อความธรรมดาแสดงได้อย่างถูกต้อง (0c565502f)
แก้ไขสี tooltip เพื่อให้ tooltip เรนเดอร์ได้อย่างถูกต้องใน light theme (35cbf077b)
การแก้ไขความเสถียรและการทำความสะอาด Qt Creator ทั่วไปในการตั้งค่า core, language client, MSVC toolchain, project explorer และปลั๊กอิน Python (836b163dc, 134f43cb8)
แก้ไขชื่อโฟลเดอร์เฟิร์มแวร์ในตัวของ Arduino Nano 33 BLE Sense (b1d8ac227) และแก้ไขกฎ udev บน Linux สำหรับ AE3 DFU bootloader product ID โดยแก้
96E3เป็นตัวพิมพ์เล็ก96e3เพื่อให้การจับคู่idProductที่คำนึงถึงตัวพิมพ์ของ udev ทำงานได้ (2cd43c96b) นอกจากนี้ กฎ udev Linux ของ AE3 DFU bootloader ยังได้รับการอัปเดตเป็น37c5:afe3product ID สำหรับ symlinkopenmvdfu(b99555637)
การรองรับแพลตฟอร์มและเครื่องมือ¶
ฐาน Qt Creator: 14.0.2 (ย้ายฐานจาก 10.0.1)
OpenMV Cam N6 ตอนนี้รองรับแล้ว (VID:PID 37C5:1206, DFU bootloader 37C5:9206) รวมถึงการตั้งค่าเฟิร์มแวร์, ไดรเวอร์ DFU ของ Windows และกฎ udev ของ Linux (000ed8a87, 1b950c8c6)
OpenMV Cam RT1062 ตอนนี้รองรับแล้วภายใต้ USB VID/PID แบบกำหนดเองใหม่ (37C5:1060) รวมถึงไดรเวอร์ DFU, กฎ udev และรายการ 1209:ABD1 legacy ที่ยังคงไว้สำหรับหน่วยรุ่นเก่า (f453bc945, d55d6441f)
OpenMV Cam AE3 ตอนนี้รองรับแล้ว รวมถึงไดรเวอร์ DFU ของ Windows, ต้นไม้ firmware/config image และ USB VID/PID (อัปเดตเป็น 37C5:16E3 runtime / 37C5:96E3 bootloader) (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129)
ระบบ USB VID/PID ใหม่: OpenMV cameras ย้ายไปใช้ vendor ID
37C5พร้อม bootloader/DFU IDs ใหม่ (เช่น 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205) โดยเปลี่ยนชื่อบอร์ด 1209:ABD1 เก่าเป็น Legacy ขณะที่ยังรองรับทั้งเฟิร์มแวร์เก่าและใหม่ (6d78d6571, 6a6a9351d, 500b1a0bf)PAG7936 เซนเซอร์ภาพถูกเพิ่มลงในรายการเซนเซอร์ที่รู้จัก (f9e3f3461)
Embedded Python 3.13 interpreter ในตัวสำหรับ macOS, Linux x86_64, Linux arm64 และ Linux arm (9133b1516) พร้อม
libpython3.13และujsonshared libraries แบบ native (d3aa663d8, a2cb24e74)Bundled language server:
pylspพร้อม astroid 3.3.5 บน Windows, macOS และ Linux x86_64 (257addee0) Windows build มาพร้อม 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)Bundled Node.js 20.18.0 "Iron" LTS runtime สำหรับ Windows, macOS, Linux arm64, Linux x64 และ Linux armv7 เพื่อเปิดใช้งาน GitHub Copilot บนทุกแพลตฟอร์ม (bb07d582b, 6db78bf45, 1cb967c5a)
Alif Security Toolkit ไบนารี signed boot/system-package และคู่มือผู้ใช้ในตัวสำหรับ Windows, macOS และ Linux x86_64 สำหรับการ provisioning OpenMV cameras ที่ใช้ Alif (เช่น AE3) (f63851be3)
การรวมเข้ากับ Linux desktop ถูกกู้คืนมา ติดตั้ง application desktop entry และ AppStream metadata และลงทะเบียนประเภท MIME ของ Python (
.py) (3fa25f571)
การเปลี่ยนแปลงที่ไม่รองรับกันกับรุ่นเก่า¶
ไม่มีการเปลี่ยนแปลง scripting API ต่อไปนี้คือการเปลี่ยนแปลง workflow และพฤติกรรมที่ผู้ใช้อาจสังเกตเห็น:
USB vendor ID ใหม่ OpenMV cameras ย้ายไปใช้ vendor ID
37C5พร้อม product และ DFU bootloader IDs ใหม่ บอร์ดบน VID เก่า1209:ABD1ตอนนี้ถูกติดป้ายว่า "Legacy" IDE รองรับทั้งเฟิร์มแวร์เก่าและใหม่พร้อมกัน แต่ผู้ใช้ Linux ต้องติดตั้งกฎ udev ที่อัปเดตใหม่เพื่อให้ IDs ใหม่ถูกรู้จักรายการบอร์ด Legacy ที่ถูกซ่อน ตัวแปร Legacy ของ OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal boards ตอนนี้ถูกซ่อนจากรายการเลือก firmware/board ผ่าน
legacyboard flag ใหม่ (แตกต่างจากhiddenflag ที่มีอยู่ก่อน) ดังนั้นผู้ใช้ที่ต้องการรายการบอร์ด legacy เฉพาะจะไม่เห็นมันในรายการดรอปดาวน์อีกต่อไป (6d78d6571)Timeout serial ที่สั้นลง ค่าเริ่มต้น timeout การอ่านการตอบสนองลดลงจาก 10000 ms เป็น 5000 ms และ write timeout จาก 6000 ms เป็น 3000 ms (ค่าเริ่มต้น
-override_read_timeoutตอนนี้บันทึกไว้เป็น 5000) บอร์ด/ลิงก์ที่ช้าซึ่งพึ่งพาค่าเริ่มต้นที่ยาวกว่าอาจหมดเวลาเร็วกว่า
การย้ายฐาน Qt Creator 14.0.2 เป็นการปรับปรุงภายในครั้งใหญ่ แต่ไม่กระทบโปรเจกต์ของผู้ใช้