rt/msr_module.c
changeset 61 cd014255f94f
parent 59 c8bd4fe3b38c
child 62 0fb2a690f4d0
--- 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;