master/master.c
changeset 135 80d493917205
parent 133 b36d187ecc0b
child 136 a03a684cac89
equal deleted inserted replaced
134:aecc8cb72097 135:80d493917205
   851 
   851 
   852         // Change state to PREOP
   852         // Change state to PREOP
   853         if (unlikely(ec_slave_state_change(slave, EC_SLAVE_STATE_PREOP)))
   853         if (unlikely(ec_slave_state_change(slave, EC_SLAVE_STATE_PREOP)))
   854             return -1;
   854             return -1;
   855 
   855 
   856         // Fetch SDO list
       
   857         if (slave->sii_mailbox_protocols & EC_MBOX_COE) {
       
   858             if (unlikely(ec_slave_fetch_sdo_list(slave))) {
       
   859                 EC_ERR("Could not fetch SDO list!\n");
       
   860                 return -1;
       
   861             }
       
   862         }
       
   863 
       
   864         // Slaves that are not registered are only brought into PREOP
   856         // Slaves that are not registered are only brought into PREOP
   865         // state -> nice blinking and mailbox comm. possible
   857         // state -> nice blinking and mailbox comm. possible
   866         if (!slave->registered && !slave->type->bus_coupler) {
   858         if (!slave->registered && !slave->type->bus_coupler) {
   867             EC_WARN("Slave %i was not registered!\n", slave->ring_position);
   859             EC_WARN("Slave %i was not registered!\n", slave->ring_position);
   868             continue;
   860             continue;
   914     {
   906     {
   915         slave = master->slaves + i;
   907         slave = master->slaves + i;
   916         ec_slave_check_crc(slave);
   908         ec_slave_check_crc(slave);
   917         ec_slave_state_change(slave, EC_SLAVE_STATE_INIT);
   909         ec_slave_state_change(slave, EC_SLAVE_STATE_INIT);
   918     }
   910     }
       
   911 }
       
   912 
       
   913 
       
   914 /*****************************************************************************/
       
   915 
       
   916 /**
       
   917    Lädt die SDO-Dictionaries aller Slaves.
       
   918 
       
   919    Slaves, die kein CoE unterstützen, werden ausgelassen.
       
   920 
       
   921    \return 0 wenn alles ok, sonst < 0
       
   922 */
       
   923 
       
   924 int ecrt_master_fetch_sdo_lists(ec_master_t *master /**< EtherCAT-Master */)
       
   925 {
       
   926     ec_slave_t *slave;
       
   927     unsigned int i;
       
   928 
       
   929     for (i = 0; i < master->slave_count; i++) {
       
   930         slave = master->slaves + i;
       
   931         if (slave->sii_mailbox_protocols & EC_MBOX_COE) {
       
   932             if (unlikely(ec_slave_fetch_sdo_list(slave))) {
       
   933                 EC_ERR("Failed to fetch SDO list on slave %i!\n",
       
   934                        slave->ring_position);
       
   935                 return -1;
       
   936             }
       
   937         }
       
   938     }
       
   939 
       
   940     return 0;
   919 }
   941 }
   920 
   942 
   921 /*****************************************************************************/
   943 /*****************************************************************************/
   922 
   944 
   923 /**
   945 /**
  1153 /*****************************************************************************/
  1175 /*****************************************************************************/
  1154 
  1176 
  1155 EXPORT_SYMBOL(ecrt_master_create_domain);
  1177 EXPORT_SYMBOL(ecrt_master_create_domain);
  1156 EXPORT_SYMBOL(ecrt_master_activate);
  1178 EXPORT_SYMBOL(ecrt_master_activate);
  1157 EXPORT_SYMBOL(ecrt_master_deactivate);
  1179 EXPORT_SYMBOL(ecrt_master_deactivate);
       
  1180 EXPORT_SYMBOL(ecrt_master_fetch_sdo_lists);
  1158 EXPORT_SYMBOL(ecrt_master_prepare_async_io);
  1181 EXPORT_SYMBOL(ecrt_master_prepare_async_io);
  1159 EXPORT_SYMBOL(ecrt_master_sync_io);
  1182 EXPORT_SYMBOL(ecrt_master_sync_io);
  1160 EXPORT_SYMBOL(ecrt_master_async_send);
  1183 EXPORT_SYMBOL(ecrt_master_async_send);
  1161 EXPORT_SYMBOL(ecrt_master_async_receive);
  1184 EXPORT_SYMBOL(ecrt_master_async_receive);
  1162 EXPORT_SYMBOL(ecrt_master_debug);
  1185 EXPORT_SYMBOL(ecrt_master_debug);