Instrument Neutral Distributed Interface INDI 2.2.5
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
DeepSkyDadAF1 Class Reference

#include <deepskydad_af1.h>

Inheritance diagram for DeepSkyDadAF1:
INDI::Focuser INDI::DefaultDevice INDI::FocuserInterface INDI::ParentDevice INDI::BaseDevice

Public Types

enum  FocusStepMode { FULL , HALF , QUARTER , EIGHT }
 
enum  CoilsMode { ALWAYS_ON , IDLE_OFF , IDLE_COILS_TIMEOUT }
 
enum  Current { CURRENT_25 , CURRENT_50 , CURRENT_75 , CURRENT_100 }
 
- Public Types inherited from INDI::Focuser
enum  { CONNECTION_NONE = 1 << 0 , CONNECTION_SERIAL = 1 << 1 , CONNECTION_TCP = 1 << 2 }
 
- Public Types inherited from INDI::ParentDevice
enum  Type { Valid , Invalid }
 
- Public Types inherited from INDI::BaseDevice
enum  INDI_ERROR { INDI_DEVICE_NOT_FOUND = -1 , INDI_PROPERTY_INVALID = -2 , INDI_PROPERTY_DUPLICATED = -3 , INDI_DISPATCH_ERROR = -4 }
 
enum  { INDI_ENABLED , INDI_DISABLED }
 
enum  WATCH { WATCH_NEW = 0 , WATCH_UPDATE , WATCH_NEW_OR_UPDATE }
 
enum  DRIVER_INTERFACE {
  GENERAL_INTERFACE = 0 , TELESCOPE_INTERFACE = (1 << 0) , CCD_INTERFACE = (1 << 1) , GUIDER_INTERFACE = (1 << 2) ,
  FOCUSER_INTERFACE = (1 << 3) , FILTER_INTERFACE = (1 << 4) , DOME_INTERFACE = (1 << 5) , GPS_INTERFACE = (1 << 6) ,
  WEATHER_INTERFACE = (1 << 7) , AO_INTERFACE = (1 << 8) , DUSTCAP_INTERFACE = (1 << 9) , LIGHTBOX_INTERFACE = (1 << 10) ,
  DETECTOR_INTERFACE = (1 << 11) , ROTATOR_INTERFACE = (1 << 12) , SPECTROGRAPH_INTERFACE = (1 << 13) , CORRELATOR_INTERFACE = (1 << 14) ,
  AUX_INTERFACE = (1 << 15) , OUTPUT_INTERFACE = (1 << 16) , INPUT_INTERFACE = (1 << 17) , POWER_INTERFACE = (1 << 18) ,
  IMU_INTERFACE = (1 << 19) , PAC_INTERFACE = (1 << 20) , SENSOR_INTERFACE = SPECTROGRAPH_INTERFACE | DETECTOR_INTERFACE | CORRELATOR_INTERFACE
}
 The DRIVER_INTERFACE enum defines the class of devices the driver implements. A driver may implement one or more interfaces. More...
 
typedef INDI::Properties Properties
 
- Public Types inherited from INDI::FocuserInterface
enum  FocusDirection { FOCUS_INWARD , FOCUS_OUTWARD }
 
enum  {
  FOCUSER_CAN_ABS_MOVE = 1 << 0 , FOCUSER_CAN_REL_MOVE = 1 << 1 , FOCUSER_CAN_ABORT = 1 << 2 , FOCUSER_CAN_REVERSE = 1 << 3 ,
  FOCUSER_CAN_SYNC = 1 << 4 , FOCUSER_HAS_VARIABLE_SPEED = 1 << 5 , FOCUSER_HAS_BACKLASH = 1 << 6
}
 

Public Member Functions

 DeepSkyDadAF1 ()
 
virtual ~DeepSkyDadAF1 () override=default
 
const char * getDefaultName () override
 
virtual bool initProperties () override
 Initializes the default properties for the focuser device. Sets up standard INDI properties, presets, controller mappings, and connection types. Overrides DefaultDevice::initProperties.
 
