كاميرا ITS-in-a-Box

تعد مجموعة اختبار صورة كاميرا Android (ITS) جزءًا من أداة التحقق من مجموعة اختبار توافق Android (CTS) وتتضمن اختبارات للتحقق من محتوى الصورة. يدعم CTS Verifier أتمتة اختبار ITS باستخدام Camera ITS-in-a-box ؛ يغطي دعم الاختبارات اليدوية جميع عوامل شكل جهاز Android.

يتضمن ITS-in-a-box المزايا التالية:

  • التشغيل الآلي. لا حاجة لتدخل بشري أثناء الاختبار.
  • استكشاف الأخطاء وإصلاحها بسهولة. يؤدي اتساق بيئة الاختبار إلى عدد أقل من أخطاء الإعداد ويزيد من إمكانية التكاثر.
  • كفاءة. تعمل القدرة على إعادة المحاولة للكاميرا / المشهد الفردي على تحسين كفاءة تنفيذ الاختبار.

ابدء

يتكون ITS-in-a-box من صندوق بلاستيكي مقطوع بالليزر من رسومات التصميم بمساعدة الكمبيوتر (CAD) ولوح تخطيطي وجهاز قيد الاختبار (DUT). يمكنك استخدام مجال الرؤية الواسع (WFoV) ITS-in-a-box ، القادر على اختبار كاميرات WFoV (FoV> 90 درجة) وكاميرات RFoV (FoV <90 درجة) ، أو المجال العادي لـ -عرض (RFoV) ITS-in-a-box.

لبدء استخدام Camera ITS-in-a-box:

  1. شراء أو بناء على WFoV أو RFoV ITS-في-مربع.
  2. تكوين قرص مع كاميرا برنامج ITS.
  3. اختبارات تشغيل .
  4. الحصول على نتائج من DUT.

تكوين الجهاز اللوحي

يقدم هذا القسم إرشادات خطوة بخطوة لإنشاء قرص للاستخدام مع كاميرا ITS الاختبارات تقع في CameraITS الدليل. تستخدم هذه التعليمات جهاز Pixel C كمثال على الجهاز اللوحي. للحصول على معلومات حول متطلبات اللوحية والتوصيات، انظر متطلبات اللوحي .

ملاحظة: كاميرا ITS البرامج النصية بيثون تلقائيا تعيين الخيارات التالية على قرص بالنسبة لك:
الإعدادات> العرض> السكون> بعد 30 دقيقة من عدم النشاط
السطوع التكيفي> إيقاف

  1. اشحن الجهاز اللوحي وقم بتشغيله. إذا طُلب منك إعداد حساب ، فتخطه (لا تتطلب Camera ITS أي حساب مقترن بالكمبيوتر اللوحي).
  2. قم بتحديث الجهاز اللوحي إلى Android 7.0 أو أعلى. Android 6.x والإصدارات الأقل لا تدعم Camera ITS.
  3. تمكين وضع المطور .
  4. عودة إلى إعدادات وخيارات المطور مختارة.
    تمكين الخيارات
    • تشغيل
    • إبق متيقظا
    • USB التصحيح (وهذا يسمح المضيف لتشغيل قرص في وضع التصحيح عند توصيل الجهاز اللوحي المضيف للمرة الأولى، والمطالبات قرص السماح USB التصحيح؟ إذا لم اللوحية عرض التصحيح موجه، قطع ثم إعادة توصيل لوح.)
    تعطيل الخيارات
    • تحديثات النظام التلقائية
    • تحقق من التطبيقات عبر USB
  5. تحديد DUT والرسم البياني معرفات عن طريق تشغيل $ adb devices إلى قائمة الأجهزة المتوفرة. لتحديد device_id و chart_id ، والمكونات والأجهزة افصل ومراقبة الأجهزة التي الاتصال وقطع.
  6. قم بإجراء ثلاث عمليات تشغيل اختبارية لمنع التلميحات ومطالبات المستخدم التي يمكن أن تحجب المخططات على شاشة الكمبيوتر اللوحي.
    1. ضع الجهاز اللوحي ووجهه لأعلى على منضدة (لا تقم بتوصيل الجهاز اللوحي باللوحة الخلفية للصندوق).
    2. قم بتشغيل الأمر التالي:
      python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
      
      مشاهد 2 و 3 تتطلب قرص لعرض صورة، وبالتالي فإن المطالبات قرص السماح محرك للوصول إلى الصور والوسائط وملفات على جهازك؟ . مسح هذا سريعة (ومنع المطالبات المستقبل) عن طريق الضغط على السماح.
    3. قم بتشغيل الأمر مرة أخرى. المطالبات قرص الاحتفاظ بنسخة من هذا الملف؟ ويقترح Google Drive. مسح هذا موجه (ومنع المطالبات المستقبل) عن طريق الضغط على أيقونة محرك الأقراص ثم إلغاء للتحميل القيادة.
    4. وأخيرا، تشغيل tools/run_all_tests.py وتؤكد أن المشاهد تتغير تلقائيا دورات النصي من خلال مشاهد مختلفة. بينما تفشل معظم الاختبارات (نظرًا لعدم توجيه الكاميرا إلى الرسم البياني) ، يمكنك التحقق من أن الجهاز اللوحي يتنقل بشكل صحيح عبر المشاهد دون عرض أي مطالبات أو نوافذ منبثقة أخرى على الشاشة.

