00001 // $Id: ethercat_dll.h,v 1.22 2006/02/20 15:57:33 kgad Exp $ 00002 //=========================================================================== 00003 // This file is part of "EtherCAT Master Library". 00004 // Copyright (C) 2005 FMTC vzw, Diamant Building, A. Reyerslaan 80, 00005 // B-1030 Brussels, Belgium. 00006 // 00007 // EtherCAT Master Library is free software; you can redistribute it 00008 // and/or modify it under the terms of the GNU General Public License 00009 // as published by the Free Software Foundation; either version 2 or 00010 // (at your option) any later version. 00011 // 00012 // EtherCAT Master Code is distributed in the hope that it will be 00013 // useful, but WITHOUT ANY WARRANTY; without even the implied 00014 // warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00015 // PURPOSE. See the GNU General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU General Public License 00018 // along with the EtherCAT Master Library; if not, write to the Free 00019 // Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 00020 // 02111-1307 USA. 00021 // 00022 // EtherCAT, the EtherCAT trade name and logo are the intellectual 00023 // property of, and protected by Beckhoff. You can use "EtherCAT 00024 // Master Library" for creating and/or selling or otherwise 00025 // distributing an EtherCAT network master under the terms of the 00026 // EtherCAT Master License. 00027 // 00028 // You should have received a copy of the EtherCAT Master License 00029 // along with the EtherCAT Master Library; if not, write to Beckhoff 00030 // Automation GmbH, Eiserstrasse 5, D-33415 Verl, Germany. 00031 //=========================================================================== 00032 00033 #include "ros/ros.h" 00034 00035 #ifndef __ethercat_dll__ 00036 #define __ethercat_dll__ 00037 00038 // Forward declarations 00039 struct netif; 00040 class EtherCAT_Frame; 00041 00043 00044 class EtherCAT_DataLinkLayer 00045 { 00046 public: 00047 EtherCAT_DataLinkLayer() : m_if(NULL) {} 00048 00050 00052 void attach(struct netif * netif); 00053 00055 00058 bool txandrx(EtherCAT_Frame * a_frame); 00059 00061 00065 int tx(EtherCAT_Frame * a_frame); 00066 00068 00072 bool rx(EtherCAT_Frame * a_frame, int a_handle); 00073 00074 private: 00075 struct netif * m_if; 00076 }; 00077 00078 #endif // __ethercat_dll__