Update WebSockets API to MeterFeeder (untested)
This commit is contained in:
parent
6a110685f8
commit
8bf5b4bbda
1 changed files with 46 additions and 14 deletions
|
|
@ -261,53 +261,85 @@ def serve(servername, port, id):
|
||||||
def handle_ws_message(message, websocket, subscribed):
|
def handle_ws_message(message, websocket, subscribed):
|
||||||
try:
|
try:
|
||||||
split_message = message.strip().upper().split()
|
split_message = message.strip().upper().split()
|
||||||
if split_message[0] == 'RANDINT32':
|
if split_message[0] == 'DEVICES':
|
||||||
websocket.send(str(mf_wrapper.randint32()))
|
websocket.send(str(mf_wrapper.deviceIds(False)))
|
||||||
|
elif split_message[0] == 'RANDINT32':
|
||||||
|
deviceId = split_message[1]
|
||||||
|
if len(deviceId) != 8:
|
||||||
|
raise ValueError()
|
||||||
|
websocket.send(str(mf_wrapper.randint32(deviceId)))
|
||||||
elif split_message[0] == 'RANDUNIFORM':
|
elif split_message[0] == 'RANDUNIFORM':
|
||||||
websocket.send(str(mf_wrapper.randuniform()))
|
deviceId = split_message[1]
|
||||||
|
if len(deviceId) != 8:
|
||||||
|
raise ValueError()
|
||||||
|
websocket.send(str(mf_wrapper.randuniform(deviceId)))
|
||||||
elif split_message[0] == 'RANDNORMAL':
|
elif split_message[0] == 'RANDNORMAL':
|
||||||
websocket.send(str(mf_wrapper.randnormal()))
|
deviceId = split_message[1]
|
||||||
|
if len(deviceId) != 8:
|
||||||
|
raise ValueError()
|
||||||
|
websocket.send(str(mf_wrapper.randnormal(deviceId)))
|
||||||
elif split_message[0] == 'RANDBYTES':
|
elif split_message[0] == 'RANDBYTES':
|
||||||
length = int(split_message[1])
|
deviceId = split_message[1]
|
||||||
|
if len(deviceId) != 8:
|
||||||
|
raise ValueError()
|
||||||
|
length = int(split_message[2])
|
||||||
if length < 1:
|
if length < 1:
|
||||||
raise ValueError()
|
raise ValueError()
|
||||||
websocket.send(mf_wrapper.randbytes(length))
|
websocket.send(mf_wrapper.randbytes(deviceId, length))
|
||||||
elif split_message[0] == 'SUBSCRIBEINT32':
|
elif split_message[0] == 'SUBSCRIBEINT32':
|
||||||
|
deviceId = split_message[1]
|
||||||
|
if len(deviceId) != 8:
|
||||||
|
raise ValueError()
|
||||||
if not subscribed[0]:
|
if not subscribed[0]:
|
||||||
subscribed[0] = True
|
subscribed[0] = True
|
||||||
while subscribed[0] and not websocket.closed:
|
while subscribed[0] and not websocket.closed:
|
||||||
websocket.send(str(mf_wrapper.randint32()))
|
websocket.send(str(mf_wrapper.randint32(deviceId)))
|
||||||
elif split_message[0] == 'SUBSCRIBEUNIFORM':
|
elif split_message[0] == 'SUBSCRIBEUNIFORM':
|
||||||
|
deviceId = split_message[1]
|
||||||
|
if len(deviceId) != 8:
|
||||||
|
raise ValueError()
|
||||||
if not subscribed[0]:
|
if not subscribed[0]:
|
||||||
subscribed[0] = True
|
subscribed[0] = True
|
||||||
while subscribed[0] and not websocket.closed:
|
while subscribed[0] and not websocket.closed:
|
||||||
websocket.send(str(mf_wrapper.randuniform()))
|
websocket.send(str(mf_wrapper.randuniform(deviceId)))
|
||||||
elif split_message[0] == 'SUBSCRIBENORMAL':
|
elif split_message[0] == 'SUBSCRIBENORMAL':
|
||||||
|
deviceId = split_message[1]
|
||||||
|
if len(deviceId) != 8:
|
||||||
|
raise ValueError()
|
||||||
if not subscribed[0]:
|
if not subscribed[0]:
|
||||||
subscribed[0] = True
|
subscribed[0] = True
|
||||||
while subscribed[0] and not websocket.closed:
|
while subscribed[0] and not websocket.closed:
|
||||||
websocket.send(str(mf_wrapper.randnormal()))
|
websocket.send(str(mf_wrapper.randnormal(deviceId)))
|
||||||
elif split_message[0] == 'SUBSCRIBEBYTES':
|
elif split_message[0] == 'SUBSCRIBEBYTES':
|
||||||
chunk = int(split_message[1])
|
deviceId = split_message[1]
|
||||||
|
if len(deviceId) != 8:
|
||||||
|
raise ValueError()
|
||||||
|
chunk = int(split_message[2])
|
||||||
if chunk < 1:
|
if chunk < 1:
|
||||||
raise ValueError()
|
raise ValueError()
|
||||||
if not subscribed[0]:
|
if not subscribed[0]:
|
||||||
subscribed[0] = True
|
subscribed[0] = True
|
||||||
while subscribed[0] and not websocket.closed:
|
while subscribed[0] and not websocket.closed:
|
||||||
websocket.send(mf_wrapper.randbytes(chunk))
|
websocket.send(mf_wrapper.randbytes(deviceId, chunk))
|
||||||
elif split_message[0] == 'SUBSCRIBEHEX':
|
elif split_message[0] == 'SUBSCRIBEHEX':
|
||||||
chunk = int(split_message[1])
|
deviceId = split_message[1]
|
||||||
|
if len(deviceId) != 8:
|
||||||
|
raise ValueError()
|
||||||
|
chunk = int(split_message[2])
|
||||||
if chunk < 1:
|
if chunk < 1:
|
||||||
raise ValueError()
|
raise ValueError()
|
||||||
if not subscribed[0]:
|
if not subscribed[0]:
|
||||||
subscribed[0] = True
|
subscribed[0] = True
|
||||||
while subscribed[0] and not websocket.closed:
|
while subscribed[0] and not websocket.closed:
|
||||||
websocket.send(mf_wrapper.randbytes(chunk).hex())
|
websocket.send(mf_wrapper.randbytes(deviceId, chunk).hex())
|
||||||
elif split_message[0] == 'UNSUBSCRIBE':
|
elif split_message[0] == 'UNSUBSCRIBE':
|
||||||
subscribed[0] = False
|
subscribed[0] = False
|
||||||
websocket.send('UNSUBSCRIBED')
|
websocket.send('UNSUBSCRIBED')
|
||||||
elif split_message[0] == 'CLEAR':
|
elif split_message[0] == 'CLEAR':
|
||||||
mf_wrapper.clear()
|
deviceId = split_message[1]
|
||||||
|
if len(deviceId) != 8:
|
||||||
|
raise ValueError()
|
||||||
|
mf_wrapper.clear(deviceId)
|
||||||
except (IndexError, ValueError, BlockingIOError):
|
except (IndexError, ValueError, BlockingIOError):
|
||||||
pass
|
pass
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue