v1.7.0

يضيف الإصدار v1.7.0 تقطيع مخزن الإطارات التسلسلي وإعادة تجميعه بحيث يمكن نقل الإطارات الكبيرة عبر وصلة التصحيح التسلسلية، ويجعل فصل الاتصال مع إعادة التعيين أكثر أماناً عبر إفراغ (وعلى Windows، إخراج) محرك التخزين الكتلي عبر USB للكاميرا، ويُحدِّث مجموعة الأمثلة. ويستند هذا الإصدار إلى Qt Creator 4.0.2 (الأساس نفسه للإصدار السابق) ويضيف دعم البناء للأهداف المضمَّنة المبنية على Linux والمُجمَّعة تقاطعياً مثل Raspberry Pi. لا توجد تغييرات كاسرة.

أبرز النقاط

  • تقطيع مخزن الإطارات التسلسلي — تُقسَّم عمليات نقل مخزن الإطارات الكبيرة إلى أجزاء بحجم MTU ويُعاد تجميعها في مخزن بكسلات، بحيث يمكن نقل الإطارات الكبيرة عبر وصلة التصحيح التسلسلية.

  • فصل اتصال أكثر أماناً مع إعادة التعيين — يتم إفراغ محرك التخزين الكتلي عبر USB للكاميرا قبل إعادة التعيين (ويُخرَج قسراً على Windows) بحيث تتم مزامنة نظام الملفات أولاً.

  • حفظ ملفات ذرّي — تُكتب ملفات main.py والنقاط المفتاحية بشكل ذرّي، مما يمنع التلف ويُصلح خطأ مسار كان يكتب main.py إلى الموقع الخاطئ.

  • Raspberry Pi / Linux المضمَّن — أصبح دعم البناء بالتجميع التقاطعي مُدرجاً الآن.

  • أمثلة مُحدَّثة — مجموعة Servo Shield، وعروض جديدة لكشف الميزات، وأمثلة فيديو لقارئ/كاتب الصور.

ميزات جديدة

  • تقطيع مخزن الإطارات التسلسلي وإعادة تجميعه. تُقسَّم عمليات نقل مخزن الإطارات إلى أجزاء بحجم MTU ويُعاد تجميعها في مخزن بكسلات، بحيث يمكن نقل الإطارات الكبيرة عبر وصلة التصحيح التسلسلية باستخدام MTU افتراضي. وقد أُضيف بروتوكول مصافحة للتفاوض التلقائي على MTU في وقت التشغيل مع ضبط بوابة إصدار البرنامج الثابت الخاصة به على 2.5.0، بما يطابق البرنامج الثابت 2.5.0 المرفق في الالتزام نفسه (96458ccef). ثم رُفعت البوابة إلى 9.9.9 للإصدار، وهو ما لا يُبلِّغ عنه أي برنامج ثابت مشحون، لذا تستخدم الكاميرات MTU الافتراضي ولا يحدث أي تفاوض (abd1dacb9).

  • إفراغ/إخراج عند فصل الاتصال مع إعادة التعيين. فصل الاتصال مع إعادة التعيين أصبح الآن يُفرِغ محرك التخزين الكتلي عبر USB للكاميرا قبل إعادة التعيين: على Windows يُخرَج المحرك قسراً، بينما على Linux وmacOS تتم مزامنة نظام ملفات المحرك (syncfs / sync_volume_np). ويُبلَّغ عن خطأ Failed to eject عند الفشل على المنصات الثلاث جميعها (243618791، ff6b15aff، 1865ffd31، 4fd4e89cf).

  • أمثلة Servo Shield. تمت إضافة مجموعة أمثلة 15-Servo-Shield تعرض محركات سيرفو مُشغَّلة بـ PCA9685، بما في ذلك برنامج تشغيل pca9685.py ومساعد servo.py (abd1dacb9).

  • أمثلة جديدة لكشف الميزات. تمت إضافة find_circles (هاف)، وfind_rects (عتبة رباعية)، وfind_numbers (التعرف على الأرقام بـ LeNet)، وأمثلة انحدار خطي سريعة ومتينة ضمن 09-Feature-Detection (abd1dacb9).

  • أمثلة الفيديو والتحكم باللوحة. تمت إضافة أمثلة قارئ/كاتب الصور لتسجيل وإعادة تشغيل تدفقات اللقطات من بطاقة SD، ومثال للتحكم باللوحة بـ RTC، ومُشغِّل اختبارات وحدة على الكاميرا (abd1dacb9).

تغييرات وتحسينات أخرى

  • تمت إعادة تسمية مجلد الأمثلة 99-Tests (المسمى سابقاً 15-Tests) وأُضيف مُشغِّل unittests.py (abd1dacb9).

إصلاحات الأخطاء

  • تم تعزيز حفظ ملفات main.py والنقاط المفتاحية. حُوِّلت عمليات الكتابة إلى كتابات FileSaver ذرّية (الكتابة ثم الإنهاء) في (4fd4e89cf)، وأُصلح فاصل مسار مفقود كان يكتب main.py إلى الموقع الخاطئ في (1865ffd31).

  • تم تحسين موثوقية الاتصال التسلسلي عبر تكبير مخزن القراءة التسلسلي إلى 1MB على جميع المنافذ وزيادة مهلة توقُّف القراءة، مما يعالج البيانات المُسقَطة مع QSerialPort (7f68368dc).

  • تم إصلاح خلل في تخطيط فاصل النافذة عبر تصدير MainWindow وإصدار إشارة حدث-إظهار بحيث يمكن للملحق OpenMV استعادة التخطيط عند إظهار النافذة الرئيسية (4895e20b7).

دعم المنصات والأدوات

  • أساس Qt Creator: 4.0.2.

  • تمت إضافة دعم البناء للأهداف المضمَّنة المبنية على Linux والمُجمَّعة تقاطعياً مثل Raspberry Pi: ينشر خطوط Qt، ويُصلح معالجة chrpath/RPATH، ويبني الترجمات بثنائيات المُضيف، ويضيف اعتمادية qml مفقودة (73c052fcc، 8f0baa131، 5b9e9e82e، 45011ec2a).

  • تم تحديث البرنامج الثابت المرفق لـ OpenMV من 2.4.1 إلى 2.5.0 (96458ccef).

  • تمت إعادة تسمية مجلدَي البرنامج الثابت OMV2/OMV3 إلى OPENMV2/OPENMV3 وشُحنت ثنائيات البرنامج الثابت ومحمّل الإقلاع المُحدَّثة والمُعاد بناؤها لـ STM32F427 (OPENMV2) وSTM32F765 (OPENMV3) (abd1dacb9).

تغييرات كاسرة

لا شيء. لا يُدخِل هذا الإصدار أي كسر في سير العمل أو السلوك المرئي للمستخدم، وتستمر المشاريع الحالية في العمل دون تغيير.