diff -r 6787754b251b -r b6572d0336c3 doc/doxygen/html/nmtMaster_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtMaster_8c-source.html Mon Jun 04 17:59:50 2007 +0200 @@ -0,0 +1,106 @@ + +
+00001 /* +00002 This file is part of CanFestival, a library implementing CanOpen Stack. +00003 +00004 Copyright (C): Edouard TISSERANT and Francis DUPIN +00005 +00006 See COPYING file for copyrights details. +00007 +00008 This library is free software; you can redistribute it and/or +00009 modify it under the terms of the GNU Lesser General Public +00010 License as published by the Free Software Foundation; either +00011 version 2.1 of the License, or (at your option) any later version. +00012 +00013 This library is distributed in the hope that it will be useful, +00014 but WITHOUT ANY WARRANTY; without even the implied warranty of +00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +00016 Lesser General Public License for more details. +00017 +00018 You should have received a copy of the GNU Lesser General Public +00019 License along with this library; if not, write to the Free Software +00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +00021 */ +00022 +00023 #include "nmtMaster.h" +00024 #include "canfestival.h" +00025 +00026 /******************************************************************************/ +00027 UNS8 masterSendNMTstateChange(CO_Data* d, UNS8 Node_ID, UNS8 cs) +00028 { +00029 Message m; +00030 +00031 MSG_WAR(0x3501, "Send_NMT cs : ", cs); +00032 MSG_WAR(0x3502, " to node : ", Node_ID); +00033 /* message configuration */ +00034 m.cob_id.w = 0x0000; /*(NMT) << 7*/ +00035 m.rtr = NOT_A_REQUEST; +00036 m.len = 2; +00037 m.data[0] = cs; +00038 m.data[1] = Node_ID; +00039 +00040 return canSend(d->canHandle,&m); +00041 } +00042 +00043 +00044 /****************************************************************************/ +00045 UNS8 masterSendNMTnodeguard(CO_Data* d, UNS8 nodeId) +00046 { +00047 Message m; +00048 +00049 MSG_WAR(0x3503, "Send_NODE_GUARD to node : ", nodeId); +00050 +00051 /* message configuration */ +00052 m.cob_id.w = nodeId | (NODE_GUARD << 7); +00053 m.rtr = REQUEST; +00054 m.len = 1; +00055 +00056 return canSend(d->canHandle,&m); +00057 } +00058 +00059 /******************************************************************************/ +00060 void masterRequestNodeState(CO_Data* d, UNS8 nodeId) +00061 { +00062 /* FIXME: should warn for bad toggle bit. */ +00063 +00064 /* NMTable configuration to indicate that the master is waiting +00065 * for a Node_Guard frame from the slave whose node_id is ID */ +00066 d->NMTable[nodeId] = Unknown_state; /* A state that does not exist */ +00067 +00068 if (nodeId == 0) { /* NMT broadcast */ +00069 UNS8 i = 0; +00070 for (i = 0 ; i < NMT_MAX_NODE_ID ; i++) { +00071 d->NMTable[i] = Unknown_state; +00072 } +00073 } +00074 masterSendNMTnodeguard(d,nodeId); +00075 } +00076 +00077 +00078 +00079 +00080 +00081 +00082 +00083 +00084 +