Explorar o código

Working simulation of FSA

Yentl Van Tendeloo %!s(int64=8) %!d(string=hai) anos
pai
achega
3c19b8c244
Modificáronse 1 ficheiros con 23 adicións e 8 borrados
  1. 23 8
      interface/FSA/main.py

+ 23 - 8
interface/FSA/main.py

@@ -79,6 +79,9 @@ class FakeLayer():
     def set_current(self, name):
         pass
 
+    def poll(self):
+        pass
+
 attribute = []
 available_attrs = []
 inp_evts = []
@@ -221,6 +224,9 @@ class MvLayer():
     def set_current(self, name):
         urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % (name), "username": username}))).read()
 
+    def poll(self):
+        urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"poll"', "username": username}))).read()
+
 def lower(value):
     return value / JUMP * JUMP
 
@@ -466,7 +472,19 @@ reverse_lookup_inp = {}
 reverse_lookup_state = {}
 reverse_lookup_outp = {}
 
+glob_max_x = 0.0
+
 def update_graphs():
+    
+    if state:
+        max_x = state[-1][0]
+    else:
+        max_x = 0.0001
+    global glob_max_x
+    glob_max_x = max(max_x, glob_max_x)
+
+    core.mv.poll()
+
     # Input events
     times = [x[0] for x in inp_evts]
     events = [reverse_lookup_inp.setdefault(x[1], len(reverse_lookup_inp)) for x in inp_evts]
@@ -475,7 +493,7 @@ def update_graphs():
         lookup[v] = k
     a_inp.clear()
     a_inp.plot(times, events, linestyle="none", marker="o")
-    #f_inp.get_axes()[0].set_xbound(lower=0.0, upper=10.0)
+    f_inp.get_axes()[0].set_xbound(lower=0.0, upper=glob_max_x)
     f_inp.get_axes()[0].set_yticks(range(-2, len(lookup) + 2))
     f_inp.get_axes()[0].set_yticklabels(["", ""] + lookup + ["", ""])
     fcanvas_inp.draw()
@@ -487,11 +505,8 @@ def update_graphs():
     for k, v in reverse_lookup_state.items():
         lookup[v] = k
     a_state.clear()
-    a_state.plot(times, events, linestyle="solid", marker="o", drawstyle="steps-post")
-    print("Lookup: " + str(lookup))
-    print("Reverse lookup: " + str(reverse_lookup_state))
-    print("Events: " + str(events))
-    #f_state.get_axes()[0].set_xbound(lower=0.0, upper=10.0)
+    a_state.plot(times, events, linestyle="solid", drawstyle="steps-post")
+    f_state.get_axes()[0].set_xbound(lower=0.0, upper=glob_max_x)
     f_state.get_axes()[0].set_yticks(range(-2, len(lookup) + 2))
     f_state.get_axes()[0].set_yticklabels(["", ""] + lookup + ["", ""])
     fcanvas_state.draw()
@@ -504,11 +519,11 @@ def update_graphs():
         lookup[v] = k
     a_outp.clear()
     a_outp.plot(times, events, linestyle="none", marker="o")
-    #f_outp.get_axes()[0].set_xbound(lower=0.0, upper=10.0)
+    f_outp.get_axes()[0].set_xbound(lower=0.0, upper=glob_max_x)
     f_outp.get_axes()[0].set_yticks(range(-2, len(lookup) + 2))
     f_outp.get_axes()[0].set_yticklabels(["", ""] + lookup + ["", ""])
     fcanvas_outp.draw()
     root.after(500, update_graphs)
 
-root.after(500, update_graphs)
+root.after(1, update_graphs)
 root.mainloop()