etherlab/etherlab.py
changeset 2138 79dc2d15c580
parent 2137 b65abacdbdf9
child 2139 1565239349a8
--- a/etherlab/etherlab.py	Fri Apr 26 13:57:10 2013 +0200
+++ b/etherlab/etherlab.py	Fri Apr 26 23:23:09 2013 +0200
@@ -236,14 +236,27 @@
 
     MODULES_EXTRA_PARAMS = [
         ("pdo_alignment", {
-            "column_label": _("PDO alignment (bits)"), 
-            "default": 8}),
+            "column_label": _("PDO alignment"), 
+            "column_size": 150,
+            "default": 8,
+            "description": _(
+"Minimal size in bits between 2 pdo entries")}),
         ("max_pdo_size", {
-            "column_label": _("Max entries by PDO (-1=unbounded)"), 
-            "default": -1}),
+            "column_label": _("Max entries by PDO"),
+            "column_size": 150,
+            "default": -1,
+            "description": _(
+"""Maximal number of entries mapped in a PDO
+including empty entries used for PDO alignment
+(-1=unbounded)""")}),
         ("add_pdo", {
-            "column_label": _("Creating new PDO (1=possible)"), 
-            "default": 0})
+            "column_label": _("Creating new PDO"), 
+            "column_size": 150,
+            "default": 0,
+            "description": _(
+"""Adding a PDO not defined in default configuration
+for mapping needed location variables
+(1 if possible)""")})
     ]
     
     def __init__(self, path, parent_library=None):
@@ -388,12 +401,13 @@
                 if has_header:
                     has_header = False
                 else:
-                    try:
-                        self.ModulesExtraParams[tuple(map(int, row[:3]))] = dict(
-                            zip([param for param, params_infos in self.MODULES_EXTRA_PARAMS], 
-                                int(row[3])))
-                    except:
-                        pass
+                    params_values = {}
+                    for (param, param_infos), value in zip(
+                        self.MODULES_EXTRA_PARAMS, row[3:]):
+                        if value != "":
+                            params_values[param] = int(value)
+                    self.ModulesExtraParams[
+                        tuple(map(int, row[:3]))] = params_values
             csvfile.close()
     
     def SaveModulesExtraParams(self):
@@ -412,7 +426,10 @@
         product_code = ExtractHexDecValue(product_code)
         revision_number = ExtractHexDecValue(revision_number)
         
-        self.ModulesExtraParams[tuple([vendor, product_code, revision_number])][param] = value
+        module_infos = (vendor, product_code, revision_number)
+        self.ModulesExtraParams.setdefault(module_infos, {})
+        self.ModulesExtraParams[module_infos][param] = value
+        
         self.SaveModulesExtraParams()
     
     def GetModuleExtraParams(self, vendor, product_code, revision_number):
@@ -425,7 +442,7 @@
         else:
             extra_params = {}
         
-        extra_params.update(self.ModulesExtraParams.get(tuple([vendor, product_code, revision_number]), {}))
+        extra_params.update(self.ModulesExtraParams.get((vendor, product_code, revision_number), {}))
         
         for param, param_infos in self.MODULES_EXTRA_PARAMS:
             extra_params.setdefault(param, param_infos["default"])