master/domain.c
changeset 625 ec69acbbd156
parent 619 15becb1879fd
child 626 a5e838c30733
equal deleted inserted replaced
624:11332ad89f47 625:ec69acbbd156
   186    \return 0 in case of success, else < 0
   186    \return 0 in case of success, else < 0
   187 */
   187 */
   188 
   188 
   189 int ec_domain_reg_pdo_entry(ec_domain_t *domain, /**< EtherCAT domain */
   189 int ec_domain_reg_pdo_entry(ec_domain_t *domain, /**< EtherCAT domain */
   190                             ec_slave_t *slave, /**< slave */
   190                             ec_slave_t *slave, /**< slave */
   191                             const ec_sii_pdo_t *pdo, /**< PDO */
   191                             const ec_pdo_t *pdo, /**< PDO */
   192                             const ec_sii_pdo_entry_t *entry,
   192                             const ec_pdo_entry_t *entry,
   193                             /**< PDO registration entry */
   193                             /**< PDO registration entry */
   194                             void **data_ptr /**< pointer to the process data
   194                             void **data_ptr /**< pointer to the process data
   195                                                pointer */
   195                                                pointer */
   196                             )
   196                             )
   197 {
   197 {
   198     ec_data_reg_t *data_reg;
   198     ec_data_reg_t *data_reg;
   199     const ec_sii_sync_t *sync;
   199     const ec_sii_sync_t *sync;
   200     const ec_sii_pdo_t *other_pdo;
   200     const ec_pdo_t *other_pdo;
   201     const ec_sii_pdo_entry_t *other_entry;
   201     const ec_pdo_entry_t *other_entry;
   202     unsigned int bit_offset, byte_offset;
   202     unsigned int bit_offset, byte_offset;
   203 
   203 
   204     // Find sync manager for PDO
   204     // Find sync manager for PDO
   205     if (pdo->sync_index >= slave->sii_sync_count) {
   205     if (pdo->sync_index >= slave->sii_sync_count) {
   206         EC_ERR("No sync manager for PDO 0x%04X:%i.",
   206         EC_ERR("No sync manager for PDO 0x%04X:%i.",
   497                                         pointer */
   497                                         pointer */
   498                                      )
   498                                      )
   499 {
   499 {
   500     ec_slave_t *slave;
   500     ec_slave_t *slave;
   501     ec_master_t *master;
   501     ec_master_t *master;
   502     const ec_sii_pdo_t *pdo;
   502     const ec_pdo_t *pdo;
   503     const ec_sii_pdo_entry_t *entry;
   503     const ec_pdo_entry_t *entry;
   504 
   504 
   505     master = domain->master;
   505     master = domain->master;
   506 
   506 
   507     // translate address and validate slave
   507     // translate address and validate slave
   508     if (!(slave = ecrt_master_get_slave(master, address))) return NULL;
   508     if (!(slave = ecrt_master_get_slave(master, address))) return NULL;