--- 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;\