Instrument Neutral Distributed Interface INDI 2.2.5
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
INDI::FilterInterface Class Referenceabstract

#include <indifilterinterface.h>

Inheritance diagram for INDI::FilterInterface:
CCDSim INDI::FilterWheel MockCCDSimDriver AlpacaFilterWheel FilterIFW FilterSim ManualFilter PegasusINDIGO QFW QHYCFW1 QHYCFW2 QHYCFW3 RasaFilterCube TruTech WandererSnowflakeFW Wheelly XAGYLWheel iEFW

Public Member Functions

virtual int QueryFilter ()=0
 Return current filter position.
 
virtual bool SelectFilter (int position)=0
 Select a new filter position.
 
virtual bool SetFilterNames ()
 Set filter names as defined by the client for each filter position. The desired filter names are stored in FilterNameTP property. Filter names should be saved in hardware if possible. The default implementation saves them in the configuration file.
 
virtual bool GetFilterNames ()
 Obtains a list of filter names from the hardware and initializes the FilterNameTP property. The function should check for the number of filters available in the filter wheel and build the FilterNameTP property accordingly. The default implementation loads the filter names from configuration file.
 
void SelectFilterDone (int newpos)
 The child class calls this function when the hardware successfully finished selecting a new filter wheel position.
 

Protected Member Functions

 FilterInterface (DefaultDevice *defaultDevice)
 FilterInterface Initiailize Filter Interface.
 
 ~FilterInterface ()
 
void initProperties (const char *groupName)
 Initialize filter wheel properties. It is recommended to call this function within initProperties() of your primary device.
 
bool updateProperties ()
 updateProperties Defines or Delete properties based on default device connection status
 
bool processNumber (const char *dev, const char *name, double values[], char *names[], int n)
 Process number properties.
 
bool processText (const char *dev, const char *name, char *texts[], char *names[], int n)
 Process text properties.
 
void generateSampleFilters ()
 generateSampleFilters Generate sample 8-filter wheel and fill it sample filters
 
bool saveConfigItems (FILE *fp)
 saveConfigItems save Filter Names in config file
 

Protected Attributes

INDI::PropertyNumber FilterSlotNP {1}
 
INDI::PropertyText FilterNameTP {0}
 
int CurrentFilter = 1
 
int TargetFilter = 1
 
DefaultDevice * m_defaultDevice { nullptr }
 

Detailed Description

Definition at line 47 of file indifilterinterface.h.

Constructor & Destructor Documentation

◆ FilterInterface()

FilterInterface::FilterInterface ( DefaultDevice *  defaultDevice)
explicitprotected

FilterInterface Initiailize Filter Interface.

Parameters
defaultDevicedefault device that owns the interface

Definition at line 30 of file indifilterinterface.cpp.

◆ ~FilterInterface()

FilterInterface::~FilterInterface ( )
protected

Definition at line 34 of file indifilterinterface.cpp.

Member Function Documentation

◆ generateSampleFilters()

void FilterInterface::generateSampleFilters ( )
protected

generateSampleFilters Generate sample 8-filter wheel and fill it sample filters

Definition at line 196 of file indifilterinterface.cpp.

◆ GetFilterNames()

bool FilterInterface::GetFilterNames ( )
virtual

Obtains a list of filter names from the hardware and initializes the FilterNameTP property. The function should check for the number of filters available in the filter wheel and build the FilterNameTP property accordingly. The default implementation loads the filter names from configuration file.

Returns
True if successful, false if unsupported or failed operation

Reimplemented in FilterIFW, RasaFilterCube, and Wheelly.

Definition at line 221 of file indifilterinterface.cpp.

◆ initProperties()

void FilterInterface::initProperties ( const char *  groupName)
protected

Initialize filter wheel properties. It is recommended to call this function within initProperties() of your primary device.

Parameters
groupNameGroup or tab name to be used to define filter wheel properties.

Definition at line 38 of file indifilterinterface.cpp.

◆ processNumber()

bool FilterInterface::processNumber ( const char *  dev,
const char *  name,
double  values[],
char *  names[],
int  n 
)
protected

Process number properties.

Definition at line 111 of file indifilterinterface.cpp.

◆ processText()

bool FilterInterface::processText ( const char *  dev,
const char *  name,
char *  texts[],
char *  names[],
int  n 
)
protected

Process text properties.

Definition at line 155 of file indifilterinterface.cpp.

◆ QueryFilter()

virtual int INDI::FilterInterface::QueryFilter ( )
pure virtual

Return current filter position.

Implemented in QFW, CCDSim, AlpacaFilterWheel, iEFW, RasaFilterCube, TruTech, WandererSnowflakeFW, Wheelly, and INDI::FilterWheel.

◆ saveConfigItems()

bool FilterInterface::saveConfigItems ( FILE *  fp)
protected

saveConfigItems save Filter Names in config file

Parameters
fppointer to config file
Returns
Always return true

Definition at line 179 of file indifilterinterface.cpp.

◆ SelectFilter()

virtual bool INDI::FilterInterface::SelectFilter ( int  position)
pure virtual

Select a new filter position.

Returns
True if operation is successful, false otherwise

Implemented in AlpacaFilterWheel, RasaFilterCube, WandererSnowflakeFW, Wheelly, QFW, CCDSim, FilterSim, FilterIFW, iEFW, ManualFilter, PegasusINDIGO, QHYCFW1, QHYCFW2, QHYCFW3, TruTech, XAGYLWheel, and INDI::FilterWheel.

◆ SelectFilterDone()

void FilterInterface::SelectFilterDone ( int  newpos)

The child class calls this function when the hardware successfully finished selecting a new filter wheel position.

Parameters
newposNew position of the filter wheel

Definition at line 188 of file indifilterinterface.cpp.

◆ SetFilterNames()

bool FilterInterface::SetFilterNames ( )
virtual

Set filter names as defined by the client for each filter position. The desired filter names are stored in FilterNameTP property. Filter names should be saved in hardware if possible. The default implementation saves them in the configuration file.

Returns
True if successful, false if supported or failed operation

Reimplemented in FilterIFW, RasaFilterCube, and Wheelly.

Definition at line 230 of file indifilterinterface.cpp.

◆ updateProperties()

bool FilterInterface::updateProperties ( )
protected

updateProperties Defines or Delete properties based on default device connection status

Returns
True if all is OK, false otherwise.

Definition at line 47 of file indifilterinterface.cpp.

Member Data Documentation

◆ CurrentFilter

int INDI::FilterInterface::CurrentFilter = 1
protected

Definition at line 128 of file indifilterinterface.h.

◆ FilterNameTP

INDI::PropertyText INDI::FilterInterface::FilterNameTP {0}
protected

Definition at line 126 of file indifilterinterface.h.

◆ FilterSlotNP

INDI::PropertyNumber INDI::FilterInterface::FilterSlotNP {1}
protected

Definition at line 123 of file indifilterinterface.h.

◆ m_defaultDevice

DefaultDevice* INDI::FilterInterface::m_defaultDevice { nullptr }
protected

Definition at line 131 of file indifilterinterface.h.

◆ TargetFilter

int INDI::FilterInterface::TargetFilter = 1
protected

Definition at line 129 of file indifilterinterface.h.


The documentation for this class was generated from the following files: