ALBA Python Serial DeviceServer
ALBA Python Serial with tango DeviceServer
Apart from the core library, an optional tango device server is also provided.
Installation
From within your favorite python environment type:
$ pip install tango_serial
Library
The core of the tango_serial library consists of Serial object. To create a Serial object you need to pass a communication object.
The communication object can be any object that supports a simple API consisting of two methods (either the sync or async version is supported):
-
write_readline(buff: bytes) -> bytesorasync write_readline(buff: bytes) -> bytes -
write(buff: bytes) -> Noneorasync write(buff: bytes) -> None
A library that supports this API is sockio (ALBA Python Serial DeviceServer comes pre-installed so you don't have to worry about installing it).
This library includes both async and sync versions of the TCP object. It also supports a set of features like re-connection and timeout handling.
Here is how to connect to a Serial controller:
import asyncio
from sockio.aio import TCP
from tango_serial import Serial
async def main():
tcp = TCP("192.168.1.123", 5000) # use host name or IP
tango_serial_dev = Serial(tcp)
idn = await tango_serial_dev.idn()
print("Connected to {} ({})".format(idn))
asyncio.run(main())
Tango server
A tango device server is also provided.
Make sure everything is installed with:
$ pip install tango_serial[tango]
Register a Serial tango server in the tango database:
$ tangoctl server add -s Serial/test -d Serial test/tango_serial/1
$ tangoctl device property write -d test/tango_serial/1 -p address -v "tcp://192.168.123:5000"
(the above example uses tangoctl. You would need
to install it with pip install tangoctl before using it. You are free to use any other
tango tool like fandango or Jive)
Launch the server with:
$ Serial test
Credits
Development Lead
- Alberto López Sánchez alopez@cells.es
- CTBeamlines (ctbeamlines@cells.es)
Contributors
None yet. Why not be the first?
History
0.1.0 (2020-12-15)
- First release on PyPI.
Release files for py-ds-serial 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| py_ds_serial-0.1.0.tar.gz | 9.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py_ds_serial-0.1.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 12.8 kB
Release files / py_ds_serial-0.1.0.tar.gz
| Download URL | py_ds_serial-0.1.0.tar.gz |
|---|---|
| Size | 9.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
34da6b8987a605a33e1017fd14737b651ae6a9b0adfb8b6f85419ee3005ad726
|
|
BLAKE2b-256 checksum How to use checksums |
ac0613d7ab34f287a33077eff3db01086c72b070ec2282cbc95fcf7c905a44d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0.post20201207 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.9
|
Release files / py_ds_serial-0.1.0-py2.py3-none-any.whl
| Download URL | py_ds_serial-0.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 3.8 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
4bb4ab485d65b526096e68dec4e5c966ce4256e384f539337ee4ff775e518038
|
|
BLAKE2b-256 checksum How to use checksums |
5ad68c89d469d7c534a96fe0f967b560aa09a4bd3bcbe83f9306108feab595d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0.post20201207 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.9
|