Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

syndesi-0.5.2.tar.gz (72.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

syndesi-0.5.2-py3-none-any.whl (83.8 kB view details)

Uploaded Python 3

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

Hashes for syndesi-0.5.2.tar.gz
Algorithm Hash digest
SHA256 28dae5938871936adb51af7ddc70ac58f03d587c5c185e9a5744d94fbfb5d783
MD5 13391f35217e030edc4520b9651ef58d
BLAKE2b-256 bb531d2e4778ca5d442de3d4d3f3a1c4145766c917e7b59fafb34f9d8a3a17b3

See more details on using hashes here.

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

Hashes for syndesi-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a08ecd0988b43478c827b41f22febe3ed8b68533c6ab961bceda096914d1aecd
MD5 cfe5cf49d0f41cde0d84219540447927
BLAKE2b-256 74fc22a6d690e796378e8c257eedaad7c8c051171b89b468d3257e84efa319b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page