diff -r 5a58606726f3 -r 068a58b96965 master/slave.c --- a/master/slave.c Tue Feb 19 14:05:59 2008 +0000 +++ b/master/slave.c Tue Feb 19 14:06:50 2008 +0000 @@ -1189,7 +1189,7 @@ /** * Get an SDO from the dictionary. - * \returns The desired SDO, of NULL. + * \returns The desired SDO, or NULL. */ ec_sdo_t *ec_slave_get_sdo( @@ -1208,3 +1208,29 @@ } /*****************************************************************************/ + +/** Finds a mapped Pdo. + * \returns The desired Pdo object, or NULL. + */ +const ec_pdo_t *ec_slave_find_pdo( + const ec_slave_t *slave, /**< Slave. */ + uint16_t index /**< Pdo index to find. */ + ) +{ + unsigned int i; + const ec_sync_t *sync; + const ec_pdo_t *pdo; + + for (i = 0; i < slave->sii_sync_count; i++) { + sync = &slave->sii_syncs[i]; + + if (!(pdo = ec_pdo_mapping_find_pdo(&sync->mapping, index))) + continue; + + return pdo; + } + + return NULL; +} + +/*****************************************************************************/