virtual bool updateProperties () override
 Updates the state and definition of properties based on the current connection status. For example, preset properties are only defined if the device is connected and supports absolute moves. Overrides DefaultDevice::updateProperties.
 
virtual bool ISNewSwitch (const char *dev, const char *name, ISState *states, char *names[], int n) override
 Processes incoming new switch states from the client for this device. Handles updates to FocuserInterface properties and preset goto commands. Overrides DefaultDevice::ISNewSwitch.
 
virtual bool ISNewNumber (const char *dev, const char *name, double values[], char *names[], int n) override
 Processes incoming new number values from the client for this device. Handles updates to FocuserInterface properties and preset values. Overrides DefaultDevice::ISNewNumber.
 
- Public Member Functions inherited from INDI::Focuser
 Focuser ()
 Construct a new Focuser object. Initializes the controller and sets up the FocuserInterface.
 
virtual ~Focuser ()
 Destroy the Focuser object. Cleans up the controller resource.
 
virtual void ISGetProperties (const char *dev) override
 Handles client requests for property definitions for this device or all devices. Delegates to the base class and the internal controller. Overrides DefaultDevice::ISGetProperties.
 
virtual bool ISNewText (const char *dev, const char *name, char *texts[], char *names[], int n) override
 Processes incoming new text values from the client for this device. Delegates processing to the controller and the base class. Overrides DefaultDevice::ISNewText.
 
virtual bool ISSnoopDevice (XMLEle *root) override
 Processes properties snooped from other devices. Delegates processing to the controller and the base class. Overrides DefaultDevice::ISSnoopDevice.
 
void setSupportedConnections (const uint8_t &value)
 
uint8_t getSupportedConnections () const
 Get the currently configured supported connection modes.
 
- Public Member Functions inherited from INDI::DefaultDevice
 DefaultDevice ()
 
virtual ~DefaultDevice () override=default
 
void addAuxControls ()
 Add Debug, Simulation, and Configuration options to the driver.
 
void addDebugControl ()
 Add Debug control to the driver.
 
void addSimulationControl ()
 Add Simulation control to the driver.
 
void addConfigurationControl ()
 Add Configuration control to the driver.
 
void addPollPeriodControl ()
 Add Polling period control to the driver.
 
void addNicknameControl ()
 Add Nickname text property to the driver.
 
void resetProperties ()
 Set all properties to IDLE state.
 
void defineNumber (INumberVectorProperty *nvp)
 Define number vector to client & register it. Alternatively, IDDefNumber can be used but the property will not get registered and the driver will not be able to save configuration files.
 
void defineProperty (INumberVectorProperty *property)
 
void defineText (ITextVectorProperty *tvp)
 Define text vector to client & register it. Alternatively, IDDefText can be used but the property will not get registered and the driver will not be able to save configuration files.
 
void defineProperty (ITextVectorProperty *property)
 
void defineSwitch (ISwitchVectorProperty *svp)
 Define switch vector to client & register it. Alternatively, IDDefswitch can be used but the property will not get registered and the driver will not be able to save configuration files.
 
void defineProperty (ISwitchVectorProperty *property)
 
void defineLight (ILightVectorProperty *lvp)
 Define light vector to client & register it. Alternatively, IDDeflight can be used but the property will not get registered and the driver will not be able to save configuration files.
 
void defineProperty (ILightVectorProperty *property)
 
void defineBLOB (IBLOBVectorProperty *bvp)
 Define BLOB vector to client & register it. Alternatively, IDDefBLOB can be used but the property will not get registered and the driver will not be able to save configuration files.
 
void defineProperty (IBLOBVectorProperty *property)
 
void defineProperty (INDI::Property &property)
 
virtual bool deleteProperty (const char *propertyName)
 Delete a property and unregister it. It will also be deleted from all clients.
 
bool deleteProperty (INDI::Property &property)
 deleteProperty Delete a property and unregister it. It will also be deleted from all clients.
 
