fp@42: /****************************************************************************** fp@42: * fp@54: * d o m a i n . h fp@42: * fp@42: * Struktur für eine Gruppe von EtherCAT-Slaves. fp@42: * fp@42: * $Id$ fp@42: * fp@42: *****************************************************************************/ fp@42: fp@42: #ifndef _EC_DOMAIN_H_ fp@42: #define _EC_DOMAIN_H_ fp@42: fp@73: #include fp@73: fp@54: #include "globals.h" fp@54: #include "slave.h" fp@98: #include "command.h" fp@73: fp@73: /*****************************************************************************/ fp@73: fp@73: /** fp@73: Datenfeld-Konfiguration. fp@73: */ fp@73: fp@73: typedef struct fp@73: { fp@73: struct list_head list; fp@73: ec_slave_t *slave; fp@73: const ec_sync_t *sync; fp@73: uint32_t field_offset; fp@73: void **data_ptr; fp@73: } fp@73: ec_field_reg_t; fp@42: fp@42: /*****************************************************************************/ fp@42: fp@42: /** fp@42: EtherCAT-Domäne fp@42: fp@42: Verwaltet die Prozessdaten und das hierfür nötige Kommando einer bestimmten fp@42: Menge von Slaves. fp@42: */ fp@42: fp@73: struct ec_domain fp@42: { fp@95: struct list_head list; /**< Listenkopf */ fp@73: ec_master_t *master; /**< EtherCAT-Master, zu der die Domäne gehört. */ fp@98: size_t data_size; /**< Größe der Prozessdaten */ fp@144: struct list_head commands; /**< EtherCAT-Kommandos für die Prozessdaten */ fp@101: uint32_t base_address; /**< Logische Basisaddresse der Domain */ fp@73: unsigned int response_count; /**< Anzahl antwortender Slaves */ fp@73: struct list_head field_regs; /**< Liste der Datenfeldregistrierungen */ fp@73: }; fp@42: fp@42: /*****************************************************************************/ fp@42: fp@104: void ec_domain_init(ec_domain_t *, ec_master_t *); fp@73: void ec_domain_clear(ec_domain_t *); fp@73: int ec_domain_alloc(ec_domain_t *, uint32_t); fp@42: fp@42: /*****************************************************************************/ fp@42: fp@42: #endif fp@42: fp@42: /* Emacs-Konfiguration fp@73: ;;; Local Variables: *** fp@73: ;;; c-basic-offset:4 *** fp@42: ;;; End: *** fp@42: */