diff --git a/abp/static/scripts/websocket.js b/abp/static/scripts/websocket.js
index e40c1b6..438c1ca 100644
--- a/abp/static/scripts/websocket.js
+++ b/abp/static/scripts/websocket.js
@@ -1,16 +1,16 @@
var websocket = {};
websocket.connect = function(update) {
- var ws = new WebSocket("ws://localhost:5000");
- ws.onopen = function(evt) {
+ websocket.ws = new WebSocket("ws://localhost:5000");
+ websocket.ws.onopen = function(evt) {
gui.serverMessage("Connected to server.");
};
- ws.onerror = function(err) {
+ websocket.ws.onerror = function(err) {
gui.serverMessage("Could not connect to server.");
};
- ws.onmessage = function(evt) {
+ websocket.ws.onmessage = function(evt) {
json = JSON.parse(evt.data);
for (var i in json.node) {
var pos = json.node[i].position;
@@ -22,7 +22,7 @@ websocket.connect = function(update) {
update(json);
};
- ws.onclose = function(evt) {
+ websocket.ws.onclose = function(evt) {
gui.serverMessage("No connection to server. Reconnect.", true);
};
};
diff --git a/bin/abpserver b/bin/abpserver
index 2f0321d..e6b1f1a 100755
--- a/bin/abpserver
+++ b/bin/abpserver
@@ -12,13 +12,19 @@ import os, sys, threading
import webbrowser
import argparse
import abp
+import json
from pkg_resources import resource_filename
clients = []
def new_message(client, server, message):
- print "Received update from client {}.".format(client["id"])
- server.send_message_to_all(message)
+ if message.startswith("edit"):
+ edit = json.loads(message[5:])
+ print "Received update from javascript."
+ print edit
+ else:
+ print "Received update from python {}.".format(client["id"])
+ server.send_message_to_all(message)
def new_client(client, server):
print "Client {} connected.".format(client["id"])
diff --git a/examples/visualization/grid_2d.py b/examples/visualization/grid_2d.py
new file mode 100644
index 0000000..63298ca
--- /dev/null
+++ b/examples/visualization/grid_2d.py
@@ -0,0 +1,23 @@
+from abp.fancy import GraphState
+from abp.util import xyz
+import itertools
+
+def grid_2d(width, height):
+ """ Make a 2D grid """
+ psi = GraphState()
+ grid = list(itertools.product(range(width), range(height)))
+
+ for x, y in grid:
+ psi.add_qubit((x, y), position=xyz(x, y, 0), vop=0)
+
+ for x, y in grid:
+ if x