MSR example: Replaced msr_load and msr_unload with init script, removed msr_param.h
authorFlorian Pose <fp@igh-essen.com>
Fri, 27 Oct 2006 09:46:42 +0000
changeset 451 cd6b819c2351
parent 450 03523dfc4dff
child 452 d8ae13a5a910
MSR example: Replaced msr_load and msr_unload with init script, removed msr_param.h
examples/msr/Makefile.am
examples/msr/init.sh
examples/msr/msr_load
examples/msr/msr_param.h
examples/msr/msr_sample.c
examples/msr/msr_unload
--- a/examples/msr/Makefile.am	Fri Oct 27 09:33:43 2006 +0000
+++ b/examples/msr/Makefile.am	Fri Oct 27 09:46:42 2006 +0000
@@ -1,9 +1,5 @@
 #------------------------------------------------------------------------------
 #
-#  Makefile.am
-#
-#  IgH EtherCAT master module
-#
 #  $Id$
 #
 #  Copyright (C) 2006  Florian Pose, Ingenieurgemeinschaft IgH
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/msr/init.sh	Fri Oct 27 09:46:42 2006 +0000
@@ -0,0 +1,129 @@
+#!/bin/sh
+
+#------------------------------------------------------------------------------
+#
+#  MSR Init Script
+#
+#  $Id$
+#
+#------------------------------------------------------------------------------
+
+### BEGIN INIT INFO
+# Provides:          msr
+# Required-Start:    $local_fs $syslog $network
+# Should-Start:      $time ntp ethercat
+# Required-Stop:     $local_fs $syslog $network
+# Should-Stop:       $time ntp ethercat
+# Default-Start:     3 5
+# Default-Stop:      0 1 2 6
+# Short-Description: MSR module
+# Description:
+### END INIT INFO
+
+#------------------------------------------------------------------------------
+
+# <Customizing>
+
+NAME="MSR EtherCAT sample"
+BASE=/opt/etherlab
+MSR_SERVER=$BASE/bin/msrserv.pl
+MODULE=ec_msr_sample
+RTAI_PATH=/usr/realtime
+RTAI_MODULES="hal up" # sem math
+DEVICE=msr
+DEVMASK=664
+GROUP=users
+
+# </Customizing>
+
+#------------------------------------------------------------------------------
+
+. /etc/rc.status
+rc_reset
+
+#------------------------------------------------------------------------------
+
+case "$1" in
+    start)
+	echo -n Starting $NAME" "
+
+	# Insert RTAI modules
+	for mod in $RTAI_MODULES; do
+	    if ! lsmod | grep -q "^rtai_$mod"; then
+		if ! insmod $RTAI_PATH/modules/rtai_$mod.ko; then
+		    /bin/false
+		    rc_status -v
+		    rc_exit
+		fi
+	    fi
+	done
+
+	# Insert realtime module
+	if ! modprobe $MODULE; then
+	    /bin/false
+	    rc_status -v
+	    rc_exit
+	fi
+
+	#sleep 2
+
+	# Create MSR device
+	MAJOR=`cat /proc/devices | awk "\\$2==\"$DEVICE\" {print \\$1}"`
+	rm -f /dev/${DEVICE}
+	mknod /dev/${DEVICE} c $MAJOR 0
+	chgrp $GROUP /dev/${DEVICE}
+	chmod $DEVMASK /dev/${DEVICE}
+
+	#sleep 1
+
+	# Start MSR-Server
+	startproc $MSR_SERVER 1>/dev/null 2>/dev/null
+	rc_status -v
+	;;
+
+    stop)
+	echo -n Shutting down $NAME" "
+
+	if ! killproc $MSR_SERVER; then
+	    /bin/false
+	    rc_status -v
+	    rc_exit
+	fi
+
+	if ! /sbin/rmmod $MODULE; then
+	    /bin/false
+	    rc_status -v
+	    rc_exit
+	fi
+
+	# Remove stale nodes
+	rm -f /dev/${DEVICE} /dev/${DEVICE}0
+
+	rc_status -v
+	;;
+
+    restart)
+	$0 stop || exit 1
+	sleep 1
+	$0 start
+
+	rc_status
+	;;
+
+    status)
+	echo -n "Checking for MSR module: "
+	/sbin/lsmod | grep -q "^$MODULE"
+	rc_status -v
+
+	echo -n "Checking for MSR server: "
+	checkproc $MSR_SERVER
+	rc_status -v
+	;;
+
+    *)
+	echo "Usage: $0 {start|stop|status|restart}"
+	exit 1
+	;;
+esac
+
+rc_exit
\ No newline at end of file
--- a/examples/msr/msr_load	Fri Oct 27 09:33:43 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#!/bin/sh 
-module="ec_msr_sample"
-device="msr"
-mode="664"
-
-# Group: since distributions do it differently, look for wheel or use staff
-if grep '^staff:' /etc/group > /dev/null; then
-    group="staff"
-else
-    group="wheel"
-fi
-
-# invoke insmod with all arguments we got
-# and use a pathname, as newer modutils don't look in . by default
-/sbin/insmod -f ./$module.ko $* || exit 1
-
-major=`cat /proc/devices | awk "\\$2==\"$device\" {print \\$1}"`
-
-echo $major
-# Remove stale nodes and replace them, then give gid and perms
-# Usually the script is shorter, it's scull that has several devices in it.
-
-rm -f /dev/${device}
-mknod /dev/${device} c $major 0
-# ln -sf ${device}0 /dev/${device}
-chgrp users /dev/${device}
-chmod $mode  /dev/${device}
-
-
-
-
-
-
-
-
-
--- a/examples/msr/msr_param.h	Fri Oct 27 09:33:43 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/******************************************************************************
- *
- *  $Id$
- *
- *  Copyright (C) 2006  Florian Pose, Ingenieurgemeinschaft IgH
- *
- *  This file is part of the IgH EtherCAT Master.
- *
- *  The IgH EtherCAT Master is free software; you can redistribute it
- *  and/or modify it under the terms of the GNU General Public License
- *  as published by the Free Software Foundation; either version 2 of the
- *  License, or (at your option) any later version.
- *
- *  The IgH EtherCAT Master is distributed in the hope that it will be
- *  useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with the IgH EtherCAT Master; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *  The right to use EtherCAT Technology is granted and comes free of
- *  charge under condition of compatibility of product made by
- *  Licensee. People intending to distribute/sell products based on the
- *  code, have to sign an agreement to guarantee that products using
- *  software based on IgH EtherCAT master stay compatible with the actual
- *  EtherCAT specification (which are released themselves as an open
- *  standard) as the (only) precondition to have the right to use EtherCAT
- *  Technology, IP and trade marks.
- *
- *****************************************************************************/
-
-#ifndef _MSR_PARAM_H_
-#define _MSR_PARAM_H_
-
-#define  MSR_ABTASTFREQUENZ 1000
-
-#endif
-
-/*****************************************************************************/
--- a/examples/msr/msr_sample.c	Fri Oct 27 09:33:43 2006 +0000
+++ b/examples/msr/msr_sample.c	Fri Oct 27 09:46:42 2006 +0000
@@ -44,12 +44,13 @@
 #include <msr_main.h>
 #include <msr_reg.h>
 #include <msr_time.h>
-#include "msr_param.h"
 
 // EtherCAT
 #include "../../include/ecrt.h"
 #include "../../include/ecdb.h"
 
+#define MSR_ABTASTFREQUENZ 1000
+
 #define HZREDUCTION (MSR_ABTASTFREQUENZ / HZ)
 #define TIMERTICKS (1000000000 / MSR_ABTASTFREQUENZ)
 
--- a/examples/msr/msr_unload	Fri Oct 27 09:33:43 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-#!/bin/sh
-module="ec_msr_sample"
-device="msr"
-
-# invoke rmmod with all arguments we got
-/sbin/rmmod $module $* || exit 1
-
-# Remove stale nodes
-rm -f /dev/${device} /dev/${device}0