v4.8.9

v4.8.9 เป็นรีลีสที่มุ่งเน้นประสิทธิภาพขณะไม่ได้ใช้งานและความน่าเชื่อถือในการตัดการเชื่อมต่อ สร้างบน Qt Creator 14.0.2 ปรับปรุงวิธีที่ IDE ตรวจจับฮาร์ดแวร์เพื่อหยุดการโพลเมื่อไม่มีอะไรเกิดขึ้น ปรับปรุงเส้นทางการเชื่อมต่อ/ตัดการเชื่อมต่อ และตัดแต่ง model zoo ที่รวมอยู่ ไม่มีการ rebase Qt Creator ในช่วงนี้ แต่พฤติกรรมเริ่มต้นและชื่อโมเดลที่รวมอยู่บางส่วนมีการเปลี่ยนแปลง โปรดตรวจสอบการเปลี่ยนแปลงที่ทำให้ใช้งานไม่ได้ด้านล่าง

ไฮไลต์

  • การตรวจสอบฮาร์ดแวร์แบบ Event-driven แทนที่การโพลอุปกรณ์อย่างต่อเนื่อง: IDE จะหยุดตัวจับเวลาการสแกนเมื่อไม่ได้ใช้งานและสแกนซีเรียลพอร์ตและไดรฟ์ใหม่เฉพาะเมื่อมีเหตุการณ์เสียบ/ถอด USB และการ mount/dismount ดิสก์จริง ลดการใช้ CPU และทรัพยากรขณะไม่ได้ใช้งานอย่างมาก

  • ตัวจับเวลาขณะไม่ได้ใช้งานที่ควบคุมด้วยกิจกรรม: ตัวจับเวลาเหตุการณ์บัฟเฟอร์เฟรม (เดิมทำงานทุก 1ms) ตอนนี้ทำงานเฉพาะขณะเชื่อมต่อ และตัวจับเวลาการกะพริบเคอร์เซอร์เทอร์มินัล (500ms) ตอนนี้ทำงานเฉพาะขณะที่เทอร์มินัลได้รับโฟกัส

  • การซิงค์การนำเข้าพื้นหลังปิดโดยค่าเริ่มต้น: การซิงค์อัตโนมัติของโฟลเดอร์นำเข้า Examples และ Documents/OpenMV ตอนนี้ถูกปิดใช้งานและปุ่มสลับเมนูถูกซ่อน ดังนั้น IDE จะไม่สแกนโฟลเดอร์เหล่านั้นอย่างต่อเนื่องอีกต่อไป

  • การตัดการเชื่อมต่อที่รวดเร็วและน่าเชื่อถือมากขึ้น: ซีเรียลพอร์ตถูกปิดและกล้องถูกปล่อยทันที ค่าหมดเวลาของโปรโตคอลถูกปรับลด และกล้องที่ค้างอยู่ตอนนี้สามารถฟื้นตัวได้แทนที่จะค้าง

  • ปุ่มโหมด frame buffer ที่ชัดเจนขึ้น ที่แสดง JPG Mode หรือ RAW Mode เพื่อให้เห็นสถานะการบีบอัดปัจจุบันได้อย่างชัดเจนในทันที

ฟีเจอร์ใหม่

  • การตรวจสอบเหตุการณ์ฮาร์ดแวร์แบบ Native ผ่าน HardwareMonitor ใหม่ที่ส่ง hardwareEventDetected โดยใช้ IOKit และ DiskArbitration บน macOS, หน้าต่าง message-only WM_DEVICECHANGE บน Windows และซ็อกเก็ต netlink NETLINK_KOBJECT_UEVENT บน Linux ตัวจับเวลาการสแกนซีเรียลและไดรฟ์ตอนนี้ถูกควบคุมด้วยหน้าต่างการสแกน 10 วินาทีที่รีสตาร์ทในแต่ละเหตุการณ์ (a6612fec9, 462b55f7b, 17c2e93c7)

การเปลี่ยนแปลงและปรับปรุงอื่นๆ

  • ตัวจับเวลาการประมวลผลเหตุการณ์ frame buffer (เดิมทำงานทุก 1ms) ตอนนี้เริ่มต้นเมื่อเชื่อมต่อและหยุดเมื่อตัดการเชื่อมต่อ และตัวจับเวลาการกะพริบเคอร์เซอร์เทอร์มินัล (500ms) ตอนนี้เริ่มและหยุดตามการได้รับ/เสียโฟกัสของเทอร์มินัลแทนที่จะทำงานตลอดเวลา (a02afea53)

  • การซิงค์อัตโนมัติของโฟลเดอร์นำเข้า Examples และ Documents/OpenMV ถูกปิดใช้งานโดยค่าเริ่มต้นและปุ่มสลับถูกซ่อน ตัวจับเวลาการสแกนโฟลเดอร์จะไม่เริ่มต้นเมื่อ init อีกต่อไปและทำงานเฉพาะเมื่อการดำเนินการ (ที่ตอนนี้ซ่อนอยู่) ถูกเปิดใช้งาน (478f83e97)

  • ปุ่มสลับรูปแบบ frame buffer ตอนนี้แสดง JPG Mode เมื่อเปิดใช้งานการบีบอัด JPEG และ RAW Mode เมื่อปิด (c48831224)

  • เมื่อเชื่อมต่อ IDE ตอนนี้จะใช้ค่าเริ่มต้น JPEG-preferred ของบอร์ดสำหรับ frame buffer เสมอแทนที่จะกู้คืนตัวเลือก JPG/RAW ต่อบอร์ดที่บันทึกไว้ก่อนหน้านี้ (c48831224)

