Advertisement
baldengineer

bleak ble at-09

Sep 16th, 2021
878
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. #! /usr/bin/python
  2.  
  3. import logging
  4. import asyncio
  5. import platform
  6. import signal  # for ctrl-c
  7. import sys     # call to for exit
  8.  
  9. from bleak import BleakClient
  10. from bleak import _logger as logger
  11.  
  12. address = ("88:25:83:F2:7A:D2")
  13.  
  14. #CHARACTERISTIC_UUID = "0000fff4-0000-1000-8000-00805f9b34fb"
  15. CHARACTERISTIC_UUID = "0000ffe1-0000-1000-8000-00805f9b34fb"
  16.  
  17. def signal_handler(sig, frame):
  18.     print('CTRL-C/SIGINT Caught... Attempting Disconnect')
  19.     for task in asyncio.Task.all_tasks():
  20.         task.cancel()
  21.     sys.exit(0)
  22.     return
  23.  
  24. def notification_handler(sender, data, debug=True):
  25.     """Simple notification handler which prints the data received."""
  26.     #print("{0}: {1}".format(sender, data))
  27.  
  28.     array = bytearray(data)
  29.     if (debug):
  30.         print("Recv: " + array.decode("UTF-8"))
  31.  
  32. async def run(address, loop, debug):
  33.     if debug:
  34.         import sys
  35.  
  36.         # loop.set_debug(True)
  37.         l = logging.getLogger("asyncio")
  38.         l.setLevel(logging.DEBUG)
  39.         h = logging.StreamHandler(sys.stdout)
  40.         h.setLevel(logging.DEBUG)
  41.         l.addHandler(h)
  42.         logger.addHandler(h)
  43.  
  44.     async with BleakClient(address, loop=loop) as client:
  45.         global x
  46.         x = await client.is_connected()
  47.         logger.info("Connected: {0}".format(x))
  48.         await client.start_notify(CHARACTERISTIC_UUID, notification_handler)
  49.         await asyncio.sleep(460.0, loop=loop)
  50.         await client.stop_notify(CHARACTERISTIC_UUID)
  51.  
  52. if __name__ == "__main__":
  53.     import os
  54.  
  55.     # So we can bail
  56.     signal.signal(signal.SIGINT, signal_handler)
  57.  
  58.     os.environ["PYTHONASYNCIODEBUG"] = str(1)
  59.  
  60.     loop = asyncio.get_event_loop()
  61.     loop.run_until_complete(run(address, loop, False))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement