/ads-async

Asyncio (or sans-i/o) TwinCAT AMS/ADS client + test server in pure Python

Primary LanguagePythonOtherNOASSERTION

ads-async

Asyncio (or sans-i/o) TwinCAT AMS/ADS testing server in pure Python.

... and maybe a prototype client, too.

Requirements

  • Python 3.9+
  • (Optional) pytmc (for loading .tmc files in the server)

Server Functionality

  • Reference asyncio implementation.
  • Loads .tmc files for symbol information (basic types only).
  • Supports read, write, read/write of symbols (by handle or name).
  • Supports 'sum up' bulk reads (by way of read_write).
  • Pretends to create/delete notifications (not yet working)

Client Functionality

  • Preliminary symbol, handle, and notification support
  • LOGGER port message decoding
  • Shortcuts for common information (project/application/task names, task count)
  • Ability to easily prune unknown notification handles
  • Automatic reconnection
  • Log system configuration

Installation

$ git clone git@github.com:pcdshub/ads-async
$ cd ads-async
$ pip install .

Running the Tests

$ pip install pytest
$ pytest -vv ads_async/tests