Instrument Neutral Distributed Interface INDI  1.9.2
Classes | Macros | Functions | Variables
fli_wheel.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
#include <stdarg.h>
#include <cmath>
#include <unistd.h>
#include <ctime>
#include <fcntl.h>
#include <cerrno>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include "libfli.h"
#include "indidevapi.h"
#include "eventloop.h"
#include "indicom.h"

Go to the source code of this file.

Classes

struct  cam_t
 

Macros

#define mydev   "FLI Wheel"
 
#define MAIN_GROUP   "Main Control"
 
#define LAST_FILTER   14 /* Max slot index */
 
#define FIRST_FILTER   0 /* Min slot index */
 
#define currentFilter   FilterN[0].value
 
#define POLLMS_OVERRIDE   1000
 
#define LIBVERSIZ   1024
 
#define PREFIXSIZ   64
 
#define PIPEBUFSIZ   8192
 
#define FRAME_ILEN   64
 

Functions

void ISInit (void)
 
void getBasicData (void)
 
void ISPoll (void *)
 
void handleExposure (void *)
 
void connectFilter (void)
 
int findwheel (flidomain_t domain)
 
int manageDefaults (char errmsg[])
 
int checkPowerS (ISwitchVectorProperty *sp)
 
int checkPowerN (INumberVectorProperty *np)
 
int checkPowerT (ITextVectorProperty *tp)
 
int getOnSwitch (ISwitchVectorProperty *sp)
 
int isFilterConnected (void)
 
double min (void)
 
double max (void)
 
void ISGetProperties (const char *dev)
 Get Device Properties. More...
 
void ISNewBLOB (const char *dev, const char *name, int sizes[], int blobsizes[], char *blobs[], char *formats[], char *names[], int n)
 Update data of an existing blob vector property. More...
 
void ISSnoopDevice (XMLEle *root)
 Function defined by Drivers that is called when another Driver it is snooping (by having previously called IDSnoopDevice()) sent any INDI message. More...
 
void ISNewSwitch (const char *dev, const char *name, ISState *states, char *names[], int n)
 Update the value of an existing switch vector property. More...
 
void ISNewText (const char *dev, const char *name, char *texts[], char *names[], int n)
 Update the value of an existing text vector property. More...
 
void ISNewNumber (const char *dev, const char *name, double values[], char *names[], int n)
 

Variables

char * me
 
int errno
 
long int Domains [] = { FLIDOMAIN_USB, FLIDOMAIN_SERIAL, FLIDOMAIN_PARALLEL_PORT, FLIDOMAIN_INET }
 

Macro Definition Documentation

◆ currentFilter

#define currentFilter   FilterN[0].value

Definition at line 70 of file fli_wheel.c.

◆ FIRST_FILTER

#define FIRST_FILTER   0 /* Min slot index */

Definition at line 68 of file fli_wheel.c.

◆ FRAME_ILEN

#define FRAME_ILEN   64

Definition at line 76 of file fli_wheel.c.

◆ LAST_FILTER

#define LAST_FILTER   14 /* Max slot index */

Definition at line 67 of file fli_wheel.c.

◆ LIBVERSIZ

#define LIBVERSIZ   1024

Definition at line 73 of file fli_wheel.c.

◆ MAIN_GROUP

#define MAIN_GROUP   "Main Control"

Definition at line 65 of file fli_wheel.c.

◆ mydev

#define mydev   "FLI Wheel"

Definition at line 63 of file fli_wheel.c.

◆ PIPEBUFSIZ

#define PIPEBUFSIZ   8192

Definition at line 75 of file fli_wheel.c.

◆ POLLMS_OVERRIDE

#define POLLMS_OVERRIDE   1000

Definition at line 72 of file fli_wheel.c.

◆ PREFIXSIZ

#define PREFIXSIZ   64

Definition at line 74 of file fli_wheel.c.

Function Documentation

◆ checkPowerN()

int checkPowerN ( INumberVectorProperty np)

Definition at line 485 of file fli_wheel.c.

◆ checkPowerS()

int checkPowerS ( ISwitchVectorProperty sp)

Definition at line 465 of file fli_wheel.c.

◆ checkPowerT()

int checkPowerT ( ITextVectorProperty tp)

Definition at line 505 of file fli_wheel.c.

◆ connectFilter()

void connectFilter ( void  )

Definition at line 525 of file fli_wheel.c.