إجراء الاختبارات

قبل تشغيل ITS-in-a-box ، تأكد من أن إعداد اختبارك يتضمن الأجهزة والبرامج التالية:

  • واحد (1) ITS-in-a-box
  • جهاز لوحي واحد (1) عالي الدقة مقاس 10 بوصات لعرض المشاهد ، S / N: 5811000011
  • واحد (1) DUT مثبت عليه تطبيق CTS Verifier 7.0_8 +. مثال DUT:
    • عدد (1) بكسل NOF26W لاختبار الكاميرا الخلفية (0) ، S / N: FA6BM0305016. لتثبيت التطبيق CTS متحقق، بفك android-cts-verifier.zip ثم تشغيل
      adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
      

تشغيل المشاهد القائمة على الكمبيوتر اللوحي

لتشغيل المشاهد من 0 إلى 4 و 6 وتغيير المشهد على الكاميرا الخلفية:

cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0

مثال:

الكاميرا 0 S / N: FA6BM0305016
الشكل 1. كاميرا 0 S / N: FA6BM0305016

إعادة المشاهد

يمكنك إعادة محاولة المشاهد لكاميرا واحدة:

  • لإعادة المحاولة مشاهد على كاميرا واحدة:
    python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
    

تشغيل المشهد 5

المشهد 5 يتطلب إعداد خاص مع إضاءة خاصة (لمزيد من التفاصيل، يرجى الرجوع إلى CameraITS.pdf في CTS متحقق، والتي يمكنك تحميل في اختبار توافق جناح التحميل ). يجب تشغيل المشهد 5 بشكل منفصل (خارج الصندوق).

مشهد الكاميرا 5
الشكل المشهد 2. كاميرا 5

لتشغيل المشهد الخامس للكاميرات الأمامية والخلفية على جهاز واحد:

python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5

الحصول على النتائج

يمكنك عرض النتائج أثناء الاختبار وحفظ النتائج المكتملة كتقرير.

  • عرض النتائج. لحفظ نتائج Camera ITS كتقرير:
    1. الصحافة ممر وحفظ التقرير.
      تقرير الكاميرا ITS
      الشكل 3. كاميرا تقرير ITS
    2. تقارير سحب من الجهاز:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. بفك ملف التقرير وعرض test_result.xml .
      تقارير الكاميرا ITS
      الرقم 4. كاميرا تقارير ITS

متطلبات الجهاز اللوحي

يجب أن يكون حجم عرض الأجهزة اللوحية حوالي 10 بوصات مع دقة شاشة أكبر من 1920 × 1200 بكسل. و brightness يجب تعيين قيمة في config.yml وفقا للنموذج قرص. يسرد الجدول أدناه الأجهزة اللوحية الموصى بها لاختبار ITS جنبًا إلى جنب مع إصدارات إصدار Android لـ DUT التي تعمل معها الأجهزة اللوحية.

