plugins/canfestival/cf_runtime.c
changeset 59 b6ff896ff58b
parent 57 3b53f9a509d9
child 75 9ad18a387a96
--- a/plugins/canfestival/cf_runtime.c	Mon Oct 01 21:52:41 2007 +0200
+++ b/plugins/canfestival/cf_runtime.c	Tue Oct 02 18:02:32 2007 +0200
@@ -11,6 +11,25 @@
 static int init_level=0;
 extern int common_ticktime__;
 
+
+static void ConfigureSlaveNode(CO_Data* d, UNS8 nodeId)
+{
+    /* Put the master in operational mode */
+    setState(d, Operational);
+      
+    /* Ask slave node to go in operational mode */
+    masterSendNMTstateChange (d, 0, NMT_Start_Node);
+}
+
+#define NODE_DECLARE(nodename, nodeid)\
+void nodename##_preOperational()\
+{\
+    ConfigureSlaveNode(&nodename##_Data, nodeid);\
+}\
+
+%(nodes_declare)s
+
+
 #define NODE_INIT(nodename, nodeid) \
     /* Artificially force sync state to 1 so that it is not started */\
     nodename##_Data.CurrentCommunicationState.csSYNC = -1;\
@@ -47,6 +66,7 @@
 }
 
 #define NODE_OPEN(nodename)\
+    nodename##_Data.preOperational = nodename##_preOperational;\
     if(!canOpen(&nodename##Board,&nodename##_Data)){\
         printf("Cannot open " #nodename " Board (%%s,%%s)\n",nodename##Board.busname, nodename##Board.baudrate);\
         return -1;\