◆ findwheel()

int findwheel ( flidomain_t  domain)

Definition at line 621 of file fli_wheel.c.

◆ getBasicData()

void getBasicData ( void  )

Definition at line 308 of file fli_wheel.c.

◆ getOnSwitch()

int getOnSwitch ( ISwitchVectorProperty sp)

Definition at line 452 of file fli_wheel.c.

◆ handleExposure()

void handleExposure ( void *  )

◆ isFilterConnected()

int isFilterConnected ( void  )

Definition at line 613 of file fli_wheel.c.

◆ ISGetProperties()

void ISGetProperties ( const char *  dev)

Get Device Properties.

Parameters
devthe name of the device.

This function is called by the framework whenever the driver has received a getProperties message from an INDI client. The argument

Parameters
devis either a string containing the name of the device specified within the message, or NULL if no device was specified. If the driver does not recognize the device, it should ignore the message and do nothing. If dev matches the device the driver is implementing, or dev is NULL, the driver must respond by sending one defXXX message to describe each property defined by this device, including its current (or initial) value. The recommended way to send these messages is to call the appropriate IDDef functions.

Definition at line 145 of file fli_wheel.c.

◆ ISInit()

void ISInit ( void  )

Definition at line 121 of file fli_wheel.c.

◆ ISNewBLOB()

void ISNewBLOB ( const char *  dev,
const char *  name,
int  sizes[],
int  blobsizes[],
char *  blobs[],
char *  formats[],
char *  names[],
int  n 
)

Update data of an existing blob vector property.

Parameters
devthe name of the device.
namethe name of the blob vector property to update.
sizesan array of base64 blob sizes in bytes before decoding.
blobsizesan array of the sizes of blobs after decoding from base64.
blobsan array of decoded data. Each blob size is found in blobsizes array.
formatsBlob data format (e.g. fits.z).
namesnames of blob members to update.
nthe number of blobs to update.
Note
You do not need to call this function, it is called by INDI when new blob values arrive from the client. e.g. BLOB element with name names[0] has data located in blobs[0] with size sizes[0] and format formats[0].

Definition at line 158 of file fli_wheel.c.

◆ ISNewNumber()

void ISNewNumber ( const char *  dev,
const char *  name,
double  values[],
char *  names[],
int  n 
)

Definition at line 222 of file fli_wheel.c.

◆ ISNewSwitch()

void ISNewSwitch ( const char *  dev,
const char *  name,
ISState states,
char *  names[],
int  n 
)

Update the value of an existing switch vector property.

Parameters
devthe name of the device.
namethe name of the switch vector property to update.
statesan array of switch states.
namesparallel names to the array of switch states.
nthe dimension of states[].
Note
You do not need to call this function, it is called by INDI when new switch values arrive from the client.

Definition at line 175 of file fli_wheel.c.

◆ ISNewText()

void ISNewText ( const char *  dev,
const char *  name,
char *  texts[],
char *  names[],
int  n 
)

Update the value of an existing text vector property.

Parameters
devthe name of the device.
namethe name of the text vector property to update.
textsan array of text values.
namesparallel names to the array of text values.
nthe dimension of texts[].
Note
You do not need to call this function, it is called by INDI when new text values arrive from the client.

Definition at line 206 of file fli_wheel.c.

◆ ISPoll()

void ISPoll ( void *  p)

Definition at line 393 of file fli_wheel.c.

◆ ISSnoopDevice()

void ISSnoopDevice ( XMLEle root)

Function defined by Drivers that is called when another Driver it is snooping (by having previously called IDSnoopDevice()) sent any INDI message.

Parameters
rootThe argument contains the full message exactly as it was sent by the driver. Hint: use the IUSnoopXXX utility functions to help crack the message if it was one of setXXX or defXXX.

Definition at line 170 of file fli_wheel.c.

◆ manageDefaults()

int manageDefaults ( char  errmsg[])

Definition at line 364 of file fli_wheel.c.

◆ max()

double max ( void  )

◆ min()

double min ( void  )

Variable Documentation

◆ Domains

long int Domains[] = { FLIDOMAIN_USB, FLIDOMAIN_SERIAL, FLIDOMAIN_PARALLEL_PORT, FLIDOMAIN_INET }

Definition at line 97 of file fli_wheel.c.

◆ errno

int errno

◆ me

char* me

Definition at line 50 of file indidriver.c.