main.py 693 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/env python3
  2. from datetime import datetime
  3. import zmq
  4. import zmq.asyncio
  5. from nicegui import app, ui
  6. context = zmq.asyncio.Context()
  7. socket = context.socket(zmq.PULL)
  8. socket.connect('tcp://localhost:5555')
  9. poller = zmq.asyncio.Poller()
  10. poller.register(socket, zmq.POLLIN)
  11. async def read_loop() -> None:
  12. while not app.is_stopped:
  13. events = await poller.poll()
  14. if socket in dict(events):
  15. data = await socket.recv()
  16. number = float(data)
  17. print(f'Received number {number}')
  18. line_plot.push([datetime.now()], [[number]])
  19. line_plot = ui.line_plot(n=1, limit=100, figsize=(10, 4))
  20. app.on_startup(read_loop)
  21. ui.run()