v4.8.11¶
v4.8.11 เป็นรุ่นที่เน้นความเสถียรและความถูกต้อง โดยมุ่งเน้นที่ความแข็งแกร่งบน macOS การทำงานแบบอนุกรมของเครื่องมือภายนอก และความน่าเชื่อถือในการอัปเดตเฟิร์มแวร์ สร้างบน Qt Creator 14.0.2 (ไม่เปลี่ยนแปลงจากรุ่นก่อนหน้า) และไม่มีการเปลี่ยนแปลงที่ส่งผลกระทบต่อโปรเจกต์ของผู้ใช้
สิ่งที่น่าสนใจ¶
การป้องกันการขัดข้องบน macOS — ขจัดปัญหา
NSRangeExceptionabort ที่เกิดขึ้นเป็นครั้งคราวโดยไม่มีการแจ้งเตือน ซึ่งเกิดจากการอัปเดตรายการ tree/list/combo ก่อนที่แผงหรือป๊อปอัปจะสร้างเสร็จหรือระหว่างการรีเฟรชแบบอะซิงค์ ครอบคลุม outline combo, ลำดับชั้นการเรียก/ประเภท, ป๊อปอัปการเติมคำและ locator, project tree และอื่นๆเครื่องมือภายนอกทำงานแบบอนุกรม — กล่องโต้ตอบแสดงความคืบหน้าของ loader ปัจจุบันเป็น application-modal และระงับการสำรวจอุปกรณ์ทั้งหมด ดังนั้นการเรียกใช้ dfu-util, bossac, picotool และเครื่องมืออื่นๆ จึงไม่สามารถถูก camera stream หรือการเชื่อมต่อใหม่อัตโนมัติเข้ามาขัดแทรกได้อีกต่อไป
การอัปเดตเฟิร์มแวร์ที่น่าเชื่อถือ — การเชื่อมต่อใหม่อัตโนมัติไม่สามารถแย่งชิงการอัปเดตเฟิร์มแวร์ระหว่างการแฟลชได้อีกต่อไป ซึ่งก่อนหน้านี้จะทำให้การดำเนินการต่อเนื่องจริงถูกยกเลิกและแสดงกล่องโต้ตอบ DFU ที่ไม่ถูกต้อง
ความปลอดภัยของ Hello World — การเชื่อมต่อบอร์ดจะไม่เขียนทับโปรแกรม Hello World ที่คุณพิมพ์ไว้อีกต่อไปโดยไม่ตั้งใจ โดยเปรียบเทียบกับสแนปช็อตต้นฉบับแทนการพึ่งพา modified flag ที่ไม่น่าเชื่อถือ
ข้อผิดพลาด DFU ที่ชัดเจนยิ่งขึ้น — ข้อผิดพลาด "no matching interface" ปัจจุบันระบุชื่อบอร์ดที่ตรวจพบและชื่อไฟล์เฟิร์มแวร์ที่รองรับแทนการแสดง VID/PID แบบดิบ
ฟีเจอร์ใหม่¶
ST Edge AI (STM32N6) ปัจจุบันสร้างไฟล์ไบนารีเครือข่ายแบบ relocatable โดยตรงผ่านโหมด
--relocatableของคอมไพเลอร์ โดยลบขั้นตอน Python relocation แยกต่างหากและช่อง Relocation CLI Options เพิ่มเติมออกจากกล่องโต้ตอบ (7613135c5)
การเปลี่ยนแปลงและการปรับปรุงอื่นๆ¶
ข้อผิดพลาด DFU interface ปัจจุบันระบุชื่อบอร์ดที่ตรวจพบและแสดงรายชื่อไฟล์เฟิร์มแวร์ที่บอร์ดนั้นรองรับ พร้อมคำแนะนำในการเปลี่ยนชื่อหรือเลือกไฟล์ที่ถูกต้อง แทนที่จะแสดง VID/PID แบบดิบ (ac509b369)
ปุ่มลัดการนำทางแท็บบน macOS ปัจจุบันใช้
Cmd+Shift+[/Cmd+Shift+](ก่อน/ถัดไป) และCmd+Alt+[/Cmd+Alt+](ย้าย) ที่เข้าถึงได้ แทนCtrl+PageUp/Ctrl+PageDownที่กดยาก ส่วนปุ่มลัดบน Windows และ Linux ไม่เปลี่ยนแปลง (6c09e10b1)คำขอใบอนุญาต/บอร์ด ไปยัง
upload.openmv.io(check.php,insert.php,register.php) ปัจจุบันส่งUser-Agentสไตล์เบราว์เซอร์แยกตามแพลตฟอร์ม เพื่อให้เซิร์ฟเวอร์ใบอนุญาตระบุ OS ของไคลเอนต์ได้ (6bfd74b36)
การแก้ไขบั๊ก¶
แก้ไขการขัดข้องบน macOS ที่เกิดขึ้นเป็นครั้งคราว (การ abort
NSRangeExceptionโดยไม่มีกล่องโต้ตอบการขัดข้อง) ซึ่งเกิดขึ้นเมื่อการอัปเดตรายการ tree/list/combo ขณะที่แผงหรือป๊อปอัปยังซ่อนอยู่หรืออยู่ระหว่างการรีเฟรชแบบอะซิงค์ ทำให้เกิดการเข้าถึง Cocoa accessibility cache ที่ยังไม่ได้สร้าง ขณะนี้การเลือก การเลื่อน และการขยายถูกเลื่อนออกหรือมีการป้องกันครอบคลุม outline combo, ลำดับชั้นการเรียก/ประเภท, ป๊อปอัปการเติมโค้ด, ป๊อปอัป locator, กล่องโต้ตอบ Save Items, project tree, การนำทางโฟลเดอร์, Open Documents, รายการ Issues/Tasks และ tree-view combobox (94c8f9def, ae40a3806, ed23b5c60, c6baf89cd, d7b6f5838, d8b70609c, 21740d9c2, 9217fc8a9, fe75924d5, 9cc247ffb, 3ca71e915, 559b6005f)แก้ไขการขัดข้องบน macOS อีกกรณี (
NSRangeException/SIGABRT) ใน code outline combobox ที่เกิดจาก index ที่ล้าสมัยและอยู่นอกช่วงเมื่อ Python language server รีเฟรชสัญลักษณ์แบบอะซิงค์ ขณะนี้setCurrentIndexจะตรวจสอบขอบเขต row/column ใหม่เทียบกับโมเดลที่ใช้งานอยู่ (3e0ce89f1)เพิ่มความแข็งแกร่งให้กับ ROMFS model editor และ dataset editor เพื่อป้องกัน
QFileSystemModelasync race โดยเลื่อนการขยาย tree ล่วงหน้าออกไปจนกว่าไดเรกทอรีจะโหลดเสร็จ และเลือกไฟล์/โฟลเดอร์/โมเดลที่สร้างใหม่เฉพาะเมื่อโมเดลมี index ที่ถูกต้องสำหรับรายการนั้น (5eaa91aff)การดำเนินการของเครื่องมือภายนอก (dfu-util, bossac, picotool, alif, imx, ST Cube, mpy-cross, vela, ST Edge AI, video convert) ไม่อนุญาตให้ camera stream หรืองานที่รอคิวเข้ามาทำการดำเนินการอุปกรณ์ซ้ำๆ ขณะที่เครื่องมือกำลังทำงานอยู่อีกต่อไป กล่องโต้ตอบแสดงความคืบหน้าของ loader เป็น application-modal และการสำรวจอุปกรณ์จะถูกระงับอย่างสมบูรณ์ขณะแสดงอยู่ (3069e8ec0)
การเชื่อมต่อใหม่อัตโนมัติไม่สามารถแย่งชิงการอัปเดตเฟิร์มแวร์ระหว่างการแฟลชได้อีกต่อไป ผ่าน flag ที่ระบุว่ากำลังอัปเดตเฟิร์มแวร์อยู่ ซึ่ง latch ไว้สำหรับการดำเนินการ forced/bootloader/erase ทั้งหมด และ reconnect timer จะตรวจสอบด้วยเช่นกัน (b7745484a)
การเชื่อมต่อบอร์ดจะไม่เขียนทับโปรแกรม Hello World ที่คุณพิมพ์ไว้โดยไม่ตั้งใจอีกต่อไป โดยเปรียบเทียบเอกสารที่ใช้งานอยู่กับสแนปช็อตต้นฉบับที่บันทึกไว้ตอนเปิด แทนการพึ่งพา modified flag ที่ไม่น่าเชื่อถือก่อนการซิงค์ตัวอย่างต่อ sensor อัตโนมัติ (6f4539d44)
การเลื่อนขึ้นใน serial terminal ระหว่างที่มีการแสดงผลอย่างต่อเนื่องอย่างรวดเร็วจะไม่ดึงมุมมองกลับมาที่ด้านล่างอีกต่อไป เส้นทาง append ปัจจุบันติดตาม flag ความตั้งใจการเลื่อนของผู้ใช้แทนการคำนวณ "ที่ด้านล่าง" ใหม่จากตำแหน่ง scrollbar ที่แต่ละ chunk เพิ่งปักหมุดไว้ (9aea0f1a2)
Escapeปัจจุบันปิดกล่องโต้ตอบ Code Profiler ได้อย่างน่าเชื่อถือไม่ว่า child widget ใดจะมี focus (203ffd1e6)บน macOS เมนูและปุ่มลัดคีย์บอร์ดระดับ global ปัจจุบันทำงานได้ทั่วทั้งแอปแทนที่จะทำงานเฉพาะเมื่อ editor มี focus โดยกำหนดให้ menu bar ที่ซ่อนอยู่เป็น parent ของหน้าต่างหลักในทุกแพลตฟอร์ม (6d52cbe73)
ตัวแปลภาษา Python แบบ bundle ปัจจุบันถูกบังคับให้เป็นค่าเริ่มต้นทุกครั้งที่เปิด ดังนั้นค่าเริ่มต้นที่บันทึกไว้ที่ล้าสมัยจะไม่ปิดใช้งาน Python language server (การเติมคำและคำใบ้การเรียก) โดยไม่มีการแจ้งเตือนอีกต่อไป (1d5069a52)
เพิ่มความแข็งแกร่งให้กับ OpenMV settings I/O เพื่อป้องกัน re-entrancy:
beginGroup/endGroupบน shared global settings object (ซึ่งสร้าง modal dialog และรัน nested event loop) ถูกแทนที่ด้วย full key path ดังนั้นการเข้าถึง settings แบบ re-entrant ระหว่าง modal dialog จะไม่สามารถบันทึก key ผิด group ได้อีกต่อไป เส้นทางบนดิสก์เหมือนกันทุก byte ดังนั้น settings ของผู้ใช้ที่มีอยู่จะถูกเก็บรักษาอย่างสมบูรณ์ (91e78a9e3, f4bb9f48c)แก้ไข regression ที่ dialogs และ helpers หลายตัวที่รับ shared settings object ทำ bare-key I/O ที่ settings root แทนที่จะอยู่ใต้
OpenMV/ทำให้สูญเสียรูปทรงหน้าต่าง, splitter และสถานะการขยายของ model zoo และสถานะของ loader dialog ทั้งหก (dfu-util, imx, bossac, alif, picotool และ ST Cube Programmer) รวมถึงตัวเลือกคอมไพเลอร์ mpy-cross, vela และ ST Edge AI ขณะนี้ group ถูกฝังอยู่ใน key แต่ละตัวเพื่อให้ใช้เส้นทางที่ถูกต้อง (258448bdf)
การรองรับแพลตฟอร์มและเครื่องมือ¶
Qt Creator base: 14.0.2.
OpenMV IDE อัปเดตเวอร์ชันเป็น 4.8.11
การเปลี่ยนแปลงที่ส่งผลกระทบ¶
ไม่มี การเปลี่ยนแปลงทั้งหมดเป็นการแก้ไขบั๊กและการปรับปรุงที่ต่อยอดจากฐาน Qt Creator 14.0.2 ที่มีอยู่ โปรเจกต์และขั้นตอนการทำงานที่มีอยู่ไม่ได้รับผลกระทบ