canfestival/cf_runtime.c
changeset 1397 21a2ea65cb30
parent 778 4f9e6d9a3d98
child 1428 e14003eb4d42
equal deleted inserted replaced
1396:bc14b43bd27f 1397:21a2ea65cb30
    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) \