جهاز عرض الحجم
(بوصة)
عرض الحجم
(بكسل)
أبعاد الجهاز اللوحي
(بوصة)
عرض
سطوع
أيدت DUT
نظام التشغيل
Lenovo Tab M10 Plus 10.3 1920 × 1200 9.61 × 6.03 × 0.32 192 Android 12+
Samsung Galaxy Tab A7 10.4 2000 × 1200 9.75 × 6.2 × 0.28 192 Android 12+
Chuwi Hi9 Air 10.1.2 تحديث 10.1 2560 × 1600 9.52 × 6.77 × 0.31 192 Android 7+
أسوس زينباد 3 9.7 2048 × 1536 9.47 × 6.44 × 0.28 192 Android 7+
هواوي ميدياباد ام 5 10.8 2560 × 1600 10.18 × 6.76 × 0.29 192 Android 7+
بكسل سي 10.2 2560 × 1800 9.53 × 7.05 × 0.28 96 Android 7+
سوني اكسبيريا زد 4 10.1 2560 × 1600 10 × 6.57 × 0.24 192 Android 7+

الأسئلة المتداولة (FAQs)

س 1: كيف يمكنني تحديد منصات الاختبار التي أحتاجها لجهازي؟

و RFoV ITS-في مربع مراجعة 1 اختبارات RFoV الكاميرات لمشهد 0 إلى مكان الحادث 4 اختبارات في CameraITS/tests الدليل. ويعرف RFoV إلى 60 درجة <فوف <90 درجة. بالنسبة لكاميرات FoV الأكبر حجمًا ، قد تظهر الأضواء في الصور أو قد تغطي المخططات مساحة صغيرة جدًا في FoV ، مما يؤثر على نتائج الاختبار.

و WFoV ITS في واحد في مربع مراجعة 2 اختبارات الكاميرات WFoV للمشهد 0 إلى مكان الحادث 4 اختبارات في CameraITS/tests الدليل. ويعرف WFoV كما فوف> = 90 درجة. إنها مطابقة وظيفيًا للمراجعة 1 ، لكنها أكبر. يمكن لجهاز الاختبار المراجعة 2 اختبار كل من كاميرات RFoV و WFoV في نظام Android 9 والإصدارات الأحدث.

في مربع استشعار الانصهار اختبارات المزامنة إطار الكاميرا / جيروسكوب تعويض توقيت وكاميرا متعددة الأنظمة مع الاختبارات في scenes=sensor_fusion . مطلوب توقيت الكاميرا / جيروسكوب إزاحة أقل من 1 مللي ثانية ل REALTIME العلم ميزة وVR / AR تطبيقات.

ويمكن اختبار الأجهزة متعددة الكاميرا مع تلاعب واحد بالنسبة لساكنة ITS الاختبارات وتلاعب استشعار الانصهار إذا كانت الكاميرا لديه REALTIME العلم الميزة.

يتم توفير مجموعة من أمثلة التكوينات في الجدول أدناه.

مثال كاميرا FoVs في الوقت الحالى؟ المنصات الموصى بها ملحوظات
1 75 درجة لا القس 1 أندرويد 7.0 أو أعلى
2 75 درجة نعم القس 1 + اندماج الاستشعار Android 9 أو أعلى
3 75 درجة + 95 درجة نعم Rev 2 + انصهار الاستشعار Android 9 أو أعلى

س 2: كيف يمكنني تحديد جهاز الاختبار المستخدم؟

لتعيين جهاز الاختبار الصحيح ، تأكد من صحة معلمة مسافة الرسم البياني. تبلغ مسافة الرسم البياني لجهاز اختبار rev1 (RFoV) 31 سم ، بينما تبلغ مسافة الرسم البياني لجهاز rev2 (WFoV) مسافة 22 سم. بشكل افتراضي ، يتم تعيين مسافة الرسم البياني على 31 سم.

Android 10 إلى Android 11

للتعرف على اختبار تلاعب الصحيح في الروبوت من 10 إلى 11 إضافة dist العلم في سطر الأوامر. القيمة الافتراضية ل dist هو 31 . قم بتشغيل الأمر التالي لتغيير chart_distance المعلمة.
python tools/run_all_tests.py ... chart=# dist=22

أندرويد 12

للتعرف على اختبار تلاعب الصحيح في الروبوت 12 يمكنك تحرير ملف config.yml لتغيير chart_distance المعلمة.
edit config.yml
chart_distance: 31.0 → chart_distance: 22.0

س 3: كيف يمكنني التحكم في سطوع الجهاز اللوحي؟

بشكل افتراضي ، يتم ضبط سطوع الجهاز اللوحي على 96.

لتغيير السطوع على الأجهزة اللوحية التي تعمل بنظام Android 7.0 حتى Android 9 ، قم بتشغيل:

edit tools/wake_up_screen.py
DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192

