21 */ |
21 */ |
22 |
22 |
23 #include <data.h> |
23 #include <data.h> |
24 #include "lifegrd.h" |
24 #include "lifegrd.h" |
25 |
25 |
|
26 // Prototypes for internals functions |
|
27 void ConsumerHearbeatAlarm(CO_Data* d, UNS32 id); |
|
28 void ProducerHearbeatAlarm(CO_Data* d, UNS32 id); |
|
29 |
|
30 |
|
31 /*****************************************************************************/ |
26 e_nodeState getNodeState (CO_Data* d, UNS8 nodeId) |
32 e_nodeState getNodeState (CO_Data* d, UNS8 nodeId) |
27 { |
33 { |
28 e_nodeState networkNodeState = d->NMTable[nodeId]; |
34 e_nodeState networkNodeState = d->NMTable[nodeId]; |
29 return networkNodeState; |
35 return networkNodeState; |
30 } |
36 } |
31 |
37 |
|
38 /*****************************************************************************/ |
32 // The Consumer Timer Callback |
39 // The Consumer Timer Callback |
33 void ConsumerHearbeatAlarm(CO_Data* d, UNS32 id) |
40 void ConsumerHearbeatAlarm(CO_Data* d, UNS32 id) |
34 { |
41 { |
35 //MSG_WAR(0x00, "ConsumerHearbeatAlarm", 0x00); |
42 //MSG_WAR(0x00, "ConsumerHearbeatAlarm", 0x00); |
36 |
43 |
37 // call heartbeat error with NodeId |
44 // call heartbeat error with NodeId |
38 (*d->heartbeatError)((UNS8)( ((d->ConsumerHeartbeatEntries[id]) & (UNS32)0x00FF0000) >> (UNS8)16 )); |
45 (*d->heartbeatError)((UNS8)( ((d->ConsumerHeartbeatEntries[id]) & (UNS32)0x00FF0000) >> (UNS8)16 )); |
39 } |
46 } |
40 |
47 |
41 /* Retourne le node-id */ |
48 /*****************************************************************************/ |
42 void proceedNODE_GUARD(CO_Data* d, Message* m ) |
49 void proceedNODE_GUARD(CO_Data* d, Message* m ) |
43 { |
50 { |
44 UNS8 nodeId = (UNS8) GET_NODE_ID((*m)); |
51 UNS8 nodeId = (UNS8) GET_NODE_ID((*m)); |
45 |
52 |
46 if((m->rtr == 1) ) /* Notice that only the master can have sent this node guarding request */ |
53 if((m->rtr == 1) ) /* Notice that only the master can have sent this node guarding request */ |
144 TIMEVAL time = *d->ProducerHeartBeatTime; |
152 TIMEVAL time = *d->ProducerHeartBeatTime; |
145 d->ProducerHeartBeatTimer = SetAlarm(d, 0, &ProducerHearbeatAlarm, MS_TO_TIMEVAL(time), MS_TO_TIMEVAL(time)); |
153 d->ProducerHeartBeatTimer = SetAlarm(d, 0, &ProducerHearbeatAlarm, MS_TO_TIMEVAL(time), MS_TO_TIMEVAL(time)); |
146 } |
154 } |
147 } |
155 } |
148 |
156 |
149 |
157 /*****************************************************************************/ |
150 void heartbeatStop(CO_Data* d) |
158 void heartbeatStop(CO_Data* d) |
151 { |
159 { |
152 UNS8 index; |
160 UNS8 index; |
153 for( index = (UNS8)0x00; index < *d->ConsumerHeartbeatCount; index++ ) |
161 for( index = (UNS8)0x00; index < *d->ConsumerHeartbeatCount; index++ ) |
154 { |
162 { |