virtual void setConnected (bool status, IPState state=IPS_OK, const char *msg=nullptr)
 Set connection switch status in the client.
 
int SetTimer (uint32_t ms)
 Set a timer to call the function TimerHit after ms milliseconds.
 
void RemoveTimer (int id)
 Remove timer added with SetTimer.
 
virtual const char * getDriverExec ()
 
virtual const char * getDriverName ()
 
void setVersion (uint16_t vMajor, uint16_t vMinor)
 Set driver version information to be defined in DRIVER_INFO property as vMajor.vMinor.
 
uint16_t getMajorVersion () const
 
uint16_t getMinorVersion () const
 
virtual bool ISNewBLOB (const char *dev, const char *name, int sizes[], int blobsizes[], char *blobs[], char *formats[], char *names[], int n)
 Process the client newBLOB command.
 
bool ISNewProperty (INDI::Property &property, const std::string &elementName, const std::any &value)
 Generic convenience function to update a property element as if by client request, simulating an ISNew... call.
 
template<typename PropertyType , typename ValueType >
bool updateProperty (PropertyType &property, ValueType *values, char *names[], int n, std::function< bool()> updater, bool saveConfig=false)
 Generic helper function to update an INDI property based on an external operation.
 
uint32_t getDriverInterface () const
 
void setDriverInterface (uint32_t value)
 setInterface Set driver interface. By default the driver interface is set to GENERAL_DEVICE. You may send an ORed list of DeviceInterface values.
 
void watchDevice (const char *deviceName, const std::function< void(INDI::BaseDevice)> &callback)
 Add a device to the watch list.
 
- Public Member Functions inherited from INDI::ParentDevice
 ParentDevice (Type type)
 
 ~ParentDevice ()
 
 ParentDevice (ParentDevice &&other)=default
 
ParentDevice & operator= (ParentDevice &&other)=default
 
- Public Member Functions inherited from INDI::BaseDevice
 BaseDevice ()
 
virtual ~BaseDevice ()
 
void registerProperty (const INDI::Property &property)
 Register the property to be able to observe and update.
 
void registerProperty (const INDI::Property &property, INDI_PROPERTY_TYPE type)
 
int removeProperty (const char *name, char *errmsg)
 Remove a property.
 
void watchProperty (const char *name, const std::function< void(INDI::Property)> &callback, WATCH watch=WATCH_NEW)
 Call the callback function if property is available.
 
Property getProperty (const char *name, INDI_PROPERTY_TYPE type=INDI_UNKNOWN) const
 Return a property and its type given its name.
 
Properties getProperties ()
 Return a list of all properties in the device.
 
const Properties getProperties () const
 
INDI::PropertyNumber getNumber (const char *name) const
 
INDI::PropertyText getText (const char *name) const
 
INDI::PropertySwitch getSwitch (const char *name) const
 
INDI::PropertyLight getLight (const char *name) const
 
INDI::PropertyBlob getBLOB (const char *name) const
 
IPState getPropertyState (const char *name) const
 
IPerm getPropertyPermission (const char *name) const
 
void * getRawProperty (const char *name, INDI_PROPERTY_TYPE type=INDI_UNKNOWN) const
 Return a property and its type given its name.
 
void addMessage (const std::string &msg)
 Add message to the driver's message queue.
 
void checkMessage (XMLEle *root)
 
void doMessage (XMLEle *msg)
 
const std::string & messageQueue (size_t index) const
 
const std::string & lastMessage () const
 
bool isValid () const
 
bool isSameDevice (const BaseDevice &other) const
 
bool isConnected () const
 
void attach ()
 indicates that the device is ready
 
void detach ()
 indicates that the device is being removed
 
void setMediator (INDI::BaseMediator *mediator)
 Set the driver's mediator to receive notification of news devices and updated property values.
 
INDI::BaseMediator * getMediator () const
 
void setDeviceName (const char *dev)
 Set the device name.
 
