瀏覽代碼

Fixed reading of available attributes, now also including types

Yentl Van Tendeloo 8 年之前
父節點
當前提交
970e0e1124
共有 2 個文件被更改,包括 12 次插入5 次删除
  1. 8 3
      integration/code/cbd_semantics.alc
  2. 4 2
      interface/CBD/main.py

+ 8 - 3
integration/code/cbd_semantics.alc

@@ -277,9 +277,14 @@ Void function execute_cbd(design_model : Element):
 		elif (cmd == "read_available_attributes"):
 			// Returns a list of all available attributes
 			Element attr_list
-			attr_list = dict_keys(getAttributeList(design_model, cmd))
-			while (0 < read_nr_out(attr_list)):
-				output("AVAILABLE_ATTR_VALUE " + cast_v2s(set_pop(attr_list)))
+			Element attrs
+			Element attr
+			attr_list = getAttributeList(design_model, input())
+			attrs = dict_keys(attr_list)
+			while (0 < read_nr_out(attrs)):
+				attr = set_pop(attrs)
+				output("AVAILABLE_ATTR_VALUE " + cast_v2s(attr))
+				output("AVAILABLE_ATTR_TYPE " + cast_v2s(dict_read(attr_list, attr)))
 			output("AVAILABLE_ATTR_END")
 
 		elif (cmd == "read_attribute"):

+ 4 - 2
interface/CBD/main.py

@@ -70,7 +70,9 @@ def poll(address):
         returnvalue = urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "get_output", "username": "CBD_env"}))).read()
         print("Process " + str(returnvalue))
         if (returnvalue.startswith("AVAILABLE_ATTR_VALUE")):
-            working_available_attrs.append(returnvalue.split(" ", 1)[1])
+            working_available_attrs.append((returnvalue.split(" ", 1)[1], None))
+        elif (returnvalue.startswith("AVAILABLE_ATTR_TYPE")):
+            working_available_attrs[-1][1] = returnvalue.split(" ", 1)[1]
         elif (returnvalue.startswith("AVAILABLE_ATTR_END")):
             available_attrs.append(working_available)
             working_available = []
@@ -174,7 +176,7 @@ class InterfaceCore():
 
                 for attr in attrs:
                     old_value = self.mv.read_attribute(lname, attr)
-                    new_value = tkSimpleDialog.askstring("Attribute modification", attr, initialvalue=old_value)
+                    new_value = float(tkSimpleDialog.askstring("Attribute modification", attr, initialvalue=old_value))
                     self.mv.set_attribute(lname, attr, new_value)
 
             else: