--- a/rt/msr_module.c Thu Jan 26 11:06:56 2006 +0000
+++ b/rt/msr_module.c Thu Jan 26 13:41:47 2006 +0000
@@ -57,17 +57,14 @@
double value;
int dig1;
-/*****************************************************************************/
-
-static int register_slaves(void)
-{
- s_in1 = EtherCAT_rt_register_slave(master, 1, "Beckhoff", "EL3102", 0);
- s_out1 = EtherCAT_rt_register_slave(master, 8, "Beckhoff", "EL2004", 0);
- s_out2 = EtherCAT_rt_register_slave(master, 9, "Beckhoff", "EL2004", 0);
- s_out3 = EtherCAT_rt_register_slave(master, 10, "Beckhoff", "EL2004", 0);
-
- return !s_in1 || !s_out1 || !s_out2 || !s_out3;
-}
+ec_slave_init_t slaves[] = {
+ {&s_in1, 1, "Beckhoff", "EL3102", 0},
+ {&s_out1, 8, "Beckhoff", "EL2004", 0},
+ {&s_out2, 9, "Beckhoff", "EL2004", 0},
+ {&s_out3, 10, "Beckhoff", "EL2004", 0}
+};
+
+#define SLAVE_COUNT (sizeof(slaves) / sizeof(ec_slave_init_t))
/******************************************************************************
*
@@ -194,28 +191,25 @@
goto out_msr_cleanup;
}
- printk("Registering EtherCAT slaves.\n");
- if (register_slaves()) {
- printk(KERN_ERR "EtherCAT: Could not init slaves!\n");
+ if (EtherCAT_rt_register_slave_list(master, slaves, SLAVE_COUNT)) {
+ printk(KERN_ERR "EtherCAT: Could not register slaves!\n");
goto out_release_master;
}
- printk("Activating all EtherCAT slaves.\n");
-
if (EtherCAT_rt_activate_slaves(master) < 0) {
- printk(KERN_ERR "EtherCAT: Could not activate slaves!\n");
- goto out_release_master;
+ printk(KERN_ERR "EtherCAT: Could not activate slaves!\n");
+ goto out_release_master;
}
do_gettimeofday(&process_time);
- msr_time_increment.tv_sec=0;
- msr_time_increment.tv_usec=(unsigned int)(1000000/MSR_ABTASTFREQUENZ);
-
- ipipe_init_attr (&attr);
- attr.name = "IPIPE-MSR-MODULE";
+ msr_time_increment.tv_sec = 0;
+ msr_time_increment.tv_usec = (unsigned int) (1000000 / MSR_ABTASTFREQUENZ);
+
+ ipipe_init_attr(&attr);
+ attr.name = "IPIPE-MSR-MODULE";
attr.priority = IPIPE_ROOT_PRIO + 1;
- attr.entry = &domain_entry;
- ipipe_register_domain(&this_domain,&attr);
+ attr.entry = &domain_entry;
+ ipipe_register_domain(&this_domain, &attr);
return 0;