rcrf-wifi/recever.py
2023-11-16 21:11:55 +01:00

65 lines
1.2 KiB
Python

#!/usr/bin/env python
import asyncio
from websockets.server import serve
adminId = "1234"
BOAT_STATE_INCTRL = 1
BOAT_STATE_AVAILABLE = 0
BOAT_STATE_LOCKED = -1
boats = [
{ "id": 0, "name": "test boat", "state": BOAT_STATE_AVAILABLE }
]
clients = []
def onCMD(data):
global boats, adminId
print("command:" + str(data))
if (len(data) != 4):
return
if (data[1] != adminId):
return
boot = int(data[2])
if (boot >= 0 and boot <= 3):
boats[boot] = data[3]
print(boats)
def sendData(data):
global boats
print("data to send: " + str(data))
def onMessage(message):
global boats
data = message.split(':')
if(data[0] == "cmd"):
onCMD(message)
else:
for boat in boats:
if(data[0] == boat):
sendData(data)
break
def newClient(message, ws):
print("new client connected: " + message)
return None
async def run(ws, path):
client = {}
async for message in ws:
client = newClient(message, ws)
if (client is None):
return
async for message in ws:
onMessage(message, client)
async def main():
async with serve(run, "0.0.0.0", 8080):
await asyncio.Future()
asyncio.run(main())