const char * getDeviceName () const
 
bool isDeviceNameMatch (const char *otherName) const
 Check that the device name matches the argument.
 
bool isDeviceNameMatch (const std::string &otherName) const
 Check that the device name matches the argument.
 
const char * getDriverName () const
 
const char * getDriverExec () const
 
const char * getDriverVersion () const
 
uint16_t getDriverInterface () const
 getDriverInterface returns ORed values of DRIVER_INTERFACE. It presents the device classes supported by the driver.
 
bool buildSkeleton (const char *filename)
 Build driver properties from a skeleton file.
 
int buildProp (const INDI::LilXmlElement &root, char *errmsg, bool isDynamic=false)
 Build a property given the supplied XML element (defXXX)
 
int setValue (const INDI::LilXmlElement &root, char *errmsg)
 handle SetXXX commands from client
 
 operator BaseDevice * ()
 
BaseDevice * operator-> ()
 
bool operator!= (std::nullptr_t) const
 
bool operator== (std::nullptr_t) const
 
 operator bool () const
 
 operator bool ()
 
- Public Member Functions inherited from INDI::FocuserInterface
uint32_t GetCapability () const
 GetFocuserCapability returns the capability of the focuser.
 
void SetCapability (uint32_t cap)
 FI::SetCapability sets the focuser capabilities. All capabilities must be initialized.
 
bool CanAbsMove ()
 
bool CanRelMove ()
 
bool CanAbort ()
 
bool CanReverse ()
 
bool CanSync ()
 
bool HasVariableSpeed ()
 
bool HasBacklash ()
 

Static Public Member Functions

static void timedMoveHelper (void *context)
 
- Static Public Member Functions inherited from INDI::Focuser
static void buttonHelper (const char *button_n, ISState state, void *context)
 Static callback function used by the Controller class. Forwards button press events to the appropriate Focuser instance's processButton method.
 
- Static Public Member Functions inherited from INDI::BaseDevice
static std::string getSharedFilePath (std::string fileName)
 

Protected Member Functions

virtual bool Handshake () override
 Performs a device-specific handshake after a connection is established. This method should be overridden by concrete focuser drivers to implement any necessary communication checks or initialization sequences with the hardware. The base implementation does nothing and returns false.
 
virtual IPState MoveFocuser (FocusDirection dir, int speed, uint16_t duration) override
 MoveFocuser Move focuser in a specific direction and speed for period of time.
 
virtual bool SetFocuserMaxPosition (uint32_t ticks) override
 SetFocuserMaxPosition Update focuser maximum position. It only updates the PresetNP property limits.
 
virtual IPState MoveAbsFocuser (uint32_t targetTicks) override
 MoveAbsFocuser Move to an absolute target position.
 
virtual IPState MoveRelFocuser (FocusDirection dir, uint32_t ticks) override
 MoveRelFocuser Move focuser for a relative amount of ticks in a specific direction.
 
virtual bool SyncFocuser (uint32_t ticks) override
 SyncFocuser Set current position to ticks without moving the focuser.
 
virtual bool ReverseFocuser (bool enabled) override
 ReverseFocuser Reverse focuser motion direction.
 
virtual bool AbortFocuser () override
 AbortFocuser all focus motion.
 
virtual void TimerHit () override
 Callback function to be called once SetTimer duration elapses.
 
virtual bool saveConfigItems (FILE *fp) override
 
- Protected Member Functions inherited from INDI::Focuser
virtual void SyncPresets (uint32_t ticks)
 Synchronizes the range (min, max, step) of the preset number properties (PresetNP) based on the focuser's maximum absolute position.
 
void processButton (const char *button_n, ISState state)
 Processes button press events received from the controller via buttonHelper. Handles actions like "Focus In", "Focus Out", and "Abort Focus".
 
