تست تصاویر دوربین روی تاشوها، تست تصاویر دوربین روی تاشوها

از اندروید ۱۳، Camera ITS شامل پشتیبانی آزمایشی برای دستگاه‌های تاشو می‌شود. دستگاه‌های تاشو دارای دوربین‌هایی هستند که بسته به اینکه دستگاه در حالت تا شده یا باز باشد، در دسترس یا غیرفعال هستند.

شناسه‌های دوربین بسته به نوع، مدل و برند دستگاه تغییر می‌کنند؛ و در دسترس بودن دوربین‌های جلوی فیزیکی بسته به وضعیت تغییر می‌کند. به همین دلیل، Camera ITS به صورت پویا صحنه و ترکیب دوربین‌ها را برای استفاده در آزمایش تعیین می‌کند. از آنجایی که دوربین‌ها باید در هر دو حالت تا شده و باز شده آزمایش شوند، آزمایش دستگاه‌های تاشو مستلزم نصب مجدد DUT در طول فرآیند آزمایش است.

تست دوربین جلو و عقب

سنسورهای دوربین موجود در یک دستگاه تاشو بسته به اینکه دستگاه در حالت تا شده یا باز باشد، متفاوت هستند. برای دستگاه‌های تاشو، در دسترس بودن دوربین جلو بسته به حالت تغییر می‌کند. به عنوان مثال، دوربین جلو در حالت تا شده در دسترس نیست. به دلیل این تغییر در در دسترس بودن دوربین جلو، دوربین‌های جلو باید در هر دو حالت تا شده و باز شده آزمایش شوند. سیستم ITS دوربین فرض می‌کند که در دسترس بودن دوربین عقب چه در حالت تا شده و چه در حالت باز شده دستگاه یکسان است، بنابراین دوربین‌های عقب فقط باید یک بار آزمایش شوند.

بسته به وضعیت دستگاه، Camera ITS دستگاه‌های دوربین غیرقابل دسترس را فیلتر می‌کند و دستگاه‌های دوربین در لیست ترکیبات دوربین و صحنه ظاهر نمی‌شوند.

جدول زیر رفتار تست ITS دوربین را برای هر جهت‌گیری دوربین شرح می‌دهد.

جهت گیری دوربین رفتار تست ITS دوربین
دوربین عقب دوربین را یک بار در حالت تا شده یا باز شده آزمایش می‌کند
دوربین جلو اصلی دوربین را یک بار در حالت تا شده و یک بار در حالت باز شده آزمایش می‌کند.
دوربین جلوی فیزیکی دوربین را فقط در ایالت‌هایی که دوربین در دسترس است آزمایش می‌کند.

روش آزمایش

این بخش مراحل آزمایش دوربین‌ها برای دستگاه‌های تاشو را شرح می‌دهد.

دستگاه را تنظیم کنید

برای اطلاعات مربوط به تنظیمات، به بخش تنظیمات مراجعه کنید.

اعطای دسترسی به API تست

برای اینکه Camera ITS بتواند تشخیص دهد که آیا دستگاه تاشو است یا خیر، باید قبل از فراخوانی تست‌ها، به API تست دسترسی بدهید. اگر این دسترسی داده نشود، اجرای تست‌های Camera ITS منجر به از کار افتادن برنامه می‌شود.

برای اعطای دسترسی، دستور ADB زیر را اجرا کنید. این دستور باید یک بار برای یک دستگاه اجرا شود. اگر CTS Verifier با نسخه دیگری دوباره نصب شود، باید دستور را دوباره اجرا کنید.

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

فایل پیکربندی

برای مشخص کردن اینکه دستگاه تاشو است، پارامتر foldable_device را در هر دو testbed tablet و sensor_fusion در فایل 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 روی یک دستگاه تاشو، دوربین جلوی اصلی در هر دو حالت تا شده و باز شده آزمایش می‌شود. اگر دستگاه تا شده باشد، نتایج در زیر گزینه camera1_ SCENE_NAME _folded در برنامه CTS Verifier نمایش داده می‌شوند. بسته به حالت دستگاه، برخی از شناسه‌های فیزیکی دوربین جلو در دسترس نیستند و آزمایش نمی‌شوند. دوربین عقب فقط باید در یک حالت، ترجیحاً حالت تا شده، آزمایش شود و نتایج دوربین عقب پسوند _folded را ندارند.

برای اطمینان از اجرای صحنه‌های تا شده با دستگاه تا شده و بررسی وضعیت DUT تاشو، دستور زیر را اجرا کنید.

adb shell cmd device_state state

هنگام اجرای تست‌ها در حالت تا شده، Camera ITS پیامی را در ترمینال نمایش می‌دهد تا از کاربر بخواهد دستگاه را به درستی روی جعبه ITS تنظیم کند. برای ادامه اجرای تست پس از اعلان، Enter را بزنید.

اگر همه صحنه‌ها را در هر دو حالت تا شده و باز شده اجرا می‌کنید، صحنه‌های تا شده ابتدا اجرا می‌شوند و پس از آن صحنه‌های باز شده. این کار میزان نصب مجدد مورد نیاز در طول آزمایش را به حداقل می‌رساند.

دوربین ITS همچنین پسوند folded را به دایرکتوری tmp ایجاد شده برای صحنه‌های حالت folded اضافه می‌کند.

دستورات نمونه

در ادامه، دستورات نمونه برای اجرای تست روی دستگاه‌های تاشو ارائه شده است.

فرمان توضیحات
python tools/run_all_tests.py تمام صحنه‌ها را اجرا می‌کند.
python tools/run_all_tests.py scenes=scene0 صحنه ۰ را اجرا می‌کند. اگر دستگاه تا شده باشد و کاربر در حال آزمایش دوربین جلویی اصلی باشد، اسکریپت وضعیت دستگاه را تعیین می‌کند و پسوند _folded را به نام صحنه اضافه می‌کند. کاربران برای اجرای صحنه‌های تا شده نیازی به اضافه کردن پسوند ندارند.
python tests/scene0/ -c config.yml یک آزمایش خاص را اجرا می‌کند.