--- a/drivers/ec_master.h Fri Dec 23 08:23:35 2005 +0000
+++ b/drivers/ec_master.h Thu Jan 05 13:39:39 2006 +0000
@@ -14,6 +14,7 @@
#include "ec_device.h"
#include "ec_slave.h"
#include "ec_command.h"
+#include "ec_domain.h"
/*****************************************************************************/
@@ -24,19 +25,10 @@
dem zugewiesenen EtherCAT-Gerät.
*/
-typedef struct
+struct EtherCAT_master
{
- EtherCAT_slave_t *slaves; /**< Zeiger auf statischen Speicher
- mit Slave-Informationen */
- unsigned int slave_count; /**< Anzahl der Slaves in slaves */
-
- EtherCAT_command_t process_data_command; /**< Kommando zum Senden und
- Empfangen der Prozessdaten */
-
EtherCAT_device_t *dev; /**< Zeiger auf das zugewiesene EtherCAT-Gerät */
-
unsigned char command_index; /**< Aktueller Kommando-Index */
-
unsigned char tx_data[ECAT_FRAME_BUFFER_SIZE]; /**< Statischer Speicher
für zu sendende Daten */
unsigned int tx_data_length; /**< Länge der Daten im Sendespeicher */
@@ -44,13 +36,13 @@
eine Kopie des Rx-Buffers
im EtherCAT-Gerät */
unsigned int rx_data_length; /**< Länge der Daten im Empfangsspeicher */
-
- unsigned char *process_data; /**< Zeiger auf Speicher mit Prozessdaten */
- unsigned int process_data_length; /**< Länge der Prozessdaten */
-
+ EtherCAT_domain_t domains[ECAT_MAX_DOMAINS]; /** Prozessdatendomänen */
+ unsigned int domain_count;
int debug_level; /**< Debug-Level im Master-Code */
-}
-EtherCAT_master_t;
+ unsigned long tx_time; /**< Zeit des letzten Sendens */
+ unsigned long rx_time; /**< Zeit des letzten Empfangs */
+ unsigned int rx_tries; /**< Anzahl Warteschleifen beim letzen Enpfang */
+};
/*****************************************************************************/
@@ -68,22 +60,17 @@
int EtherCAT_simple_receive(EtherCAT_master_t *, EtherCAT_command_t *);
// Slave management
-int EtherCAT_check_slaves(EtherCAT_master_t *, EtherCAT_slave_t *, unsigned int);
-void EtherCAT_clear_slaves(EtherCAT_master_t *);
-int EtherCAT_read_slave_information(EtherCAT_master_t *,
- unsigned short int,
- unsigned short int,
- unsigned int *);
+int EtherCAT_check_slaves(EtherCAT_master_t *, EtherCAT_slave_t *,
+ unsigned int);
+int EtherCAT_read_slave_information(EtherCAT_master_t *, unsigned short int,
+ unsigned short int, unsigned int *);
int EtherCAT_activate_slave(EtherCAT_master_t *, EtherCAT_slave_t *);
int EtherCAT_deactivate_slave(EtherCAT_master_t *, EtherCAT_slave_t *);
-int EtherCAT_activate_all_slaves(EtherCAT_master_t *);
-int EtherCAT_deactivate_all_slaves(EtherCAT_master_t *);
-int EtherCAT_state_change(EtherCAT_master_t *, EtherCAT_slave_t *, unsigned char);
+int EtherCAT_state_change(EtherCAT_master_t *, EtherCAT_slave_t *,
+ unsigned char);
// Process data
-int EtherCAT_write_process_data(EtherCAT_master_t *);
-int EtherCAT_read_process_data(EtherCAT_master_t *);
-void EtherCAT_clear_process_data(EtherCAT_master_t *);
+int EtherCAT_process_data_cycle(EtherCAT_master_t *, unsigned int);
// Private functions
void output_debug_data(const EtherCAT_master_t *);
@@ -91,3 +78,9 @@
/*****************************************************************************/
#endif
+
+/* Emacs-Konfiguration
+;;; Local Variables: ***
+;;; c-basic-offset:2 ***
+;;; End: ***
+*/