- Protected Member Functions inherited from INDI::DefaultDevice
void setDynamicPropertiesBehavior (bool defineEnabled, bool deleteEnabled)
 setDynamicPropertiesBehavior controls handling of dynamic properties. Dynamic properties are those generated from an external skeleton XML file. By default all properties, including dynamic properties, are defined to the client in ISGetProperties(). Furthermore, when űdeleteProperty(properyName) is called, the dynamic property is deleted by default, and can only be restored by calling buildSkeleton(filename) again. However, it is sometimes desirable to skip the definition of the dynamic properties on startup and delegate this task to the child class. To control this behavior, set enabled to false.
 
virtual bool loadConfig (bool silent=false, const char *property=nullptr)
 Load the last saved configuration file.
 
bool loadConfig (INDI::Property &property)
 Load property config from the configuration file. If the property configuration is successfully parsed, the corresponding ISNewXXX is called with the values parsed from the config file.
 
virtual bool saveConfig (bool silent=false, const char *property=nullptr)
 Save the current properties in a configuration file.
 
bool saveConfig (INDI::Property &property)
 Save a property in the configuration file.
 
virtual bool purgeConfig ()
 purgeConfig Remove config file from disk.
 
virtual bool saveAllConfigItems (FILE *fp)
 saveAllConfigItems Save all the drivers' properties in the configuration file
 
virtual bool loadDefaultConfig ()
 Load the default configuration file.
 
void setDebug (bool enable)
 Toggle driver debug status A driver can be more verbose if Debug option is enabled by the client.
 
void setSimulation (bool enable)
 Toggle driver simulation status A driver can run in simulation mode if Simulation option is enabled by the client.
 
virtual void debugTriggered (bool enable)
 Inform driver that the debug option was triggered. This function is called after setDebug is triggered by the client. Reimplement this function if your driver needs to take specific action after debug is enabled/disabled. Otherwise, you can use isDebug() to check if simulation is enabled or disabled.
 
virtual void simulationTriggered (bool enable)
 Inform driver that the simulation option was triggered. This function is called after setSimulation is triggered by the client. Reimplement this function if your driver needs to take specific action after simulation is enabled/disabled. Otherwise, you can use isSimulation() to check if simulation is enabled or disabled.
 
bool isDebug () const
 
bool isSimulation () const
 
virtual bool Connect ()
 Connect to the device. INDI::DefaultDevice implementation connects to appropriate connection interface (Serial or TCP) governed by connectionMode. If connection is successful, it proceed to call Handshake() function to ensure communication with device is successful. For other communication interface, override the method in the child class implementation.
 
virtual bool Disconnect ()
 Disconnect from device.
 
void registerConnection (Connection::Interface *newConnection)
 registerConnection Add new connection plugin to the existing connection pool. The connection type shall be defined to the client in ISGetProperties()
 
bool unRegisterConnection (Connection::Interface *existingConnection)
 unRegisterConnection Remove connection from existing pool
 
Connection::Interface * getActiveConnection ()
 
void setActiveConnection (Connection::Interface *existingConnection)
 setActiveConnection Switch the active connection to the passed connection plugin
 
void setDefaultPollingPeriod (uint32_t msec)
 setDefaultPollingPeriod Change the default polling period to call TimerHit() function in the driver.
 
void setPollingPeriodRange (uint32_t minimum, uint32_t maximum)
 setPollingPeriodRange Set the range permitted by the polling range in milliseconds
 
uint32_t getPollingPeriod () const
 getPollingPeriod Return the polling period.
 
void setCurrentPollingPeriod (uint32_t msec)
 setCurrentPollingPeriod Change the current polling period to call TimerHit() function in the driver.
 
uint32_t getCurrentPollingPeriod () const
 getCurrentPollingPeriod Return the current polling period.
 
uint32_t & refCurrentPollingPeriod () __attribute__((deprecated))
 
uint32_t refCurrentPollingPeriod () const __attribute__((deprecated))
 
bool isConfigLoading () const
 isConfigLoading Check if driver configuration is currently in the process of getting loaded.
 
bool isInitializationComplete () const
 isInitializationComplete Check if driver initialization is complete.
 
