indipydriver


Nameindipydriver JSON
Version 1.2.0 PyPI version JSON
download
home_pageNone
SummaryPure python package, with no dependencies, providing a set of classes which can be used to create an INDI driver.
upload_time2024-04-18 11:54:24
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords indi driver astronomy instrument
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # indipydriver

This is a pure python package, with no dependencies, providing a set of classes which can be used to create an INDI driver and serve the INDI communications protocol on a port.

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.

This is a companion package to 'indipyclient' which provides a terminal 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 the device is monitoring (snooping) on other devices.

Having created an instance of your IPyDriver subclass, you would serve this, and any other drivers with an IPyServer object:

    server = IPyServer([driver], host="localhost", port=7624, maxconnections=5)
    asyncio.run(server.asyncrun())

A connected client can then control all the drivers.

Documentation at https://indipydriver.readthedocs.io

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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "indipydriver",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "indi, driver, astronomy, instrument",
    "author": null,
    "author_email": "Bernard Czenkusz <bernie@skipole.co.uk>",
    "download_url": "https://files.pythonhosted.org/packages/5e/26/8185b53e0d2998fe6bc7e64843d2ae363bc58fbdfbc35634873be5770162/indipydriver-1.2.0.tar.gz",
    "platform": null,
    "description": "# indipydriver\n\nThis is a pure python package, with no dependencies, providing a set of classes which can be used to create an INDI driver and serve the INDI communications protocol on a port.\n\nINDI - Instrument Neutral Distributed Interface.\n\nSee https://en.wikipedia.org/wiki/Instrument_Neutral_Distributed_Interface\n\nTypically 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.\n\nThis 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.\n\nThis is a companion package to 'indipyclient' which provides a terminal client.\n\nThe 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.\n\nINDI is often used with astronomical instruments, but is a general purpose protocol which can be used for any instrument control providing drivers are available.\n\nThe 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'.\n\nTypically you would create a subclass of IPyDriver.\n\nThe driver has methods which should be overwritten.\n\nasync def clientevent(self, event)\n\nThis 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.\n\nasync def hardware(self)\n\nThis should be a contuously running coroutine which you can use to operate your instruments, and if required send updates to the client.\n\nasync def snoopevent(self, event)\n\nThis is only used if the device is monitoring (snooping) on other devices.\n\nHaving created an instance of your IPyDriver subclass, you would serve this, and any other drivers with an IPyServer object:\n\n    server = IPyServer([driver], host=\"localhost\", port=7624, maxconnections=5)\n    asyncio.run(server.asyncrun())\n\nA connected client can then control all the drivers.\n\nDocumentation at https://indipydriver.readthedocs.io\n\nInstallation from https://pypi.org/project/indipydriver\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Pure python package, with no dependencies, providing a set of classes which can be used to create an INDI driver.",
    "version": "1.2.0",
    "project_urls": {
        "Documentation": "https://indipydriver.readthedocs.io",
        "Source": "https://github.com/bernie-skipole/indipydriver"
    },
    "split_keywords": [
        "indi",
        " driver",
        " astronomy",
        " instrument"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "861acd984507a3a6bdfac5958ee32b38ceb3957acde9c3ce1780dd500b33f75c",
                "md5": "237bff2707813a813fd4dbbeb0a2058f",
                "sha256": "20444f969d39ed1f9f45d4584f07294cd6e414cbc71b0c3461385d2aba762b3f"
            },
            "downloads": -1,
            "filename": "indipydriver-1.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "237bff2707813a813fd4dbbeb0a2058f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 26750,
            "upload_time": "2024-04-18T11:54:22",
            "upload_time_iso_8601": "2024-04-18T11:54:22.296886Z",
            "url": "https://files.pythonhosted.org/packages/86/1a/cd984507a3a6bdfac5958ee32b38ceb3957acde9c3ce1780dd500b33f75c/indipydriver-1.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5e268185b53e0d2998fe6bc7e64843d2ae363bc58fbdfbc35634873be5770162",
                "md5": "d270199febcf363208b54e0f1878c89a",
                "sha256": "9511b5395b7c6c0cc3136805f73bf0830e7c245d6991080e9be0b7af6b43ed60"
            },
            "downloads": -1,
            "filename": "indipydriver-1.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d270199febcf363208b54e0f1878c89a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 24188,
            "upload_time": "2024-04-18T11:54:24",
            "upload_time_iso_8601": "2024-04-18T11:54:24.547387Z",
            "url": "https://files.pythonhosted.org/packages/5e/26/8185b53e0d2998fe6bc7e64843d2ae363bc58fbdfbc35634873be5770162/indipydriver-1.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-18 11:54:24",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bernie-skipole",
    "github_project": "indipydriver",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "indipydriver"
}
        
Elapsed time: 0.34138s