Syndesi Python Implementation
Syndesi description is available here
Syndesi is a modular Python framework designed to streamline communication and control of a wide range of electronic instruments and devices. By providing a unified abstraction layer for adapters, protocols, and device drivers, Syndesi enables seamless integration with test equipment such as multimeters, oscilloscopes, power supplies, UART/USB devices, and more. Its flexible architecture supports both high-level and low-level operations, making it ideal for automation, data acquisition, and custom device interfacing in laboratory, industrial, and research environments.
Installation
The syndesi Python package can be installed through pip
pip install syndesi
The package can also be installed locally by cloning this repository
git clone https://github.com/syndesi-project/Syndesi
cd Syndesi
pip install .
Usage
The user can work with any of the three following layers :
- Adapters : low-level communication (IP, UART, ...)
- Protocols : Encapsulated protocols (Delimited, Modbus, ...)
- Drivers : Device or application specific commands
Adapters
The adapter allows the user to read and write raw data through IP, serial and VISA
from syndesi import IP
my_adapter = IP('192.168.1.12', port=5025)
my_adapter.write(b'ping\n')
my_adapter.read() # -> b'pong'
from syndesi import SerialPort
arduino = SerialPort('/dev/ttyUSB0', baudrate=115200) # COMx on Windows
arduino.query(b'get_temperature\n') # -> 20.5
Protocols
Protocols encapsulate and format data
from syndesi import IP, Delimited
my_server = Delimited(IP('test.server.local', port=1234))
my_server.query('Hello world\n') # -> Hello world (\n is removed by Delimited)
Drivers
A driver only requires an adapter, the protocol (if used) is instanciated internally
from syndesi_drivers.instruments.mutlimeters.siglent.SDM3055 import SDM3055
from syndesi.adapters import IP
mm = SDM3055(IP("192.168.1.123"))
voltage = mm.measure_dc_voltage()
Release files for syndesi 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| syndesi-0.6.1.tar.gz | 75.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| syndesi-0.6.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 166.4 kB
Release files / syndesi-0.6.1.tar.gz
| Download URL | syndesi-0.6.1.tar.gz |
|---|---|
| Size | 75.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7c9d86510e0858b28801ec7e69d778c5427cd87e91839e809fb687a9f43f621b
|
|
BLAKE2b-256 checksum How to use checksums |
ecb452c00d96a016b42282d7789d0cef882f8f8552510561f777bb85875586b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Release files / syndesi-0.6.1-py3-none-any.whl
| Download URL | syndesi-0.6.1-py3-none-any.whl |
|---|---|
| Size | 90.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a3418722b92e9727afa8276d515b5927fb3eab6c88104a4e79bd75e8e21d3790
|
|
BLAKE2b-256 checksum How to use checksums |
21412aba388a456fa4469ae6e69660f770cba275830a69b6c9a069bb4f881f4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|