void syncDriverInfo ()
 syncDriverInfo sends the current driver information to the client.
 
void setDeviceNickname (const char *nick)
 Set the device nickname.
 
const char * getDeviceNickname ()
 
const char * lookupDeviceNicknameFromId (const char *identifier, const char *device=nullptr)
 Lookup device nickname for an identifier.
 
bool setDeviceNicknameFromId (const char *identifier)
 Set device nickname based on an identifier.
 
void saveNicknameId (const char *nickname, const char *identifier)
 
virtual void nicknameSet (const char *nickname)
 Inform driver that the nickname has been set.
 
 DefaultDevice (const std::shared_ptr< DefaultDevicePrivate > &dd)
 
- Protected Member Functions inherited from INDI::ParentDevice
 ParentDevice (const std::shared_ptr< ParentDevicePrivate > &dd)
 
- Protected Member Functions inherited from INDI::BaseDevice
 BaseDevice (BaseDevicePrivate &dd)
 
 BaseDevice (const std::shared_ptr< BaseDevicePrivate > &dd)
 
- Protected Member Functions inherited from INDI::FocuserInterface
 FocuserInterface (DefaultDevice *defaultDevice)
 
virtual ~FocuserInterface ()=default
 
void initProperties (const char *groupName)
 Initialize focuser properties. It is recommended to call this function within initProperties() of your primary device.
 
bool updateProperties ()
 updateProperties Define or Delete Rotator properties based on the connection status of the base device
 
bool processNumber (const char *dev, const char *name, double values[], char *names[], int n)
 Process focus number properties.
 
bool processSwitch (const char *dev, const char *name, ISState *states, char *names[], int n)
 Process focus switch properties.
 
virtual bool SetFocuserSpeed (int speed)
 SetFocuserSpeed Set Focuser speed.
 
virtual bool SetFocuserBacklash (int32_t steps)
 SetFocuserBacklash Set the focuser backlash compensation value.
 
virtual bool SetFocuserBacklashEnabled (bool enabled)
 SetFocuserBacklashEnabled Enables or disables the focuser backlash compensation.
 
bool saveConfigItems (FILE *fp)
 saveConfigItems save focuser properties defined in the interface in config file
 

Additional Inherited Members

- Public Attributes inherited from INDI::Focuser
enum INDI::Focuser:: { ... }  FocuserConnection
 
- Public Attributes inherited from INDI::FocuserInterface
enum INDI::FocuserInterface:: { ... }  FocuserCapability
 
- Protected Attributes inherited from INDI::Focuser
INDI::PropertyNumber PresetNP {3}
 
INDI::PropertySwitch PresetGotoSP {3}
 
Controller * controller
 
Connection::Serial * serialConnection = nullptr
 
Connection::TCP * tcpConnection = nullptr
 
int PortFD = -1
 
- Protected Attributes inherited from INDI::BaseDevice
std::shared_ptr< BaseDevicePrivate > d_ptr
 
- Protected Attributes inherited from INDI::FocuserInterface
INDI::PropertyNumber FocusSpeedNP {1}
 
INDI::PropertySwitch FocusMotionSP {2}
 
INDI::PropertyNumber FocusTimerNP {1}
 
INDI::PropertyNumber FocusAbsPosNP {1}
 
INDI::PropertyNumber FocusRelPosNP {1}
 
INDI::PropertyNumber FocusMaxPosNP {1}
 
INDI::PropertyNumber FocusSyncNP {1}
 
INDI::PropertySwitch FocusAbortSP {1}
 
INDI::PropertySwitch FocusReverseSP {2}
 
INDI::PropertySwitch FocusBacklashSP {2}
 
INDI::PropertyNumber FocusBacklashNP {1}
 
uint32_t capability
 
double lastTimerValue = { 0 }
 
DefaultDevice * m_defaultDevice { nullptr }
 

Detailed Description

Definition at line 31 of file deepskydad_af1.h.

Member Enumeration Documentation

