150 virtual bool ISNewNumber(
const char * dev,
const char * name,
double values[],
char * names[],
int n)
override;
151 virtual bool ISNewSwitch(
const char * dev,
const char * name,
ISState * states,
char * names[],
int n)
override;
152 virtual bool ISNewText(
const char * dev,
const char * name,
char * texts[],
char * names[],
int n)
override;
153 virtual bool ISNewBLOB(
const char *dev,
const char *name,
int sizes[],
int blobsizes[],
char *blobs[],
char *formats[],
154 char *names[],
int n)
override;
163 static constexpr
const char *
WCS_TAB =
"WCS";
277 if(
DSP.get() ==
nullptr)
425 virtual void SetCCDParams(
int x,
int y,
int bpp,
float xf,
float yf);
436 virtual void SetGuiderParams(
int x,
int y,
int bpp,
float xf,
float yf);
513 void fits_update_key_s(fitsfile * fptr,
int type, std::string name,
void * p, std::string explanation,
int * status);
628 std::unique_ptr<DSP::Manager>
DSP;
782 bool m_ValidCCDRotation {
false};
783 std::string m_ConfigCaptureFormatName;
784 int m_ConfigEncodeFormatIndex {-1};
787 std::map<std::string, FITSRecord> m_CustomFITSKeywords;
792 bool uploadFile(CCDChip * targetChip,
const void * fitsData,
size_t totalBytes,
bool sendImage,
bool saveImage);
793 void getMinMax(
double *
min,
double *
max, CCDChip * targetChip);
794 int getFileIndex(
const char * dir,
const char * prefix,
const char * ext);
795 bool ExposureCompletePrivate(CCDChip * targetChip);
798 #ifdef HAVE_WEBSOCKET
799 std::thread wsThread;
800 void wsThreadEntry();
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...
INumberVectorProperty EqNP
Properties.
ISwitchVectorProperty UploadSP
static constexpr const char * WCS_TAB
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
ITextVectorProperty ActiveDeviceTP
ActiveDeviceTP defines 4 devices the camera driver can listen to (snoop) for properties of interest s...
uint32_t GetCCDCapability() const
GetCCDCapability returns the CCD capabilities.
enum INDI::CCD::@223 CCDCapability
INumberVectorProperty CCDRotationNP
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.
ISwitchVectorProperty WebSocketSP
INDI::Timer m_TemperatureCheckTimer
static constexpr const char * GUIDE_CONTROL_TAB
Group Names.
ITextVectorProperty FileNameTP
FileNameTP File name of locally-saved images. By default, images are uploaded to the client but when ...
virtual void activeDevicesUpdated()
activeDevicesUpdated Inform children that ActiveDevices property was updated so they can snoop on the...
ISwitchVectorProperty FastExposureToggleSP
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.
ITextVectorProperty BayerTP
BayerTP Bayer pattern offset and type.
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.
ITextVectorProperty UploadSettingsTP
virtual bool ExposureComplete(CCDChip *targetChip)
Uploads target Chip exposed buffer as FITS to the client. Dervied 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...
virtual int SetTemperature(double temperature)
Set CCD temperature.
INDI::PropertyNumber ScopeInfoNP
INumber WebSocketSettingsN[1]
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 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.
INumberVectorProperty J2000EqNP
J200EqNP Snoop property to read the equatorial J2000 coordinates of the mount. ActiveDeviceTP defines...
virtual bool initProperties() override
Initilize 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.
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.
INumberVectorProperty FastExposureCountNP
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.
ISwitch FastExposureToggleS[2]
INumberVectorProperty WebSocketSettingsNP
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...
std::vector< std::string > FilterNames
virtual void SetGuiderParams(int x, int y, int bpp, float xf, float yf)
Setup CCD paramters for guide head CCD. Child classes call this function to update CCD parameters.
ISwitchVectorProperty WorldCoordSP
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.
INumber FastExposureCountN[1]
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).
struct INDI::CCD::CaptureFormat CaptureFormat
void SetCCDCapability(uint32_t cap)
SetCCDCapability Set the CCD capabilities. Al 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.
INumberVectorProperty TemperatureNP
TemperatureNP Camera Temperature in Celcius.
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 paramters 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
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.
Number vector property descriptor.
Switch vector property descriptor.
Text vector property descriptor.