00001 /* 00002 * Simple Open EtherCAT Master Library 00003 * 00004 * File : ethercatbase.h 00005 * Version : 1.2.5 00006 * Date : 09-04-2011 00007 * Copyright (C) 2005-2011 Speciaal Machinefabriek Ketels v.o.f. 00008 * Copyright (C) 2005-2011 Arthur Ketels 00009 * Copyright (C) 2008-2009 TU/e Technische Universiteit Eindhoven 00010 * 00011 * SOEM is free software; you can redistribute it and/or modify it under 00012 * the terms of the GNU General Public License version 2 as published by the Free 00013 * Software Foundation. 00014 * 00015 * SOEM is distributed in the hope that it will be useful, but WITHOUT ANY 00016 * WARRANTY; without even the implied warranty of MERCHANTABILITY or 00017 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00018 * for more details. 00019 * 00020 * As a special exception, if other files instantiate templates or use macros 00021 * or inline functions from this file, or you compile this file and link it 00022 * with other works to produce a work based on this file, this file does not 00023 * by itself cause the resulting work to be covered by the GNU General Public 00024 * License. However the source code for this file must still be made available 00025 * in accordance with section (3) of the GNU General Public License. 00026 * 00027 * This exception does not invalidate any other reasons why a work based on 00028 * this file might be covered by the GNU General Public License. 00029 * 00030 * The EtherCAT Technology, the trade name and logo “EtherCAT” are the intellectual 00031 * property of, and protected by Beckhoff Automation GmbH. You can use SOEM for 00032 * the sole purpose of creating, using and/or selling or otherwise distributing 00033 * an EtherCAT network master provided that an EtherCAT Master License is obtained 00034 * from Beckhoff Automation GmbH. 00035 * 00036 * In case you did not receive a copy of the EtherCAT Master License along with 00037 * SOEM write to Beckhoff Automation GmbH, Eiserstraße 5, D-33415 Verl, Germany 00038 * (www.beckhoff.com). 00039 */ 00040 00041 /** \file 00042 * \brief 00043 * Headerfile for ethercatbase.c 00044 */ 00045 00046 #ifndef _ethercatbase_ 00047 #define _ethercatbase_ 00048 00049 int ec_setupdatagram(void *frame, uint8 com, uint8 idx, uint16 ADP, uint16 ADO, uint16 length, void *data); 00050 int ec_adddatagram(void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data); 00051 int ec_BWR(uint16 ADP,uint16 ADO,uint16 length,void *data,int timeout); 00052 int ec_BRD(uint16 ADP,uint16 ADO,uint16 length,void *data,int timeout); 00053 int ec_APRD(uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout); 00054 int ec_ARMW(uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout); 00055 int ec_FRMW(uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout); 00056 uint16 ec_APRDw(uint16 ADP, uint16 ADO, int timeout); 00057 int ec_FPRD(uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout); 00058 uint16 ec_FPRDw(uint16 ADP, uint16 ADO, int16 timeout); 00059 int ec_APWRw(uint16 ADP, uint16 ADO, uint16 data, int timeout); 00060 int ec_APWR(uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout); 00061 int ec_FPWRw(uint16 ADP, uint16 ADO, uint16 data, int timeout); 00062 int ec_FPWR(uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout); 00063 int ec_LRW(uint32 LogAdr, uint16 length, void *data, int timeout); 00064 int ec_LRD(uint32 LogAdr, uint16 length, void *data, int timeout); 00065 int ec_LWR(uint32 LogAdr, uint16 length, void *data, int timeout); 00066 int ec_LRWDC(uint32 LogAdr, uint16 length, void *data, uint16 DCrs, int64 *DCtime, int timeout); 00067 00068 #endif