// 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: 10
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;
  ServoFwChannel servo_fw_channel = 9;
}

// 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 Firmware Channel describes the firmware expected to have on servos.
// Next Tag : 4
enum ServoFwChannel {
  // Servo firmware from Stable channel.
  SERVO_FW_STABLE = 0;
  // The previous Servo firmware from Stable channel.
  SERVO_FW_PREVIOUS = 1;
  // Servo firmware from Dev channel.
  SERVO_FW_DEV = 2;
  // Servo firmware from Alpha channel.
  SERVO_FW_ALPHA = 3;
}

// 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;
}
