141 virtual bool ISNewNumber(
const char * dev,
const char * name,
double values[],
char * names[],
int n)
override;
142 virtual bool ISNewSwitch(
const char * dev,
const char * name,
ISState * states,
char * names[],
int n)
override;
143 virtual bool ISNewText(
const char * dev,
const char * name,
char * texts[],
char * names[],
int n)
override;
144 virtual bool ISNewBLOB(
const char *dev,
const char *name,
int sizes[],
int blobsizes[],
char *blobs[],
char *formats[],
145 char *names[],
int n)
override;
154 static constexpr const char *
WCS_TAB =
"WCS";
261 if(
DSP.get() ==
nullptr)
409 virtual void SetCCDParams(
int x,
int y,
int bpp,
float xf,
float yf);
420 virtual void SetGuiderParams(
int x,
int y,
int bpp,
float xf,
float yf);
497 void fits_update_key_s(fitsfile * fptr,
int type, std::string name,
void * p, std::string explanation,
int * status);
620 std::unique_ptr<DSP::Manager>
DSP;
756 bool m_ValidCCDRotation {
false};
757 std::string m_ConfigCaptureFormatName;
758 int m_ConfigEncodeFormatIndex {-1};
761 std::map<std::string, FITSRecord> m_CustomFITSKeywords;
766 bool uploadFile(CCDChip * targetChip,
const void * fitsData,
size_t totalBytes,
bool sendImage,
bool saveImage);
767 void getMinMax(
double *
min,
double *
max, CCDChip * targetChip);
768 int getFileIndex(
const std::string &dir,
const std::string &prefix,
const std::string &ext);
769 bool ExposureCompletePrivate(CCDChip * targetChip);
The CCDChip class provides functionality of a CCD Chip within a CCD.
Class to provide general functionality of CCD cameras with a single CCD sensor, or a primary CCD sens...
static constexpr const char * WCS_TAB
double m_InitialRampTemperature
virtual bool StartExposure(float duration)
Start exposing primary CCD chip.
virtual bool processFastExposure(CCDChip *targetChip)
processFastExposure After an exposure is complete, check if fast exposure was enabled....
std::chrono::system_clock::time_point FastExposureToggleStartup
INDI::PropertySwitch UploadSP
uint32_t GetCCDCapability() const
GetCCDCapability returns the CCD capabilities.
INDI::PropertySwitch WorldCoordSP
std::unique_ptr< StreamManager > Streamer
double GuiderExposureTime
void fits_update_key_s(fitsfile *fptr, int type, std::string name, void *p, std::string explanation, int *status)
virtual bool ISNewBLOB(const char *dev, const char *name, int sizes[], int blobsizes[], char *blobs[], char *formats[], char *names[], int n) override
Process the client newBLOB command.
double m_TemperatureStabilizationValue
INDI::PropertyNumber EqNP
Properties.
INDI::Timer m_TemperatureCheckTimer
static constexpr const char * GUIDE_CONTROL_TAB
Group Names.
INDI::PropertyNumber CCDRotationNP
virtual void activeDevicesUpdated()
activeDevicesUpdated Inform children that ActiveDevices property was updated so they can snoop on the...
INDI::PropertyNumber FastExposureCountNP
INDI::PropertyText ActiveDeviceTP
ActiveDeviceTP defines 4 devices the camera driver can listen to (snoop) for properties of interest s...
virtual bool UpdateCCDFrame(int x, int y, int w, int h)
CCD calls this function when CCD Frame dimension needs to be updated in the hardware....
virtual void addFITSKeywords(CCDChip *targetChip, std::vector< FITSRecord > &fitsKeywords)
Generate FITS keywords that will be added to FIST/XISF file.
virtual bool ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) override
Process the client newSwitch command.
INDI::PropertyNumber TemperatureRampNP
Temperature Ramp in C/Min with configurable threshold.
virtual bool ExposureComplete(CCDChip *targetChip)
Uploads target Chip exposed buffer as FITS to the client. Derived classes should class this function ...
virtual IPState GuideWest(uint32_t ms) override
Guide westward for ms milliseconds.
virtual void ISGetProperties(const char *dev) override
define the driver's properties to the client. Usually, only a minimum set of properties are defined t...
INDI::PropertyNumber TemperatureNP
TemperatureNP Camera Temperature in Celcius.
virtual int SetTemperature(double temperature)
Set CCD temperature.
INDI::PropertyNumber ScopeInfoNP
INDI::PropertyNumber J2000EqNP
J200EqNP Snoop property to read the equatorial J2000 coordinates of the mount. ActiveDeviceTP defines...
INDI::PropertyText FITSHeaderTP
virtual bool UpdateGuiderFrame(int x, int y, int w, int h)
CCD calls this function when Guide head frame dimension is updated by the client. Derived classes sho...
virtual bool UpdateCCDBin(int hor, int ver)
CCD calls this function when CCD Binning needs to be updated in the hardware. Derived classes should ...
INDI::PropertySwitch FastExposureToggleSP
INDI::PropertySwitch EncodeFormatSP
Specifies Driver image encoding format (FITS, Native, JPG, ..etc)
virtual IPState GuideSouth(uint32_t ms) override
Guide southward for ms milliseconds.
virtual bool SetCaptureFormat(uint8_t index)
SetCaptureFormat Set Active Capture format.
virtual bool initProperties() override
Initialize properties initial state and value. The child class must implement this function.
virtual bool ISNewText(const char *dev, const char *name, char *texts[], char *names[], int n) override
Process the client newSwitch command.
virtual bool StartGuideExposure(float duration)
Start exposing guide CCD chip.
virtual bool AbortExposure()
Abort ongoing exposure.
virtual IPState GuideNorth(uint32_t ms) override
Guide northward for ms milliseconds.
INDI::PropertyText BayerTP
BayerTP Bayer pattern offset and type.
char exposureStartTime[MAXINDINAME]
virtual bool StartStreaming()
StartStreaming Start live video streaming.
std::unique_ptr< DSP::Manager > DSP
virtual bool UpdateGuiderFrameType(CCDChip::CCD_FRAME fType)
CCD calls this function when Guide frame type is updated by the client.
INDI::PropertyText UploadSettingsTP
virtual bool updateProperties() override
updateProperties is called whenever there is a change in the CONNECTION status of the driver....
virtual IPState GuideEast(uint32_t ms) override
Guide easward for ms milliseconds.
virtual void addCaptureFormat(const CaptureFormat &format)
addCaptureFormat Add a supported camera native capture format (e.g. Mono, Bayer8.....
friend class StreamManager
Misc.
virtual void checkTemperatureTarget()
checkTemperatureTarget Checks the current temperature against target temperature and calculates the n...
INDI::PropertyText FileNameTP
FileNameTP File name of locally-saved images. By default, images are uploaded to the client but when ...
std::vector< std::string > FilterNames
virtual void SetGuiderParams(int x, int y, int bpp, float xf, float yf)
Setup CCD parameters for guide head CCD. Child classes call this function to update CCD parameters.
INDI::ElapsedTimer m_TemperatureElapsedTimer
virtual bool UpdateGuiderBin(int hor, int ver)
CCD calls this function when Guide head binning is updated by the client. Derived classes should impl...
virtual bool saveConfigItems(FILE *fp) override
saveConfigItems Save configuration items in XML file.
virtual void GuideComplete(INDI_EQ_AXIS axis) override
GuideComplete Signal guide pulse completion.
virtual bool ISSnoopDevice(XMLEle *root) override
Process a snoop event from INDI server. This function is called when a snooped property is updated in...
virtual void UploadComplete(CCDChip *)
UploadComplete Signal that capture is completed and image was uploaded and/or saved successfully.
INDI::PropertySwitch CaptureFormatSP
Specifies Camera NATIVE capture format (e.g. Mono, RGB, RAW8..etc).
enum INDI::CCD::@421 CCDCapability
void SetCCDCapability(uint32_t cap)
SetCCDCapability Set the CCD capabilities. All fields must be initialized.
virtual bool ISNewNumber(const char *dev, const char *name, double values[], char *names[], int n) override
Process the client newNumber command.
static void wsThreadHelper(void *context)
virtual bool UpdateCCDFrameType(CCDChip::CCD_FRAME fType)
CCD calls this function when CCD frame type needs to be updated in the hardware.
virtual void SetCCDParams(int x, int y, int bpp, float xf, float yf)
Setup CCD parameters for primary CCD. Child classes call this function to update CCD parameters.
virtual bool UpdateCCDUploadMode(CCD_UPLOAD_MODE mode)
CCD calls this function when client upload mode switch is updated.
virtual bool StopStreaming()
StopStreaming Stop live video streaming.
double snoopedFocalLength
std::vector< CaptureFormat > m_CaptureFormats
double m_TargetTemperature
INDI::ElapsedTimer m_TemperatureStabilizationTimer
virtual bool AbortGuideExposure()
Abort ongoing exposure.
Class to provide extended functionality for devices in addition to the functionality provided by INDI...
The ElapsedTimer class provides a fast way to calculate elapsed times.
The Timer class provides repetitive and single-shot timers.
Class to provide video streaming and recording functionality.
const char * IMAGE_SETTINGS_TAB
const char * IMAGE_INFO_TAB
const char * GUIDE_HEAD_TAB
The DSP Namespace adds signal processing to INDI drivers. Primarily written for sensors and detectors...
Namespace to encapsulate INDI client, drivers, and mediator classes.