34 nodename##_Data.CurrentCommunicationState.csSYNC = -1;\ |
34 nodename##_Data.CurrentCommunicationState.csSYNC = -1;\ |
35 /* Force sync period to common_ticktime__ so that other node can read it*/\ |
35 /* Force sync period to common_ticktime__ so that other node can read it*/\ |
36 *nodename##_Data.COB_ID_Sync = 0x40000080;\ |
36 *nodename##_Data.COB_ID_Sync = 0x40000080;\ |
37 *nodename##_Data.Sync_Cycle_Period = common_ticktime__ * 1000; |
37 *nodename##_Data.Sync_Cycle_Period = common_ticktime__ * 1000; |
38 |
38 |
|
39 static void DeferedInitAlarm(CO_Data* d, UNS32 id){ |
|
40 /* Node will start beeing active on the network after this */ |
|
41 setState(d, Initialisation); |
|
42 } |
|
43 |
39 #define NODE_INIT(nodename, nodeid) \ |
44 #define NODE_INIT(nodename, nodeid) \ |
40 /* Defining the node Id */\ |
45 /* Defining the node Id */\ |
41 setNodeId(&nodename##_Data, nodeid);\ |
46 setNodeId(&nodename##_Data, nodeid);\ |
42 /* init */\ |
47 SetAlarm(&nodename##_Data,0,&DeferedInitAlarm,MS_TO_TIMEVAL(100),0); |
43 setState(&nodename##_Data, Initialisation); |
|
44 |
48 |
45 #define NODE_MASTER_INIT(nodename, nodeid) \ |
49 #define NODE_MASTER_INIT(nodename, nodeid) \ |
46 NODE_FORCE_SYNC(nodename) \ |
50 NODE_FORCE_SYNC(nodename) \ |
47 NODE_INIT(nodename, nodeid) |
51 NODE_INIT(nodename, nodeid) |
48 |
52 |
49 #define NODE_SLAVE_INIT(nodename, nodeid) \ |
53 #define NODE_SLAVE_INIT(nodename, nodeid) \ |
50 NODE_INIT(nodename, nodeid) |
54 NODE_INIT(nodename, nodeid) |
51 |
55 |
52 void InitNodes(CO_Data* d, UNS32 id) |
56 static void InitNodes(CO_Data* d, UNS32 id) |
53 { |
57 { |
54 %(slavebootup_register)s |
58 %(slavebootup_register)s |
55 %(post_sync_register)s |
59 %(post_sync_register)s |
56 %(pre_op_register)s |
60 %(pre_op_register)s |
57 %(nodes_init)s |
61 %(nodes_init)s |
62 {\ |
66 {\ |
63 masterSendNMTstateChange(&nodename##_Data, 0, NMT_Reset_Node);\ |
67 masterSendNMTstateChange(&nodename##_Data, 0, NMT_Reset_Node);\ |
64 setState(&nodename##_Data, Stopped);\ |
68 setState(&nodename##_Data, Stopped);\ |
65 } |
69 } |
66 |
70 |
67 void Exit(CO_Data* d, UNS32 id) |
71 static void Exit(CO_Data* d, UNS32 id) |
68 { |
72 { |
69 %(nodes_stop)s |
73 %(nodes_stop)s |
70 } |
74 } |
71 |
75 |
72 #define NODE_CLOSE(nodename) \ |
76 #define NODE_CLOSE(nodename) \ |