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

The NFocus class Handles communication and control with nFocus DC focuser. More...

#include <nfocus.h>

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

Public Member Functions

 NFocus ()
 
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.
 
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 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 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 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 ()
 

Protected Member Functions

virtual void TimerHit () override
 Callback function to be called once SetTimer duration elapses.
 
virtual IPState MoveRelFocuser (FocusDirection dir, uint32_t ticks) override
 MoveFocuser the focuser to an relative position.
 
virtual bool AbortFocuser () override
 AbortFocuser all focus motion.
 
bool saveConfigItems (FILE *fp) override
 
- Protected Member Functions inherited from INDI::Focuser
virtual bool SetFocuserMaxPosition (uint32_t ticks) override
 SetFocuserMaxPosition Update focuser maximum position. It only updates the PresetNP property limits.
 
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 IPState MoveFocuser (FocusDirection dir, int speed, uint16_t duration)
 MoveFocuser the focuser in a particular direction with a specific speed for a finite duration.
 
virtual IPState MoveAbsFocuser (uint32_t targetTicks)
 MoveFocuser the focuser to an absolute position.
 
virtual bool ReverseFocuser (bool enabled)
 ReverseFocuser Reverse focuser motion direction.
 
virtual bool SyncFocuser (uint32_t ticks)
 SyncFocuser Set current position to ticks without moving the focuser.
 
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 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
}
 
- 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)
 
- 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

The NFocus class Handles communication and control with nFocus DC focuser.

API

 ctrl-F  response 'n' for pc-nFOCUS focuser
 S       response 1 if moving focuser, 0 if not
 :FDSXXX#  Focus in dir D at speed S for XXX counts (S not implemented)
         Counts are increments of (on+off) time, sending 000 halts any focus in progress
         D = 0 Inward
         D = 1 Outward
 :COXXX#   (Configure On) Set focus ON time (# of 0.68ms to wait, default = 73 = 0.05sec)
 :CFXXX#   (Configure oFf) Set focus OFF time (# of 0.68ms to wait, default = 15 = 0.01sec)
 :CFSXX#   (Configure Speed) Set time to wait until second press if high speed requested
            (# of 0.68ms to wait, default = 73 = 0.05sec)
 :RO       Read focus ON time
 :RF       Read focus off time
 :RS       Read Speed time
 :RT     Read Temperature

Definition at line 46 of file nfocus.h.

Constructor & Destructor Documentation

◆ NFocus()

NFocus::NFocus ( )

Definition at line 32 of file nfocus.cpp.

Member Function Documentation

◆ AbortFocuser()

bool NFocus::AbortFocuser ( )
overrideprotectedvirtual

AbortFocuser all focus motion.

Returns
True if abort is successful, false otherwise.

Reimplemented from INDI::FocuserInterface.

Definition at line 314 of file nfocus.cpp.

◆ getDefaultName()

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

Implements INDI::DefaultDevice.

Definition at line 87 of file nfocus.cpp.

◆ Handshake()

bool NFocus::Handshake ( )
overridevirtual

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 92 of file nfocus.cpp.

◆ initProperties()

bool NFocus::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 38 of file nfocus.cpp.

◆ ISNewNumber()

bool NFocus::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 229 of file nfocus.cpp.

◆ MoveRelFocuser()

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

MoveFocuser the focuser to an relative position.

Parameters
dirDirection of focuser, either FOCUS_INWARD or FOCUS_OUTWARD.
ticksThe relative ticks to move.
Returns
Return IPS_OK if motion is completed and focuser reached requested position. Return IPS_BUSY if focuser started motion to requested position and is in progress. Return IPS_ALERT if there is an error.

Reimplemented from INDI::FocuserInterface.

Definition at line 307 of file nfocus.cpp.

◆ saveConfigItems()

bool NFocus::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 377 of file nfocus.cpp.

◆ TimerHit()

void NFocus::TimerHit ( )
overrideprotectedvirtual

Callback function to be called once SetTimer duration elapses.

Reimplemented from INDI::DefaultDevice.

Definition at line 319 of file nfocus.cpp.

◆ updateProperties()

bool NFocus::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 65 of file nfocus.cpp.


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