diff -r 42c66194c0c8 -r a22a202d0f42 drivers/ec_master.h --- 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: *** +*/