Skip to main content

Pure python package, with no dependencies, providing a set of classes which can be used to create an INDI driver.

Project description

indipydriver

This is a pure python package, with no dependencies, providing a set of classes which can be used to create an INDI driver.

INDI - Instrument Neutral Distributed Interface.

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

Typically the driver created with this package interfaces between your code which controls an instrument, or GPIO pins on the computer itself, and the INDI protocol which communicates to an INDI client.

This package can be used to create the drivers, it does not include client functions. The INDI protocol is defined so that drivers should operate with any INDI client.

The protocol defines the format of the data sent, such as light, number, text or switch, and the client can send commands to control the instrument. The client can be general purpose, taking the format of switches, numbers etc., from the protocol.

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

The driver object created contains 'device' objects, each of which can contain 'vector' objects, such as a SwitchVector or LightVector. These Vector objects can contain one or more 'members', such as a number of 'switches', or a number of 'lights'.

Typically you would create a subclass of IPyDriver.

The driver has methods which should be overwritten.

async def clientevent(self, event)

This is called whenever data is received from the client, typically to set an instrument parameter. The event object describes the received data, and you provide the code which then controls your instrument.

async def hardware(self)

This should be a contuously running coroutine which you can use to operate your instruments, and if required send updates to the client.

async def snoopevent(self, event)

This is only used if one device is monitoring (snooping) on other devices.

Having created an instance of your IPyDriver subclass, you would run the driver using:

asyncio.run(driver.asyncrun())

The driver can transmit/receive either by stdin/stdout, or by a port.

A further class provided in the package, IPyServer can operate with multiple driver instances, and serves them all via a port, a connected client can then control all the drivers.

Documentation at https://indipydriver.readthedocs.io

Installation from https://pypi.org/project/indipydriver

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

indipydriver-1.0.1.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

indipydriver-1.0.1-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file indipydriver-1.0.1.tar.gz.

File metadata

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

File hashes

Hashes for indipydriver-1.0.1.tar.gz
Algorithm Hash digest
SHA256 41931b249b5174b6237c004eeda9d1c8bb1be41bb07a76ffbb38aab2ed103134
MD5 b020399dbfd2196c25260ff49cb5a116
BLAKE2b-256 e3c729fa4afbaab39b2a4a375bf89915e49a76de739710f4d45b1e6b2fdb1f5f

See more details on using hashes here.

File details

Details for the file indipydriver-1.0.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for indipydriver-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ac0b7ce577b434a931f48b86437b34810956ea29df90b6c54486b9afd8194754
MD5 32893dbed70d70b3672ddae64ec3e138
BLAKE2b-256 00278921fa523d4e505e976018320ac56cb9110458a792cb75baad2b72910fb3

See more details on using hashes here.

Supported by

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