master/slave.h
branchredundancy
changeset 2374 e898451c054a
parent 1921 d9cf40facbc4
child 2421 bc2d4bf9cbe5
equal deleted inserted replaced
2373:593272e5a169 2374:e898451c054a
   172 /** EtherCAT slave.
   172 /** EtherCAT slave.
   173  */
   173  */
   174 struct ec_slave
   174 struct ec_slave
   175 {
   175 {
   176     ec_master_t *master; /**< Master owning the slave. */
   176     ec_master_t *master; /**< Master owning the slave. */
       
   177     ec_device_index_t device_index; /**< Index of device the slave responds
       
   178                                       on. */
   177 
   179 
   178     // addresses
   180     // addresses
   179     uint16_t ring_position; /**< Ring position. */
   181     uint16_t ring_position; /**< Ring position. */
   180     uint16_t station_address; /**< Configured station address. */
   182     uint16_t station_address; /**< Configured station address. */
   181     uint16_t effective_alias; /**< Effective alias address. */
   183     uint16_t effective_alias; /**< Effective alias address. */
   236 };
   238 };
   237 
   239 
   238 /*****************************************************************************/
   240 /*****************************************************************************/
   239 
   241 
   240 // slave construction/destruction
   242 // slave construction/destruction
   241 void ec_slave_init(ec_slave_t *, ec_master_t *, uint16_t, uint16_t);
   243 void ec_slave_init(ec_slave_t *, ec_master_t *, ec_device_index_t,
       
   244         uint16_t, uint16_t);
   242 void ec_slave_clear(ec_slave_t *);
   245 void ec_slave_clear(ec_slave_t *);
   243 
   246 
   244 void ec_slave_clear_sync_managers(ec_slave_t *);
   247 void ec_slave_clear_sync_managers(ec_slave_t *);
   245 
   248 
   246 void ec_slave_request_state(ec_slave_t *, ec_slave_state_t);
   249 void ec_slave_request_state(ec_slave_t *, ec_slave_state_t);