Hello!

I am just trying to get familiar with asyncio. It seems to be a good thing, 
however, I am still having troubles and feel pretty puzzled although I think I 
got the point what async IO means. This is the problem I am trying to 
accomplish:

I have some functions which are reading values from hardware. If one of the 
values changes, I want a corresponding notification to the connected clients. 
The network part shouldn't be the problem. Here is what I got so far:

@asyncio.coroutine
def check():
  old_val = read_value_from_device()
  yield from asyncio.sleep(2)
  new_val = read_value_from_device()
  # we may have fluctuations, so we introduce a threshold
  if abs(new_val-old_val) > 0.05:
      return new_val
  else:
      return None
      
@asyncio.coroutine
def runner():
  while 1:
    new = yield from check()
    print(new)
      
loop = asyncio.get_event_loop()
loop.run_until_complete(update())


Is this the way one would accomplish this task? Or are there better ways? 
Should read_value_from_device() be a @coroutine as well? It may contain parts 
that take a while ... Of course, instead of print(new) I would add the 
corresponding calls for notifying the client about the update.

Thanks!
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to