Go to the documentation of this file.
48 #ifndef _ethercatmain_
49 #define _ethercatmain_
58 #define EC_MAXELIST 64
62 #define EC_MAXSLAVE 200
66 #define EC_MAXIOSEGMENTS 64
68 #define EC_MAXMBX 0x3ff
70 #define EC_MAXEEPDO 0x200
76 #define EC_MAXLEN_ADAPTERNAME 128
122 #define ECT_MBXPROT_AOE 0x0001
123 #define ECT_MBXPROT_EOE 0x0002
124 #define ECT_MBXPROT_COE 0x0004
125 #define ECT_MBXPROT_FOE 0x0008
126 #define ECT_MBXPROT_SOE 0x0010
127 #define ECT_MBXPROT_VOE 0x0020
129 #define ECT_COEDET_SDO 0x01
130 #define ECT_COEDET_SDOINFO 0x02
131 #define ECT_COEDET_PDOASSIGN 0x04
132 #define ECT_COEDET_PDOCONFIG 0x08
133 #define ECT_COEDET_UPLOAD 0x10
134 #define ECT_COEDET_SDOCA 0x20
136 #define EC_SMENABLEMASK 0xfffeffff
458 int (*FOEhook)(
uint16 slave,
int packetnumber,
int datasize);
467 extern int ec_slavecount;
470 extern boolean EcatError;
471 extern int64 ec_DCtime;
475 boolean ec_iserror(
void);
477 int ec_init(
char * ifname);
478 int ec_init_redundant(
char *ifname,
char *if2name);
487 int ec_readstate(
void);
488 int ec_writestate(
uint16 slave);
490 int ec_mbxempty(
uint16 slave,
int timeout);
496 int ec_eeprom2master(
uint16 slave);
497 int ec_eeprom2pdi(
uint16 slave);
504 int ec_send_processdata_group(
uint8 group);
505 int ec_receive_processdata_group(
uint8 group,
int timeout);
506 int ec_send_processdata(
void);
507 int ec_receive_processdata(
int timeout);
uint16 ecx_siiFMMU(ecx_contextt *context, uint16 slave, ec_eepromFMMUt *FMMU)
#define EC_MAXLEN_ADAPTERNAME
int ecx_mbxempty(ecx_contextt *context, uint16 slave, int timeout)
int ecx_writestate(ecx_contextt *context, uint16 slave)
uint64 ecx_readeepromAP(ecx_contextt *context, uint16 aiadr, uint16 eeproma, int timeout)
int ecx_writeeepromAP(ecx_contextt *context, uint16 aiadr, uint16 eeproma, uint16 data, int timeout)
uint8 ec_mbxbuft[EC_MAXMBX+1]
void ecx_siistring(ecx_contextt *context, char *str, uint16 slave, uint16 Sn)
uint32 ecx_readeeprom2(ecx_contextt *context, uint16 slave, int timeout)
uint64 ecx_readeepromFP(ecx_contextt *context, uint16 configadr, uint16 eeproma, int timeout)
int ecx_readstate(ecx_contextt *context)
void ec_clearmbx(ec_mbxbuft *Mbx)
void ecx_close(ecx_contextt *context)
char desc[EC_MAXLEN_ADAPTERNAME]
int ecx_eeprom2pdi(ecx_contextt *context, uint16 slave)
ec_SMcommtypet * SMcommtype
int ecx_receive_processdata_group(ecx_contextt *context, uint8 group, int timeout)
uint8 ecx_siigetbyte(ecx_contextt *context, uint16 slave, uint16 address)
PACKED_END PACKED_BEGIN struct PACKED ec_alstatust
uint16 ecx_statecheck(ecx_contextt *context, uint16 slave, uint16 reqstate, int timeout)
int ecx_eeprom2master(ecx_contextt *context, uint16 slave)
PACKED_END PACKED_BEGIN struct PACKED ec_smt
int ecx_writeeepromFP(ecx_contextt *context, uint16 configadr, uint16 eeproma, uint16 data, int timeout)
boolean ecx_iserror(ecx_contextt *context)
uint32 ecx_readeeprom(ecx_contextt *context, uint16 slave, uint16 eeproma, int timeout)
uint8 ec_nextmbxcnt(uint8 cnt)
ec_adaptert * ec_find_adapters(void)
int ecx_send_processdata_group(ecx_contextt *context, uint8 group)
PACKED_END PACKED_BEGIN struct PACKED ec_PDOassignt
int ecx_init(ecx_contextt *context, char *ifname)
uint16 ecx_siiSMnext(ecx_contextt *context, uint16 slave, ec_eepromSMt *SM, uint16 n)
void ecx_readeeprom1(ecx_contextt *context, uint16 slave, uint16 eeproma)
PACKED_BEGIN struct PACKED ec_mbxheadert
PACKED_BEGIN struct PACKED ec_SMcommtypet
PACKED_END PACKED_BEGIN struct PACKED ec_PDOdesct
int ecx_init_redundant(ecx_contextt *context, ecx_redportt *redport, char *ifname, char *if2name)
void ecx_esidump(ecx_contextt *context, uint16 slave, uint8 *esibuf)
int ecx_writeeeprom(ecx_contextt *context, uint16 slave, uint16 eeproma, uint16 data, int timeout)
int ecx_mbxsend(ecx_contextt *context, uint16 slave, ec_mbxbuft *mbx, int timeout)
ec_PDOassignt * PDOassign
PACKED_BEGIN struct PACKED ec_fmmut
boolean ecx_poperror(ecx_contextt *context, ec_errort *Ec)
void ec_free_adapters(ec_adaptert *adapter)
int16 ecx_siifind(ecx_contextt *context, uint16 slave, uint16 cat)
void ecx_pusherror(ecx_contextt *context, const ec_errort *Ec)
int ecx_receive_processdata(ecx_contextt *context, int timeout)
char name[EC_MAXLEN_ADAPTERNAME]
int ecx_send_processdata(ecx_contextt *context)
void ecx_packeterror(ecx_contextt *context, uint16 Slave, uint16 Index, uint8 SubIdx, uint16 ErrorCode)
int ecx_siiPDO(ecx_contextt *context, uint16 slave, ec_eepromPDOt *PDO, uint8 t)
int ecx_mbxreceive(ecx_contextt *context, uint16 slave, ec_mbxbuft *mbx, int timeout)
PACKED_END PACKED_BEGIN struct PACKED ec_state_status
uint16 ecx_siiSM(ecx_contextt *context, uint16 slave, ec_eepromSMt *SM)