בדיקת תמונות מהמצלמה באמצעות אוטומציה

חבילת הבדיקה של תמונות במצלמת Android‏ (ITS) היא חלק מ-CTS Verifier (חבילת הבדיקה של תאימות Android‏) וכוללת בדיקות שמאמתות את תוכן התמונה. ‫CTS Verifier תומך באוטומציה של בדיקות ITS באמצעות Camera ITS-in-a-box. התמיכה בבדיקות ידניות כוללת את כל גורמי הצורה של מכשירי Android.

היתרונות של ITS-in-a-box כוללים:

  • פעולות אוטומטיות. לא נדרשת התערבות אנושית במהלך הבדיקה.
  • פתרון בעיות בקלות. עקביות בסביבת הבדיקה מובילה לפחות שגיאות בהגדרה ומגדילה את יכולת השחזור.
  • יעילות. היכולת לנסות שוב עבור מצלמה או סצנה ספציפיות משפרת את היעילות של ביצוע הבדיקה.

בחירת ה-Rig

מערכת ITS-in-a-box מורכבת מקופסת פלסטיק שנחתכת בלייזר משרטוטים של תכנון בעזרת מחשב (CAD), מלוח גרפי וממכשיר שנבדק (DUT). בטבלה הבאה מפורטים המפרטים והתכונות של ערכות ה-ITS-in-a-box השונות שזמינות. כדי לבחור את המערכת המתאימה, צריך לקחת בחשבון את שדה הראייה הספציפי ואת מרחק המיקוד המינימלי של המכשיר הנבדק. למערכות מצלמה עם שדה ראייה של 60 עד 110 מעלות ומרחק מיקוד מינימלי של 22 עד 31 ס"מ, מומלץ להשתמש במתקן בסיס מודולרי בגלל יכולת ההתאמה שלו. אם מערכת המצלמה כוללת עדשת טלפוטו עם מרחק פוקוס מינימלי בין 31 ס"מ ל-110 ס"מ, מומלץ להשתמש במתקן מודולרי עם בסיס ועם הארכה לטלפוטו, שמתאימים למרחק הפוקוס של העדשה. תוספות טלסקופיות זמינות באורכים של 50 ס"מ עד 90 ס"מ.