لتغيير السطوع على أقراص تشغيل الروبوت من 10 إلى 11، يمكن تغيير قيمة في سطر الأوامر عن طريق إضافة brightness العلم:

python tools/run_all_tests.py device=# camera=# chart=# brightness=192

لتغيير السطوع على الأجهزة اللوحية التي تعمل بنظام Android 12 ، قم بتشغيل:

edit config.yml
brightness: 96 → brightness: 192

س 4: كيف يمكنني تصحيح اختبار واحد؟

اختبارات يمكن تشغيل فردي لأغراض تصحيح الأخطاء، ولكنها لا تقيد النتائج إلى CtsVerifier.apk ما لم يتم تشغيل المشهد بأكمله.

لتشغيل مشهد فردي في Android 11 والإصدارات الأقدم:

  1. تحميل مشهد بإضافة scenes العلم في tools/run_all_tests.py :
    python tools/run_all_tests.py device=# camera=# chart=# scenes=#
    
  2. يتم تسجيل اضغط على Control + C لاختبارات توقف بعد المشهد كما تحميلها إلى stdout .

    إذا كان المشهد الصحيح موجودًا بالفعل على الشاشة ، فقم بتنشيط الشاشة:

    python tools/wake_up_screen.py screen=#
    
  3. قم بإجراء اختبار فردي.

    python tests/scene#/test_*.py device=# camera=#

    ثم يتم إنشاء المؤامرات في الدليل المحلي و stdout و stderr تطبع على الشاشة.

    للحصول على مزيد من المعلومات من أجل التصحيح، إضافة print البيانات إلى البرنامج النصي. لزيادة الانتاج اختبار من أجل التصحيح، إضافة debug=True العلم.

    python tests/scene#/test_*.py device=# camera=# debug=True

يتم طباعة النتائج على الشاشة المحلية ويتم حفظ الصور في الدليل المحلي بدلا من ولدت /tmp/tmp### دليل عند تشغيل tools/run_all_tests.py .

لتشغيل مشهد فردي في Android 12:

  1. تحرير config.yml الملف.

    edit config.yml
    camera: <camera-id> → camera:  0
    scene: <scene-name> → scene: scene1_1
  2. قم بإجراء الاختبار الفردي.

    python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
    

يتم طباعة النتائج في /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ دليل مرتبة حسب وقت التشغيل.

س 5: لماذا أحتاج إلى إجراء اختبارات فاشلة كمشهد كامل بدلاً من إعادة إجراء الاختبارات بشكل فردي؟

اختبارات يمكن تشغيل فردي لأغراض تصحيح الأخطاء، ولكنها لا تقيد النتائج إلى CtsVerifier.apk ما لم يتم تشغيل المشهد بأكمله.

تضمن Camera ITS أن تطبيقات الطرف الثالث لها واجهة كاميرا متوافقة. وعلى غرار وحدة الاختبار، كل اختبار يؤكد مواصفات واحدة في الكاميرا. للقبض على سلوك غير موثوق به ، من المتوقع أن تمر هذه الاختبارات كمجموعة لمشهد كامل. على سبيل المثال ، على الرغم من أن اختبارًا واحدًا غير موثوق به قد يجتاز إعادة تشغيل مشهد كامل ، إلا أنه من الصعب اجتياز عدة اختبارات غير موثوقة.

وكمثال على ذلك المدقع، والنظر في الحالة التي يكون فيها هناك 10 الاختبارات في مشهد أن كل لديه احتمال 50٪ من العائدين PASS . من خلال إجراء كل اختبار على حدة ، هناك احتمال كبير أن يتمكن المشغل من الحصول على الكاميرا لتمرير Camera ITS. ومع ذلك ، إذا تم إجراء الاختبارات بشكل مجمّع كمشهد ، فهناك فرصة بنسبة 0.1٪ فقط لاجتياز المشهد.

س 6: كيف أقوم بتشغيل مشهد واحد أو إعادة ترتيب مشاهد الجري؟

افتراضيا، النصي tools/run_all_tests.py تدير جميع المشاهد في النظام. ومع ذلك، ومشاهد يمكن تشغيل بشكل فردي أو في الترتيب المحدد، وإبلاغها إلى CtsVerifier.apk .

لتشغيل مشهد فردي (على سبيل المثال ، مشهد 2) أو تشغيل أكثر من مشهد بترتيب معين في Android 11 أو أقل:

