ethercat_slave_handler.h
Go to the documentation of this file.
00001 // $Id: ethercat_slave_handler.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_slave_handler__
00034 #define __ethercat_slave_handler__
00035 
00036 #include "ros_ethercat_eml/ethercat_FSM.h"
00037 #include "ros_ethercat_eml/ethercat_slave_conf.h"
00038 
00039 // forward declaration
00040 class EtherCAT_AL;
00041 
00043 
00044 class EtherCAT_SlaveHandler : public EC_ESM, public EtherCAT_SlaveConfig
00045 {
00046   // Being friendly
00047   friend class EC_ESM_Ops;
00048   friend class EtherCAT_Router;
00049   friend class EtherCAT_AL;
00050 
00051 public:
00053 
00065   EtherCAT_SlaveHandler(uint16_t a_ring_position,
00066                         uint32_t a_product_code,
00067                         uint32_t a_revision,
00068                         uint32_t a_serial,
00069                         EC_FixedStationAddress a_station_address,
00070                         EtherCAT_FMMU_Config * a_fmmu_config,
00071                         EtherCAT_PD_Config * a_pd_config,
00072                         EtherCAT_MbxConfig * a_mbx_config,
00073                         EtherCAT_DataLinkLayer *_m_dll_instance,
00074                         EC_Logic *_m_logic_instance,
00075                         EtherCAT_PD_Buffer *_m_pdbuf_instance);
00077   EtherCAT_SlaveHandler(uint16_t a_ring_position,
00078                         EtherCAT_SlaveConfig * a_sconf,
00079                         uint32_t a_serial,
00080                         EtherCAT_DataLinkLayer *_m_dll_instance,
00081                         EC_Logic *_m_logic_instance,
00082                         EtherCAT_PD_Buffer *_m_pdbuf_instance);
00083 
00085   uint16_t get_ring_position() const
00086   {
00087     return m_ring_position;
00088   }
00090   uint32_t get_serial() const
00091   {
00092     return m_serial;
00093   }
00094 
00096   uint8_t get_mbx_counter();
00097 protected:
00098 
00100   uint16_t m_ring_position;
00101 
00103   uint32_t m_serial;
00104 
00106   uint8_t m_mbx_counter;
00107 };
00108 
00109 #endif //  __ethercat_slave_handler__


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