diff -r 6787754b251b -r b6572d0336c3 doc/doxygen/html/nmtSlave_8c-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/doxygen/html/nmtSlave_8c-source.html Mon Jun 04 17:59:50 2007 +0200 @@ -0,0 +1,112 @@ + + +CanFestival: /home/epimerde/documents/tc11/CanFestival-3/src/nmtSlave.c Source File + + + + +
+
+
+
+

/home/epimerde/documents/tc11/CanFestival-3/src/nmtSlave.c

Go to the documentation of this file.
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 "nmtSlave.h"
+00024 #include "states.h"
+00025 #include "canfestival.h"
+00026 
+00027 /*******************************************************************)*********/
+00028 /* put the slave in the state wanted by the master */   
+00029 void proceedNMTstateChange(CO_Data* d, Message *m)
+00030 {
+00031   if( d->nodeState == Pre_operational ||
+00032       d->nodeState == Operational ||
+00033       d->nodeState == Stopped ) {
+00034     
+00035     MSG_WAR(0x3400, "NMT received. for node :  ", (*m).data[1]);
+00036     
+00037     /* Check if this NMT-message is for this node */
+00038     /* byte 1 = 0 : all the nodes are concerned (broadcast) */
+00039         
+00040     if( ( (*m).data[1] == 0 ) || ( (*m).data[1] == *d->bDeviceNodeId ) ){
+00041       
+00042       switch( (*m).data[0]){ /* command specifier (cs) */                       
+00043       case NMT_Start_Node:
+00044         if ( (d->nodeState == Pre_operational) || (d->nodeState == Stopped) )
+00045           setState(d,Operational);
+00046         break; 
+00047         
+00048       case NMT_Stop_Node:
+00049         if ( d->nodeState == Pre_operational ||
+00050              d->nodeState == Operational )
+00051           setState(d,Stopped);
+00052         break;
+00053         
+00054       case NMT_Enter_PreOperational:
+00055         if ( d->nodeState == Operational || 
+00056              d->nodeState == Stopped )
+00057           setState(d,Pre_operational);
+00058         break;
+00059         
+00060       case NMT_Reset_Node:
+00061           setState(d,Initialisation);
+00062         break;
+00063         
+00064       case NMT_Reset_Comunication:
+00065           setState(d,Initialisation);
+00066         break;
+00067         
+00068       }/* end switch */
+00069       
+00070     }/* end if( ( (*m).data[1] == 0 ) || ( (*m).data[1] == bDeviceNodeId ) ) */
+00071   }
+00072 }
+00073 
+00074 
+00075 /*****************************************************************************/
+00076 UNS8 slaveSendBootUp(CO_Data* d)
+00077 {
+00078   Message m;
+00079         
+00080   MSG_WAR(0x3407, "Send a Boot-Up msg ", 0);
+00081         
+00082   /* message configuration */
+00083   m.cob_id.w = NODE_GUARD << 7 | *d->bDeviceNodeId;
+00084   m.rtr = NOT_A_REQUEST;
+00085   m.len = 1;
+00086   m.data[0] = 0x00;
+00087     
+00088   return canSend(d->canHandle,&m);
+00089 }
+00090 
+

Generated on Mon Jun 4 17:09:26 2007 for CanFestival by  + +doxygen 1.5.1
+ +