equal
deleted
inserted
replaced
613 state_and_ack); |
613 state_and_ack); |
614 return -1; |
614 return -1; |
615 } |
615 } |
616 |
616 |
617 if (unlikely(cmd.working_counter != 1)) { |
617 if (unlikely(cmd.working_counter != 1)) { |
618 printk(KERN_ERR "EtherCAT: Could not set state %02X - Device %i (%s %s)" |
618 printk(KERN_ERR "EtherCAT: Could not set state %02X - Slave %i (%s %s)" |
619 " did not respond!\n", state_and_ack, slave->ring_position * (-1), |
619 " did not respond!\n", state_and_ack, slave->ring_position * (-1), |
620 slave->type->vendor_name, slave->type->product_name); |
620 slave->type->vendor_name, slave->type->product_name); |
621 return -1; |
621 return -1; |
622 } |
622 } |
623 |
623 |
733 @param bus_index Index des Slaves im EtherCAT-Bus |
733 @param bus_index Index des Slaves im EtherCAT-Bus |
734 @param vendor_name String mit dem Herstellernamen |
734 @param vendor_name String mit dem Herstellernamen |
735 @param product_name String mit dem Produktnamen |
735 @param product_name String mit dem Produktnamen |
736 @param domain Domäne, in der der Slave sein soll |
736 @param domain Domäne, in der der Slave sein soll |
737 |
737 |
738 @return 0 bei Erfolg, sonst < 0 |
738 @return Zeiger auf den Slave bei Erfolg, sonst NULL |
739 */ |
739 */ |
740 |
740 |
741 ec_slave_t *EtherCAT_rt_register_slave(ec_master_t *master, |
741 ec_slave_t *EtherCAT_rt_register_slave(ec_master_t *master, |
742 unsigned int bus_index, |
742 unsigned int bus_index, |
743 const char *vendor_name, |
743 const char *vendor_name, |
812 slave->registered = 1; |
812 slave->registered = 1; |
813 |
813 |
814 dom->data_size += type->process_data_size; |
814 dom->data_size += type->process_data_size; |
815 |
815 |
816 return slave; |
816 return slave; |
|
817 } |
|
818 |
|
819 /*****************************************************************************/ |
|
820 |
|
821 /** |
|
822 Registriert eine ganze Liste von Slaves beim Master. |
|
823 |
|
824 @param master Der EtherCAT-Master |
|
825 @param slaves Array von Slave-Initialisierungsstrukturen |
|
826 @param count Anzahl der Strukturen in "slaves" |
|
827 |
|
828 @return 0 bei Erfolg, sonst < 0 |
|
829 */ |
|
830 |
|
831 int EtherCAT_rt_register_slave_list(ec_master_t *master, |
|
832 const ec_slave_init_t *slaves, |
|
833 unsigned int count) |
|
834 { |
|
835 unsigned int i; |
|
836 |
|
837 for (i = 0; i < count; i++) |
|
838 { |
|
839 if ((*(slaves[i].slave_ptr) = |
|
840 EtherCAT_rt_register_slave(master, slaves[i].bus_index, |
|
841 slaves[i].vendor_name, |
|
842 slaves[i].product_name, |
|
843 slaves[i].domain)) == NULL) |
|
844 return -1; |
|
845 } |
|
846 |
|
847 return 0; |
817 } |
848 } |
818 |
849 |
819 /*****************************************************************************/ |
850 /*****************************************************************************/ |
820 |
851 |
821 /** |
852 /** |
1044 ec_slave_t *slave; |
1075 ec_slave_t *slave; |
1045 unsigned int i; |
1076 unsigned int i; |
1046 |
1077 |
1047 for (i = 0; i < master->bus_slaves_count; i++) |
1078 for (i = 0; i < master->bus_slaves_count; i++) |
1048 { |
1079 { |
1049 slave = master->bus_slaves + 1; |
1080 slave = master->bus_slaves + i; |
1050 |
1081 |
1051 if (unlikely(ec_state_change(master, slave, EC_SLAVE_STATE_INIT) != 0)) |
1082 if (unlikely(ec_state_change(master, slave, EC_SLAVE_STATE_INIT) != 0)) |
1052 return -1; |
1083 return -1; |
1053 } |
1084 } |
1054 |
1085 |
1153 } |
1184 } |
1154 |
1185 |
1155 /*****************************************************************************/ |
1186 /*****************************************************************************/ |
1156 |
1187 |
1157 EXPORT_SYMBOL(EtherCAT_rt_register_slave); |
1188 EXPORT_SYMBOL(EtherCAT_rt_register_slave); |
|
1189 EXPORT_SYMBOL(EtherCAT_rt_register_slave_list); |
1158 EXPORT_SYMBOL(EtherCAT_rt_activate_slaves); |
1190 EXPORT_SYMBOL(EtherCAT_rt_activate_slaves); |
1159 EXPORT_SYMBOL(EtherCAT_rt_deactivate_slaves); |
1191 EXPORT_SYMBOL(EtherCAT_rt_deactivate_slaves); |
1160 EXPORT_SYMBOL(EtherCAT_rt_domain_xio); |
1192 EXPORT_SYMBOL(EtherCAT_rt_domain_xio); |
1161 EXPORT_SYMBOL(EtherCAT_rt_debug_level); |
1193 EXPORT_SYMBOL(EtherCAT_rt_debug_level); |
1162 |
1194 |