v1.3.0

يعيد الإصدار v1.3.0 كتابة طبقة الاتصال مع الكاميرا حول بروتوكول أمر/استجابة منظم، ويضيف التحديث التلقائي داخل الـ IDE لكل من الـ IDE وموارده المرفقة. وهو مبني على Qt Creator 4.0.2 ويتضمن برنامج كاميرا OpenMV الثابت بإصدار 2.0.0. على macOS وLinux، يتطلب تفليش البرنامج الثابت عبر DFU الآن تثبيتاً لمرة واحدة لـ Python بالإضافة إلى libusb وpyusb؛ راجع التغييرات الجذرية.

أبرز النقاط

  • طبقة اتصال معاد كتابتها. أُعيد بناء شيفرة التصحيح التسلسلي/USB حول بروتوكول أمر/استجابة منظم مع أطوال استجابة لكل أمر وفترات انتظار للبدء/الانتهاء، من أجل عمليات اتصال وتشغيل برنامج نصي ومخزن إطارات ومحمّل إقلاع أكثر موثوقية.

  • أداة تحديث تلقائي داخل الـ IDE. يتحقق الـ IDE الآن من openmv.io بحثاً عن إصدار أحدث ويعرض زر Download، كما يقوم بشكل منفصل بتنزيل وتثبيت حزم الموارد المحدّثة (الأمثلة، البرنامج الثابت، التوثيق) ثم يطالب بإعادة التشغيل.

  • تحديث البرنامج الثابت بنقرة واحدة. أصبح إصدار البرنامج الثابت في شريط الحالة الآن زراً قابلاً للنقر يقارن الكاميرا المتصلة بالبرنامج الثابت المرفق ويعرض تحديثاً بنقرة واحدة عند توفر إصدار أحدث.

  • تفليش البرنامج الثابت عبر DFU على كل منصة. يمكن الآن تفليش البرنامج الثابت عبر DFU على Windows وmacOS وLinux x86 وLinux x86_64، ويقبل منتقي البرنامج الثابت ملفات .dfu بالإضافة إلى .bin.

  • رجوع تلقائي إلى DFU. عندما يتعذر الوصول إلى محمّل الإقلاع التسلسلي أثناء تحديث البرنامج الثابت، يعرض الـ IDE الآن الترقية عبر محمّل إقلاع DFU الخاص بالكاميرا بدلاً من ذلك، ويرشدك خلال إضافة وصلة جسر BOOT/RST.

