diff --git a/commander.html b/commander.html
index e69de29..4758b80 100644
--- a/commander.html
+++ b/commander.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+ MBC rc bootjes - commander
+
+
+
+
+
Login
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/index.html b/index.html
index 542abcc..9ea0ec5 100644
--- a/index.html
+++ b/index.html
@@ -1,9 +1,7 @@
-
- Mousebot
-
+ MBC Bootjes
connection.onopen = function ()
{
- connection.send('Connect ' + (new Date()));
+ connection.send(clientId + ':' + (new Date()));
};
connection.onerror = function (error)
diff --git a/recever.py b/recever.py
index 656601f..80e5818 100644
--- a/recever.py
+++ b/recever.py
@@ -31,30 +31,67 @@ def sendData(data):
global boats
print("data to send: " + str(data))
-def onMessage(message):
+async def echoBoats(client):
global boats
- data = message.split(':')
- if(data[0] == "cmd"):
- onCMD(message)
+ data = ""
+ for boat in boats:
+ if (boat['state'] != BOAT_STATE_LOCKED):
+ data += str(boat['id']) + ";" + str(boat['name']) + ";"
+ if (boat["state"] == BOAT_STATE_AVAILABLE):
+ data += 'available:'
+ elif (boat["state"] == BOAT_STATE_INCTRL):
+ data += 'in:'
+ await client['ws'].send(data)
+
+async def echoLockedBoats(client):
+ global boats
+ data = ""
+ for boat in boats:
+ if (boat['state'] == BOAT_STATE_LOCKED):
+ data += str(boat['id']) + ";" + str(boat['name']) + ";locked:"
+ await client['ws'].send(data + '\n')
+
+async def onMessage(message, client):
+ global boats
+ data = message.replace('\n', '').split(';')
+ if(data[0] != client["id"]):
+ print("invalid id: " + str(data[0]) + " != " + str(client["id"]))
else:
- for boat in boats:
- if(data[0] == boat):
- sendData(data)
- break
+ if (data[1] == "boats"):
+ await echoBoats(client)
+ elif(data[1] == "ctrl"):
+ print("controll");
+ elif(data[1] == "end"):
+ print("end");
+ elif(data[1] == "free"):
+ print("free");
+ elif(data[1] == "lock"):
+ print("lock");
+ elif(data[1] == "locked"):
+ await echoLockedBoats(client);
+ elif(data[1] == "kick"):
+ print("kick");
+ elif(data[1] == "clients"):
+ print("clients");
+ else:
+ print("something else: '" + data[1] + "'")
def newClient(message, ws):
- print("new client connected: " + message)
- return None
+ message = message.split(';')
+ client = { "id": message[0], "boat": None, "ws": ws }
+ print("new client connected: " + client['id'])
+ clients.append(client)
+ return client
async def run(ws, path):
- client = {}
+ client = None
async for message in ws:
client = newClient(message, ws)
- if (client is None):
- return
+ if (client is not None):
+ break
async for message in ws:
- onMessage(message, client)
+ await onMessage(message, client)
async def main():
async with serve(run, "0.0.0.0", 8080):