trottel controll commands

This commit is contained in:
Laila van Reenen 2024-08-10 14:21:23 +02:00
parent 7844c38e51
commit 0a7801bf7c
Signed by: LailaTheElf
GPG Key ID: 1F4E6EE3E6DDF769

View File

@ -2,8 +2,10 @@
import asyncio
from websockets.server import serve
from datetime import datetime
ADMIN_ID = "1234"
BOAT_DATA_INTERVAL_MAX = 0.1 # seconds
BOAT_STATE_INCTRL = 2
BOAT_STATE_AVAILABLE = 1
@ -113,7 +115,9 @@ async def on_message(message, client):
print("WARN: controll cmd (" + client['id'] + ") to None: " + data[2])
else:
print("INFO: controll cmd (" + client['id'] + ") to " + client['boat']['name'] + ": " + data[2])
await client['boat']['ws'].send("d:" + data[2] + "\n")
if client['boat']['lastMsg'] + BOAT_DATA_INTERVAL_MAX < datetime.timestamp(datetime.now()):
await client['boat']['ws'].send("d:" + data[2] + "\n")
client['boat']['lastMsg'] = datetime.timestamp(datetime.now())
else:
print("WARN: invalid command (" + client['id'] + "): '" + data[1] + "'")
@ -133,7 +137,7 @@ async def new_client(clientId, ws):
async def new_boat(boatId, name, ws):
"""handler for every new boat connection"""
boat = { "id": boatId, "name": name, "ws": ws, "state": BOAT_STATE_AVAILABLE }
boat = { "id": boatId, "name": name, "ws": ws, "state": BOAT_STATE_AVAILABLE, "lastMsg": 0 }
print("new boat connected: " + boatId)
for bo in Boats:
if bo['id'] == boat['id']: