# Copyright 2020 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

TestBeds:
  - Name: TEST_BED_TABLET_SCENES  # Need 'tablet' in name for tablet scenes
    # Use TEST_BED_MANUAL for manual testing and remove below lines:
    #     - serial <tablet_id>
    #       label: tablet
    # Test configuration for scenes[0:4, 6, _change]
    Controllers:
        AndroidDevice:
          - serial: <device_id>  # quotes are needed if serial id is entirely numeric
            label: dut
          - serial: <tablet_id>  # quotes are needed if serial id is entirely numeric
            label: tablet
    TestParams:
      brightness: 192
      chart_distance: 31.0
      debug_mode: "False"  # quotes are needed here
      lighting_cntl: <controller-type>  # can be arduino or "None"
      lighting_ch: <controller-channel>
      camera: <camera-id>
      scene: <scene-name>  # if <scene-name> left as-is runs all scenes
      foldable_device: "False" # set to True if testing a foldable device

  - Name: TEST_BED_SENSOR_FUSION  # Need 'sensor_fusion' in name for SF tests
    # Test configuration for sensor_fusion/test_sensor_fusion.py
    Controllers:
        AndroidDevice:
          - serial: <device-id>  # quotes are needed if serial id is entirely numeric
            label: dut
    TestParams:
      fps: 30
      img_size: 640,480
      test_length: 7
      debug_mode: "False"  # quotes are needed here
      chart_distance: 25
      rotator_cntl: "arduino"  # Note: only sensor fusion supports manual
      rotator_ch: <controller-channel>
      camera: <camera-id>
      foldable_device: "False" # set to True if testing a foldable device
