etisserant@0: /* etisserant@0: This file is part of CanFestival, a library implementing CanOpen Stack. etisserant@0: etisserant@0: Copyright (C): Edouard TISSERANT and Francis DUPIN etisserant@0: etisserant@0: See COPYING file for copyrights details. etisserant@0: etisserant@0: This library is free software; you can redistribute it and/or etisserant@0: modify it under the terms of the GNU Lesser General Public etisserant@0: License as published by the Free Software Foundation; either etisserant@0: version 2.1 of the License, or (at your option) any later version. etisserant@0: etisserant@0: This library is distributed in the hope that it will be useful, etisserant@0: but WITHOUT ANY WARRANTY; without even the implied warranty of etisserant@0: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU etisserant@0: Lesser General Public License for more details. etisserant@0: etisserant@0: You should have received a copy of the GNU Lesser General Public etisserant@0: License along with this library; if not, write to the Free Software etisserant@0: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA etisserant@0: */ etisserant@0: greg@528: /** greg@528: * @defgroup can CAN Management greg@528: * @ingroup userapi greg@528: */ greg@528: etisserant@0: #ifndef __can_h__ etisserant@0: #define __can_h__ etisserant@145: etisserant@145: #include "applicfg.h" etisserant@0: /** Used for the Can message structure */ etisserant@0: /* etisserant@0: union SHORT_CAN { etisserant@0: struct { UNS8 b0,b1; } b; etisserant@0: UNS32 w; etisserant@0: }; etisserant@0: */ etisserant@365: /* etisserant@0: typedef struct { etisserant@365: UNS32 w; etisserant@0: } SHORT_CAN; etisserant@365: */ etisserant@0: greg@528: /** greg@528: * @brief The CAN message structure greg@528: * @ingroup can greg@528: * @{ greg@528: */ etisserant@0: typedef struct { etisserant@365: UNS16 cob_id; /* l'ID du mesg */ greg@528: UNS8 rtr; /**< remote transmission request. 0 if not rtr, frdupin@71: 1 for a rtr message */ greg@528: UNS8 len; /**< message length (0 to 8) */ greg@528: UNS8 data[8]; /**< data */ etisserant@0: } Message; greg@528: /** @} */ etisserant@0: etisserant@235: #define Message_Initializer {0,0,0,{0,0,0,0,0,0,0,0}} etisserant@0: etisserant@0: typedef UNS8 (*canSend_t)(Message *); etisserant@0: frdupin@71: #endif /* __can_h__ */