python tools/run_all_tests.py device=# camera=# chart=# scenes=2
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2

لتشغيل مشهد فردي أو تشغيل أكثر من مشهد بترتيب معين في Android 12:

python tools/run_all_tests.py scenes=2
python tools/run_all_tests.py scenes=3,2

يتم تعيين معلمات إضافية في config.yml الملف.

س 7: فشل عدد من اختبارات المشهد 1 مع إعداد الجهاز اللوحي ولكنها تمر بمخطط ورقي. ما هو الخطأ؟

تأكد من أن الكمبيوتر اللوحي وبيئة الاختبار تفي بالمواصفات التالية.

مواصفات الجهاز اللوحي

تأكد من أن الجهاز اللوحي يلبي المواصفات التالية:

  • حجم الشاشة (بوصة): 10 بوصات
  • حجم الشاشة (بكسل): أكبر من 1920 × 1200 بكسل

لمزيد من التفاصيل، انظر متطلبات اللوحي .

سطوع الجهاز اللوحي

قد لا تحصل الاختبارات على النتائج الصحيحة إذا كان سطوع شاشة الكمبيوتر اللوحي منخفضًا جدًا.

لمزيد من التفاصيل، انظر كيف يمكنني التحكم في سطوع قرص؟

مستوى إضاءة الصندوق (يتطلب مقياس لوكس)

تأكد من أن قيمة لوكس المستهدفة عند فتح الجهاز اللوحي تتراوح بين 100 و 300.

إذا كان مستوى لوكس مرتفع جدا، scene1/test_param_flash_mode.py عوائد FAIL . إذا كان مستوى اللوكس منخفضًا جدًا ، فستفشل اختبارات متعددة.

س 8: كيف أقوم بتصحيح أخطاء اختبارات اندماج المستشعرات؟

  1. تأكد من أن كنت في dialout المجموعة.

    groups | egrep ‘dialout'
  2. تأكد من توصيل وحدة التحكم في اندماج المستشعر عن طريق تحديد ما إذا كانت تقنية Microchip متصلة بمنفذ USB.

    lsusb
    …
    Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
    …
    
  3. قم بإجراء الاختبار عدة مرات للحصول على توزيع لمحاولات الاختبار باستخدام الأوامر التالية.

    في Android 11 أو أقل:

    python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
    

    في Android 12:

    python tools/run_sensor_fusion_box.py num_runs=10
    

    يتم تعيين معلمات إضافية في config.yml الملف.

    مخرجات تشغيل هي في /tmp/tmp### المجلد الذي تم إنشاؤه تحت sensor_fusion_# المجلدات، حيث # هو رقم التشغيل. الأسباب الشائعة للفشل هي:

    1. لم يتم توسيط الهاتف بشكل صحيح.
    2. لم يتم العثور على ميزات كافية في الصورة (غالبًا ما تكون مشكلة في FoV أو في الإضاءة).
    3. عاد FAIL غير صحيح، ويجب تصحيح توقيت تعويض بين الكاميرا وجيروسكوب.

س 9: ما المعلومات التي يجب تضمينها عند الإبلاغ عن خطأ في الاختبار؟

عند الإبلاغ عن خطأ في الاختبار ، قم بتضمين الملفات والصور التي تم إنشاؤها للاختبار.

  1. إذا قمت بتشغيل الاختبار من خلال tools/run_all_tests.py ، إرفاق مضغوط /tmp/ الدليل إلى علة.
  2. إذا قمت بإجراء الاختبار بمفرده ، فقم بإرفاق جميع مخرجات الشاشة والصور التي تم إنشاؤها إلى الخطأ.

قم أيضًا بتضمين تقرير الشوائب. بعد فشل الاختبار المعني ، استخدم الأمر التالي لإنشاء تقرير خطأ وإرفاق ملف مضغوط تم إنشاؤه بالخلل.

adb -s device_id bugreport

س 10: كيف يمكنني إزالة أشرطة التنقل على الأجهزة اللوحية مقاس 16:10 التي تحجب المشهد؟

بالنسبة للأجهزة اللوحية التي تحتوي على نسب عرض إلى ارتفاع تبلغ 16:10 (أو أكبر) ، يمكن أن يحجب شريط التنقل جزءًا من المشهد. لإخفاء شريط التنقل ، استخدم أمر adb التالي للكمبيوتر اللوحي.

adb -s device_id shell settings put global policy_control immersive.full=*