Syndesi
Project description
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()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file syndesi-0.5.2.tar.gz.
File metadata
- Download URL: syndesi-0.5.2.tar.gz
- Upload date:
- Size: 72.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28dae5938871936adb51af7ddc70ac58f03d587c5c185e9a5744d94fbfb5d783
|
|
| MD5 |
13391f35217e030edc4520b9651ef58d
|
|
| BLAKE2b-256 |
bb531d2e4778ca5d442de3d4d3f3a1c4145766c917e7b59fafb34f9d8a3a17b3
|
File details
Details for the file syndesi-0.5.2-py3-none-any.whl.
File metadata
- Download URL: syndesi-0.5.2-py3-none-any.whl
- Upload date:
- Size: 83.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a08ecd0988b43478c827b41f22febe3ed8b68533c6ab961bceda096914d1aecd
|
|
| MD5 |
cfe5cf49d0f41cde0d84219540447927
|
|
| BLAKE2b-256 |
74fc22a6d690e796378e8c257eedaad7c8c051171b89b468d3257e84efa319b5
|