#!/system/bin/sh
#
# Copyright 2021 Google LLC. All Rights Reserved.
#
# Bluejay Calibration Sub-Script.
#
# Contains B3-specific sensor information for sensor_cal.

# Sensors supported for calibration.
SUPPORTED_SENSORS="accel als baro gyro imu_temp prox"

#######################################
# Converts a sensor name to its path.
# Globals:
#   CAL_PARAMS
#   SENSOR
#   SENSOR_NAME
#   SENSOR_PATH
# Arguments:
#   None
# Outputs:
#   Saves the sensor path in SENSOR_PATH.
#   Logging based on set VERBOSITY level.
#######################################
sensor_cal::sensor_to_path() {
  if [[ "${SENSOR}" == "accel" ]]; then
    SENSOR_PATH="/fac_cal/dev/lsm6dsr/0/accel"
    SENSOR_NAME="lsm6dsr"
  elif [[ "${SENSOR}" == "als" ]]; then
    SENSOR_PATH="/fac_cal/dev/tmd3719/0/als"
    SENSOR_NAME="tmd3719"
    CAL_PARAMS=" \
      blue_clear_gain6_ratio blue_clear_gain7_ratio \
      blue_gain6_ratio blue_gain7_ratio blue_gain8_ratio blue_gain9_ratio \
      blue_gain10_ratio blue_gain11_ratio \
      clear_gain6_ratio clear_gain7_ratio clear_gain8_ratio clear_gain9_ratio \
      clear_gain10_ratio clear_gain11_ratio \
      green_clear_gain6_ratio green_clear_gain7_ratio \
      green_gain6_ratio green_gain7_ratio green_gain8_ratio green_gain9_ratio \
      green_gain10_ratio green_gain11_ratio \
      lux_scale \
      red_clear_gain6_ratio red_clear_gain7_ratio \
      red_gain6_ratio red_gain7_ratio red_gain8_ratio red_gain9_ratio \
      red_gain10_ratio red_gain11_ratio \
      sync_delay_ns te2_delay_h"
  elif [[ "${SENSOR}" == "baro" ]]; then
    SENSOR_PATH="/fac_cal/dev/icp10101/0/baro"
    SENSOR_NAME="icp10101"
  elif [[ "${SENSOR}" == "gyro" ]]; then
    SENSOR_PATH="/fac_cal/dev/lsm6dsr/0/gyro"
    SENSOR_NAME="lsm6dsr"
  elif [[ "${SENSOR}" == "imu_temp" ]]; then
    SENSOR_PATH="/fac_cal/dev/lsm6dsr/0/temp"
    SENSOR_NAME="lsm6dsr"
  elif [[ "${SENSOR}" == "prox" ]]; then
    SENSOR_PATH="/fac_cal/dev/tmd3719/0/prox"
    SENSOR_NAME="tmd3719"
    CAL_PARAMS=" \
      hp_pdata0_scale hp_pdata1_scale pdata0_scale pdata1_scale \
      hp_pdata0_offset hp_pdata1_offset vcsel_ma"
  else
    sensor_cal::ERROR "Unknown or unimplemented sensor: ${SENSOR}"
    sensor_cal::exit_badparam
  fi

  sensor_cal::DEBUG "Registry path: ${SENSOR_PATH}"
}
