master/slave.h
changeset 275 ba51285d4ef6
parent 269 a03be9a6fed6
child 279 12f48c1cb143
equal deleted inserted replaced
274:b397aee6e602 275:ba51285d4ef6
   212 ec_sdo_entry_t;
   212 ec_sdo_entry_t;
   213 
   213 
   214 /*****************************************************************************/
   214 /*****************************************************************************/
   215 
   215 
   216 /**
   216 /**
       
   217    Variable-sized field information.
       
   218 */
       
   219 
       
   220 typedef struct
       
   221 {
       
   222     struct list_head list; /**< list item */
       
   223     const ec_field_t *field; /**< data field */
       
   224     size_t size; /**< field size */
       
   225 }
       
   226 ec_varsize_t;
       
   227 
       
   228 /*****************************************************************************/
       
   229 
       
   230 /**
   217    EtherCAT slave.
   231    EtherCAT slave.
   218 */
   232 */
   219 
   233 
   220 struct ec_slave
   234 struct ec_slave
   221 {
   235 {
   280 
   294 
   281     ec_slave_state_t requested_state; /**< requested slave state */
   295     ec_slave_state_t requested_state; /**< requested slave state */
   282     ec_slave_state_t current_state; /**< current slave state */
   296     ec_slave_state_t current_state; /**< current slave state */
   283     unsigned int state_error; /**< a state error has happened */
   297     unsigned int state_error; /**< a state error has happened */
   284     unsigned int online; /**< non-zero, if the slave responds. */
   298     unsigned int online; /**< non-zero, if the slave responds. */
       
   299 
       
   300     struct list_head varsize_fields; /**< size information for variable-sized
       
   301                                         data fields. */
   285 };
   302 };
   286 
   303 
   287 /*****************************************************************************/
   304 /*****************************************************************************/
   288 
   305 
   289 // slave construction/destruction
   306 // slave construction/destruction
   308 int ec_slave_fetch_sync(ec_slave_t *, const uint8_t *, size_t);
   325 int ec_slave_fetch_sync(ec_slave_t *, const uint8_t *, size_t);
   309 int ec_slave_fetch_pdo(ec_slave_t *, const uint8_t *, size_t, ec_pdo_type_t);
   326 int ec_slave_fetch_pdo(ec_slave_t *, const uint8_t *, size_t, ec_pdo_type_t);
   310 int ec_slave_locate_string(ec_slave_t *, unsigned int, char **);
   327 int ec_slave_locate_string(ec_slave_t *, unsigned int, char **);
   311 
   328 
   312 // misc.
   329 // misc.
       
   330 size_t ec_slave_calc_sync_size(const ec_slave_t *, const ec_sync_t *);
   313 void ec_slave_print(const ec_slave_t *, unsigned int);
   331 void ec_slave_print(const ec_slave_t *, unsigned int);
   314 int ec_slave_check_crc(ec_slave_t *);
   332 int ec_slave_check_crc(ec_slave_t *);
   315 
   333 
   316 /*****************************************************************************/
   334 /*****************************************************************************/
   317 
   335