etherlab/EthercatCFileGenerator.py
changeset 2117 accc4cbca8d3
parent 2116 2b1980a038b1
child 2121 11102245e1d4
--- a/etherlab/EthercatCFileGenerator.py	Fri Apr 05 16:49:41 2013 +0900
+++ b/etherlab/EthercatCFileGenerator.py	Fri Apr 05 21:47:37 2013 +0900
@@ -31,7 +31,7 @@
 
     if (ecrt_slave_config_pdos(slave%(slave)d, EC_END, slave_%(slave)d_syncs)) {
         SLOGF(LOG_CRITICAL, "EtherCAT failed to configure PDOs for slave %(device_type)s at alias %(alias)d and position %(position)d.");
-        return -1;
+        goto ecat_failed;
     }
 """
 
@@ -41,7 +41,7 @@
         EC_WRITE_%(data_type)s((uint8_t *)value, %(data)s);
         if (ecrt_master_sdo_download(master, %(slave)d, 0x%(index).4x, 0x%(subindex).2x, (uint8_t *)value, %(data_size)d, &abort_code)) {
             SLOGF(LOG_CRITICAL, "EtherCAT Failed to initialize slave %(device_type)s at alias %(alias)d and position %(position)d. Error: %%d", abort_code);
-            return -1;
+            goto ecat_failed;
         }
     }
 """
@@ -51,7 +51,7 @@
         uint8_t value[%(data_size)d];
         if (ecrt_master_sdo_upload(master, %(slave)d, 0x%(index).4x, 0x%(subindex).2x, (uint8_t *)value, %(data_size)d, &result_size, &abort_code)) {
             SLOGF(LOG_CRITICAL, "EtherCAT failed to get default value for output PDO in slave %(device_type)s at alias %(alias)d and position %(position)d. Error: %%ud", abort_code);
-            return -1;
+            goto ecat_failed;
         }
         %(real_var)s = EC_READ_%(data_type)s((uint8_t *)value);
     }