Files
ros_contorl/scripts/rdk_switch_tool.sh
T

45 lines
1.3 KiB
Bash
Executable File

#!/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[@]}"