Instrument Neutral Distributed Interface INDI  2.0.2
Namespaces | Classes | Typedefs | Functions
INDI Namespace Reference

Namespace to encapsulate INDI client, drivers, and mediator classes. More...

Namespaces

 AlignmentSubsystem
 Namespace to encapsulate the INDI Alignment Subsystem classes. For more information see "INDI Alignment Subsystem" in "Related Pages" accessible via the banner at the top of this page.
 
 SP
 INDI Standard Properties are common properties standarized across drivers and clients alike.
 

Classes

class  AbstractBaseClient
 
struct  BLOBMode
 
class  AbstractBaseClientPrivate
 
class  DefaultDevice
 Class to provide extended functionality for devices in addition to the functionality provided by INDI::BaseDevice. This class should only be subclassed by drivers directly as it is linked with main(). Virtual drivers cannot employ INDI::DefaultDevice. More...
 
class  DefaultDevicePrivate
 
class  FITSRecord
 
class  CCD
 Class to provide general functionality of CCD cameras with a single CCD sensor, or a primary CCD sensor in addition to a secondary CCD guide head. More...
 
class  CCDChip
 The CCDChip class provides functionality of a CCD Chip within a CCD. More...
 
class  Controller
 The Controller class provides functionality to access a controller (e.g. joystick) input and send it to the requesting driver. More...
 
class  Correlator
 Class to provide general functionality of Monodimensional Correlator. More...
 
struct  pulse_t
 
class  Detector
 Class to provide general functionality of Monodimensional Detector. More...
 
class  Dome
 Class to provide general functionality of a Dome device. More...
 
class  DustCapInterface
 
class  FilterInterface
 
class  FilterWheel
 
class  Focuser
 
class  FocuserInterface
 Provides interface to implement focuser functionality. More...
 
class  GPS
 
class  GuiderInterface
 
class  LightBoxInterface
 
class  Logger
 The Logger class is a simple logger to log messages to file and INDI clients. This is the implementation of a simple logger in C++. It is implemented as a Singleton, so it can be easily called through two DEBUG macros. It is Pthread-safe. It allows to log on both file and screen, and to specify a verbosity threshold for both of them. More...
 
class  Receiver
 Class to provide general functionality of Monodimensional Receiver. More...
 
class  Rotator
 
class  RotatorInterface
 
class  SensorInterface
 The SensorDevice class provides functionality of a Sensor Device within a Sensor. More...
 
class  Spectrograph
 Class to provide general functionality of Monodimensional Spectrograph. More...
 
class  Telescope
 
class  USBDevice
 
class  Weather
 
class  WeatherInterface
 Provides interface to implement weather reporting functionality. More...
 
class  EncoderInterface
 The EncoderInterface class is the base class for video streaming encoders. More...
 
class  EncoderManager
 The EncoderManager class contains a list of active supported encoders. More...
 
class  MJPEGEncoder
 The MJPEGEncoder class encodes frames in JPEG format before transmitting them to the client. More...
 
class  RawEncoder
 The RawEncoder class sends the image as-is (lossless) to the client. More...
 
class  FPSMeter
 
class  RecorderInterface
 The RecorderInterface class is the base class for recorders. More...
 
class  RecorderManager
 The RecorderManager class contains a list of active supported recorders. More...
 
class  SER_Recorder
 The SER_Recorder class implements recording of video streams in SER format. More...
 
class  TheoraRecorder
 The TheoraRecorder class implemented recording of video streaming data in a libtheora OGV file. More...
 
class  StreamManager
 
class  StreamManagerPrivate
 
class  SingleThreadPool
 
class  SingleThreadPoolPrivate
 
class  ElapsedTimer
 The ElapsedTimer class provides a fast way to calculate elapsed times. More...
 
class  ElapsedTimerPrivate
 
class  Timer
 The Timer class provides repetitive and single-shot timers. More...
 
class  TimerPrivate
 
class  V4L2_Base
 
class  BaseClient
 Class to provide basic client functionality. More...
 
class  BaseClientPrivate
 
