TwiceAsNice  2019-02-18
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
INDI::FilterInterface Class Referenceabstract

#include <indifilterinterface.h>

Inheritance diagram for INDI::FilterInterface:
Inheritance graph
Collaboration diagram for INDI::FilterInterface:
Collaboration graph

Public Member Functions

virtual int QueryFilter ()=0
 Return current filter position. More...
 
virtual bool SelectFilter (int position)=0
 Select a new filter position. More...
 
virtual bool SetFilterNames ()
 Set filter names as defined by the client for each filter position. More...
 
virtual bool GetFilterNames ()
 Obtains a list of filter names from the hardware and initializes the FilterNameTP property. More...
 
void SelectFilterDone (int newpos)
 The child class calls this function when the hardware successfully finished selecting a new filter wheel position. More...
 
virtual int QueryFilter ()=0
 Return current filter position. More...
 
virtual bool SelectFilter (int position)=0
 Select a new filter position. More...
 
virtual bool SetFilterNames ()
 Set filter names as defined by the client for each filter position. More...
 
virtual bool GetFilterNames ()
 Obtains a list of filter names from the hardware and initializes the FilterNameTP property. More...
 
void SelectFilterDone (int newpos)
 The child class calls this function when the hardware successfully finished selecting a new filter wheel position. More...
 

Protected Member Functions

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

Protected Attributes

INumberVectorProperty FilterSlotNP
 
INumber FilterSlotN [1]
 
ITextVectorPropertyFilterNameTP { nullptr }
 
ITextFilterNameT
 
int CurrentFilter
 
int TargetFilter
 
bool loadingFromConfig = false
 
DefaultDevicem_defaultDevice { nullptr }
 

Private Member Functions

bool loadFilterNames ()
 loadFilterNames Load filter names from config More...
 
bool loadFilterNames ()
 loadFilterNames Load filter names from config More...
 

Constructor & Destructor Documentation

◆ FilterInterface() [1/2]

FilterInterface::FilterInterface ( DefaultDevice defaultDevice)
explicitprotected

FilterInterface Initiailize Filter Interface.

Parameters
defaultDevicedefault device that owns the interface

◆ ~FilterInterface() [1/2]

FilterInterface::~FilterInterface ( )
protected

◆ FilterInterface() [2/2]

INDI::FilterInterface::FilterInterface ( DefaultDevice defaultDevice)
explicitprotected

FilterInterface Initiailize Filter Interface.

Parameters
defaultDevicedefault device that owns the interface

◆ ~FilterInterface() [2/2]

INDI::FilterInterface::~FilterInterface ( )
protected

Member Function Documentation

◆ generateSampleFilters() [1/2]

void FilterInterface::generateSampleFilters ( )
protected

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

◆ generateSampleFilters() [2/2]

void INDI::FilterInterface::generateSampleFilters ( )
protected

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

◆ GetFilterNames() [1/2]

virtual bool INDI::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, and QSICCD.

◆ GetFilterNames() [2/2]

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, and QSICCD.

◆ initProperties() [1/2]

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

Initilize 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.

◆ initProperties() [2/2]

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

Initilize 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.

◆ loadFilterNames() [1/2]

bool FilterInterface::loadFilterNames ( )
private

loadFilterNames Load filter names from config

Returns
true if successful, false otherwise.
Note
This is only called in initProperties() of FilterInterface

◆ loadFilterNames() [2/2]

bool INDI::FilterInterface::loadFilterNames ( )
private

loadFilterNames Load filter names from config

Returns
true if successful, false otherwise.
Note
This is only called in initProperties() of FilterInterface

◆ processNumber() [1/2]

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

Process number properties.

◆ processNumber() [2/2]

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

Process number properties.

◆ processText() [1/2]

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

Process text properties.

◆ processText() [2/2]

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

Process text properties.

◆ QueryFilter() [1/2]

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

Return current filter position.

Implemented in SBIGCCD, CCDSim, QSICCD, INDI::FilterWheel, INDI::FilterWheel, QHYCCD, MICCD, FLICFW, SXWHEEL, ASIWHEEL, and QFW.

◆ QueryFilter() [2/2]

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

Return current filter position.

Implemented in SBIGCCD, CCDSim, QSICCD, INDI::FilterWheel, INDI::FilterWheel, QHYCCD, MICCD, FLICFW, SXWHEEL, ASIWHEEL, and QFW.

◆ saveConfigItems() [1/2]

bool FilterInterface::saveConfigItems ( FILE *  fp)
protected

saveConfigItems save Filter Names in config file

Parameters
fppointer to config file
Returns
Always return true

◆ saveConfigItems() [2/2]

bool INDI::FilterInterface::saveConfigItems ( FILE *  fp)
protected

saveConfigItems save Filter Names in config file

Parameters
fppointer to config file
Returns
Always return true

◆ SelectFilter() [1/2]

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

Select a new filter position.

Returns
True if operation is successful, false otherwise

Implemented in SBIGCCD, CCDSim, FilterIFW, INDI::FilterWheel, QSICCD, INDI::FilterWheel, QHYCCD, MICCD, XAGYLWheel, SXWHEEL, FLICFW, ASIWHEEL, QFW, TruTech, and FilterSim.

◆ SelectFilter() [2/2]

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

Select a new filter position.

Returns
True if operation is successful, false otherwise

Implemented in SBIGCCD, CCDSim, FilterIFW, INDI::FilterWheel, QSICCD, INDI::FilterWheel, QHYCCD, MICCD, XAGYLWheel, SXWHEEL, FLICFW, ASIWHEEL, QFW, TruTech, and FilterSim.

◆ SelectFilterDone() [1/2]

void INDI::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

◆ SelectFilterDone() [2/2]

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

◆ SetFilterNames() [1/2]

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, and QSICCD.

◆ SetFilterNames() [2/2]

virtual bool INDI::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, and QSICCD.

◆ updateProperties() [1/2]

bool FilterInterface::updateProperties ( )
protected

updateProperties Defines or Delete proprties based on default device connection status

Returns
True if all is OK, false otherwise.

◆ updateProperties() [2/2]

bool INDI::FilterInterface::updateProperties ( )
protected

updateProperties Defines or Delete proprties based on default device connection status

Returns
True if all is OK, false otherwise.

Member Data Documentation

◆ CurrentFilter

int FilterInterface::CurrentFilter
protected

◆ FilterNameT

IText * FilterInterface::FilterNameT
protected

◆ FilterNameTP

ITextVectorProperty * FilterInterface::FilterNameTP { nullptr }
protected

◆ FilterSlotN

INumber FilterInterface::FilterSlotN
protected

◆ FilterSlotNP

INumberVectorProperty FilterInterface::FilterSlotNP
protected

◆ loadingFromConfig

bool FilterInterface::loadingFromConfig = false
protected

◆ m_defaultDevice

DefaultDevice * FilterInterface::m_defaultDevice { nullptr }
protected

◆ TargetFilter

int FilterInterface::TargetFilter
protected

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