00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00033 #include "nmtMaster.h"
00034 #include "canfestival.h"
00035
00045 UNS8 masterSendNMTstateChange(CO_Data* d, UNS8 Node_ID, UNS8 cs)
00046 {
00047 Message m;
00048
00049 MSG_WAR(0x3501, "Send_NMT cs : ", cs);
00050 MSG_WAR(0x3502, " to node : ", Node_ID);
00051
00052 m.cob_id.w = 0x0000;
00053 m.rtr = NOT_A_REQUEST;
00054 m.len = 2;
00055 m.data[0] = cs;
00056 m.data[1] = Node_ID;
00057
00058 return canSend(d->canHandle,&m);
00059 }
00060
00061
00070 UNS8 masterSendNMTnodeguard(CO_Data* d, UNS8 nodeId)
00071 {
00072 Message m;
00073
00074 MSG_WAR(0x3503, "Send_NODE_GUARD to node : ", nodeId);
00075
00076
00077 m.cob_id.w = nodeId | (NODE_GUARD << 7);
00078 m.rtr = REQUEST;
00079 m.len = 1;
00080
00081 return canSend(d->canHandle,&m);
00082 }
00083
00090 void masterRequestNodeState(CO_Data* d, UNS8 nodeId)
00091 {
00092
00093
00094
00095
00096
00097 d->NMTable[nodeId] = Unknown_state;
00098
00099
00100 if (nodeId == 0) {
00101 UNS8 i = 0;
00102 for (i = 0 ; i < NMT_MAX_NODE_ID ; i++) {
00103 d->NMTable[i] = Unknown_state;
00104 }
00105 }
00106 masterSendNMTnodeguard(d,nodeId);
00107 }
00108