v1.7.0¶
v1.7.0 เพิ่มการแบ่งและประกอบบัฟเฟอร์เฟรมอนุกรมเพื่อให้สามารถถ่ายโอนเฟรมขนาดใหญ่ผ่านลิงก์อนุกรมดีบักได้ ทำให้การตัดการเชื่อมต่อพร้อมรีเซ็ตปลอดภัยยิ่งขึ้นโดยล้าง (และบน Windows ให้ eject) ไดรฟ์ USB mass-storage ของกล้อง และปรับปรุงชุดตัวอย่าง รุ่นนี้ใช้ Qt Creator 4.0.2 (ฐานเดียวกับรุ่นก่อนหน้า) และเพิ่มการสนับสนุนการ build สำหรับเป้าหมาย Linux แบบ embedded ที่คอมไพล์ข้ามแพลตฟอร์ม เช่น Raspberry Pi ไม่มีการเปลี่ยนแปลงที่ส่งผลกระทบ
ไฮไลต์¶
การแบ่งบัฟเฟอร์เฟรมอนุกรม — การถ่ายโอนบัฟเฟอร์เฟรมขนาดใหญ่จะถูกแบ่งเป็นชิ้นขนาด MTU และประกอบใหม่ในบัฟเฟอร์พิกเซล เพื่อให้สามารถย้ายเฟรมขนาดใหญ่ผ่านลิงก์อนุกรมดีบักได้
การตัดการเชื่อมต่อพร้อมรีเซ็ตที่ปลอดภัยกว่า — ไดรฟ์ USB mass-storage ของกล้องจะถูกล้างก่อนการรีเซ็ต (และ force-eject บน Windows) เพื่อซิงค์ระบบไฟล์ก่อน
การบันทึกไฟล์แบบ atomic —
main.pyและไฟล์ keypoint จะถูกเขียนแบบ atomic เพื่อป้องกันการเสียหายและแก้ไขบั๊ก path ที่เขียนmain.pyไปผิดตำแหน่งRaspberry Pi / embedded Linux — รวมการสนับสนุนการ build แบบคอมไพล์ข้ามแพลตฟอร์มแล้ว
ตัวอย่างที่ปรับปรุงใหม่ — ชุด Servo Shield ตัวอย่าง Feature-Detection ใหม่ และตัวอย่างวิดีโอ Image Reader/Writer
ฟีเจอร์ใหม่¶
การแบ่งและประกอบบัฟเฟอร์เฟรมอนุกรม การถ่ายโอนบัฟเฟอร์เฟรมจะถูกแบ่งเป็นชิ้นขนาด MTU และประกอบใหม่ในบัฟเฟอร์พิกเซล เพื่อให้สามารถย้ายเฟรมขนาดใหญ่ผ่านลิงก์อนุกรมดีบักได้โดยใช้ MTU เริ่มต้น มีการเพิ่มการ handshake เจรจา MTU อัตโนมัติแบบ runtime พร้อม firmware version gate ที่ตั้งค่าเป็น 2.5.0 ซึ่งตรงกับเฟิร์มแวร์ 2.5.0 ที่รวมมาด้วยใน commit เดียวกัน (96458ccef) จากนั้น gate ถูกยกระดับเป็น
9.9.9สำหรับการเผยแพร่ ซึ่งเฟิร์มแวร์ที่จัดส่งไม่มีรายงาน ดังนั้นกล้องจะใช้ MTU เริ่มต้นและไม่มีการเจรจาเกิดขึ้น (abd1dacb9)ล้าง/eject เมื่อตัดการเชื่อมต่อพร้อมรีเซ็ต การตัดการเชื่อมต่อพร้อมรีเซ็ตจะล้างไดรฟ์ USB mass-storage ของกล้องก่อนการรีเซ็ต: บน Windows ไดรฟ์จะถูก force-eject ในขณะที่บน Linux และ macOS ระบบไฟล์ของไดรฟ์จะถูก sync (
syncfs/sync_volume_np) ข้อผิดพลาดFailed to ejectจะรายงานเมื่อล้มเหลวบนทั้งสามแพลตฟอร์ม (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf)ตัวอย่าง Servo Shield เพิ่มชุดตัวอย่าง
15-Servo-Shieldที่สาธิตเซอร์โวที่ขับเคลื่อนด้วย PCA9685 รวมถึงไดรเวอร์pca9685.pyและ helperservo.py(abd1dacb9)ตัวอย่าง Feature-Detection ใหม่ เพิ่ม
find_circles(Hough),find_rects(quad-threshold),find_numbers(การรู้จำตัวเลข LeNet) และตัวอย่างการถดถอยเชิงเส้นที่รวดเร็วและแข็งแกร่งภายใต้09-Feature-Detection(abd1dacb9)ตัวอย่างวิดีโอและการควบคุมบอร์ด เพิ่มตัวอย่าง Image Reader/Writer สำหรับการบันทึกและเล่นซ้ำ snapshot stream จากการ์ด SD ตัวอย่างการควบคุมบอร์ด RTC และตัวรัน unit-test บนกล้อง (abd1dacb9)
การเปลี่ยนแปลงและการปรับปรุงอื่นๆ¶
เปลี่ยนชื่อโฟลเดอร์ตัวอย่าง
99-Tests(เดิมคือ15-Tests) และเพิ่มตัวรันunittests.py(abd1dacb9)
การแก้ไขบั๊ก¶
เพิ่มความปลอดภัยในการบันทึก
main.pyและไฟล์ keypoint การเขียนถูกเปลี่ยนเป็นการเขียนFileSaverแบบ atomic (เขียนแล้ว finalize) ใน (4fd4e89cf) และแก้ไขตัวคั่น path ที่หายไปซึ่งเขียนmain.pyไปยังตำแหน่งผิดใน (1865ffd31)ปรับปรุงความน่าเชื่อถือของอนุกรมโดยขยายบัฟเฟอร์การอ่านอนุกรมเป็น 1MB บนทุกพอร์ตและเพิ่ม timeout การหยุดอ่าน เพื่อแก้ปัญหาข้อมูลสูญหายกับ
QSerialPort(7f68368dc)แก้ไขข้อบกพร่องของ layout splitter หน้าต่างโดย export
MainWindowและส่งสัญญาณ show-event เพื่อให้ปลั๊กอิน OpenMV กู้คืน layout เมื่อหน้าต่างหลักแสดงขึ้น (4895e20b7)
การสนับสนุนแพลตฟอร์มและเครื่องมือ¶
ฐาน Qt Creator: 4.0.2
เพิ่มการสนับสนุนการ build สำหรับเป้าหมาย Linux แบบ embedded ที่คอมไพล์ข้ามแพลตฟอร์ม เช่น Raspberry Pi: deploy ฟอนต์ Qt แก้ไขการจัดการ
chrpath/RPATH build การแปลด้วยไบนารี host และเพิ่ม dependencyqmlที่ขาดหายไป (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a)อัปเดตเฟิร์มแวร์ OpenMV ที่รวมมาจาก 2.4.1 เป็น 2.5.0 (96458ccef)
เปลี่ยนชื่อโฟลเดอร์เฟิร์มแวร์
OMV2/OMV3เป็นOPENMV2/OPENMV3และจัดส่งเฟิร์มแวร์และไบนารีบูตโหลดเดอร์ STM32F427 (OPENMV2) และ STM32F765 (OPENMV3) ที่อัปเดตและ build ใหม่ (abd1dacb9)
การเปลี่ยนแปลงที่ส่งผลกระทบ¶
ไม่มี รุ่นนี้ไม่มีการเปลี่ยนแปลงขั้นตอนการทำงานหรือพฤติกรรมที่ผู้ใช้มองเห็นได้ และโปรเจกต์ที่มีอยู่ยังคงทำงานได้โดยไม่มีการเปลี่ยนแปลง