ميزات جديدة

  • أداة تحديث داخل الـ IDE. تتحقق من openmv.io بحثاً عن إصدار IDE أحدث وتعرض زر Download الذي يفتح openmv.io/download، وتقوم بتنزيل وفك ضغط وتثبيت حزم الموارد openmv-ide-resources-X.Y.Z.zip مباشرة داخل الـ IDE قبل المطالبة بإعادة التشغيل (8a1f92bb1، 194acd828، b0be97e3e).

  • زر إصدار البرنامج الثابت القابل للنقر. أصبح ملصق الإصدار في شريط الحالة عنصر QToolButton موصولاً بمسار updateCam() يقرأ ملف firmware/firmware.txt المرفق، ويقارنه بالكاميرا المتصلة، ويعرض Firmware Update مع خيار مسح نظام الملفات الداخلي عند توفر إصدار أحدث (b2ac8defe).

  • دعم ملفات DFU. يقبل مربع حوار تفليش محمّل الإقلاع/البرنامج الثابت الآن ملفات .dfu بالإضافة إلى .bin ويفرض مسحاً كاملاً لنظام الملفات الداخلي عند تفليش ملف .dfu. وُسّع مرشح منتقي البرنامج الثابت إلى Firmware Binary (*.bin *.dfu) وأُدخل مسار المسح القسري لـ .dfu في 4ad2be5f9، مع خانة اختيار المسح المعطّلة المحددة دائماً التي تتبدّل تلقائياً بناءً على امتداد الملف المختار والمضافة في b2ac8defe (4ad2be5f9، b2ac8defe).

  • رجوع تلقائي إلى DFU عند فشل محمّل الإقلاع. عندما يتعذر على تحديث البرنامج الثابت .bin بدء محمّل الإقلاع التسلسلي، يبلّغ الـ IDE الآن عن Unable to connect to the bootloader! ثم يعرض الترقية باستخدام محمّل إقلاع DFU الخاص بالكاميرا بدلاً من ذلك، محذّراً من أن DFU يمسح نظام ملفات الفلاش الداخلي ومرشداً إياك خلال إضافة وصلة جسر BOOT/RST وإعادة التوصيل قبل أن يشغّل DfuSeCommand.exe (على Windows) (4ad2be5f9).

  • مثال HoG. أُضيف مثال لتصوّر مدرج تكراري للتدرجات الموجّهة (09-Feature-Detection/hog.py) باستخدام img.find_hog() (b03a707f7).

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

  • استُبدلت شيفرة معدل الباود/الحزم المرتجلة القديمة بفئات OpenMVPluginSerialPortCommand/Result ورموز العمليات __USBDBG_* و__BOOTLDR_* والدوال المساعدة command()/commandResult() بدلاً من write()/readAll()/isOpen() (b03a707f7، 141122e21، b2ac8defe، 1d72fe4bf، b4cf2fe43، c60936d5f).

  • أصبح تثبيت مشغّل المنفذ التسلسلي على Windows الآن صامتاً/دون تدخّل، مع تحويل برامج تثبيت المشغّل openmv.cmd/pybcdc.cmd إلى مثبّتات قائمة على dpinst بدلاً من InfDefaultInstall التفاعلي، وأُضيف مثبّت Visual C++ Redistributable (vcr.cmd، الذي يشغّل vcredist_x86.exe وvcredist_x64.exe بصمت) وأُصلح (a5a6e0590، 754d0776d، b0be97e3e، 452a29f0d، c051c6e30، ad1b674ef، 565f1eccd).

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

  • أُصلح تعطّل تفليش البرنامج الثابت والاتصال داخل الأجهزة الافتراضية، وتم تخفيف العديد من مهل الأوامر واستطلاع مخزن الإطارات/مخزن الإرسال بحيث أصبح الاتصال والتشغيل أكثر متانة. ويشير مربع حوار إعادة البرمجة الآن إلى أنه "قد يستغرق حتى 5 دقائق"، ورُفعت مهلة عملية DFU من 240 ثانية إلى 300 ثانية في 324f243f9 (c051c6e30، b0be97e3e، 1d72fe4bf، b4cf2fe43، 324f243f9، c60936d5f).

  • أُصلحت مقارنة توفر تحديث البرنامج الثابت/الـ IDE بحيث لم يعد إصدار ثانوي أو ترقيعي أحدث يطلق المقارنة زوراً عندما يكون حقل أعلى متساوياً، واشتُرط أن يكون لدى مربع حوار محمّل الإقلاع ملف محدد صالح قبل التفليش (4ad2be5f9).

  • أُغلقت مقابض الملفات (قائمة اللوحات، ملفات البرنامج الثابت/الإصدار) بعد القراءة وصُحّحت حشوة مقطع تفليش البرنامج الثابت لتحشو إلى FLASH_WRITE_CHUNK_SIZE، مما يمنع تسرّب المقابض والمقاطع النهائية ذات الحشوة الخاطئة أثناء تحديثات البرنامج الثابت (4ad2be5f9).

  • أُصلحت قائمة Help الخاصة بـ OpenMV وألواح الإخراج: لم يعد عنصر About OpenMV Cam يتعارض مع دور About الخاص بالمنصة (AboutRoleApplicationSpecificRole)، ولم تعد ألواح الإخراج تستحوذ على اختصارات Alt/Cmd + الأرقام (a0694eac7).

  • أصبح فتح روابط الويب الخارجية لـ OpenMV (المنتديات، التنزيل، الدعم) الآن يُبلّغ عن مربع حوار خطأ "Failed to open" عندما يتعذر فتح عنوان URL بدلاً من عدم القيام بشيء بصمت (b0be97e3e).

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

  • قاعدة Qt Creator: 4.0.2.

  • برنامج الكاميرا الثابت المرفق: حُدّث إلى 2.0.0، مع ملفات firmware.bin/openmv.bin جديدة وملفات firmware.dfu/bootloader.dfu/firmware.elf/bootloader.elf مضافة حديثاً لـ OMV2 وOMV7.

  • تفليش DFU على Windows أُضيف باستخدام ملف ST DfuSeCommand.exe المرفق، وحزمة مشغّل ST DfuSe USB (DfuSe v3.0.4.0 على Win7/Win8، v3.0.5.0 على Win8.1) ومثبّت مشغّل dfuse.cmd (4ad2be5f9).

  • تفليش DFU على macOS وLinux انتقل من ثنائيات dfu-util المبنية مسبقاً إلى أداة تفليش pydfu.py المرفقة، مع عرض الـ IDE لأوامر تثبيت libusb/pyusb المطلوبة. أضاف ac248c0ec لفترة وجيزة ثنائيات dfu-util/dfu-prefix/dfu-suffix لـ Linux x86_64، لكن 324f243f9 أزالها جميعاً بعد ذلك لصالح pydfu.py. لا تُشحن أي ثنائيات dfu-util في الإصدار النهائي؛ يحزم static.pro مجلد بيانات pydfu لجميع المضيفين غير العاملين بـ Windows بينما يستخدم Windows مسار DfuSe المرفق (ac248c0ec، 324f243f9، 7837a07da).

  • قواعد udev على Linux حُدّثت لاستخدام مطابقة SUBSYSTEM (الكاميرا VID 1209/PID abd1 tty وSTM DFU 0483/df11) بحيث تعمل روابط الجهاز وDFU الرمزية على Linux بنظام 32 بت، وحُمي اتباع طلبات الشبكة لإعادة التوجيه لإصدارات Qt الأقدم (194acd828).

التغييرات الجذرية

أُزيلت ثنائيات dfu-util المستقلة المرفقة لـ macOS وLinux واستُبدلت بأداة تفليش Python pydfu.py. على macOS وLinux، يتطلب تفليش البرنامج الثابت عبر DFU الآن تثبيتاً لمرة واحدة لـ Python بالإضافة إلى libusb وpyusb (يعرض الـ IDE أوامر MacPorts/HomeBrew/apt-get الدقيقة). ويواصل Windows استخدام مسار DfuSe المرفق. لا توجد أي تغييرات جذرية في واجهة برمجة البرامج النصية، وقاعدة Qt Creator 4.0.2 لم تتغير.