master/slave_config.c
changeset 844 8839ba8bfeb4
parent 843 b6bddb663755
child 854 f4f53be425ac
equal deleted inserted replaced
843:b6bddb663755 844:8839ba8bfeb4
   510 
   510 
   511     if (sc->master->debug_level)
   511     if (sc->master->debug_level)
   512         EC_DBG("Adding Pdo 0x%04X to mapping for dir %u, config %u:%u.\n",
   512         EC_DBG("Adding Pdo 0x%04X to mapping for dir %u, config %u:%u.\n",
   513                 index, dir, sc->alias, sc->position);
   513                 index, dir, sc->alias, sc->position);
   514 
   514 
   515     if (!(pdo = ec_pdo_mapping_add_pdo(pm, index, dir)))
   515     if (!(pdo = ec_pdo_mapping_add_pdo(pm, dir, index)))
   516         return -1;
   516         return -1;
   517 
   517 
   518     ec_slave_config_load_default_pdo_config(sc, pdo);
   518     ec_slave_config_load_default_pdo_config(sc, pdo);
   519     return 0;
   519     return 0;
   520 }
   520 }
   555             entry_bit_length) ? 0 : -1;
   555             entry_bit_length) ? 0 : -1;
   556 }
   556 }
   557 
   557 
   558 /*****************************************************************************/
   558 /*****************************************************************************/
   559 
   559 
   560 int ecrt_slave_config_mapping(ec_slave_config_t *sc, unsigned int n_entries,
   560 int ecrt_slave_config_mapping(ec_slave_config_t *sc, unsigned int n_infos,
   561         const ec_pdo_info_t pdo_infos[])
   561         const ec_pdo_info_t pdo_infos[])
   562 {
   562 {
   563     unsigned int i;
   563     unsigned int i, j;
   564     const ec_pdo_info_t *pi;
   564     const ec_pdo_info_t *pi;
   565     ec_pdo_mapping_t *pm;
   565     ec_pdo_mapping_t *pm;
   566     ec_pdo_t *pdo;
   566     ec_pdo_t *pdo;
   567     const ec_pdo_entry_info_t *ei;
   567     const ec_pdo_entry_info_t *ei;
   568 
   568 
   569     for (i = 0; i < n_entries; i++) {
   569     for (i = 0; i < n_infos; i++) {
   570         pi = &pdo_infos[i];
   570         pi = &pdo_infos[i];
   571         pm = &sc->mapping[pi->dir];
   571         pm = &sc->mapping[pi->dir];
   572 
   572 
   573         if (pm->default_mapping) {
   573         if (pm->default_mapping) {
   574             if (sc->master->debug_level)
   574             if (sc->master->debug_level)
   577             pm->default_mapping = 0;
   577             pm->default_mapping = 0;
   578             ec_pdo_mapping_clear_pdos(pm);
   578             ec_pdo_mapping_clear_pdos(pm);
   579         }
   579         }
   580 
   580 
   581         if (sc->master->debug_level)
   581         if (sc->master->debug_level)
   582             EC_DBG("Adding Pdo 0x%04X to mapping.\n", pi->index);
   582             EC_DBG("Adding Pdo 0x%04X to mapping for dir %u, config %u:%u.\n",
       
   583                     pi->index, pi->dir, sc->alias, sc->position);
   583 
   584 
   584         if (!(pdo = ec_pdo_mapping_add_pdo(pm, pi->dir, pi->index)))
   585         if (!(pdo = ec_pdo_mapping_add_pdo(pm, pi->dir, pi->index)))
   585             return -1;
   586             return -1;
   586 
   587 
   587         if (pi->n_entries && pi->entries) { // configuration provided
   588         if (pi->n_entries && pi->entries) { // configuration provided
   588             if (sc->master->debug_level)
   589             if (sc->master->debug_level)
   589                 EC_DBG("  Pdo configuration information provided.\n");
   590                 EC_DBG("  Pdo configuration information provided.\n");
   590 
   591 
   591             for (i = 0; i < pi->n_entries; i++) {
   592             for (j = 0; j < pi->n_entries; j++) {
   592                 ei = &pi->entries[i];
   593                 ei = &pi->entries[j];
   593                 if (!ec_pdo_add_entry(pdo, ei->index, ei->subindex,
   594                 if (!ec_pdo_add_entry(pdo, ei->index, ei->subindex,
   594                             ei->bit_length))
   595                             ei->bit_length))
   595                     return -1;
   596                     return -1;
   596             }
   597             }
   597         } else { // use default Pdo configuration
   598         } else { // use default Pdo configuration