equal
deleted
inserted
replaced
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); |