फ़ोल्ड किए जा सकने वाले डिवाइसों पर कैमरे की इमेज की जांच करना

Android 13 से, Camera ITS में फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए टेस्टिंग की सुविधा शामिल है. फ़ोल्ड किए जा सकने वाले डिवाइसों में कैमरे होते हैं. डिवाइस के फ़ोल्ड या अनफ़ोल्ड होने के आधार पर, कैमरे उपलब्ध हो सकते हैं या नहीं भी हो सकते हैं.

डिवाइस टाइप, मॉडल, और ब्रैंड के हिसाब से कैमरे के आईडी बदलते हैं. साथ ही, फ़िज़िकल फ़्रंट कैमरे की उपलब्धता, डिवाइस की स्थिति के हिसाब से बदलती है. इस वजह से, Camera ITS डाइनैमिक तरीके से सीन और कैमरे के कॉम्बिनेशन तय करता है, ताकि टेस्टिंग के लिए उनका इस्तेमाल किया जा सके. कैमरों को फ़ोल्ड और अनफ़ोल्ड, दोनों स्थितियों में टेस्ट करना होता है. इसलिए, फ़ोल्ड किए जा सकने वाले डिवाइसों की टेस्टिंग के दौरान, डिवाइस को फिर से माउंट करना पड़ता है.

सामने और पीछे के कैमरे की टेस्टिंग

फ़ोल्ड किए जा सकने वाले डिवाइस में मौजूद कैमरा सेंसर, डिवाइस के फ़ोल्ड या अनफ़ोल्ड होने के हिसाब से अलग-अलग होते हैं. फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए, सामने वाले कैमरे की उपलब्धता डिवाइस की स्थिति के हिसाब से बदलती है. उदाहरण के लिए, फ़ोन को फ़ोल्ड करने पर सामने का कैमरा इस्तेमाल नहीं किया जा सकता. सामने वाले कैमरे की उपलब्धता में हुए इस बदलाव की वजह से, सामने वाले कैमरे को फ़ोल्ड और अनफ़ोल्ड, दोनों स्थितियों में टेस्ट करना ज़रूरी है. Camera ITS यह मानता है कि डिवाइस को फ़ोल्ड या अनफ़ोल्ड करने पर, रियर कैमरे की उपलब्धता एक जैसी रहती है. इसलिए, रियर कैमरों की जांच सिर्फ़ एक बार करनी होती है.

डिवाइस की स्थिति के आधार पर, Camera ITS उन कैमरा डिवाइसों को फ़िल्टर कर देता है जो उपलब्ध नहीं हैं. साथ ही, कैमरा डिवाइस, कैमरा और सीन के कॉम्बिनेशन की सूची में नहीं दिखते.

यहां दी गई टेबल में, हर कैमरा ओरिएंटेशन के लिए Camera ITS टेस्ट के व्यवहार के बारे में बताया गया है.

कैमरा एडजस्ट करें कैमरे के आईटीएस टेस्ट का तरीका
पीछे का कैमरा यह कुकी, फ़ोल्ड या अनफ़ोल्ड किए गए डिवाइस में एक बार कैमरे की जांच करती है
प्राइमरी फ़्रंट कैमरा यह कुकी, फ़ोन के फ़ोल्ड और अनफ़ोल्ड होने पर कैमरे की जांच करती है.
फ़िज़िकल फ़्रंट कैमरा यह सिर्फ़ उन राज्यों में कैमरे की जांच करता है जहां कैमरा उपलब्ध है.

जांच की प्रक्रिया

इस सेक्शन में, फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए कैमरे की जांच करने का तरीका बताया गया है.

डिवाइस सेट अप करें

सेटअप की जानकारी के लिए, सेटअप लेख पढ़ें.

टेस्ट एपीआई का ऐक्सेस देना

कैमरा आईटीएस को यह तय करने के लिए कि डिवाइस फ़ोल्ड किया जा सकता है या नहीं, आपको टेस्ट एपीआई का ऐक्सेस देना होगा. इसके बाद ही, टेस्ट शुरू किए जा सकेंगे. अगर ऐक्सेस नहीं दिया जाता है, तो Camera ITS टेस्ट चलाने पर ऐप्लिकेशन क्रैश हो जाता है.

