ethercat_master.h
Go to the documentation of this file.
00001 // $Id: ethercat_master.h,v 1.25 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 #ifndef __ethercat_master__
00034 #define __ethercat_master__
00035 
00036 // Forward declarations
00037 class EtherCAT_AL;
00038 class EtherCAT_SlaveHandler;
00039 class EtherCAT_Router;
00040 class EtherCAT_PD_Buffer;
00041 class EC_Logic;
00042 class EtherCAT_DataLinkLayer;
00043 
00044 #include "ros/ros.h"
00045 #include "ros_ethercat_eml/ethercat_mbx.h"
00046 #include "ros_ethercat_eml/ethercat_process_data.h"
00047 #include "ros_ethercat_eml/ethercat_slave_memory.h"
00048 #include "ros_ethercat_eml/ethercat_router.h"
00049 
00051 
00052 class EtherCAT_Master
00053 {
00054 public:
00055   EtherCAT_Master(EtherCAT_AL *_m_al_instance,
00056                   EtherCAT_Router *_m_router_instance,
00057                   EtherCAT_PD_Buffer *_m_pdbuf_instance,
00058                   EC_Logic *_m_logic_instance,
00059                   EtherCAT_DataLinkLayer *_m_dll_instance) :
00060     m_al_instance(_m_al_instance),
00061     m_router_instance(_m_router_instance),
00062     m_pdbuf_instance(_m_pdbuf_instance),
00063     m_logic_instance(_m_logic_instance),
00064     m_dll_instance(_m_dll_instance)
00065   {
00066     ROS_ASSERT(m_al_instance);
00067     ROS_ASSERT(m_router_instance);
00068     ROS_ASSERT(m_pdbuf_instance);
00069     ROS_ASSERT(m_logic_instance);
00070     ROS_ASSERT(m_dll_instance);
00071   }
00072 
00074 
00077   EtherCAT_SlaveHandler * get_slave_handler(EC_FixedStationAddress address);
00078 
00080 
00086   bool txandrx_PD(size_t datalen, unsigned char * data);
00087 
00088 private:
00090   EtherCAT_AL * m_al_instance;
00092   EtherCAT_Router * m_router_instance;
00094   EtherCAT_PD_Buffer * m_pdbuf_instance;
00095 
00097   EC_Logic * m_logic_instance;
00099   EtherCAT_DataLinkLayer * m_dll_instance;
00100 };
00101 
00102 #endif


ros_ethercat_eml
Author(s): Tom Panis, Klaas Gadeyne, Bob Koninckx, Austin Hendrix, Manos Nikolaidis
autogenerated on Thu Jul 4 2019 20:01:49