◆ CoilsMode

Enumerator
ALWAYS_ON 
IDLE_OFF 
IDLE_COILS_TIMEOUT 

Definition at line 39 of file deepskydad_af1.h.

◆ Current

Enumerator
CURRENT_25 
CURRENT_50 
CURRENT_75 
CURRENT_100 

Definition at line 40 of file deepskydad_af1.h.

◆ FocusStepMode

Enumerator
FULL 
HALF 
QUARTER 
EIGHT 

Definition at line 37 of file deepskydad_af1.h.

Constructor & Destructor Documentation

◆ DeepSkyDadAF1()

DeepSkyDadAF1::DeepSkyDadAF1 ( )

Definition at line 38 of file deepskydad_af1.cpp.

◆ ~DeepSkyDadAF1()

virtual DeepSkyDadAF1::~DeepSkyDadAF1 ( )
overridevirtualdefault

Member Function Documentation

◆ AbortFocuser()

bool DeepSkyDadAF1::AbortFocuser ( )
overrideprotectedvirtual

AbortFocuser all focus motion.

Returns
True if abort is successful, false otherwise.

Reimplemented from INDI::FocuserInterface.

Definition at line 869 of file deepskydad_af1.cpp.

◆ getDefaultName()

const char * DeepSkyDadAF1::getDefaultName ( )
overridevirtual
Returns
Default name of the device.

Implements INDI::DefaultDevice.

Definition at line 161 of file deepskydad_af1.cpp.

◆ Handshake()

bool DeepSkyDadAF1::Handshake ( )
overrideprotectedvirtual

Performs a device-specific handshake after a connection is established. This method should be overridden by concrete focuser drivers to implement any necessary communication checks or initialization sequences with the hardware. The base implementation does nothing and returns false.

Returns
true if the handshake is successful, false otherwise.

Reimplemented from INDI::Focuser.

Definition at line 148 of file deepskydad_af1.cpp.

◆ initProperties()

bool DeepSkyDadAF1::initProperties ( )
overridevirtual

Initializes the default properties for the focuser device. Sets up standard INDI properties, presets, controller mappings, and connection types. Overrides DefaultDevice::initProperties.

Returns
true if initialization is successful, false otherwise.

Reimplemented from INDI::Focuser.

Definition at line 43 of file deepskydad_af1.cpp.

◆ ISNewNumber()

bool DeepSkyDadAF1::ISNewNumber ( const char *  dev,
const char *  name,
double  values[],
char *  names[],
int  n 
)
overridevirtual

Processes incoming new number values from the client for this device. Handles updates to FocuserInterface properties and preset values. Overrides DefaultDevice::ISNewNumber.

Parameters
devThe target device name.
nameThe property name.
valuesArray of new numerical values.
namesArray of element names corresponding to the values.
nThe number of elements being updated.
Returns
true if the number property was successfully processed, false otherwise.

Reimplemented from INDI::Focuser.

Definition at line 674 of file deepskydad_af1.cpp.

◆ ISNewSwitch()

bool DeepSkyDadAF1::ISNewSwitch ( const char *  dev,
const char *  name,
ISState *  states,
char *  names[],
int  n 
)
overridevirtual

Processes incoming new switch states from the client for this device. Handles updates to FocuserInterface properties and preset goto commands. Overrides DefaultDevice::ISNewSwitch.

Parameters
devThe target device name.
nameThe property name.
statesArray of new switch states (ISS_ON or ISS_OFF).
namesArray of element names corresponding to the states.
nThe number of elements being updated.
Returns
true if the switch property was successfully processed, false otherwise.

Reimplemented from INDI::Focuser.

Definition at line 483 of file deepskydad_af1.cpp.

◆ MoveAbsFocuser()

IPState DeepSkyDadAF1::MoveAbsFocuser ( uint32_t  targetTicks)
overrideprotectedvirtual

MoveAbsFocuser Move to an absolute target position.

