Skip to main content

Pure python package, providing a set of classes which can be used to create scripts or clients to control remote instruments using the INDI protocol.

Project description

indipyclient

This indipyclient package provides classes used to communicate to an INDI server. In particular your script can import and create an instance of the 'IPyClient' class.

INDI - Instrument Neutral Distributed Interface.

See https://en.wikipedia.org/wiki/Instrument_Neutral_Distributed_Interface

INDI is often used with astronomical instruments, but is a general purpose protocol which can be used for any instrument control.

The INDI protocol defines the format of the data sent, such as light, number, text, switch or BLOB (Binary Large Object). The client takes the format of switches, numbers etc., from the protocol.

The IPyClient object has an asyncrun() coroutine method which needs to be awaited, typically gathered with your own tasks. The client transmits a 'getProperties' request (this indipyclient package does this for you on connecting).

The server replies with definition packets (defSwitchVector, defLightVector, .. ) that define the format of the instrument data.

The indipyclient package reads these, and its IPyClient instance becomes a mapping of the devices, vectors and members.

For example, if ipyclient is your instance of IPyClient:

ipyclient[devicename][vectorname][membername] will be the value of a particular parameter.

A 'vector' is a collection of members, so a switch vector may have one or more switches in it.

As the instrument produces changing values, the server sends 'set' packets, such as setSwitchVector, setLightVector ..., these contain new values, which update the ipyclient values. They also cause the ipyclient.rxevent(event) method to be called, which you could overwrite to take any actions you prefer.

To transmit a new value you could call the ipyclient.send_newVector coroutine method.

Indipyclient can be installed from Pypi with:

pip install indipyclient

Further documentation is available at:

https://indipyclient.readthedocs.io

The package can be installed from:

https://pypi.org/project/indipyclient

A terminal client 'indipyterm' is available, which itself calls on indipyclient to do the heavy lifting, and uses the textual package to present terminal characters, this is available at:

https://pypi.org/project/indipyterm

https://github.com/bernie-skipole/indipyterm

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

indipyclient-0.8.8.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

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

indipyclient-0.8.8-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file indipyclient-0.8.8.tar.gz.

File metadata

  • Download URL: indipyclient-0.8.8.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.2

File hashes

Hashes for indipyclient-0.8.8.tar.gz
Algorithm Hash digest
SHA256 c7da2331a03cb1d525af9587c8103b500e3197ca58d6117ec162169c1a74e6b5
MD5 d83ed22ca1c96013bd3f7413285a098f
BLAKE2b-256 cf8f8a697ac121542bed9c18ae10aeb3bd9a66190f4a9b6418142416a7ab0f80

See more details on using hashes here.

File details

Details for the file indipyclient-0.8.8-py3-none-any.whl.

File metadata

  • Download URL: indipyclient-0.8.8-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.2

File hashes

Hashes for indipyclient-0.8.8-py3-none-any.whl
Algorithm Hash digest
SHA256 9b539fd7def07720a7c72419d7ff34615b32dc8862088c59bc01a9bfafb35af4
MD5 01fa8c43c57c14a9c437b9a87c159f93
BLAKE2b-256 23a7e1ac37a54dc057065cc45ab0e8bc80cae68a3cc924574720df08b68cdaf5

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