63 lines
1.3 KiB
Bash
Executable File
63 lines
1.3 KiB
Bash
Executable File
#!/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
|