script/init.d/ethercat.in
changeset 1190 5f2e38dddd4e
parent 1185 337ce4fc2383
child 1323 10fbef0a3ac5
equal deleted inserted replaced
1189:acc6430bfb32 1190:5f2e38dddd4e
   143 fi
   143 fi
   144 
   144 
   145 case "${1}" in
   145 case "${1}" in
   146 
   146 
   147 start)
   147 start)
   148     echo -n "Starting EtherCAT master @VERSION@"
   148     echo -n "Starting EtherCAT master @VERSION@ "
   149 
   149 
   150     # construct DEVICES and BACKUPS from configuration variables
   150     # construct DEVICES and BACKUPS from configuration variables
   151     DEVICES=""
   151     DEVICES=""
   152     BACKUPS=""
   152     BACKUPS=""
   153     MASTER_INDEX=0
   153     MASTER_INDEX=0
   195 
   195 
   196     exit_success
   196     exit_success
   197     ;;
   197     ;;
   198 
   198 
   199 stop)
   199 stop)
   200     echo -n "Shutting down EtherCAT master @VERSION@"
   200     echo -n "Shutting down EtherCAT master @VERSION@ "
   201 
   201 
   202     # unload EtherCAT device modules
   202     # unload EtherCAT device modules
   203     for MODULE in ${DEVICE_MODULES} master; do
   203     for MODULE in ${DEVICE_MODULES} master; do
   204         ECMODULE=ec_${MODULE}
   204         ECMODULE=ec_${MODULE}
   205         if ! lsmod | grep -q "^${ECMODULE} "; then
   205         if ! lsmod | grep -q "^${ECMODULE} "; then
   227     sleep 1
   227     sleep 1
   228     $0 start
   228     $0 start
   229     ;;
   229     ;;
   230 
   230 
   231 status)
   231 status)
   232     echo "Checking for EtherCAT master @VERSION@"
   232     echo "Checking for EtherCAT master @VERSION@ "
   233 
   233 
   234     # count masters in configuration file
   234     # count masters in configuration file
   235     MASTER_COUNT=0
   235     MASTER_COUNT=0
   236     while true; do
   236     while true; do
   237         DEVICE=$(eval echo "\${MASTER${MASTER_COUNT}_DEVICE}")
   237         DEVICE=$(eval echo "\${MASTER${MASTER_COUNT}_DEVICE}")
   240     done
   240     done
   241 
   241 
   242     RESULT=0
   242     RESULT=0
   243 
   243 
   244     for i in `seq 0 $(expr ${MASTER_COUNT} - 1)`; do
   244     for i in `seq 0 $(expr ${MASTER_COUNT} - 1)`; do
   245         echo -n "Master${i}"
   245         echo -n "Master${i} "
   246         
   246         
   247         # Check if the master is in idle or operation phase
   247         # Check if the master is in idle or operation phase
   248         ${ETHERCAT} master --master ${i} 2>/dev/null | \
   248         ${ETHERCAT} master --master ${i} 2>/dev/null | \
   249             grep -qE 'Phase:[[:space:]]*Idle|Phase:[[:space:]]*Operation'
   249             grep -qE 'Phase:[[:space:]]*Idle|Phase:[[:space:]]*Operation'
   250         EXITCODE=$?
   250         EXITCODE=$?