class  BaseClientQt
 Class to provide basic client functionality based on Qt5 toolkit and is therefore suitable for cross-platform development. More...
 
class  BaseClientQtPrivate
 
class  safe_ptr
 
class  LilXmlValue
 
class  LilXmlAttribute
 
class  LilXmlElement
 
class  LilXmlDocument
 
class  LilXmlParser
 
struct  IEquatorialCoordinates
 
struct  IHorizontalCoordinates
 
struct  IGeographicCoordinates
 
class  BaseDevice
 Class to provide basic INDI device functionality. More...
 
class  BaseDevicePrivate
 
class  BaseMediator
 Meditates event notification as generated by driver and passed to clients. More...
 
class  ParentDevice
 The class is used to create device instances. Class copying is not allowed. When an object is destroyed, the property list (INDI::Property) is cleared to prevent a circular reference along with the properties. The base INDI::BaseDevice class and its INDI::Properties exist as long as they are used by other objects. More...
 
class  ParentDevicePrivate
 
class  Properties
 
class  PropertiesPrivate
 
class  Property
 Provides generic container for INDI properties. More...
 
class  PropertyPrivate
 
class  PropertyBasicPrivateTemplate
 
class  PropertyBasic
 
struct  PropertyContainer
 
class  PropertyBlob
 
class  PropertyBlobPrivate
 
class  PropertyLight
 
class  PropertyLightPrivate
 
class  PropertyNumber
 
class  PropertyNumberPrivate
 
class  PropertySwitch
 
class  PropertySwitchPrivate
 
class  PropertyText
 
class  PropertyTextPrivate
 
struct  WidgetView
 
class  PropertyView
 Provides decorator for Low-Level IXXXVectorProperty/IXXX. More...
 
struct  WidgetView< IText >
 
struct  WidgetView< INumber >
 
struct  WidgetView< ISwitch >
 
struct  WidgetView< ILight >
 
struct  WidgetView< IBLOB >
 
struct  WidgetTraits
 
struct  WidgetTraits< IText >
 
struct  WidgetTraits< INumber >
 
struct  WidgetTraits< ISwitch >
 
struct  WidgetTraits< ILight >
 
struct  WidgetTraits< IBLOB >
 
class  WatchDeviceProperty
 

Typedefs

using WidgetText = INDI::WidgetViewText
 
using WidgetNumber = INDI::WidgetViewNumber
 
using WidgetSwitch = INDI::WidgetViewSwitch
 
using WidgetLight = INDI::WidgetViewLight
 
using WidgetBlob = INDI::WidgetViewBlob
 
typedef PropertyView< ITextPropertyViewText
 
typedef PropertyView< INumberPropertyViewNumber
 
typedef PropertyView< ISwitchPropertyViewSwitch
 
typedef PropertyView< ILightPropertyViewLight
 
typedef PropertyView< IBLOBPropertyViewBlob
 
typedef WidgetView< ITextWidgetViewText
 
typedef WidgetView< INumberWidgetViewNumber
 
typedef WidgetView< ISwitchWidgetViewSwitch
 
typedef WidgetView< ILightWidgetViewLight
 
typedef WidgetView< IBLOBWidgetViewBlob
 

Functions

std::string regex_replace_compat (const std::string &input, const std::string &pattern, const std::string &replace)
 
Logger::loggerConf operator| (Logger::loggerConf __a, Logger::loggerConf __b)
 
Logger::loggerConf operator& (Logger::loggerConf __a, Logger::loggerConf __b)
 
std::string regex_replace_compat2 (const std::string &input, const std::string &pattern, const std::string &replace)
 
int mkdir (const char *path, mode_t mode)
 
int mkpath (std::string s, mode_t mode)
 
std::string format_time (const std::tm &tm, const char *format)
 
void replace_all (std::string &subject, const std::string &search, const std::string &replace)
 
void ObservedToJ2000 (IEquatorialCoordinates *observed, double jd, IEquatorialCoordinates *J2000pos)
 ObservedToJ2000 converts an observed position to a J2000 catalogue position removes aberration, nutation and precession. More...
 