ऐक्सेस देने के लिए, यह ADB कमांड चलाएं. इस कमांड को एक डिवाइस के लिए सिर्फ़ एक बार चलाना होगा. अगर CTS Verifier को किसी दूसरे वर्शन के साथ फिर से इंस्टॉल किया जाता है, तो आपको यह कमांड फिर से चलानी होगी.

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

कॉन्फ़िगरेशन फ़ाइल

यह बताने के लिए कि डिवाइस फ़ोल्ड किया जा सकता है, config.yml फ़ाइल में tablet और sensor_fusion, दोनों टेस्टबेड में foldable_device पैरामीटर जोड़ें. 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 चलाने के दौरान, प्राइमरी फ़्रंट कैमरे की जांच दोनों स्थितियों में की जाती है. जैसे, फ़ोल्ड और अनफ़ोल्ड. डिवाइस को फ़ोल्ड करने पर, नतीजे CTS Verifier ऐप्लिकेशन में camera1_SCENE_NAME_folded विकल्प के नीचे दिखते हैं. डिवाइस की स्थिति के आधार पर, कुछ फ़्रंट फ़िज़िकल कैमरा आईडी उपलब्ध नहीं होते हैं और उनकी जांच नहीं की जाती है. पीछे वाले कैमरे की जांच सिर्फ़ एक स्थिति में की जानी चाहिए. बेहतर होगा कि इसे फ़ोल्ड की गई स्थिति में टेस्ट किया जाए. साथ ही, पीछे वाले कैमरे के नतीजों में _folded सफ़िक्स नहीं होता है.

यह पक्का करने के लिए कि फ़ोल्ड किए गए सीन, डिवाइस को फ़ोल्ड करके ही एक्ज़ीक्यूट किए जाएं और फ़ोल्ड किए जा सकने वाले DUT की स्थिति की जांच करने के लिए, यह कमांड चलाएं.

adb shell cmd device_state state

फ़ोल्ड किए गए डिवाइस पर टेस्ट करते समय, Camera ITS टर्मिनल में एक मैसेज दिखाता है. इससे उपयोगकर्ता को ITS बॉक्स पर डिवाइस को सही तरीके से सेट अप करने के लिए कहा जाता है. प्रॉम्प्ट के बाद टेस्ट जारी रखने के लिए, Enter दबाएं.

अगर फ़ोल्ड और अनफ़ोल्ड, दोनों स्थितियों में सभी सीन चलाए जा रहे हैं, तो फ़ोल्ड किए गए सीन पहले और अनफ़ोल्ड किए गए सीन बाद में लागू किए जाते हैं. इससे टेस्टिंग के दौरान, रीमाउंट करने की ज़रूरत कम हो जाती है.

कैमरा आईटीएस, फ़ोल्ड किए गए डिवाइस के सीन के लिए बनाई गई tmp डायरेक्ट्री में folded सफ़िक्स भी जोड़ता है.

कमांड के उदाहरण

फ़ोल्ड किए जा सकने वाले डिवाइसों पर टेस्ट चलाने के लिए, यहां सैंपल कमांड दी गई हैं.

निर्देश ब्यौरा
python tools/run_all_tests.py सभी सीन चलाता है.
python tools/run_all_tests.py scenes=scene0 scene0 को चलाता है. अगर डिवाइस मुड़ा हुआ है और उपयोगकर्ता, मुख्य कैमरे की जांच कर रहा है, तो स्क्रिप्ट डिवाइस की स्थिति का पता लगाती है. साथ ही, सीन के नाम में _folded सफ़िक्स जोड़ती है. फ़ोल्ड किए गए सीन चलाने के लिए, उपयोगकर्ताओं को सफ़िक्स जोड़ने की ज़रूरत नहीं है.
python tests/scene0/ -c config.yml यह कुकी, किसी खास टेस्ट को चलाती है.