97 lines
3.2 KiB
Python
97 lines
3.2 KiB
Python
import asyncio
|
|
import json
|
|
import websockets
|
|
|
|
ENDPOINT = "ws://localhost:8000/ipmi/computer/8b9faf9f-9470-4a50-b405-0af5f0152550/ws"
|
|
|
|
|
|
def gen_payload(tick: int):
|
|
return {
|
|
"x": 3,
|
|
"y": 4,
|
|
"width": 39,
|
|
"height": 13,
|
|
"blink": True,
|
|
"fg": 0,
|
|
"text": [
|
|
"[WS] OK\u0003 ",
|
|
"FG 0123456789ABCDEF ",
|
|
"BG 0123456789ABCDEF ",
|
|
" ",
|
|
f"Tick: {tick:8d} ",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
],
|
|
"fg_color": [
|
|
"78870dd50000000000000000000000000000000",
|
|
"0000123456789abcdef00000000000000000000",
|
|
"000f00000000000000000000000000000000000",
|
|
"440000000000000000000000000000000000000",
|
|
"000000000000000000000000000000000000000",
|
|
"000000000000000000000000000000000000000",
|
|
"000000000000000000000000000000000000000",
|
|
"000000000000000000000000000000000000000",
|
|
"000000000000000000000000000000000000000",
|
|
"000000000000000000000000000000000000000",
|
|
"000000000000000000000000000000000000000",
|
|
"000000000000000000000000000000000000000",
|
|
"000000000000000000000000000000000000000",
|
|
],
|
|
"bg_color": [
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
"ffffffffffffffffff0ffffffffffffffffffff",
|
|
"fff0123456789abcdefffffffffffffffffffff",
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
"fffffffffffffffffffffffffffffffffffffff",
|
|
],
|
|
"palette": [
|
|
15790320,
|
|
15905331,
|
|
15040472,
|
|
10072818,
|
|
14605932,
|
|
8375321,
|
|
15905484,
|
|
5000268,
|
|
10066329,
|
|
5020082,
|
|
11691749,
|
|
3368652,
|
|
8349260,
|
|
5744206,
|
|
13388876,
|
|
1118481,
|
|
],
|
|
}
|
|
|
|
|
|
async def main():
|
|
tick = 0
|
|
|
|
async with websockets.connect(ENDPOINT) as socket:
|
|
while True:
|
|
await socket.send(json.dumps({"screen": gen_payload(tick)}))
|
|
await asyncio.sleep(1 / 20)
|
|
tick += 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
asyncio.run(main())
|
|
except KeyboardInterrupt:
|
|
print("this handler gets it")
|