Skip to main content

A terminal client which can be used to control remote instruments using the INDI protocol.

Project description

indipyconsole

You may have Python programs implementing some form of data collection or control and wish to remotely operate such an instrument.

An associated package 'indipydriver' can be used to take your data, organise it into a data structure defined by the INDI protocol, and serve it on a port.

This indipyconsole package provides a terminal client, which connects to the port, allowing you to view and control your instrument from a terminal session.

A further package indipyterm is also available, by the same author, which you may prefer.

indipyterm can run on other OS's apart from Linux, and gives a more attractive terminal output, however it depends on third party libraries.

indipyconsole only depends on indipyclient - which provides the communication methods. It uses the Python standard library curses package, which is only available on Linux.

The main purpose of indipyconsole is to provide an indipendent client, in case the third party packages used by indipyterm break. It also provides logging capabilities to save communications data to a logfile. The two clients can both connect to an INDI server to compare output.

indipyconsole can be installed from Pypi with:

pip install indipyconsole

or if you use uv, it can be loaded and run with:

uvx indipyconsole

indipydriver and indipyconsole communicate with the INDI protocol.

INDI - Instrument Neutral Distributed Interface.

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

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

The client can be run from a virtual environment with

indipyconsole [options]

or with

python3 -m indipyconsole [options]

The package help is:

usage: indipyconsole [options]

Console client to communicate to an INDI service.

options:
  -h, --help                show this help message and exit
  -p PORT, --port PORT      Port of the INDI server (default 7624).
  --host HOST               Hostname/IP of the INDI server (default localhost).
  -b BLOBS, --blobs BLOBS   Optional folder where BLOB's will be saved.
  --loglevel LOGLEVEL       Enables logging, value 1, 2, 3 or 4.
  --logfile LOGFILE         File where logs will be saved
  --version                 show program's version number and exit

The BLOB's folder can also be set from within the session.
Setting loglevel and logfile should only be used for brief
diagnostic purposes, the logfile could grow very big.
loglevel:1 Information and error messages only, no exception trace.
The following levels enable exception traces in the logs
loglevel:2 As 1 plus xml vector tags without members or contents,
loglevel:3 As 1 plus xml vectors and members - but not BLOB contents,
loglevel:4 As 1 plus xml vectors and all contents

If installed from Pypi, then the dependecy indipyclient will automatically be pulled and installed.

The indipydriver package which can be used to create instrument control, and serve the INDI protocol is available at:

https://pypi.org/project/indipydriver

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

https://indipydriver.readthedocs.io

With example driver scripts at:

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

The indipyterm package is available at:

https://pypi.org/project/indipyterm

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

The indipyclient package contains classes which may be useful if you want to create your own client or client script:

https://pypi.org/project/indipyclient

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

https://indipyclient.readthedocs.io

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

indipyconsole-0.0.1.tar.gz (41.4 kB view details)

Uploaded Source

Built Distribution

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

indipyconsole-0.0.1-py3-none-any.whl (45.5 kB view details)

Uploaded Python 3

File details

Details for the file indipyconsole-0.0.1.tar.gz.

File metadata

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

File hashes

Hashes for indipyconsole-0.0.1.tar.gz
Algorithm Hash digest
SHA256 d3d5f99e1747fb16d92254a5cfdc04e7f0d54d4a62dc3bcb51232b589cd4eda5
MD5 55fb17e781bfbaeb520b18469e51e9bb
BLAKE2b-256 af94cfba763204b406a02043c711ec06ebe6ef5eca25f9b4da1ff241d1d00db4

See more details on using hashes here.

File details

Details for the file indipyconsole-0.0.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for indipyconsole-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e0ff2d10a10d2dda2d8756a4744c636ea80e37b291ade1355489a65374c8cdf0
MD5 4c6ec4a0b65ca596a0d87231cefe1e25
BLAKE2b-256 d5a849ca5d859f40d339a69779b6437c748e7ef7fc758a59d98ea811d4193e1d

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