Module development

This section documents how to write an OST module — the building block that exposes a feature (hardware control, processing, business logic) to the rest of the server and to connected clients.

The content is organized into three chapters, to be followed in order by anyone new to the topic:

  1. Basics — everything that requires no hardware at all: a module’s skeleton, the data model (properties/elements), the framework’s mechanisms (automatic updates, grids, graphs, lists of values, profiles) and the master/slave relationship between modules.
  2. INDI modules — what’s added when a module actually drives an INDI device (camera, mount, filter wheel…).
  3. Miscellaneous — whatever doesn’t fit into either of the two previous categories.

Each concept is illustrated with a real, minimal example module from the ost/ostmodules repository, built for this documentation and meant to be read, copied, and modified.

  • Basics

    The OST module framework with no hardware at all: skeleton, properties, updates, grids, graphs, lists of values, profiles, master/slave relationship

  • INDI modules

    Writing a module that drives an INDI device (camera, mount, filter wheel...)

  • Miscellaneous

    Topics that fit neither in the basics nor in the INDI modules