ทดสอบรูปภาพจากกล้องบนอุปกรณ์แบบพับได้

ตั้งแต่ Android 13 เป็นต้นไป Camera ITS จะรองรับการทดสอบอุปกรณ์พับได้ อุปกรณ์พับได้มีกล้องที่พร้อมใช้งานหรือไม่พร้อมใช้งานขึ้นอยู่กับว่าอุปกรณ์อยู่ในสถานะพับหรือกางออก

รหัสกล้องจะแตกต่างกันไปตามประเภท รุ่น และยี่ห้อของอุปกรณ์ และความพร้อมใช้งานของกล้องหน้าจริงจะแตกต่างกันไปตามสถานะ ด้วยเหตุนี้ Camera ITS จึงกำหนดฉากและชุดกล้องที่จะใช้ในการทดสอบแบบไดนามิก เนื่องจากต้องทดสอบกล้องทั้งในสถานะพับและกางออก การทดสอบอุปกรณ์พับได้จึงกำหนดให้ต้องติดตั้ง DUT ใหม่ในระหว่างกระบวนการทดสอบ

การทดสอบกล้องหน้าและกล้องหลัง

เซ็นเซอร์กล้องที่พร้อมใช้งานในอุปกรณ์พับได้จะแตกต่างกันไปตามสถานะของอุปกรณ์ ไม่ว่าจะเป็นสถานะพับหรือกางออก สำหรับอุปกรณ์พับได้ ความพร้อมใช้งานของกล้องหน้าจะแตกต่างกันไปตามสถานะ เช่น กล้องหน้าจะไม่พร้อมใช้งานในสถานะพับ เนื่องจากความพร้อมใช้งานของกล้องหน้ามีการเปลี่ยนแปลง จึงต้องทดสอบกล้องหน้าทั้งในสถานะพับและกางออก Camera ITS สันนิษฐานว่าความพร้อมใช้งานของกล้องหลังจะยังคงเหมือนเดิมไม่ว่าอุปกรณ์จะพับหรือกางออก ดังนั้นจึงต้องทดสอบกล้องหลังเพียงครั้งเดียว

Camera ITS จะกรองอุปกรณ์กล้องที่ไม่พร้อมใช้งานออกและอุปกรณ์กล้องจะไม่ปรากฏในรายการชุดกล้องและฉาก ทั้งนี้ขึ้นอยู่กับสถานะของอุปกรณ์

ตารางต่อไปนี้อธิบายลักษณะการทำงานของการทดสอบ Camera ITS สำหรับการวางแนวกล้องแต่ละแบบ

การวางแนวกล้อง ลักษณะการทำงานของการทดสอบ Camera ITS
กล้องหลัง ทดสอบกล้อง 1 ครั้งในสถานะพับหรือกางออก
กล้องหน้าหลัก ทดสอบกล้อง 1 ครั้งในสถานะพับและ 1 ครั้งในสถานะกางออก
กล้องหน้าจริง ทดสอบกล้องเฉพาะในสถานะที่กล้องพร้อมใช้งาน

ขั้นตอนการทดสอบ

ส่วนนี้อธิบายขั้นตอนการทดสอบกล้องสำหรับอุปกรณ์พับได้

ตั้งค่าอุปกรณ์

ดูข้อมูลการตั้งค่าได้ที่ การตั้งค่า

ให้สิทธิ์เข้าถึง API สำหรับการทดสอบ

คุณต้องให้สิทธิ์เข้าถึง API สำหรับการทดสอบก่อนที่จะเรียกใช้การทดสอบเพื่อให้ Camera ITS กำหนดได้ว่าอุปกรณ์เป็นอุปกรณ์พับได้หรือไม่ หากไม่ให้สิทธิ์ การเรียกใช้การทดสอบ Camera ITS จะทำให้แอปขัดข้อง

หากต้องการให้สิทธิ์ ให้เรียกใช้คำสั่ง ADB ต่อไปนี้ คุณต้องเรียกใช้คำสั่งนี้ 1 ครั้งสำหรับอุปกรณ์เครื่องเดียว หากติดตั้ง CTS Verifier อีกครั้งด้วยเวอร์ชันอื่น คุณต้องเรียกใช้คำสั่งอีกครั้ง

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier

