src/lifegrd.c
changeset 635 30a0e926bb2e
parent 423 d60363d872dd
child 668 ba53613e94e4
equal deleted inserted replaced
634:15e8d1ec0e61 635:30a0e926bb2e
    66 ** @param d
    66 ** @param d
    67 ** @param id
    67 ** @param id
    68 **/
    68 **/
    69 void ConsumerHearbeatAlarm(CO_Data* d, UNS32 id)
    69 void ConsumerHearbeatAlarm(CO_Data* d, UNS32 id)
    70 {
    70 {
       
    71   UNS8 nodeId = (UNS8)(((d->ConsumerHeartbeatEntries[id]) & (UNS32)0x00FF0000) >> (UNS8)16);
    71   /*MSG_WAR(0x00, "ConsumerHearbeatAlarm", 0x00);*/
    72   /*MSG_WAR(0x00, "ConsumerHearbeatAlarm", 0x00);*/
    72 
    73 
    73   /* timer have been notified and is now free (non periodic)*/
    74   /* timer have been notified and is now free (non periodic)*/
    74   /* -> avoid deleting re-assigned timer if message is received too late*/
    75   /* -> avoid deleting re-assigned timer if message is received too late*/
    75   d->ConsumerHeartBeatTimers[id]=TIMER_NONE;
    76   d->ConsumerHeartBeatTimers[id]=TIMER_NONE;
       
    77   
       
    78   /* set node state */
       
    79   d->NMTable[nodeId] = Disconnected;
    76   /*! call heartbeat error with NodeId */
    80   /*! call heartbeat error with NodeId */
    77   (*d->heartbeatError)(d, (UNS8)( ((d->ConsumerHeartbeatEntries[id]) & (UNS32)0x00FF0000) >> (UNS8)16 ));
    81   (*d->heartbeatError)(d, nodeId);
    78 }
    82 }
    79 
    83 
    80 /*!
    84 /*!
    81 **
    85 **
    82 **
    86 **
   118           MSG_WAR(0x3130, "Sending NMT Nodeguard to master, state: ", d->nodeState);
   122           MSG_WAR(0x3130, "Sending NMT Nodeguard to master, state: ", d->nodeState);
   119           canSend(d->canHandle,&msg );
   123           canSend(d->canHandle,&msg );
   120         }
   124         }
   121 
   125 
   122     }else{ /* Not a request CAN */
   126     }else{ /* Not a request CAN */
       
   127       /* The state is stored on 7 bit */
       
   128       e_nodeState newNodeState = (e_nodeState) ((*m).data[0] & 0x7F);
   123 
   129 
   124       MSG_WAR(0x3110, "Received NMT nodeId : ", nodeId);
   130       MSG_WAR(0x3110, "Received NMT nodeId : ", nodeId);
   125       /* the slave's state receievd is stored in the NMTable */
   131       
   126       /* The state is stored on 7 bit */
   132       if (d->NMTable[nodeId] != newNodeState)
   127       d->NMTable[nodeId] = (e_nodeState) ((*m).data[0] & 0x7F) ;
   133       {
       
   134         (*d->post_SlaveStateChange)(d, nodeId, newNodeState);
       
   135         /* the slave's state receievd is stored in the NMTable */
       
   136         d->NMTable[nodeId] = newNodeState;
       
   137       }
   128 
   138 
   129       /* Boot-Up frame reception */
   139       /* Boot-Up frame reception */
   130       if ( d->NMTable[nodeId] == Initialisation)
   140       if ( d->NMTable[nodeId] == Initialisation)
   131         {
   141         {
   132           /*
   142           /*
   260 **
   270 **
   261 ** @param heartbeatID
   271 ** @param heartbeatID
   262 **/
   272 **/
   263 void _heartbeatError(CO_Data* d, UNS8 heartbeatID){}
   273 void _heartbeatError(CO_Data* d, UNS8 heartbeatID){}
   264 void _post_SlaveBootup(CO_Data* d, UNS8 SlaveID){}
   274 void _post_SlaveBootup(CO_Data* d, UNS8 SlaveID){}
       
   275 void _post_SlaveStateChange(CO_Data* d, UNS8 nodeId, e_nodeState newNodeState){}
       
   276