asyncdgt uses asyncio to communicate asynchronously with a DGT electronic
chess board.
View reference documentation <http://pythonhosted.org/asyncdgt/#reference-documentation>
_.
.. image:: https://badge.fury.io/py/asyncdgt.svg :target: https://pypi.python.org/pypi/asyncdgt
.. image:: https://travis-ci.org/niklasf/python-asyncdgt.svg :target: https://travis-ci.org/niklasf/python-asyncdgt
Create an event loop and a connection to the DGT board.
.. code:: python
import asyncio
loop = asyncio.get_event_loop()
dgt = asyncdgt.auto_connect(loop, ["/dev/ttyACM*"])
Register some pyee <https://github.com/jfhbrook/pyee>
__ event handlers. They
will be called whenever a board gets connected, disconnected or the position
changed.
.. code:: python
@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()
.
.. code:: python
print("Version:", loop.run_until_complete(dgt.get_version()))
Run the event loop.
.. code:: python
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
.
Tested with the following boards:
Clocks:
pyee <https://github.com/jfhbrook/pyee>
__pyserial <http://pyserial.sourceforge.net/>
_pip install -r requirements.txt
python-chess <https://github.com/niklasf/python-chess>
_,
a general purpose chess library.
picochess <http://www.picochess.org/>
_,
a standalone chess computer for DGT boards. Some of the DGT protocol handling
has been shamelessly extracted from their code.
python-asyncdtg is licensed under the GPL3. See the LICENSE.txt
file for
the full license text.