Rig מרחק התרשים טווח שדה הראייה (FoV) של המצלמה במכשיר הנבדק (משוער) תכונות
Modular base rig ‫22 ס"מ ‫60° - 120°
  • טביעת רגל קטנה יותר
  • חיתוך גדול של הצמצם בחלק הקדמי מאפשר בדיקה של מערכת מרובת מצלמות ללא חיתוך חסימה של מצלמות משניות
  • אפשר לסובב את המערכת ב-90°
  • בסיס מודולרי וציוד הרחבה טלסקופי ‫22 ס"מ עד 110 ס"מ* ‫10° – 120°
  • פתח גדול בחלק הקדמי
  • תמיכה בבדיקת מצלמות עם מרחק מינימלי ארוך יותר למיקוד (רוב מצלמות הטלה)
  • אפשר לשנות את אורך התוסף בהתאם למרחקים שונים בתרשים.
  • WFoV ITS-in-a-box ‫22 ס"מ ‫60° - 120°
  • שטח גדול שמאפשר הרבה מיקומי הרכבה של מכשירים נבדקים
  • תמיכה במכשירים גדולים לבדיקה, כמו טאבלטים
  • RFoV ITS-in-a-box ‫31 ס"מ ‫60° - 90°
  • לוח תרשימים
  • מערכת תאורה פנימית
  • Gen2 ITS-in-a-box ‫31 ס"מ ‫60° - 90°
  • תרשים על נייר
  • מערכת תאורה פנימית
  • כדי לקבוע את המערך האופטימלי עבור DUT, בטבלה הבאה מופיעות דוגמאות לצילומי תמונות עבור שילובים שונים של מרחקי תרשים ואחוזים של שינוי קנה מידה של הסצנה באמצעות מצלמה עם שדה ראייה של 25° ומרחק מיקוד מינימלי של 80 ס"מ. בדוגמה הזו, בסיס מודולרי עם הארכה של 30 ס"מ או 50 ס"מ, שיוצר מרחק של 50 ס"מ או 80 ס"מ בין התרשים ללוח, הוא המתאים ביותר. התמונה שצולמה במרחק של 31 ס"מ מהתרשים מטושטשת מדי, וסביר להניח שהיא תוביל לכישלונות בבדיקה.
    מרחק התרשים אחוז שינוי הגודל של הסצנה תמונה
    ‫31 ס"מ 33%
    ‫50 ס"מ 50%
    ‫80 ס"מ 100%

    כדי להתחיל להשתמש ב-Camera ITS-in-a-box:

    1. רכישה או בנייה של מודולרי, WFoV או RFoV ושל sensor Fusion ITS-in-a-box.
    2. הגדרת טאבלט באמצעות תוכנת Camera ITS.
    3. מריצים בדיקות.
    4. קבלת תוצאות מהמכשיר הנבדק.

    הגדרת הטאבלט

    בקטע הזה מוסבר איך מגדירים טאבלט לשימוש ב בדיקות ITS של המצלמה שנמצאות בספרייה CameraITS. ההוראות האלה מתייחסות ל-Pixel C כדוגמה לטאבלט. מידע על הדרישות וההמלצות לטאבלטים מופיע במאמר דרישות לטאבלטים.

    הערה: סקריפטים של Python ל-Camera ITS מגדירים אוטומטית את האפשרויות הבאות בטאבלט:
    הגדרות > תצוגה > מצב שינה > אחרי 30 דקות של חוסר פעילות
    בהירות אוטומטית > מושבת

    1. טוענים את הטאבלט ומפעילים אותו. אם מוצגת בקשה להגדרת חשבון, מדלגים עליה (אין צורך בחשבון שמשויך לטאבלט כדי להשתמש ב-Camera ITS).
    2. מעדכנים את הטאבלט ל-Android 7.0 ומעלה. גרסה Android 6.x ומטה לא תומכות ב-Camera ITS.
    3. מפעילים את מצב הפיתוח.
    4. חוזרים אל הגדרות ובוחרים באפשרות אפשרויות למפתחים.
      הפעלת אפשרויות
      • מופעל
      • הישאר ער
      • ניפוי באגים ב-USB (האפשרות הזו מאפשרת למארח להריץ את הטאבלט במצב ניפוי באגים. כשמחברים את הטאבלט למארח בפעם הראשונה, בטאבלט מופיעה ההודעה האם לאפשר ניפוי באגים ב-USB? אם בטאבלט לא מוצגת ההודעה על ניפוי באגים, מנתקים את הטאבלט ומחברים אותו מחדש.)
      השבתת אפשרויות
      • עדכוני מערכת אוטומטיים
      • אמת אפליקציות באמצעות USB
    5. מריצים את הפקודה $ adb devices כדי להציג רשימה של מכשירים זמינים ולקבוע את מזהי ה-DUT והתרשים. כדי לזהות את 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 נדרשת הצגת תמונה בטאבלט, ולכן מוצגת ההודעה הבאה: לתת ל-Drive הרשאת גישה לתמונות, למדיה ולקבצים במכשיר?. כדי לסגור את ההודעה הזו (ולמנוע הצגה של הודעות כאלה בעתיד), לוחצים על אישור.
      3. מריצים את הפקודה שוב. בטאבלט מופיעה ההודעה רוצה לשמור עותק של הקובץ הזה? עם הצעה לשימוש ב-Google Drive. כדי לסגור את ההודעה הזו (ולמנוע הצגה של הודעות דומות בעתיד), לוחצים על סמל Drive ואז על ביטול כדי לבטל את ההעלאה ל-Drive.
      4. לבסוף, מריצים את tools/run_all_tests.py ומוודאים שהסצנות משתנות אוטומטית כשהסקריפט עובר בין סצנות שונות. רוב הבדיקות נכשלות (כי המצלמה לא מכוונת לתרשים), אבל אפשר לוודא שהטאבלט עובר בין הסצנות בצורה תקינה בלי להציג הנחיות או חלונות קופצים אחרים על המסך.

    הרצת בדיקות

    לפני שמריצים את ITS-in-a-box, מוודאים שהגדרת הבדיקה כוללת את החומרה והתוכנה הבאות:

    • ערכת ITS-in-a-box אחת (1)
    • טאבלט אחד (1) ברזולוציה גבוהה בגודל 10 אינץ' להצגת סצנות, מספר סידורי: 5811000011
    • מכשיר אחד (1) שנבדק (DUT) שמותקנת בו אפליקציית CTS Verifier בגרסה 7.0_8 ומעלה. דוגמה ל-DUT:
      • ‫Pixel NOF26W אחד (1) לבדיקת המצלמה האחורית(0), מספר סידורי: FA6BM0305016. כדי להתקין את אפליקציית CTS Verifier, מבטלים את הדחיסה של android-cts-verifier.zip ואז מריצים
        adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
        

    הפעלת סצנות בטאבלט

    כדי להפעיל את סצנות 0 עד 4, 6 ואת scene_change במצלמה האחורית:

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

    דוגמה:

    מספר סידורי של מצלמה 0: FA6BM0305016
    איור 1. Camera 0 S/N: FA6BM0305016

    ניסיון חוזר ליצירת סצנות

    אפשר לנסות לצלם שוב סצנות במצלמה אחת:

    • כדי לנסות שוב סצנות במצלמה אחת:
      python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
      

    הפעלת סצנה 5

    סצנה 5 דורשת הגדרה מיוחדת עם תאורה ספציפית (פרטים מופיעים ב-CameraITS.pdf ב-CTS Verifier, שאפשר להוריד מCompatibility Test Suite Downloads). צריך להריץ את סצנה 5 בנפרד (מחוץ לתיבה) ועם TEST_BED_MANUAL testbed.

    סצנת מצלמה 5
    איור 2. סצנת מצלמה 5

    כדי להפעיל את סצנה 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. דוח Camera ITS
      2. שליפת דוחות מהמכשיר:
        adb -s FA6BM0305016 pull /sdcard/verifierReports
        
      3. מבטלים את דחיסת קובץ הדוח ומציגים את test_result.xml.
        דוחות ITS של מצלמות
        איור 4. דוחות של Camera ITS

    דרישות לגבי טאבלטים

    ב-Android מגרסה 15 ואילך, טאבלטים שמשמשים להצגת תרשים ITS צריכים להיות ברשימת הטאבלטים המותרים הבאה. רשימת הטאבלטים שתומכים בבדיקה של סצנות בתנאי תאורה חלשים מופיעה במאמר טאבלטים נתמכים לצילום סצנות בתנאי תאורה חלשים. ב-Android מגרסה 14 ומטה, אפשר לעיין בדרישות לטאבלטים עם Android מגרסה 14 ומטה.

    הטבליות ברשימת ההיתרים נבחרות על סמך הקריטריונים הבאים:

    • גודל התצוגה של כ-10 אינץ' עם רזולוציית מסך של יותר מ-‎1,920 x 1,200 פיקסלים.
    • אסור שיהיה הבהוב שנמדד כתוצאה מהעמעום של המסך שנשלט על ידי אפנון רוחב הפולס (PWM).
    • יכול לבצע פקודות adb שנשלחות על ידי בדיקות ITS ולהציג תמונות של תרשימים עם בהירות מסך לפי ההוראות.

    צריך להגדיר את הערך של brightness ב-config.yml בהתאם לדגם הטאבלט. כדי לדעת אם דגם הטאבלט שלכם תואם לשם מכשיר ברשימת ההיתרים, מריצים את פקודת adb‏ adb shell getprop | grep 'ro.product.device' כדי להדפיס את הערך ro.product.device.

    מכשיר גודל התצוגה
    (באינצ'ים)
    גודל התצוגה
    (בפיקסלים)
    מידות הטאבלט
    (אינצ'ים)
    בהירות
    המסך
    שם המכשיר
    (ro.product
    .device)
    גרסת מערכת ההפעלה של הטאבלט
    ‫Google
    Pixel C
    ‫10.2 2560 x 1800 ‫9.53 x 7.05 x 0.28 96 דרקון ‫Android 6 ואילך
    Honor
    Pad 8
    11 ‎2,000 x 1,200 ‫10.18 x 6.76 x 0.29 192 HNHEY-Q 12 ‏Android
    Honor
    Pad 20
    12.1 ‫3,000 x 1,872 ‫10.91 x 7.06 x 0.25 96 HNHEY4-Q, HNHEY4-Q1 Android 16
    Honor
    Pad V9
    ‫11.5 2800 x 1840 ‫10.2 x 6.93 x 0.24 192 HNROL-M, HNROL-M1 Android 15
    Huawei
    MediaPad m5
    10.8 ‎2,560 x 1,600 ‫10.18 x 6.76 x 0.29 192 HWCMR09 ‫Android 8 ואילך
    Lenovo
    Tab M10 Plus
    ‫10.3 ‎1,920 x 1,200 ‫9.61 x 6.03 x 0.32 192 X606F ‫Android מגרסה 9 ואילך
    Lenovo
    Tab P11
    11 ‎2,000 x 1,200 ‫10.17 x 6.42 x 0.30 192 J606F ‫Android 11 ואילך
    Lenovo
    Tab P11 Gen2
    ‫11.5 ‎2,000 x 1,200 ‫10.59 x 6.67 x 0.29 192 TB350FU ‫Android 13 ואילך
    Nokia
    T21
    ‫10.4 ‎2,000 x 1,200 ‫9.74 x 6.19 x 0.30 192 AGTA ‫Android 12 ואילך
    ‫Samsung
    Galaxy Tab A7
    ‫10.4 ‎2,000 x 1,200 ‫9.75 x 6.2 x 0.28 192 gta4lwifi ‫Android 10 ואילך
    ‫Samsung
    Galaxy Tab A8
    10.5 ‎1,920 x 1,200 ‫9.72 x 6.73 x 0.27 192 gta8wifi ‫Android 11 ואילך
    ‫Samsung
    Galaxy Tab A9+‎
    11 ‎1,920 x 1,200 ‫10.12 x 6.64 x 0.27 192 gta9pwifi ‫Android 13 ואילך
    Samsung
    Galaxy Tab S10 FE
    11 2304 x 1440 ‫10.01 x 6.53 x 0.24 192 gts10fewifi, gts10fe ‫Android 15 ואילך
    Vivo
    Pad2
    12.1 ‎2,800 x 1,968 ‫10.47 x 7.54 x 0.26 192 DPD2221 ‫Android 13 ואילך
    Xiaomi
    Pad 5
    11 ‎2,560 x 1,600 ‫10.18 x 6.76 x 0.29 192 nabu ‫Android 13 ואילך
    ‫Xiaomi
    Redmi
    Pad
    ‫10.61 ‎2,000 x 1,200 ‫9.86 x 6.22 x 0.28 192 yunluo ‫Android 14 ואילך
    Xiaomi
    Redmi
    Pad SE
    11 ‎2,560 x 1,600 ‫10.06 x 6.58 x 0.29 192 xun ‫Android 13 ואילך

    טאבלטים נתמכים לצילום בסביבה חשוכה

    בטבלה הבאה מפורטים טאבלטים שתומכים בבדיקה של סצנות בתנאי תאורה חלשים. הטאבלטים האלה יכולים להגיע לרמת הבהירות שנדרשת לצילום סצנות בתנאי תאורה חלשים, וכך לאפשר למכשיר הנבדק לחשוף את התרשים בצורה נכונה.
    מכשיר שם המכשיר (ro.product.device) גרסת מערכת ההפעלה של הטאבלט
    Honor
    Pad V9
    HNROL-M1 ‫Android 15 ואילך
    Huawei
    MediaPad m5
    HWCMR09 ‫Android 8 ואילך
    Samsung Galaxy Tab A8 gta8wifi ‫Android 11 ואילך
    Samsung Galaxy Tab A9+‎ gta9pwifi ‫Android 13 ואילך
    Xiaomi Pad 5 nabu ‫Android 13 ואילך
    Xiaomi
    Redmi
    Pad SE
    xun ‫Android 13 ואילך

    טאבלטים נתמכים לצפייה בסצנות עם מגוון רחב של צבעים

    בטבלה הבאה מפורטים טאבלטים שתומכים בבדיקה של סצנות עם טווח צבעים רחב. למכשירים האלה יש מסכים שתומכים בטווח הצבעים הרחב Display P3 ובמצבי הצבע הנדרשים.
    מכשיר שם המכשיר (ro.product.device) גרסת מערכת ההפעלה של הטאבלט
    Honor
    Pad 20
    HNHEY4-Q, HNHEY4-Q1 ‫Android מגרסה 16 ואילך
    Samsung
    Galaxy Tab S10 FE
    gts10fewifi, gts10fe ‫Android מגרסה 15 ואילך

    דרישות לטאבלטים עם Android מגרסה 14 ומטה

    גודל התצוגה של הטאבלטים צריך להיות בערך 10 אינץ' ורזולוציית המסך צריכה להיות גדולה מ-‎1920 x 1200 פיקסלים. אסור שהטאבלט ישתמש באפנון רוחב פולס (PWM) כדי להגדיר את רמת הבהירות. צריך להגדיר את הערך brightness במאפיין config.yml בהתאם לדגם הטאבלט. בטבלה הבאה מפורטים הטאבלטים המומלצים לבדיקות ITS, לצד גרסאות Android שמתאימות למכשיר הנבדק.

    מכשיר גודל התצוגה
    (באינצ'ים)
    גודל התצוגה
    (בפיקסלים)
    מידות הטאבלט
    (אינצ'ים)
    בהירות
    המסך
    הצגת
    ביטים
    מערכת הפעלה נתמכת של
    DUT
    מערכת הפעלה נתמכת בטאבלט
    Samsung
    Galaxy Tab A8
    10.5 ‎1,920 x 1,200 ‫9.72 x 6.37 x 0.27 192 8 ‫Android 13 ואילך ‫Android 11 ואילך
    Xiaomi
    Pad 5
    11 ‎2,560 x 1,600 ‫10.03 x 6.55 x 0.27 1024 11 Android 12 ואילך ‫Android 11 בלבד
    Lenovo
    Tab M10 Plus
    ‫10.3 ‎1,920 x 1,200 ‫9.61 x 6.03 x 0.32 192 8 Android 12 ואילך ‫Android מגרסה 9 ואילך
    ‫Samsung
    Galaxy Tab A7
    ‫10.4 ‎2,000 x 1,200 ‫9.75 x 6.2 x 0.28 192 8 ‫Android 12 ואילך ‫Android 10 ואילך
    ‫Chuwi
    Hi9 Air 10.1
    10.1 ‎2,560 x 1,600 ‫9.52 x 6.77 x 0.31 192 8 ‫Android 7 ואילך ‫Android 8 ואילך
    Asus
    ZenPad 3
    9.7 ‎2,048 x 1,536 ‫9.47 x 6.44 x 0.28 192 8 ‫Android 7 ואילך ‫Android מגרסה 6 ואילך
    Huawei
    MediaPad m5
    10.8 ‎2,560 x 1,600 ‫10.18 x 6.76 x 0.29 192 8 ‫Android 7 ואילך ‫Android 8 ואילך
    ‫Google
    Pixel C
    ‫10.2 2560 x 1800 ‫9.53 x 7.05 x 0.28 96 8 ‫Android 7 ואילך ‫Android מגרסה 6 ואילך
    Sony
    Xperia Z4
    10.1 ‎2,560 x 1,600 ‫10 x 6.57 x 0.24 192 8 ‫Android 7 ואילך ‫Android 5 ואילך

    שאלות נפוצות

    שאלה 1: איך קובעים אילו מתקני בדיקה נדרשים למכשיר?

    בדיקות ה-RFoV של ITS-in-a-box revision 1 בודקות מצלמות RFoV לבדיקות סצנות בטאבלט בספרייה CameraITS/tests. ה-RFoV מוגדר כ-60° < FoV < 90°. במצלמות עם FoV גדול יותר, יכול להיות שהאורות יופיעו בתמונות או שהתרשימים יכסו אזור קטן מדי ב-FoV, מה שישפיע על תוצאות הבדיקה.

    בדיקות WFoV ITS-in-a-box revision 2 בודקות מצלמות WFoV לבדיקות סצנות בטאבלט בספרייה CameraITS/tests. ה-WFOV מוגדר כ-FoV >= 90°. מערכת הבדיקה בגרסה 2 זהה מבחינת הפונקציונליות לגרסה 1, אבל גדולה יותר. מערכת הבדיקה מגרסה 2 יכולה לבדוק מצלמות עם שדה ראייה רחב (WFOV) ושדה ראייה רגיל (RFOV) ב-Android מגרסה 9 ואילך. בהתחשב בטביעת הרגל הגדולה יותר, גרסה 2 היא אידיאלית אם ה-DUT הוא טאבלט

    הבדיקות של מצלמות עם שדה ראייה רחב (WFOV) לתרחישי בדיקה של טאבלטים מתבצעות באמצעות המתק המודולרי הבסיסי בספרייה CameraITS/tests. הגדרה של WFoV: FoV >= 90°. המתק המודולרי יכול לבדוק מצלמות RFoV ומצלמות WFoV במכשירים עם Android מגרסה 9 ואילך. הוא תומך גם במתקן להרחבת הטלה, שאפשר לחבר כדי לבדוק מצלמות טלה עם מרחק מיקוד מינימלי ארוך יותר. הבסיס המודולרי זהה מבחינת הפונקציונליות ל-WFoV ITS-in-a-box אבל הוא קטן יותר.

    התיבה Sensor fusion בודקת את ההפרש בין התזמון של המצלמה לבין התזמון של הג'ירוסקופ, ואת הסנכרון של מערכות מרובות מצלמות עם בדיקות ב-scenes=sensor_fusion. כדי להשתמש ב-feature flag‏ REALTIME, נדרש היסט תזמון של המצלמה/הגירוסקופ של פחות מ-1 אלפית השנייה.

    אפשר לבדוק מכשירים עם כמה מצלמות באמצעות מתקן יחיד לבדיקות ITS סטטיות ומתקן של שילוב חיישנים אם המצלמה כוללת את דגל התכונה REALTIME.

    בטבלה הבאה מופיעות כמה דוגמאות להגדרות.

    מרחק מוקד מינימלי שדות ראייה של מצלמות REALTIME? ריגים מומלצים הערות
    ‫31 ס"מ – 22 ס"מ 24° לא בסיס מודולרי, WFoV או RFoV ‫Android מגרסה 7.0 ואילך
    ‫31 ס"מ – 22 ס"מ 24° כן בסיס מודולרי, WFoV או RFoV ומיזוג חיישנים ‫Android מגרסה 9 ואילך
    ‫22 ס"מ או פחות ‫24° + 35° כן בסיס מודולרי או WFoV ומיזוג חיישנים ‫Android מגרסה 9 ואילך
    ‫110 ס"מ – 22 ס"מ ‫75° + 95° + 20° כן בסיס מודולרי, עדשת טלה ותכונת מיזוג החיישנים ‫Android מגרסה 9 ואילך
    ‫110 ס"מ – 22 ס"מ ‫75° + 95° + 20° כן בסיס מודולרי, הרחבה טלסקופית, שילוב חיישנים ומערכת דור שני
    ‫22 ס"מ או פחות ‫75° + 95° טאבלט לא WFoV ‫Android מגרסה 9 ואילך

    שאלה 2: איך מציינים באיזה מתקן בדיקה נעשה שימוש?

    כדי להגדיר את מתקן הבדיקה הנכון, צריך לוודא שפרמטר המרחק בתרשים נכון. במתקן הבדיקה rev1 ‏ (RFoV) המרחק מהתרשים הוא 31 ס"מ, ובמתקן הבדיקה rev2 ‏ (WFoV) המרחק מהתרשים הוא 22 ס"מ. כברירת מחדל, המרחק מהתרשים מוגדר ל-31 ס"מ.

    Android 10 עד Android 11

    כדי לזהות את מערכת הבדיקה הנכונה ב-Android 10 עד 11, מוסיפים את הדגל dist בשורת הפקודה. ערך ברירת המחדל של dist הוא 31. מריצים את הפקודה הבאה כדי לשנות את הפרמטר chart_distance.
    python tools/run_all_tests.py ... chart=# dist=22
    

    ‫Android מגרסה 12 ואילך

    כדי לזהות את מערכת הבדיקה הנכונה ב-Android 12 ומעלה, אפשר לערוך את הקובץ config.yml כדי לשנות את הפרמטר chart_distance.
    edit config.yml
    chart_distance: 31.0 → chart_distance: 22.0
    

    שאלה 3: איך שולטים בבהירות של הטאבלט?

    כברירת מחדל, הבהירות בטאבלט מוגדרת ל-96.

    כדי לשנות את הבהירות בטאבלטים עם Android מגרסה 7.0 עד גרסה 9, מריצים את הפקודה:

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

    כדי לשנות את הבהירות בטאבלטים עם Android מגרסה 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 מגרסה 12 ואילך:

    1. עורכים את קובץ config.yml.

      edit config.yml
      camera: <camera-id> → camera:  0
      scene: <scene-name> → scene: scene4
    2. מריצים את הבדיקה הספציפית.

      python tests/scene4/test_aspect_ratio_and_crop.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
      

    התוצאות מודפסות בספרייה /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ וממוינות לפי זמן הריצה.

    כדי להפעיל סצנה ספציפית ב-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.

    שאלה 5: למה צריך להריץ בדיקות שנכשלו כסצנה שלמה במקום להריץ אותן מחדש בנפרד?

    אפשר להריץ בדיקות בנפרד למטרות ניפוי באגים, אבל התוצאות לא מדווחות ל-CtsVerifier.apk אלא אם מריצים את כל הסצנה.

    מבחן התאימות של המצלמה (Camera ITS) מוודא שלאפליקציות של צד שלישי יש ממשק מצלמה תואם. בדומה לבדיקת יחידה, כל בדיקה בודקת מפרט יחיד במצלמה. כדי לזהות התנהגות לא מהימנה, הבדיקות האלה צריכות לעבור כקבוצה בסצנה שלמה. לדוגמה, יכול להיות שבדיקה לא אמינה אחת תעבור הרצה חוזרת של סצנה שלמה, אבל קשה שכמה בדיקות לא אמינות יעברו.

    כדוגמה קיצונית, נניח שיש 10 בדיקות בסצנה, שלכל אחת מהן יש הסתברות של 50% להחזיר PASS. אם מריצים כל בדיקה בנפרד, יש סיכוי גבוה שאפשר להעביר את המצלמה את בדיקת 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 אינצ'ים
    • גודל התצוגה (פיקסלים): יותר מ-‎1,920 x 1,200 פיקסלים

    פרטים נוספים זמינים במאמר בנושא דרישות לטאבלטים.

    בהירות הטאבלט

    יכול להיות שהתוצאות של הבדיקות לא יהיו נכונות אם בהירות המסך של הטאבלט נמוכה מדי.

    פרטים נוספים מופיעים במאמר בנושא איך שולטים בבהירות של הטאבלט.

    רמת התאורה בתיבה (נדרש מד לוקס)

    מוודאים שערך הלוקס של היעד בפתיחת הטאבלט הוא בין 100 ל-300.

    אם רמת הלוקס גבוהה מדי, הפונקציה scene1/test_param_flash_mode.py מחזירה FAIL. אם רמת הלוקס נמוכה מדי, כמה בדיקות ייכשלו.

    שאלה 8: איך מנפים באגים בבדיקות של שילוב חיישנים?

    1. חשוב לוודא שאתם נמצאים בקבוצה dialout.

      groups | egrep ‘dialout'
    2. כדי לוודא שבקר מיזוג החיישנים מחובר, בודקים אם Microchip Technology מחובר ליציאת ה-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. לא נמצאות מספיק תכונות בתמונה (לרוב מדובר בבעיה בשדה הראייה או בתאורה).
      3. הערך FAIL שמוחזר תקין, וצריך לתקן את ההפרש בין הזמן של המצלמה לבין הזמן של הג'ירוסקופ.

    שאלה 9: אילו פרטים צריך לכלול כשמדווחים על באג בבדיקה?

    כשמדווחים על באג בבדיקה, צריך לכלול את הקבצים והתמונות שנוצרו לבדיקה.

    1. אם הפעלתם את הבדיקה דרך tools/run_all_tests.py, צריך לצרף לבאג ספרייה /tmp/ מכווצת.
    2. אם הרצתם את הבדיקה לבד, עליכם לצרף לבאג את כל הפלט של המסך ואת התמונות שנוצרו.

    כדאי לצרף גם דוח על באג. אחרי שהבדיקה הרלוונטית נכשלת, משתמשים בפקודה הבאה כדי ליצור דוח על הבאג ומצרפים את קובץ ה-ZIP שנוצר לבאג.

    adb -s device_id bugreport
    

    שאלה 10: איך מריצים סצנת בדיקה של sensor_fusion עם מצלמה שיש לה מרחק מיקוד מינימלי שיוצר תמונות מטושטשות במרחק של 25 ס"מ מהתרשים?

    אם המצלמה לא מצליחה להתמקד במרחק של 25 ס"מ, צריך להסיר את לוח ההרכבה של התרשים מתיבת שילוב החיישנים. ממקמים את התרשים במרחק שבו המכשיר הנבדק יכול להתמקד ולשנות את chart_distance ב-config.yml למרחק הנמדד בין המכשיר הנבדק לבין התרשים. תמונה 5 מציגה דוגמה לאופן מדידת המרחק בתרשים במצב הזה.

    דוגמה לבדיקת TELE של sensor_fusion6
    איור 5. מדידת המרחק בתרשים עבור סצנת בדיקה של שילוב חיישנים
      edit config.yml
    chart_distance: 25 → chart_distance: DISTANCE_BETWEEN_DUT_AND_CHART
    

    ש11: איך מריצים סצנות בדיקה לטאבלט עבור מצלמה עם מרחק מיקוד מינימלי שיוצר תמונות מטושטשות במרחק של 31 ס"מ מהתרשים?

    אם המצלמה לא מצליחה ליצור תמונות חדות מספיק בבדיקה במרחק של 31 ס"מ (העומק של מתקן הבדיקה של RFoV), צריך להרכיב את המצלמה מול המתקן במרחק שיאפשר לסצנת התרשים למלא כ-60% משדה הראייה של המצלמה (FoV) עם תמונות חדות יותר. המרחק הזה יכול להיות קטן יותר ממרחק הפוקוס המינימלי של המצלמה. צריך להשאיר את chart_distance בתוך config.yml במרחק של 31 ס"מ. הקנה מידה של התרשים בטאבלט נקבע לפי שדה הראייה של המצלמה, כפי שמוצג בטבלה הבאה:

    שדה הראייה של המצלמה גורם קנה מידה של התרשים
    ‫60 > FoV > 40 0.67x
    ‫40 > FoV > 25 0.5x
    FoV < 25 0.33x

    ש12: באמצעות ה-API הלוגי של מצלמות מרובות, אילו בדיקות מופעלות על אילו מצלמות?

    אם המצלמה משתמשת ב- REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA, כל בדיקות ה-ITS הנתמכות מופעלות במצלמה הלוגית ברמה העליונה. קבוצת משנה של בדיקות ITS מופעלת במצלמות המשנה הפיזיות, והבדיקות האלה מפורטות ב-tools/run_all_tests.py בקבוע SUB_CAMERA_TESTS.