// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package lab;

option go_package = "go.chromium.org/chromiumos/infra/proto/go/lab";

// NEXT TAG: 9
message Servo {
  reserved 6;
  // Servo-specific configs
  string servo_hostname = 2;
  int32 servo_port = 3;
  string servo_serial = 4;
  // Based on https://docs.google.com/document/d/1TPp7yp-uwFUh5xOnBLI4jPYtYD7IcdyQ1dgqFqtcJEU/edit?ts=5d8eafb7#heading=h.csdfk1i6g0l
  // servo_type will contain different setup of servos. So string is recommended than enum.
  string servo_type = 5;
  ServoSetupType servo_setup = 7;
  // Based on http://go/fleet-servo-topology
  ServoTopology servo_topology = 8;
}

// Servo Setup Type describes the capabilities of servos.
// Next Tag : 3
enum ServoSetupType {
    SERVO_SETUP_REGULAR = 0;
    SERVO_SETUP_DUAL_V4 = 1;
    // SERVO_SETUP_INVALID explicitly marks errors in servo setup.
    SERVO_SETUP_INVALID = 2;
}

// Servo Topology describe connected servo devices on DUT set-up to provide Servo functionality.
// Next Tag : 3
message ServoTopology  {
  ServoTopologyItem main = 1;
  repeated ServoTopologyItem children = 2;
}

// Servo Topology Item describe details of one servo device on DUT set-up.
// Next Tag : 5
message ServoTopologyItem  {
  // type provides the type of servo device. Keeping as String to avoid issue with introduce new type.
  string type = 1;
  // sysfs_product providess the product name of the device recorded in File System.
  string sysfs_product = 2;
  // serial providess the serilal number of the device.
  string serial = 3;
  // usb_hub_port providess the port connection to the device.
  // e.g. '1-6.2.2' where
  //   '1-6'  - port on the labstation
  //   '2'    - port on smart-hub connected to the labstation
  //   '2'    - port on servo hub (part of servo_v4 or servo_v4.1) connected to the smart-hub
  // The same path will look '1-6.2' if connected servo_v4 directly to the labstation.
  string usb_hub_port = 4;
}
