Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

Communicate asynchronously with DGT boards

Project description

asyncdgt uses asyncio to communicate asynchronously with a DGT electronic chess board. View reference documentation.

https://badge.fury.io/py/asyncdgt.svg https://travis-ci.org/niklasf/python-asyncdgt.svg

Example

Create an event loop and a connection to the DGT board.

import asyncio

loop = asyncio.get_event_loop()
dgt = asyncdgt.auto_connect(["/dev/ttyACM*"], loop)

Register some pyee event handlers. They will be called whenever a board gets connected, disconnected or the position changed.

@dgt.on("connected")
def on_connected(port):
    print("Board connected to {0}!".format(port))

@dgt.on("disconnected")
def on_disconnected():
    print("Board disconnected!")

@dgt.on("board")
def on_board(board):
    print("Position changed:")
    print(board)
    print()

Get some information outside of an event handler using the coroutine get_version().

print("Version:", loop.run_until_complete(dgt.get_version()))

Run the event loop.

try:
    loop.run_forever()
except KeyboardInterrupt:
    pass
finally:
    dgt.close()
    loop.close()

See asyncdgt/__main__.py for the complete example. Run with python -m asyncdgt /dev/ttyACM0.

Hardware

Tested with the following boards:

  • DGT e-Board 3.1
  • DGT e-Board 3.1 Bluetooth

Clocks:

  • DGT Clock 3000

Dependencies

pip install -r requirements.txt

License

python-asyncdtg is licensed under the GPL3. See the LICENSE.txt file for the full license text.

Project details


Release history Release notifications

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page