void J2000toObserved (IEquatorialCoordinates *J2000pos, double jd, IEquatorialCoordinates *observed)
 *J2000toObserved converts catalogue to observed More...
 
void ln_get_equ_nut (ln_equ_posn *posn, double jd, bool reverse)
 apply or remove nutation More...
 
void EquatorialToHorizontal (IEquatorialCoordinates *object, IGeographicCoordinates *observer, double JD, IHorizontalCoordinates *position)
 EquatorialToHorizontal Calculate horizontal coordinates from equatorial coordinates. More...
 
void HorizontalToEquatorial (IHorizontalCoordinates *object, IGeographicCoordinates *observer, double JD, IEquatorialCoordinates *position)
 HorizontalToEquatorial Calculate Equatorial EOD Coordinates from horizontal coordinates. More...
 
std::string allocateBlobUid (int fd)
 
void * attachBlobByUid (const std::string &identifier, size_t size)
 
void releaseBlobUids (const std::vector< std::string > &blobs)
 
 Properties::operator std::vector< INDI::Property * > * ()
 
 Properties::operator const std::vector< INDI::Property * > * () const
 

Detailed Description

Namespace to encapsulate INDI client, drivers, and mediator classes.

INDI LIB FITS keyword class Copyright (C) 2023 Dusan Poizl

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Developers can subclass the base devices class to implement device specific functionality. This ensures interoperability and consistency among devices within the same family and reduces code overhead.

Author
Jasem Mutlaq
Gerry Rozema

Typedef Documentation

◆ PropertyViewBlob

Definition at line 42 of file indipropertyview.h.

◆ PropertyViewLight

Definition at line 41 of file indipropertyview.h.

◆ PropertyViewNumber

Definition at line 39 of file indipropertyview.h.

◆ PropertyViewSwitch

Definition at line 40 of file indipropertyview.h.

◆ PropertyViewText

Definition at line 38 of file indipropertyview.h.

◆ WidgetBlob

Definition at line 32 of file indipropertybasic.h.

◆ WidgetLight

Definition at line 31 of file indipropertybasic.h.

◆ WidgetNumber

Definition at line 29 of file indipropertybasic.h.

◆ WidgetSwitch

Definition at line 30 of file indipropertybasic.h.

◆ WidgetText

Definition at line 28 of file indipropertybasic.h.

◆ WidgetViewBlob

Definition at line 48 of file indipropertyview.h.

◆ WidgetViewLight

Definition at line 47 of file indipropertyview.h.

◆ WidgetViewNumber

Definition at line 45 of file indipropertyview.h.

◆ WidgetViewSwitch

Definition at line 46 of file indipropertyview.h.

◆ WidgetViewText

Definition at line 44 of file indipropertyview.h.

Function Documentation

◆ allocateBlobUid()

std::string INDI::allocateBlobUid ( int  fd)

Definition at line 39 of file sharedblob_parse.cpp.

◆ attachBlobByUid()

void * INDI::attachBlobByUid ( const std::string &  identifier,
size_t  size 
)

Definition at line 52 of file sharedblob_parse.cpp.

◆ EquatorialToHorizontal()

void INDI::EquatorialToHorizontal ( IEquatorialCoordinates object,
IGeographicCoordinates observer,
double  JD,
IHorizontalCoordinates position 
)

EquatorialToHorizontal Calculate horizontal coordinates from equatorial coordinates.

Parameters
objectEquatorial Object Coordinates in INDI standaard (RA Hours, DE degrees).
observerObserver Location in INDI Standard (Longitude 0 to 360 Increasing Eastward)
JDJulian Date
positionCalculated Horizontal Coordinates.
Note
Use this instead of libnova ln_get_hrz_from_equ since it corrects libnova Azimuth (0 = North and not South).

Definition at line 140 of file libastro.cpp.

◆ format_time()

std::string INDI::format_time ( const std::tm &  tm,
const char *  format 
)

