259 uint8_t registered; /**< true, if slave has been registered */ |
273 uint8_t registered; /**< true, if slave has been registered */ |
260 |
274 |
261 ec_fmmu_t fmmus[EC_MAX_FMMUS]; /**< FMMU configurations */ |
275 ec_fmmu_t fmmus[EC_MAX_FMMUS]; /**< FMMU configurations */ |
262 uint8_t fmmu_count; /**< number of FMMUs used */ |
276 uint8_t fmmu_count; /**< number of FMMUs used */ |
263 |
277 |
|
278 uint8_t *eeprom_data; /**< Complete EEPROM image */ |
|
279 uint16_t eeprom_size; /**< size of the EEPROM contents in byte */ |
264 struct list_head eeprom_strings; /**< EEPROM STRING categories */ |
280 struct list_head eeprom_strings; /**< EEPROM STRING categories */ |
265 struct list_head eeprom_syncs; /**< EEPROM SYNC MANAGER categories */ |
281 struct list_head eeprom_syncs; /**< EEPROM SYNC MANAGER categories */ |
266 struct list_head eeprom_pdos; /**< EEPROM [RT]XPDO categories */ |
282 struct list_head eeprom_pdos; /**< EEPROM [RT]XPDO categories */ |
267 |
|
268 char *eeprom_group; /**< slave group acc. to EEPROM */ |
283 char *eeprom_group; /**< slave group acc. to EEPROM */ |
269 char *eeprom_image; /**< slave image name acc. to EEPROM */ |
284 char *eeprom_image; /**< slave image name acc. to EEPROM */ |
270 char *eeprom_order; /**< slave order number acc. to EEPROM */ |
285 char *eeprom_order; /**< slave order number acc. to EEPROM */ |
271 char *eeprom_name; /**< slave name acc. to EEPROM */ |
286 char *eeprom_name; /**< slave name acc. to EEPROM */ |
272 |
287 |
|
288 uint16_t *new_eeprom_data; /**< new EEPROM data to write */ |
|
289 size_t new_eeprom_size; /**< size of new EEPROM data in words */ |
|
290 |
273 struct list_head sdo_dictionary; /**< SDO directory list */ |
291 struct list_head sdo_dictionary; /**< SDO directory list */ |
274 |
|
275 ec_command_t mbox_command; /**< mailbox command */ |
|
276 |
292 |
277 ec_slave_state_t requested_state; /**< requested slave state */ |
293 ec_slave_state_t requested_state; /**< requested slave state */ |
278 ec_slave_state_t current_state; /**< current slave state */ |
294 ec_slave_state_t current_state; /**< current slave state */ |
279 unsigned int state_error; /**< a state error has happened */ |
295 unsigned int state_error; /**< a state error has happened */ |
280 unsigned int online; /**< non-zero, if the slave responds. */ |
296 unsigned int online; /**< non-zero, if the slave responds. */ |
|
297 |
|
298 struct list_head varsize_fields; /**< size information for variable-sized |
|
299 data fields. */ |
281 }; |
300 }; |
282 |
301 |
283 /*****************************************************************************/ |
302 /*****************************************************************************/ |
284 |
303 |
285 // slave construction/destruction |
304 // slave construction/destruction |
304 int ec_slave_fetch_sync(ec_slave_t *, const uint8_t *, size_t); |
323 int ec_slave_fetch_sync(ec_slave_t *, const uint8_t *, size_t); |
305 int ec_slave_fetch_pdo(ec_slave_t *, const uint8_t *, size_t, ec_pdo_type_t); |
324 int ec_slave_fetch_pdo(ec_slave_t *, const uint8_t *, size_t, ec_pdo_type_t); |
306 int ec_slave_locate_string(ec_slave_t *, unsigned int, char **); |
325 int ec_slave_locate_string(ec_slave_t *, unsigned int, char **); |
307 |
326 |
308 // misc. |
327 // misc. |
|
328 size_t ec_slave_calc_sync_size(const ec_slave_t *, const ec_sync_t *); |
309 void ec_slave_print(const ec_slave_t *, unsigned int); |
329 void ec_slave_print(const ec_slave_t *, unsigned int); |
310 int ec_slave_check_crc(ec_slave_t *); |
330 int ec_slave_check_crc(ec_slave_t *); |
311 |
331 |
312 /*****************************************************************************/ |
332 /*****************************************************************************/ |
313 |
333 |