etisserant@246: /* etisserant@246: This file is part of CanFestival, a library implementing CanOpen Stack. etisserant@246: etisserant@246: Copyright (C): Edouard TISSERANT and Francis DUPIN etisserant@246: etisserant@246: See COPYING file for copyrights details. etisserant@246: etisserant@246: This library is free software; you can redistribute it and/or etisserant@246: modify it under the terms of the GNU Lesser General Public etisserant@246: License as published by the Free Software Foundation; either etisserant@246: version 2.1 of the License, or (at your option) any later version. etisserant@246: etisserant@246: This library is distributed in the hope that it will be useful, etisserant@246: but WITHOUT ANY WARRANTY; without even the implied warranty of etisserant@246: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU etisserant@246: Lesser General Public License for more details. etisserant@246: etisserant@246: You should have received a copy of the GNU Lesser General Public etisserant@246: License along with this library; if not, write to the Free Software etisserant@246: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA etisserant@246: */ etisserant@246: #ifdef USE_XENO etisserant@246: #define eprintf(...) etisserant@246: #else etisserant@246: #define eprintf(...) printf (__VA_ARGS__) etisserant@246: #endif etisserant@246: etisserant@246: #include "canfestival.h" etisserant@246: etisserant@246: /* etisserant@246: #define CAN_FIFO_LENGTH 100 etisserant@246: etisserant@246: #define DECLARE_A_CAN_FIFO \ etisserant@246: static Message FIFO[CAN_FIFO_LENGTH];\ etisserant@246: static int FIFO_First = 0;\ etisserant@246: static int FIFO_Last = 0;\ etisserant@246: \ etisserant@246: static void PutInFIFO(Message *m)\ etisserant@246: {\ etisserant@246: FIFO[FIFO_Last++] = *m;\ etisserant@246: FIFO_Last %= CAN_FIFO_LENGTH;\ etisserant@246: }\ etisserant@246: \ etisserant@246: static void GetFromFIFO(Message *m)\ etisserant@246: {\ etisserant@246: *m = FIFO[FIFO_First++];\ etisserant@246: FIFO_First %= CAN_FIFO_LENGTH;\ etisserant@246: }\ etisserant@246: \ etisserant@246: static void TransmitMessage(CO_Data* d, UNS32 id)\ etisserant@246: {\ etisserant@246: Message m;\ etisserant@246: GetFromFIFO(&m);\ etisserant@246: canDispatch(d, &m);\ etisserant@246: } etisserant@246: */