Parameters
targetTickstarget position
Returns
IPS_BUSY if motion is in progress. IPS_OK if motion is small and already complete. IPS_ALERT for trouble.

Reimplemented from INDI::FocuserInterface.

Definition at line 804 of file deepskydad_af1.cpp.

◆ MoveFocuser()

IPState DeepSkyDadAF1::MoveFocuser ( FocusDirection  dir,
int  speed,
uint16_t  duration 
)
overrideprotectedvirtual

MoveFocuser Move focuser in a specific direction and speed for period of time.

Parameters
dirDirection of motion. Inward or Outward
speedSpeed of motion
durationTimeout in milliseconds.
Returns
IPS_BUSY if motion is in progress. IPS_OK if motion is small and already complete. IPS_ALERT for trouble.

Reimplemented from INDI::FocuserInterface.

Definition at line 772 of file deepskydad_af1.cpp.

◆ MoveRelFocuser()

IPState DeepSkyDadAF1::MoveRelFocuser ( FocusDirection  dir,
uint32_t  ticks 
)
overrideprotectedvirtual

MoveRelFocuser Move focuser for a relative amount of ticks in a specific direction.

Parameters
dirDirectoin of motion
tickssteps to move
Returns
IPS_BUSY if motion is in progress. IPS_OK if motion is small and already complete. IPS_ALERT for trouble.

Reimplemented from INDI::FocuserInterface.

Definition at line 814 of file deepskydad_af1.cpp.

◆ ReverseFocuser()

bool DeepSkyDadAF1::ReverseFocuser ( bool  enabled)
overrideprotectedvirtual

ReverseFocuser Reverse focuser motion direction.

Parameters
enabledIf true, normal default focuser motion is reversed. If false, the direction is set to the default focuser motion.
Returns
True if successful, false otherwise.

Reimplemented from INDI::FocuserInterface.

Definition at line 454 of file deepskydad_af1.cpp.

◆ saveConfigItems()

bool DeepSkyDadAF1::saveConfigItems ( FILE *  fp)
overrideprotectedvirtual
@brief saveConfigItems Saves the Device Port and Focuser Presets in the configuration file
@param fp pointer to configuration file
Returns
true always.

Reimplemented from INDI::Focuser.

Definition at line 874 of file deepskydad_af1.cpp.

◆ SetFocuserMaxPosition()

bool DeepSkyDadAF1::SetFocuserMaxPosition ( uint32_t  ticks)
overrideprotectedvirtual

SetFocuserMaxPosition Update focuser maximum position. It only updates the PresetNP property limits.

Parameters
ticksThe new maximum position in focuser ticks.
Returns
true always.

Reimplemented from INDI::Focuser.

Definition at line 933 of file deepskydad_af1.cpp.

◆ SyncFocuser()

bool DeepSkyDadAF1::SyncFocuser ( uint32_t  ticks)
overrideprotectedvirtual

SyncFocuser Set current position to ticks without moving the focuser.

Parameters
ticksDesired new sync position.
Returns
True if successful, false otherwise.

Reimplemented from INDI::FocuserInterface.

Definition at line 447 of file deepskydad_af1.cpp.

◆ timedMoveHelper()

void DeepSkyDadAF1::timedMoveHelper ( void *  context)
static

Definition at line 786 of file deepskydad_af1.cpp.

◆ TimerHit()

void DeepSkyDadAF1::TimerHit ( )
overrideprotectedvirtual

Callback function to be called once SetTimer duration elapses.

Reimplemented from INDI::DefaultDevice.

Definition at line 835 of file deepskydad_af1.cpp.

◆ updateProperties()

bool DeepSkyDadAF1::updateProperties ( )
overridevirtual

Updates the state and definition of properties based on the current connection status. For example, preset properties are only defined if the device is connected and supports absolute moves. Overrides DefaultDevice::updateProperties.

Returns
true always.

Reimplemented from INDI::Focuser.

Definition at line 116 of file deepskydad_af1.cpp.


The documentation for this class was generated from the following files: