Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: EasyCAT_LAB_simple EasyCAT_LAB_very_simple EasyCAT_LAB
ethercatcoe.h
00001 /* 00002 * Licensed under the GNU General Public License version 2 with exceptions. See 00003 * LICENSE file in the project root for full license information 00004 */ 00005 00006 /** \file 00007 * \brief 00008 * Headerfile for ethercatcoe.c 00009 */ 00010 00011 #ifndef _ethercatcoe_ 00012 #define _ethercatcoe_ 00013 00014 #ifdef __cplusplus 00015 extern "C" 00016 { 00017 #endif 00018 00019 /** max entries in Object Description list */ 00020 #define EC_MAXODLIST 1024 00021 00022 /** max entries in Object Entry list */ 00023 #define EC_MAXOELIST 256 00024 00025 /* Storage for object description list */ 00026 typedef struct 00027 { 00028 /** slave number */ 00029 uint16 Slave; 00030 /** number of entries in list */ 00031 uint16 Entries; 00032 /** array of indexes */ 00033 uint16 Index[EC_MAXODLIST]; 00034 /** array of datatypes, see EtherCAT specification */ 00035 uint16 DataType[EC_MAXODLIST]; 00036 /** array of object codes, see EtherCAT specification */ 00037 uint8 ObjectCode[EC_MAXODLIST]; 00038 /** number of subindexes for each index */ 00039 uint8 MaxSub[EC_MAXODLIST]; 00040 /** textual description of each index */ 00041 char Name[EC_MAXODLIST][EC_MAXNAME+1]; 00042 } ec_ODlistt; 00043 00044 /* storage for object list entry information */ 00045 typedef struct 00046 { 00047 /** number of entries in list */ 00048 uint16 Entries; 00049 /** array of value infos, see EtherCAT specification */ 00050 uint8 ValueInfo[EC_MAXOELIST]; 00051 /** array of value infos, see EtherCAT specification */ 00052 uint16 DataType[EC_MAXOELIST]; 00053 /** array of bit lengths, see EtherCAT specification */ 00054 uint16 BitLength[EC_MAXOELIST]; 00055 /** array of object access bits, see EtherCAT specification */ 00056 uint16 ObjAccess[EC_MAXOELIST]; 00057 /** textual description of each index */ 00058 char Name[EC_MAXOELIST][EC_MAXNAME+1]; 00059 } ec_OElistt; 00060 00061 #ifdef EC_VER1 00062 void ec_SDOerror(uint16 Slave, uint16 Index, uint8 SubIdx, int32 AbortCode); 00063 int ec_SDOread(uint16 slave, uint16 index, uint8 subindex, 00064 boolean CA, int *psize, void *p, int timeout); 00065 int ec_SDOwrite(uint16 Slave, uint16 Index, uint8 SubIndex, 00066 boolean CA, int psize, void *p, int Timeout); 00067 int ec_RxPDO(uint16 Slave, uint16 RxPDOnumber , int psize, void *p); 00068 int ec_TxPDO(uint16 slave, uint16 TxPDOnumber , int *psize, void *p, int timeout); 00069 int ec_readPDOmap(uint16 Slave, int *Osize, int *Isize); 00070 int ec_readPDOmapCA(uint16 Slave, int Thread_n, int *Osize, int *Isize); 00071 int ec_readODlist(uint16 Slave, ec_ODlistt *pODlist); 00072 int ec_readODdescription(uint16 Item, ec_ODlistt *pODlist); 00073 int ec_readOEsingle(uint16 Item, uint8 SubI, ec_ODlistt *pODlist, ec_OElistt *pOElist); 00074 int ec_readOE(uint16 Item, ec_ODlistt *pODlist, ec_OElistt *pOElist); 00075 #endif 00076 00077 void ecx_SDOerror(ecx_contextt *context, uint16 Slave, uint16 Index, uint8 SubIdx, int32 AbortCode); 00078 int ecx_SDOread(ecx_contextt *context, uint16 slave, uint16 index, uint8 subindex, 00079 boolean CA, int *psize, void *p, int timeout); 00080 int ecx_SDOwrite(ecx_contextt *context, uint16 Slave, uint16 Index, uint8 SubIndex, 00081 boolean CA, int psize, void *p, int Timeout); 00082 int ecx_RxPDO(ecx_contextt *context, uint16 Slave, uint16 RxPDOnumber , int psize, void *p); 00083 int ecx_TxPDO(ecx_contextt *context, uint16 slave, uint16 TxPDOnumber , int *psize, void *p, int timeout); 00084 int ecx_readPDOmap(ecx_contextt *context, uint16 Slave, int *Osize, int *Isize); 00085 int ecx_readPDOmapCA(ecx_contextt *context, uint16 Slave, int Thread_n, int *Osize, int *Isize); 00086 int ecx_readODlist(ecx_contextt *context, uint16 Slave, ec_ODlistt *pODlist); 00087 int ecx_readODdescription(ecx_contextt *context, uint16 Item, ec_ODlistt *pODlist); 00088 int ecx_readOEsingle(ecx_contextt *context, uint16 Item, uint8 SubI, ec_ODlistt *pODlist, ec_OElistt *pOElist); 00089 int ecx_readOE(ecx_contextt *context, uint16 Item, ec_ODlistt *pODlist, ec_OElistt *pOElist); 00090 00091 #ifdef __cplusplus 00092 } 00093 #endif 00094 00095 #endif
Generated on Tue Jul 12 2022 18:21:13 by
