--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/user/ec_slave.h Fri Oct 21 11:21:42 2005 +0000
@@ -0,0 +1,96 @@
+//---------------------------------------------------------------
+//
+// e c _ s l a v e . h
+//
+// $LastChangedDate$
+// $Author$
+//
+//---------------------------------------------------------------
+
+#define SIMPLE 0
+#define MAILBOX 1
+
+//---------------------------------------------------------------
+
+typedef struct slave_desc EtherCAT_slave_desc_t;
+
+typedef struct
+{
+ // Base data
+ unsigned char type;
+ unsigned char revision;
+ unsigned short build;
+
+ // Addresses
+ short ring_position;
+ unsigned short station_address;
+
+ // Slave information interface
+ unsigned int vendor_id;
+ unsigned int product_code;
+ unsigned int revision_number;
+
+ const EtherCAT_slave_desc_t *desc;
+
+ unsigned int logical_address0;
+
+ unsigned int current_state;
+ unsigned int requested_state;
+
+ unsigned char *process_data;
+}
+EtherCAT_slave_t;
+
+#define ECAT_INIT_SLAVE(TYPE) {0, 0, 0, 0, 0, 0, 0, 0, TYPE, 0, 0, 0, NULL}
+
+//---------------------------------------------------------------
+
+// Slave construction and deletion
+void EtherCAT_slave_init(EtherCAT_slave_t *);
+void EtherCAT_slave_clear(EtherCAT_slave_t *);
+
+// Debug
+void EtherCAT_slave_print(EtherCAT_slave_t *);
+
+//---------------------------------------------------------------
+
+typedef struct slave_desc
+{
+ const char *vendor_name;
+ const char *product_name;
+ const char *product_desc;
+
+ const int type;
+
+ const unsigned char *sm0;
+ const unsigned char *sm1;
+ const unsigned char *sm2;
+ const unsigned char *sm3;
+
+ const unsigned char *fmmu0;
+
+ const unsigned int data_length;
+}
+EtherCAT_slave_desc_t;
+
+extern EtherCAT_slave_desc_t Beckhoff_EK1100[];
+extern EtherCAT_slave_desc_t Beckhoff_EL1014[];
+extern EtherCAT_slave_desc_t Beckhoff_EL2004[];
+extern EtherCAT_slave_desc_t Beckhoff_EL3102[];
+extern EtherCAT_slave_desc_t Beckhoff_EL3162[];
+extern EtherCAT_slave_desc_t Beckhoff_EL4102[];
+extern EtherCAT_slave_desc_t Beckhoff_EL5001[];
+
+//---------------------------------------------------------------
+
+struct slave_ident
+{
+ const unsigned int vendor_id;
+ const unsigned int product_code;
+ const EtherCAT_slave_desc_t *desc;
+};
+
+extern struct slave_ident slave_idents[];
+extern unsigned int slave_idents_count;
+
+//---------------------------------------------------------------