182 virtual bool ISNewNumber(
const char * dev,
const char * name,
double values[],
char * names[],
int n)
override;
183 virtual bool ISNewSwitch(
const char * dev,
const char * name,
ISState * states,
char * names[],
int n)
override;
184 virtual bool ISNewText(
const char * dev,
const char * name,
char * texts[],
char * names[],
int n)
override;
331 virtual bool Sync(
double az);
337 virtual bool Abort();
457 bool GetTargetAz(
double &Az,
double &Alt,
double &minAz,
double &maxAz);
524 double Csc(
double x);
525 double Sec(
double x);
639 void processButton(
const char * button_n,
ISState state);
640 void triggerSnoop(
const char * driverName,
const char * propertyName);
645 void SyncParkStatus(
bool isparked);
650 const char * LoadParkXML();
657 std::string GetHomeDirectory()
const;
661 bool IsParked =
false;
662 bool IsMountParked =
false;
663 bool IsLocked =
true;
664 bool AutoSyncWarning =
false;
665 bool UseHourAngle =
false;
667 const char * ParkDeviceName;
668 const std::string ParkDataFileName;
671 XMLEle * ParkdataXmlRoot, *ParkdeviceXml, *ParkstatusXml, *ParkpositionXml, *ParkpositionAxis1Xml;
673 double Axis1ParkPosition;
674 double Axis1DefaultParkPosition;
676 bool callHandshake();
680 static constexpr uint32_t HORZ_UPDATE_TIMER { 10000 };
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 successfull connectio...
The Controller class provides functionality to access a controller (e.g. joystick) input and send it ...
Class to provide extended functionality for devices in addition to the functionality provided by INDI...
Class to provide general functionality of a Dome device.
INumberVectorProperty DomeMeasurementsNP
INDI::IHorizontalCoordinates mountHoriztonalCoords
INumberVectorProperty PresetNP
Connection::TCP * tcpConnection
@ DOME_HAS_VARIABLE_SPEED
INumber DomeMeasurementsN[6]
virtual IPState UnPark()
UnPark dome. The action of the Unpark command is dome specific, but it may include opening the shutte...
void SetParked(bool isparked)
SetParked Change the mount parking status. The data park file (stored in ~/.indi/ParkData....
void SetDomeCapability(uint32_t cap)
SetDomeCapability set the dome capabilities. All capabilities must be initialized.
void setDomeConnection(const uint8_t &value)
setDomeConnection Set Dome connection mode. Child class should call this in the constructor before Do...
ISwitchVectorProperty PresetGotoSP
const char * GetShutterStatusString(ShutterState status)
getShutterStatusString
INDI::IEquatorialCoordinates mountEquatorialCoords
bool CheckHorizon(double HA, double dec, double lat)
CheckHorizon Returns true if telescope points above horizon.
ITextVectorProperty ActiveDeviceTP
ISwitchVectorProperty ShutterParkPolicySP
bool isParked()
isParked is dome currently parked?
bool OpticalCenter(point3D MountCenter, double dOpticalAxis, double Lat, double Ah, point3D &OP)
OpticalCenter This function calculates the distance from the optical axis to the Dome center.
virtual bool SetSpeed(double rpm)
SetSpeed Set Dome speed. This does not initiate motion, it sets the speed for the next motion command...
virtual bool Sync(double az)
Sync sets the dome current azimuth as the supplied azimuth position.
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...
ShutterState m_ShutterState
ISwitchVectorProperty OTASideSP
void SetAxis1Park(double value)
SetRAPark Set current AZ parking position. The data park file (stored in ~/.indi/ParkData....
void UpdateMountCoords()
updateCoords updates the horizontal coordinates (Az & Alt) of the mount from the snooped RA,...
INumberVectorProperty DomeParamNP
IPState getMountState() const
ISwitch ShutterParkPolicyS[2]
void SetAxis1ParkDefault(double steps)
SetAxis1Park Set default AZ parking position.
ShutterOperation
Shutter operation command.
virtual bool initProperties() override
Initilize properties initial state and value. The child class must implement this function.
virtual void UpdateAutoSync()
UpdateAutoSync This function calculates the target dome azimuth from the mount's target coordinates g...
virtual IPState MoveRel(double azDiff)
Move the Dome to an relative position.
INumberVectorProperty DomeAbsPosNP
INumberVectorProperty ParkPositionNP
uint32_t GetDomeCapability() const
GetDomeCapability returns the capability of the dome.
ISwitchVectorProperty AbortSP
ISwitchVectorProperty DomeShutterSP
ISwitchVectorProperty ParkOptionSP
enum INDI::Dome::@239 DomeConnection
bool isLocked()
isLocked, is the dome currently locked?
INumberVectorProperty DomeSyncNP
virtual bool SetBacklash(int32_t steps)
SetBacklash Set the dome backlash compensation value.
ISwitchVectorProperty ParkSP
double GetAxis1ParkDefault()
virtual IPState Park()
Goto Park Position. The park position is an absolute azimuth value.
const char * LoadParkData()
virtual bool updateProperties() override
updateProperties is called whenever there is a change in the CONNECTION status of the driver....
ISwitchVectorProperty DomeBacklashSP
virtual bool ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) override
Process the client newSwitch command.
virtual bool SetDefaultPark()
SetDefaultPark Set default coordinates/encoders value as the desired parking position.
bool Intersection(point3D p1, point3D p2, double r, double &mu1, double &mu2)
Intersection Calculate the intersection of a ray and a sphere. The line segment is defined from p1 to...
virtual bool SetBacklashEnabled(bool enabled)
SetBacklashEnabled Enables or disables the dome backlash compensation.
virtual IPState MoveAbs(double az)
Move the Dome to an absolute azimuth.
INumberVectorProperty DomeRelPosNP
IGeographicCoordinates observer
virtual bool ISSnoopDevice(XMLEle *root) override
Process a snoop event from INDI server. This function is called when a snooped property is updated in...
ISwitchVectorProperty DomeMotionSP
static void buttonHelper(const char *button_n, ISState state, void *context)
virtual bool saveConfigItems(FILE *fp) override
saveConfigItems Saves the Device Port and Dome Presets in the configuration file
INumberVectorProperty DomeBacklashNP
virtual bool SetCurrentPark()
SetCurrentPark Set current coordinates/encoders value as the desired parking position.
virtual bool ISNewText(const char *dev, const char *name, char *texts[], char *names[], int n) override
Process the client newSwitch command.
void setShutterState(const ShutterState &value)
bool OpticalVector(double Az, double Alt, point3D &OV)
OpticalVector This function calculates a second point for determining the optical axis.
void setDomeState(const DomeState &value)
INumberVectorProperty DomeSpeedNP
bool InitPark()
InitPark Loads parking data (stored in ~/.indi/ParkData.xml) that contains parking status and parking...
Connection::Serial * serialConnection
void SetParkDataType(DomeParkData type)
setParkDataType Sets the type of parking data stored in the park data file and presented to the user.
ISwitchVectorProperty MountPolicySP
DomeParkData parkDataType
ShutterState getShutterState() const
virtual bool Handshake()
perform handshake with device to check communication
DomeMeasurements
Measurements necessary for dome-slit synchronization. All values are in meters. The displacements are...
virtual bool ISNewNumber(const char *dev, const char *name, double values[], char *names[], int n) override
Process the client newNumber command.
virtual IPState ControlShutter(ShutterOperation operation)
Open or Close shutter.
ISwitchVectorProperty DomeAutoSyncSP
DomeState getDomeState() const
bool GetTargetAz(double &Az, double &Alt, double &minAz, double &maxAz)
GetTargetAz.
uint8_t getDomeConnection() const
virtual IPState Move(DomeDirection dir, DomeMotionCommand operation)
Move the Dome in a particular direction.
virtual bool Abort()
Abort all dome motion.
The Timer class provides repetitive and single-shot timers.
Combines all INDI Connection Plugins. Each INDI connection plugin is responsible of managing communic...
Namespace to encapsulate INDI client, drivers, and mediator classes.
Number vector property descriptor.
Switch vector property descriptor.
Text vector property descriptor.