#!/usr/bin/env bash set -euo pipefail usage() { cat <<'USAGE' Usage: script/ethercat/status_ethercat.sh Environment: IGH_ROOT=... Override bundled IgH install path. ETHERCAT_CONF=... Override ethercatctl config path. USAGE } if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then usage exit 0 fi SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)" IGH_ROOT="${IGH_ROOT:-${REPO_ROOT}/dependency/x86/third_party/ethercat/v1.7.0}" ETHERCAT_CONF="${ETHERCAT_CONF:-${IGH_ROOT}/etc/ethercat.conf}" ETHERCATCTL="${IGH_ROOT}/sbin/ethercatctl" ETHERCAT="${IGH_ROOT}/bin/ethercat" if [[ ! -x "${ETHERCATCTL}" ]]; then echo "error: ethercatctl not found: ${ETHERCATCTL}" >&2 exit 1 fi if [[ ! -x "${ETHERCAT}" ]]; then echo "error: ethercat command not found: ${ETHERCAT}" >&2 exit 1 fi echo "== ${ETHERCAT_CONF} ==" if [[ -f "${ETHERCAT_CONF}" ]]; then sed -n '1,80p' "${ETHERCAT_CONF}" else echo "missing" fi echo echo "== kernel modules ==" lsmod | grep -E '(^ec_master|^ec_generic|^ec_)' || true echo echo "== ethercatctl ==" "${ETHERCATCTL}" -c "${ETHERCAT_CONF}" status || true echo echo "== master ==" "${ETHERCAT}" master || true echo echo "== slaves ==" "${ETHERCAT}" slaves || true echo echo "== pdos ==" "${ETHERCAT}" pdos || true