99 bool processNumber(
const char *dev,
const char *name,
double values[],
char *names[],
int n);
101 bool processText(
const char *dev,
const char *name,
char *texts[],
char *names[],
int n);
103 bool processBLOB(
const char *dev,
const char *name,
int sizes[],
int blobsizes[],
char *blobs[],
104 char *formats[],
char *names[],
int n);
131 return integrationTime;
305 virtual void setMinMaxStep(
const char *property,
const char *element,
double min,
double max,
double step,
306 bool sendToClient =
true);
366 return integrationExtention;
438 return sensorConnection;
462 void fits_update_key_s(fitsfile *fptr,
int type, std::string name,
void *p, std::string explanation,
int *status);
515 if(
DSP.get() ==
nullptr)
652 std::unique_ptr<DSP::Manager>
DSP;
660 bool callHandshake();
673 double integrationTime;
674 double startIntegrationTime;
677 bool uploadFile(
const void *fitsData,
size_t totalBytes,
IBLOB blob,
bool sendIntegration,
bool saveIntegration);
678 void getMinMax(
double *
min,
double *
max, uint8_t *buf,
int len,
int bpp);
679 int getFileIndex(
const char *dir,
const char *prefix,
const char *ext);
681 bool IntegrationCompletePrivate();
682 void* sendFITS(uint8_t* buf,
int len,
IBLOB blob);
The Serial class manages connection with serial devices including Bluetooth. Serial communication is ...
The TCP class manages connection with devices over the network via TCP/IP. Upon successful connection...
Class to provide extended functionality for devices in addition to the functionality provided by INDI...
The SensorDevice class provides functionality of a Sensor Device within a Sensor.
void setIntegrationFailed()
setIntegrationFailed Alert the client that the Integration failed.
ITextVectorProperty FileNameTP
bool processNumber(const char *dev, const char *name, double values[], char *names[], int n)
void SetCapability(uint32_t cap)
SetCapability Set the Sensor capabilities. Al fields must be initialized.
ITextVectorProperty FITSHeaderTP
ISwitch AbortIntegrationS[1]
virtual bool StartStreaming()
StartStreaming Start live video streaming.
virtual bool StopStreaming()
StopStreaming Stop live video streaming.
ITextVectorProperty UploadSettingsTP
INumberVectorProperty LocationNP
double getIntegrationLeft() const
getIntegrationLeft Get Integration time left in seconds.
bool processSwitch(const char *dev, const char *name, ISState states[], char *names[], int n)
uint8_t * getReal()
getBuffer Get real buffer of the stream of the Sensor device.
void setBPS(int bps)
setBPP Set depth of Sensor device.
Connection::TCP * getTcpConnection()
INumber FramedIntegrationN[1]
ISwitchVectorProperty DatasetSP
INumberVectorProperty EqNP
void setBufferSize(int nbuf, bool allocMem=true)
setBufferSize Set desired buffer size. The function will allocate memory accordingly....
double primaryFocalLength
void setNAxis(int value)
setNAxis Set FITS number of axis
void setSensorConnection(const uint8_t &value)
setSensorConnection Set Sensor connection mode. Child class should call this in the constructor befor...
enum INDI::SensorInterface::@467 SensorCapability
void setIntegrationLeft(double duration)
setIntegrationLeft Update Integration time left. Inform the client of the new Integration time left v...
void setImaginary(uint8_t *buffer)
setBuffer Set imaginary frame buffer pointer.
ITextVectorProperty ActiveDeviceTP
IBLOBVectorProperty FitsBP
virtual bool AbortIntegration()
Abort ongoing Integration.
uint8_t * getImaginary()
getBuffer Get imaginary buffer of the stream of the Sensor device.
std::unique_ptr< StreamManager > Streamer
void setIntegrationTime(double duration)
setIntegrationTime Set desired Sensor frame Integration duration for next Integration....
int PortFD
For Serial & TCP connections.
bool processText(const char *dev, const char *name, char *texts[], char *names[], int n)
virtual void setMinMaxStep(const char *property, const char *element, double min, double max, double step, bool sendToClient=true)
setMinMaxStep for a number property element
virtual void addFITSKeywords(fitsfile *fptr, uint8_t *buf, int len)
Add FITS keywords to a fits file.
int getBufferSize() const
getContinuumBufferSize Get allocated continuum buffer size to hold the Sensor integrationd stream.
bool processBLOB(const char *dev, const char *name, int sizes[], int blobsizes[], char *blobs[], char *formats[], char *names[], int n)
enum INDI::SensorInterface::@468 SensorConnection
INumberVectorProperty TemperatureNP
void fits_update_key_s(fitsfile *fptr, int type, std::string name, void *p, std::string explanation, int *status)
INumber ScopeParametersN[4]
const char * getIntegrationStartTime()
getIntegrationStartTime
friend class StreamManager
Misc.
INumberVectorProperty FramedIntegrationNP
uint32_t GetCapability() const
GetCapability returns the Sensor capabilities.
ISwitchVectorProperty AbortIntegrationSP
void setMagnitude(uint8_t *buffer)
setBuffer Set magnitude frame buffer pointer.
uint8_t * getMagnitude()
getBuffer Get magnitude buffer of the stream of the Sensor device.
virtual bool saveConfigItems(FILE *fp)
saveConfigItems Save configuration items in XML file.
virtual bool IntegrationComplete()
Uploads target Device exposed buffer as FITS to the client. Derived classes should class this functio...
ISwitchVectorProperty TelescopeTypeSP
void processProperties(const char *dev)
uint8_t getSensorConnection()
void setPhase(uint8_t *buffer)
setBuffer Set phase frame buffer pointer.
uint8_t * getBuffer()
getBuffer Get continuum buffer of the stream of the Sensor device.
bool updateProperties()
updateProperties is called whenever there is a change in the CONNECTION status of the driver....
bool initProperties()
Initialize properties initial state and value. The child class must implement this function.
ISwitchVectorProperty UploadSP
virtual bool Handshake()
perform handshake with device to check communication
Connection::TCP * tcpConnection
bool processSnoopDevice(XMLEle *root)
void setReal(uint8_t *buffer)
setBuffer Set real frame buffer pointer.
std::mutex detectorBufferLock
Connection::Serial * getSerialConnection()
char * getIntegrationFileExtension()
int getBPS() const
getBPS Get Sensor depth (bits per sample).
void setIntegrationFileExtension(const char *ext)
setIntegrationExtension Set integration extension
void setBuffer(uint8_t *buffer)
setBuffer Set continuum frame buffer pointer.
Connection::Serial * serialConnection
virtual void activeDevicesUpdated()
activeDevicesUpdated Inform children that ActiveDevices property was updated so they can snoop on the...
double getIntegrationTime() const
getIntegrationTime Get requested Integration duration for the Sensor device in seconds.
INumberVectorProperty ScopeParametersNP
std::unique_ptr< DSP::Manager > DSP
uint8_t * getPhase()
getBuffer Get phase buffer of the stream of the Sensor device.
ISwitch TelescopeTypeS[2]
virtual int SetTemperature(double temperature)
Set Sensor temperature.
virtual bool StartIntegration(double duration)
Start integration from the Sensor device.
Class to provide video streaming and recording functionality.
The DSP Namespace adds signal processing to INDI drivers. Primarily written for sensors and detectors...
Namespace to encapsulate INDI client, drivers, and mediator classes.
One Blob (Binary Large Object) descriptor.
BLOB (Binary Large Object) vector property descriptor.
Number vector property descriptor.
Switch vector property descriptor.
Text vector property descriptor.
void uploadFile(const char *filename)