#!/usr/bin/env bash # 通过 RDK 切换 / 列出 Flexiv Studio 工具(工具名从 site.yaml 读取)。 # # bash ~/ros2/scripts/rdk_switch_tool.sh # 切换到 robot.tool_name # bash ~/ros2/scripts/rdk_switch_tool.sh --list # 打印 Studio 工具池 # bash ~/ros2/scripts/rdk_switch_tool.sh --name Flange # # 先停掉 `run_real.sh` —— RDK 只允许一个客户端。 set -eo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" # shellcheck disable=SC1091 source "${ROOT}/scripts/lib/load_site_config.sh" # shellcheck disable=SC1091 source "${ROOT}/scripts/lib/dev_tools.sh" RDK_PYTHON="$(dev_rdk_python)" SN="${ROBOT_SN:-${SITE_ROBOT_SN:-}}" NAME="${SITE_ROBOT_TOOL_NAME:-}" IFACE="${SITE_NET_IFACE:-}" LIST=false while [[ $# -gt 0 ]]; do case "$1" in --list|-l) LIST=true; shift ;; --name) NAME="$2"; shift 2 ;; --sn) SN="$2"; shift 2 ;; --iface) IFACE="$2"; shift 2 ;; -h|--help) sed -n '2,12p' "$0"; exit 0 ;; *) echo "Unknown: $1" >&2; exit 1 ;; esac done ARGS=(--sn "${SN}") if [[ -n "${IFACE}" ]]; then ARGS+=(--iface "${IFACE}") fi if [[ "${LIST}" == true ]]; then ARGS+=(--list) elif [[ -n "${NAME}" ]]; then ARGS+=(--name "${NAME}") fi exec "${RDK_PYTHON}" "${ROOT}/scripts/rdk_switch_tool.py" "${ARGS[@]}"