ไฟล์การกำหนดค่า

หากต้องการระบุว่าอุปกรณ์เป็นอุปกรณ์พับได้ ให้เพิ่มพารามิเตอร์ foldable_device ในทั้ง tablet และ sensor_fusion testbed ในไฟล์ config.yml Camera ITS ใช้พารามิเตอร์นี้เพื่อกำหนดชุด camera_id และฉากสำหรับสถานะพับและกางออก

ต่อไปนี้เป็นตัวอย่างไฟล์ config.yml สำหรับอุปกรณ์พับได้

TestBeds:
  - Name: TABLET_SCENES
    # Test configuration for scenes[0:4, 6]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"     # "quotes" needed
      chart_loc_arg: ""
      camera: 0
      scene: scene2_a
  lighting_cntl: arduino    # can be "arduino" or "None"
  lighting_ch: 1
  foldable_device: "True"     # "False" for non-foldable DUTs

เริ่มการทดสอบ

หากต้องการเรียกใช้การทดสอบ ITS ในอุปกรณ์พับได้ ให้เรียกใช้คำสั่ง run_all_tests.py ดูรายละเอียดได้ที่ การเรียกใช้การทดสอบ

เมื่อเรียกใช้ Camera ITS ในอุปกรณ์พับได้ ระบบจะทดสอบกล้องหน้าหลักในทั้ง 2 สถานะ ได้แก่ สถานะพับและกางออก หากอุปกรณ์พับอยู่ ผลลัพธ์จะแสดงในตัวเลือก camera1_SCENE_NAME_folded ในแอป CTS Verifier โดยรหัสกล้องหน้าจริงบางรายการจะไม่พร้อมใช้งานและจะไม่ได้รับการทดสอบ ทั้งนี้ขึ้นอยู่กับสถานะของอุปกรณ์ คุณต้องทดสอบกล้องหลังในสถานะเดียวเท่านั้น ซึ่งควรเป็นสถานะพับ และผลลัพธ์ของกล้องหลังจะไม่มีคำต่อท้าย _folded

หากต้องการตรวจสอบว่าระบบเรียกใช้ฉากพับเมื่ออุปกรณ์พับอยู่และตรวจสอบสถานะของ DUT ที่พับได้ ให้เรียกใช้คำสั่งต่อไปนี้

adb shell cmd device_state state

เมื่อเรียกใช้การทดสอบในสถานะพับ Camera ITS จะแสดงข้อความในเทอร์มินัลเพื่อแจ้งให้ผู้ใช้ตั้งค่าอุปกรณ์ในกล่อง ITS อย่างถูกต้อง หากต้องการเรียกใช้การทดสอบต่อหลังจากได้รับข้อความแจ้ง ให้กด Enter

หากคุณเรียกใช้ฉากทั้งหมดในทั้งสถานะพับและกางออก ระบบจะเรียกใช้ฉากพับก่อน แล้วจึงเรียกใช้ฉากกางออก ซึ่งจะช่วยลดจำนวนครั้งที่ต้องติดตั้งใหม่ในระหว่างการทดสอบ

นอกจากนี้ Camera ITS ยังเพิ่มคำต่อท้าย folded ลงในไดเรกทอรี tmp ที่สร้างขึ้นสำหรับฉากในสถานะพับด้วย

คำสั่งตัวอย่าง

ต่อไปนี้เป็นตัวอย่างคำสั่งสำหรับการดำเนินการทดสอบในอุปกรณ์พับได้

คำสั่ง คำอธิบาย
python tools/run_all_tests.py เรียกใช้ฉากทั้งหมด
python tools/run_all_tests.py scenes=scene0 เรียกใช้ scene0 หากอุปกรณ์พับอยู่และผู้ใช้กำลังทดสอบกล้องหน้าหลัก สคริปต์จะกำหนดสถานะของอุปกรณ์และเพิ่มคำต่อท้าย _folded ลงในชื่อฉาก ผู้ใช้ไม่จำเป็นต้องเพิ่มคำต่อท้ายเพื่อเรียกใช้ฉากพับ
python tests/scene0/ -c config.yml เรียกใช้การทดสอบที่เฉพาะเจาะจง