#! /bin/sh cco= mdu= # check arguments while :; do [ $# = 0 ] && break [ "$1" = "-c" ] && cco="$2" && shift 2 && continue [ "$1" = "-m" ] && mdu="$2" && shift 2 && continue # invalid argument exit 1 done # nothing to do [ -z "$cco$mdu" ] && exit . /lib/functions.sh iface="$(uci_get plc plc interface br-lan)" [ -n "$cco" ] && case "$cco" in auto) cco=0 ;; never) cco=1 ;; always) cco=2 ;; *) exit 1 ;; esac [ -n "$mdu" ] && case "$mdu" in disabled) mdu=0x0000 ;; slave) mdu=0x0001 ;; master) mdu=0x0101 ;; *) exit 1 ;; esac pib=/tmp/.PIB.$$ plctools-wrapper plctool "" -i "$iface" -p "$pib" || exit trap 'rm -f "$pib"' EXIT [ -n "$cco" ] && { modpib -C "$cco" "$pib" || exit; } [ -n "$mdu" ] && { setpib "$pib" 0x100 word "$mdu" || exit; } plctools-wrapper plctool "" -i "$iface" -P "$pib"