master/slave.h
changeset 624 11332ad89f47
parent 620 4f76acbf54a0
child 625 ec69acbbd156
equal deleted inserted replaced
623:4d64368f3a1e 624:11332ad89f47
    95 };
    95 };
    96 
    96 
    97 /*****************************************************************************/
    97 /*****************************************************************************/
    98 
    98 
    99 /**
    99 /**
   100    String object (EEPROM).
       
   101 */
       
   102 
       
   103 typedef struct
       
   104 {
       
   105     struct list_head list; /**< list item */
       
   106     size_t size; /**< size in bytes */
       
   107     char *data; /**< string data */
       
   108 }
       
   109 ec_sii_string_t;
       
   110 
       
   111 /*****************************************************************************/
       
   112 
       
   113 /**
       
   114    Sync manager configuration (EEPROM).
   100    Sync manager configuration (EEPROM).
   115 */
   101 */
   116 
   102 
   117 typedef struct
   103 typedef struct
   118 {
   104 {
   238     uint16_t sii_rx_mailbox_size; /**< mailbox size (master to slave) */
   224     uint16_t sii_rx_mailbox_size; /**< mailbox size (master to slave) */
   239     uint16_t sii_tx_mailbox_offset; /**< mailbox address (slave to master) */
   225     uint16_t sii_tx_mailbox_offset; /**< mailbox address (slave to master) */
   240     uint16_t sii_tx_mailbox_size; /**< mailbox size (slave to master) */
   226     uint16_t sii_tx_mailbox_size; /**< mailbox size (slave to master) */
   241     uint16_t sii_mailbox_protocols; /**< supported mailbox protocols */
   227     uint16_t sii_mailbox_protocols; /**< supported mailbox protocols */
   242     uint8_t sii_physical_layer[4]; /**< port media */
   228     uint8_t sii_physical_layer[4]; /**< port media */
   243     struct list_head sii_strings; /**< EEPROM STRING categories */
   229     char **sii_strings; /**< strings in EEPROM categories */
       
   230     unsigned int sii_string_count; /**< number of EEPROM strings */
   244     ec_sii_sync_t *sii_syncs; /**< EEPROM SYNC MANAGER categories */
   231     ec_sii_sync_t *sii_syncs; /**< EEPROM SYNC MANAGER categories */
   245     unsigned int sii_sync_count; /**< number of sync managers in EEPROM */
   232     unsigned int sii_sync_count; /**< number of sync managers in EEPROM */
   246     struct list_head sii_pdos; /**< EEPROM [RT]XPDO categories */
   233     struct list_head sii_pdos; /**< EEPROM [RT]XPDO categories */
   247     char *sii_group; /**< slave group acc. to EEPROM */
   234     char *sii_group; /**< slave group acc. to EEPROM */
   248     char *sii_image; /**< slave image name acc. to EEPROM */
   235     char *sii_image; /**< slave image name acc. to EEPROM */
   281 int ec_slave_fetch_sii_syncs(ec_slave_t *, const uint8_t *, size_t);
   268 int ec_slave_fetch_sii_syncs(ec_slave_t *, const uint8_t *, size_t);
   282 int ec_slave_fetch_sii_pdos(ec_slave_t *, const uint8_t *, size_t,
   269 int ec_slave_fetch_sii_pdos(ec_slave_t *, const uint8_t *, size_t,
   283         ec_sii_pdo_type_t);
   270         ec_sii_pdo_type_t);
   284 
   271 
   285 // misc.
   272 // misc.
   286 int ec_slave_locate_sii_string(ec_slave_t *, unsigned int, char **);
       
   287 ec_sii_sync_t *ec_slave_get_pdo_sync(ec_slave_t *, ec_direction_t); 
   273 ec_sii_sync_t *ec_slave_get_pdo_sync(ec_slave_t *, ec_direction_t); 
   288 void ec_slave_sync_config(const ec_slave_t *, const ec_sii_sync_t *,
   274 void ec_slave_sync_config(const ec_slave_t *, const ec_sii_sync_t *,
   289         uint8_t *);
   275         uint8_t *);
   290 void ec_slave_fmmu_config(const ec_slave_t *, const ec_fmmu_t *, uint8_t *);
   276 void ec_slave_fmmu_config(const ec_slave_t *, const ec_fmmu_t *, uint8_t *);
   291 uint16_t ec_slave_calc_sync_size(const ec_slave_t *, const ec_sii_sync_t *);
   277 uint16_t ec_slave_calc_sync_size(const ec_slave_t *, const ec_sii_sync_t *);