การแก้ไขบั๊ก

  • การตัดการเชื่อมต่อตอนนี้ปิดซีเรียลพอร์ตและปล่อยกล้อง (และพอร์ต) แบบ inline ใน close() ทำให้การตัดการเชื่อมต่อรวดเร็วและน่าเชื่อถือมากขึ้น (1e8941080, 9d31bcf80)

  • ตัวจับเวลาการไม่ใช้งานซีเรียลตอนนี้ถูกหยุดและแฟล็ก v2-protocol ถูกล้างเมื่อพอร์ตปิด แก้ไขพฤติกรรมตัวจับเวลาไม่ใช้งานที่ค้างอยู่หลังตัดการเชื่อมต่อ (4bd2fd9ea)

  • ค่าหมดเวลาของคำสั่งโปรโตคอลถูกปรับ (ค่าหมดเวลาการเปิดลดลงจาก 5s เป็น 2s, resync และ CHANNEL_SIZE ใช้ค่าหมดเวลาสั้น 1s) และทุกคำสั่งซีเรียลตอนนี้จะทิ้งออบเจกต์กล้องเมื่อเกิดความล้มเหลว ดังนั้นกล้องที่ค้างจะฟื้นตัวและตัดการเชื่อมต่อได้เร็วขึ้นแทนที่จะค้าง (04aa6aea3)

  • แก้ไขปัญหาการล็อก/ค้างเมื่อหยุดสคริปต์: เหตุการณ์ script-stopped ตอนนี้จะล้างสถานะ frame-event และรีเซ็ตตัวจับเวลา frame-ready ด้วย (3695b0704)

  • โปรโตคอลตอนนี้รองรับการอ่านบางส่วนจากกล้อง โดยส่งคืน payload หรือข้อความที่ได้รับบางส่วนแทนที่จะทิ้งหรือแสดงข้อผิดพลาด (0c8ccd58e)

การรองรับแพลตฟอร์มและเครื่องมือ

  • ฐาน Qt Creator: 14.0.2.

  • บอร์ดที่รวมโมดูล AE3 หรือ N6 กับ sensor PAG7936 หรือ PS5520 ตอนนี้จะได้รับค่าเริ่มต้น QVGA ที่สูงกว่า (เดิมเฉพาะ AE3 + PAG7936) ดังนั้นตัวอย่างที่ได้รับผลกระทบจะอัปเกรดอัตโนมัติจาก QQVGA เป็น QVGA (fcc0c3227)

  • model zoo ของ ST MoveNet สำหรับการประมาณท่าทางที่รวมอยู่ถูกทำความสะอาด: ตัวแปร per-tensor (_pt) ที่ซ้ำซ้อนและตัวแปร singlepose/st_movenet ที่ซ้ำกันถูกลบออก และโมเดล per-channel heatmap ที่เหลือถูกเปลี่ยนชื่อเป็น movenet_singlepose_192, movenet_singlepose_224 และ movenet_singlepose_256 (18f66c4c1)

  • ลบโมเดล semantic-segmentation DeepLabV3 ที่รวมอยู่และ asset ตัวอย่างออกจาก model zoo (a929e0dc1)

การเปลี่ยนแปลงที่ทำให้ใช้งานไม่ได้

การเปลี่ยนแปลงพฤติกรรมที่ผู้ใช้มองเห็นและ asset ที่รวมอยู่ระหว่าง v4.8.8 และ v4.8.9

  • เมื่อเชื่อมต่อ frame buffer ตอนนี้จะใช้ค่าเริ่มต้น JPEG-preferred ของบอร์ดเสมอและละเว้นตัวเลือก JPG/RAW ต่อบอร์ดที่บันทึกไว้ก่อนหน้านี้ (c48831224)

  • การซิงค์พื้นหลังของโฟลเดอร์นำเข้า Examples และ Documents/OpenMV ถูกปิดใช้งานโดยค่าเริ่มต้นและปุ่มสลับถูกซ่อน (478f83e97)

  • โมเดลที่รวมอยู่หลายรายการถูกลบหรือเปลี่ยนชื่อ: โมเดล semantic-segmentation DeepLabV3 ถูกลบออกแล้ว และโมเดล ST MoveNet ถูกตัดและเปลี่ยนชื่อเป็น movenet_singlepose_192/224/256 สคริปต์ที่อ้างอิงชื่อไฟล์โมเดลเก่าต้องได้รับการอัปเดต (a929e0dc1, 18f66c4c1)