Definition at line 86 of file indiutility.cpp.

◆ HorizontalToEquatorial()

void INDI::HorizontalToEquatorial ( IHorizontalCoordinates object,
IGeographicCoordinates observer,
double  JD,
IEquatorialCoordinates position 
)

HorizontalToEquatorial Calculate Equatorial EOD Coordinates from horizontal coordinates.

Parameters
objectHorizontal Object Coordinates
observerObserver Location in INDI Standard (Longitude 0 to 360 Increasing Eastward)
JDJulian Date
positionCalculated Equatorial Coordinates in INDI standards (RA hours, DE degrees).
Note
Use this instead of libnova ln_get_equ_from_hrz since it corrects libnova Azimuth (0 = North and not South).

Definition at line 156 of file libastro.cpp.

◆ J2000toObserved()

void INDI::J2000toObserved ( IEquatorialCoordinates J2000pos,
double  jd,
IEquatorialCoordinates observed 
)

*J2000toObserved converts catalogue to observed

J2000toObserved converts a J2000 catalogue position to an observed position for the epoch jd applies precession, nutation and aberration.

Parameters
J2000poscatalogue position
jdjulian day for the observed epoch
observedreturns observed position
J2000posJ2000 catalogue position
jdJulian day epoch of observed position
observedreturns observed position for the JD epoch

Definition at line 80 of file libastro.cpp.

◆ ln_get_equ_nut()

void INDI::ln_get_equ_nut ( ln_equ_posn *  posn,
double  jd,
bool  reverse = false 
)

apply or remove nutation

ln_get_equ_nut applies or removes nutation in place for the epoch JD

Parameters
posnposition, nutation is applied or removed in place
jd
reverseset to true to remove nutation

Definition at line 102 of file libastro.cpp.

◆ mkdir()

int INDI::mkdir ( const char *  path,
mode_t  mode 
)

Definition at line 41 of file indiutility.cpp.

◆ mkpath()

int INDI::mkpath ( std::string  s,
mode_t  mode 
)

Definition at line 51 of file indiutility.cpp.

◆ ObservedToJ2000()

void INDI::ObservedToJ2000 ( IEquatorialCoordinates observed,
double  jd,
IEquatorialCoordinates J2000pos 
)

ObservedToJ2000 converts an observed position to a J2000 catalogue position removes aberration, nutation and precession.

Parameters
observedposition
jdJulian day epoch of observed position
J2000posreturns catalogue position

Definition at line 50 of file libastro.cpp.

◆ operator&()

Logger::loggerConf INDI::operator& ( Logger::loggerConf  __a,
Logger::loggerConf  __b 
)
inline

Definition at line 291 of file indilogger.h.

◆ operator|()

Logger::loggerConf INDI::operator| ( Logger::loggerConf  __a,
Logger::loggerConf  __b 
)
inline

Definition at line 286 of file indilogger.h.

◆ Properties::operator const std::vector< INDI::Property * > *()

INDI::Properties::operator const std::vector< INDI::Property * > * ( ) const

Definition at line 205 of file indiproperties.cpp.

◆ Properties::operator std::vector< INDI::Property * > *()

INDI::Properties::operator std::vector< INDI::Property * > * ( )

Definition at line 194 of file indiproperties.cpp.

◆ regex_replace_compat()

std::string INDI::regex_replace_compat ( const std::string &  input,
const std::string &  pattern,
const std::string &  replace 
)

Definition at line 2898 of file indiccd.cpp.

◆ regex_replace_compat2()

std::string INDI::regex_replace_compat2 ( const std::string &  input,
const std::string &  pattern,
const std::string &  replace 
)

Definition at line 1169 of file indisensorinterface.cpp.

◆ releaseBlobUids()

void INDI::releaseBlobUids ( const std::vector< std::string > &  blobs)

Definition at line 69 of file sharedblob_parse.cpp.

◆ replace_all()

void INDI::replace_all ( std::string &  subject,
const std::string &  search,
const std::string &  replace 
)

Definition at line 95 of file indiutility.cpp.