|
@@ -4,12 +4,25 @@ from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
|
|
|
from matplotlib.figure import Figure
|
|
|
|
|
|
|
|
|
-from Tkinter import *
|
|
|
+try:
|
|
|
+ from Tkinter import *
|
|
|
+ import tkSimpleDialog
|
|
|
+except ImportError:
|
|
|
+ from tkinter import *
|
|
|
+ import tkinter.simpledialog as tkSimpleDialog
|
|
|
+
|
|
|
from PIL import Image, ImageTk
|
|
|
-import tkSimpleDialog
|
|
|
|
|
|
-import urllib
|
|
|
-import urllib2
|
|
|
+
|
|
|
+if sys.version_info[0] < 3:
|
|
|
+ from urllib2 import urlopen as urlopen
|
|
|
+ from urllib2 import Request as Request
|
|
|
+ from urllib import urlencode as urlencode
|
|
|
+else:
|
|
|
+ from urllib.request import urlopen as urlopen
|
|
|
+ from urllib.request import Request as Request
|
|
|
+ from urllib.parse import urlencode as urlencode
|
|
|
+
|
|
|
import json
|
|
|
|
|
|
import time
|
|
@@ -72,7 +85,7 @@ def poll(address):
|
|
|
working_simulation = None
|
|
|
|
|
|
while 1:
|
|
|
- returnvalue = json.loads(urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "get_output", "taskname": taskname}))).read())
|
|
|
+ returnvalue = json.loads(urlopen(Request(address, urlencode({"op": "get_output", "taskname": taskname}))).read())
|
|
|
print("Process " + str(returnvalue))
|
|
|
if (returnvalue.startswith("AVAILABLE_ATTR_VALUE")):
|
|
|
working_available_attrs.append([json.loads(returnvalue.split(" ", 1)[1]), None])
|
|
@@ -110,58 +123,58 @@ class MvLayer():
|
|
|
import threading
|
|
|
|
|
|
self.address = address
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % taskname, "taskname": "task_manager"}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % taskname, "taskname": "task_manager"}))).read()
|
|
|
thrd = threading.Thread(target=poll, args=[address])
|
|
|
thrd.daemon = True
|
|
|
thrd.start()
|
|
|
|
|
|
def read_available_attributes(self, name):
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"read_available_attributes"', "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % name, "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"read_available_attributes"', "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % name, "taskname": taskname}))).read()
|
|
|
|
|
|
while not available_attrs:
|
|
|
time.sleep(0.1)
|
|
|
return available_attrs.pop(0)
|
|
|
|
|
|
def read_attribute(self, name, attr):
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"read_attribute"', "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % name, "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % attr, "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"read_attribute"', "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % name, "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % attr, "taskname": taskname}))).read()
|
|
|
|
|
|
while not attribute:
|
|
|
time.sleep(0.1)
|
|
|
return attribute.pop(0)
|
|
|
|
|
|
def set_attribute(self, name, attr, value):
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"set_attribute"', "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % name, "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % attr, "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": json.dumps(value), "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"set_attribute"', "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % name, "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % attr, "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": json.dumps(value), "taskname": taskname}))).read()
|
|
|
|
|
|
def instantiate_block(self, name, block_type):
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"instantiate_node"', "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % (block_type), "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % (name), "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"instantiate_node"', "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % (block_type), "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % (name), "taskname": taskname}))).read()
|
|
|
|
|
|
def instantiate_link(self, name, link_type, source, target):
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"instantiate_association"', "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % (link_type), "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % (name), "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % (source), "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % (target), "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"instantiate_association"', "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % (link_type), "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % (name), "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % (source), "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % (target), "taskname": taskname}))).read()
|
|
|
|
|
|
def simulate(self):
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"simulate"', "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"simulate"', "taskname": taskname}))).read()
|
|
|
|
|
|
def step(self):
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"step"', "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"step"', "taskname": taskname}))).read()
|
|
|
|
|
|
def pause(self):
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"pause"', "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"pause"', "taskname": taskname}))).read()
|
|
|
|
|
|
def delete(self, block):
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"delete_element"', "taskname": taskname}))).read()
|
|
|
- urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % (block), "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"delete_element"', "taskname": taskname}))).read()
|
|
|
+ urlopen(Request(address, urlencode({"op": "set_input", "value": '"%s"' % (block), "taskname": taskname}))).read()
|
|
|
|
|
|
def lower(value):
|
|
|
return value / JUMP * JUMP
|