// This file is generated by kconfig_compiler_kf6 from kstars.kcfg.
// All changes you do to this file will be lost.
#ifndef OPTIONS_H
#define OPTIONS_H

#include <qpoint.h>

#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

#include <ksutils.h>
#include <qdir.h>

class Options : public KConfigSkeleton
{
  Q_OBJECT
  public:
    class EnumErectObserverCorrection
    {
      public:
      enum type { Off, Left, Right, COUNT };
    };

    static Options *self();
    ~Options() override;

    /**
      Set Position of the time InfoBox.
    */
    static
    void setPositionTimeBox( const QPoint & v )
    {
      if (v != self()->mPositionTimeBox && !self()->isPositionTimeBoxImmutable()) {
        self()->mPositionTimeBox = v;
        Q_EMIT self()->PositionTimeBoxChanged();
      }
    }

    Q_PROPERTY(QPoint positionTimeBox READ positionTimeBox WRITE setPositionTimeBox NOTIFY PositionTimeBoxChanged)
    Q_PROPERTY(bool isPositionTimeBoxImmutable READ isPositionTimeBoxImmutable CONSTANT)
    /**
      Get Position of the time InfoBox.
    */
    static
    QPoint positionTimeBox()
    {
      return self()->mPositionTimeBox;
    }

    /**
      Is Position of the time InfoBox. Immutable
    */
    static
    bool isPositionTimeBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PositionTimeBox" ) );
    }

    /**
      Set Position of the focus InfoBox.
    */
    static
    void setPositionFocusBox( const QPoint & v )
    {
      if (v != self()->mPositionFocusBox && !self()->isPositionFocusBoxImmutable()) {
        self()->mPositionFocusBox = v;
        Q_EMIT self()->PositionFocusBoxChanged();
      }
    }

    Q_PROPERTY(QPoint positionFocusBox READ positionFocusBox WRITE setPositionFocusBox NOTIFY PositionFocusBoxChanged)
    Q_PROPERTY(bool isPositionFocusBoxImmutable READ isPositionFocusBoxImmutable CONSTANT)
    /**
      Get Position of the focus InfoBox.
    */
    static
    QPoint positionFocusBox()
    {
      return self()->mPositionFocusBox;
    }

    /**
      Is Position of the focus InfoBox. Immutable
    */
    static
    bool isPositionFocusBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PositionFocusBox" ) );
    }

    /**
      Set Position of the geographic InfoBox.
    */
    static
    void setPositionGeoBox( const QPoint & v )
    {
      if (v != self()->mPositionGeoBox && !self()->isPositionGeoBoxImmutable()) {
        self()->mPositionGeoBox = v;
        Q_EMIT self()->PositionGeoBoxChanged();
      }
    }

    Q_PROPERTY(QPoint positionGeoBox READ positionGeoBox WRITE setPositionGeoBox NOTIFY PositionGeoBoxChanged)
    Q_PROPERTY(bool isPositionGeoBoxImmutable READ isPositionGeoBoxImmutable CONSTANT)
    /**
      Get Position of the geographic InfoBox.
    */
    static
    QPoint positionGeoBox()
    {
      return self()->mPositionGeoBox;
    }

    /**
      Is Position of the geographic InfoBox. Immutable
    */
    static
    bool isPositionGeoBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PositionGeoBox" ) );
    }

    /**
      Set Is the time InfoBox in the "shaded" state?
    */
    static
    void setShadeTimeBox( bool v )
    {
      if (v != self()->mShadeTimeBox && !self()->isShadeTimeBoxImmutable()) {
        self()->mShadeTimeBox = v;
        Q_EMIT self()->ShadeTimeBoxChanged();
      }
    }

    Q_PROPERTY(bool shadeTimeBox READ shadeTimeBox WRITE setShadeTimeBox NOTIFY ShadeTimeBoxChanged)
    Q_PROPERTY(bool isShadeTimeBoxImmutable READ isShadeTimeBoxImmutable CONSTANT)
    /**
      Get Is the time InfoBox in the "shaded" state?
    */
    static
    bool shadeTimeBox()
    {
      return self()->mShadeTimeBox;
    }

    /**
      Is Is the time InfoBox in the "shaded" state? Immutable
    */
    static
    bool isShadeTimeBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShadeTimeBox" ) );
    }

    /**
      Set Is the focus InfoBox in the "shaded" state?
    */
    static
    void setShadeFocusBox( bool v )
    {
      if (v != self()->mShadeFocusBox && !self()->isShadeFocusBoxImmutable()) {
        self()->mShadeFocusBox = v;
        Q_EMIT self()->ShadeFocusBoxChanged();
      }
    }

    Q_PROPERTY(bool shadeFocusBox READ shadeFocusBox WRITE setShadeFocusBox NOTIFY ShadeFocusBoxChanged)
    Q_PROPERTY(bool isShadeFocusBoxImmutable READ isShadeFocusBoxImmutable CONSTANT)
    /**
      Get Is the focus InfoBox in the "shaded" state?
    */
    static
    bool shadeFocusBox()
    {
      return self()->mShadeFocusBox;
    }

    /**
      Is Is the focus InfoBox in the "shaded" state? Immutable
    */
    static
    bool isShadeFocusBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShadeFocusBox" ) );
    }

    /**
      Set Is the geographic InfoBox in the "shaded" state?
    */
    static
    void setShadeGeoBox( bool v )
    {
      if (v != self()->mShadeGeoBox && !self()->isShadeGeoBoxImmutable()) {
        self()->mShadeGeoBox = v;
        Q_EMIT self()->ShadeGeoBoxChanged();
      }
    }

    Q_PROPERTY(bool shadeGeoBox READ shadeGeoBox WRITE setShadeGeoBox NOTIFY ShadeGeoBoxChanged)
    Q_PROPERTY(bool isShadeGeoBoxImmutable READ isShadeGeoBoxImmutable CONSTANT)
    /**
      Get Is the geographic InfoBox in the "shaded" state?
    */
    static
    bool shadeGeoBox()
    {
      return self()->mShadeGeoBox;
    }

    /**
      Is Is the geographic InfoBox in the "shaded" state? Immutable
    */
    static
    bool isShadeGeoBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShadeGeoBox" ) );
    }

    /**
      Set Meta-option to toggle display of all InfoBoxes
    */
    static
    void setShowInfoBoxes( bool v )
    {
      if (v != self()->mShowInfoBoxes && !self()->isShowInfoBoxesImmutable()) {
        self()->mShowInfoBoxes = v;
        Q_EMIT self()->ShowInfoBoxesChanged();
      }
    }

    Q_PROPERTY(bool showInfoBoxes READ showInfoBoxes WRITE setShowInfoBoxes NOTIFY ShowInfoBoxesChanged)
    Q_PROPERTY(bool isShowInfoBoxesImmutable READ isShowInfoBoxesImmutable CONSTANT)
    /**
      Get Meta-option to toggle display of all InfoBoxes
    */
    static
    bool showInfoBoxes()
    {
      return self()->mShowInfoBoxes;
    }

    /**
      Is Meta-option to toggle display of all InfoBoxes Immutable
    */
    static
    bool isShowInfoBoxesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowInfoBoxes" ) );
    }

    /**
      Set Display the time InfoBox?
    */
    static
    void setShowTimeBox( bool v )
    {
      if (v != self()->mShowTimeBox && !self()->isShowTimeBoxImmutable()) {
        self()->mShowTimeBox = v;
        Q_EMIT self()->ShowTimeBoxChanged();
      }
    }

    Q_PROPERTY(bool showTimeBox READ showTimeBox WRITE setShowTimeBox NOTIFY ShowTimeBoxChanged)
    Q_PROPERTY(bool isShowTimeBoxImmutable READ isShowTimeBoxImmutable CONSTANT)
    /**
      Get Display the time InfoBox?
    */
    static
    bool showTimeBox()
    {
      return self()->mShowTimeBox;
    }

    /**
      Is Display the time InfoBox? Immutable
    */
    static
    bool isShowTimeBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowTimeBox" ) );
    }

    /**
      Set Display the focus InfoBox?
    */
    static
    void setShowFocusBox( bool v )
    {
      if (v != self()->mShowFocusBox && !self()->isShowFocusBoxImmutable()) {
        self()->mShowFocusBox = v;
        Q_EMIT self()->ShowFocusBoxChanged();
      }
    }

    Q_PROPERTY(bool showFocusBox READ showFocusBox WRITE setShowFocusBox NOTIFY ShowFocusBoxChanged)
    Q_PROPERTY(bool isShowFocusBoxImmutable READ isShowFocusBoxImmutable CONSTANT)
    /**
      Get Display the focus InfoBox?
    */
    static
    bool showFocusBox()
    {
      return self()->mShowFocusBox;
    }

    /**
      Is Display the focus InfoBox? Immutable
    */
    static
    bool isShowFocusBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowFocusBox" ) );
    }

    /**
      Set Display the geographic InfoBox?
    */
    static
    void setShowGeoBox( bool v )
    {
      if (v != self()->mShowGeoBox && !self()->isShowGeoBoxImmutable()) {
        self()->mShowGeoBox = v;
        Q_EMIT self()->ShowGeoBoxChanged();
      }
    }

    Q_PROPERTY(bool showGeoBox READ showGeoBox WRITE setShowGeoBox NOTIFY ShowGeoBoxChanged)
    Q_PROPERTY(bool isShowGeoBoxImmutable READ isShowGeoBoxImmutable CONSTANT)
    /**
      Get Display the geographic InfoBox?
    */
    static
    bool showGeoBox()
    {
      return self()->mShowGeoBox;
    }

    /**
      Is Display the geographic InfoBox? Immutable
    */
    static
    bool isShowGeoBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowGeoBox" ) );
    }

    /**
      Set Time InfoBox anchor flag
    */
    static
    void setStickyTimeBox( int v )
    {
      if (v < 0)
      {
        qDebug() << "setStickyTimeBox: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 3)
      {
        qDebug() << "setStickyTimeBox: value " << v << " is greater than the maximum value of 3";
        v = 3;
      }

      if (v != self()->mStickyTimeBox && !self()->isStickyTimeBoxImmutable()) {
        self()->mStickyTimeBox = v;
        Q_EMIT self()->StickyTimeBoxChanged();
      }
    }

    Q_PROPERTY(int stickyTimeBox READ stickyTimeBox WRITE setStickyTimeBox NOTIFY StickyTimeBoxChanged)
    Q_PROPERTY(bool isStickyTimeBoxImmutable READ isStickyTimeBoxImmutable CONSTANT)
    /**
      Get Time InfoBox anchor flag
    */
    static
    int stickyTimeBox()
    {
      return self()->mStickyTimeBox;
    }

    /**
      Is Time InfoBox anchor flag Immutable
    */
    static
    bool isStickyTimeBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StickyTimeBox" ) );
    }

    /**
      Set Time InfoBox anchor flag
    */
    static
    void setStickyFocusBox( int v )
    {
      if (v < 0)
      {
        qDebug() << "setStickyFocusBox: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 3)
      {
        qDebug() << "setStickyFocusBox: value " << v << " is greater than the maximum value of 3";
        v = 3;
      }

      if (v != self()->mStickyFocusBox && !self()->isStickyFocusBoxImmutable()) {
        self()->mStickyFocusBox = v;
        Q_EMIT self()->StickyFocusBoxChanged();
      }
    }

    Q_PROPERTY(int stickyFocusBox READ stickyFocusBox WRITE setStickyFocusBox NOTIFY StickyFocusBoxChanged)
    Q_PROPERTY(bool isStickyFocusBoxImmutable READ isStickyFocusBoxImmutable CONSTANT)
    /**
      Get Time InfoBox anchor flag
    */
    static
    int stickyFocusBox()
    {
      return self()->mStickyFocusBox;
    }

    /**
      Is Time InfoBox anchor flag Immutable
    */
    static
    bool isStickyFocusBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StickyFocusBox" ) );
    }

    /**
      Set Geographic InfoBox anchor flag
    */
    static
    void setStickyGeoBox( int v )
    {
      if (v < 0)
      {
        qDebug() << "setStickyGeoBox: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 3)
      {
        qDebug() << "setStickyGeoBox: value " << v << " is greater than the maximum value of 3";
        v = 3;
      }

      if (v != self()->mStickyGeoBox && !self()->isStickyGeoBoxImmutable()) {
        self()->mStickyGeoBox = v;
        Q_EMIT self()->StickyGeoBoxChanged();
      }
    }

    Q_PROPERTY(int stickyGeoBox READ stickyGeoBox WRITE setStickyGeoBox NOTIFY StickyGeoBoxChanged)
    Q_PROPERTY(bool isStickyGeoBoxImmutable READ isStickyGeoBoxImmutable CONSTANT)
    /**
      Get Geographic InfoBox anchor flag
    */
    static
    int stickyGeoBox()
    {
      return self()->mStickyGeoBox;
    }

    /**
      Is Geographic InfoBox anchor flag Immutable
    */
    static
    bool isStickyGeoBoxImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StickyGeoBox" ) );
    }

    /**
      Set Display the statusbar?
    */
    static
    void setShowStatusBar( bool v )
    {
      if (v != self()->mShowStatusBar && !self()->isShowStatusBarImmutable()) {
        self()->mShowStatusBar = v;
        Q_EMIT self()->ShowStatusBarChanged();
      }
    }

    Q_PROPERTY(bool showStatusBar READ showStatusBar WRITE setShowStatusBar NOTIFY ShowStatusBarChanged)
    Q_PROPERTY(bool isShowStatusBarImmutable READ isShowStatusBarImmutable CONSTANT)
    /**
      Get Display the statusbar?
    */
    static
    bool showStatusBar()
    {
      return self()->mShowStatusBar;
    }

    /**
      Is Display the statusbar? Immutable
    */
    static
    bool isShowStatusBarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowStatusBar" ) );
    }

    /**
      Set Display Alt/Az coordinates in the statusbar?
    */
    static
    void setShowAltAzField( bool v )
    {
      if (v != self()->mShowAltAzField && !self()->isShowAltAzFieldImmutable()) {
        self()->mShowAltAzField = v;
        Q_EMIT self()->ShowAltAzFieldChanged();
      }
    }

    Q_PROPERTY(bool showAltAzField READ showAltAzField WRITE setShowAltAzField NOTIFY ShowAltAzFieldChanged)
    Q_PROPERTY(bool isShowAltAzFieldImmutable READ isShowAltAzFieldImmutable CONSTANT)
    /**
      Get Display Alt/Az coordinates in the statusbar?
    */
    static
    bool showAltAzField()
    {
      return self()->mShowAltAzField;
    }

    /**
      Is Display Alt/Az coordinates in the statusbar? Immutable
    */
    static
    bool isShowAltAzFieldImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowAltAzField" ) );
    }

    /**
      Set Display RA/Dec coordinates in the statusbar?
    */
    static
    void setShowRADecField( bool v )
    {
      if (v != self()->mShowRADecField && !self()->isShowRADecFieldImmutable()) {
        self()->mShowRADecField = v;
        Q_EMIT self()->ShowRADecFieldChanged();
      }
    }

    Q_PROPERTY(bool showRADecField READ showRADecField WRITE setShowRADecField NOTIFY ShowRADecFieldChanged)
    Q_PROPERTY(bool isShowRADecFieldImmutable READ isShowRADecFieldImmutable CONSTANT)
    /**
      Get Display RA/Dec coordinates in the statusbar?
    */
    static
    bool showRADecField()
    {
      return self()->mShowRADecField;
    }

    /**
      Is Display RA/Dec coordinates in the statusbar? Immutable
    */
    static
    bool isShowRADecFieldImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowRADecField" ) );
    }

    /**
      Set Display J2000.0 RA/Dec coordinates in the statusbar?
    */
    static
    void setShowJ2000RADecField( bool v )
    {
      if (v != self()->mShowJ2000RADecField && !self()->isShowJ2000RADecFieldImmutable()) {
        self()->mShowJ2000RADecField = v;
        Q_EMIT self()->ShowJ2000RADecFieldChanged();
      }
    }

    Q_PROPERTY(bool showJ2000RADecField READ showJ2000RADecField WRITE setShowJ2000RADecField NOTIFY ShowJ2000RADecFieldChanged)
    Q_PROPERTY(bool isShowJ2000RADecFieldImmutable READ isShowJ2000RADecFieldImmutable CONSTANT)
    /**
      Get Display J2000.0 RA/Dec coordinates in the statusbar?
    */
    static
    bool showJ2000RADecField()
    {
      return self()->mShowJ2000RADecField;
    }

    /**
      Is Display J2000.0 RA/Dec coordinates in the statusbar? Immutable
    */
    static
    bool isShowJ2000RADecFieldImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowJ2000RADecField" ) );
    }

    /**
      Set Display CCD sensor angular size on the sky map?
    */
    static
    void setShowSensorFOV( bool v )
    {
      if (v != self()->mShowSensorFOV && !self()->isShowSensorFOVImmutable()) {
        self()->mShowSensorFOV = v;
        Q_EMIT self()->ShowSensorFOVChanged();
      }
    }

    Q_PROPERTY(bool showSensorFOV READ showSensorFOV WRITE setShowSensorFOV NOTIFY ShowSensorFOVChanged)
    Q_PROPERTY(bool isShowSensorFOVImmutable READ isShowSensorFOVImmutable CONSTANT)
    /**
      Get Display CCD sensor angular size on the sky map?
    */
    static
    bool showSensorFOV()
    {
      return self()->mShowSensorFOV;
    }

    /**
      Is Display CCD sensor angular size on the sky map? Immutable
    */
    static
    bool isShowSensorFOVImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSensorFOV" ) );
    }

    /**
      Set Width of main window, in pixels
    */
    static
    void setWindowWidth( uint v )
    {
      if (v != self()->mWindowWidth && !self()->isWindowWidthImmutable()) {
        self()->mWindowWidth = v;
        Q_EMIT self()->WindowWidthChanged();
      }
    }

    Q_PROPERTY(uint windowWidth READ windowWidth WRITE setWindowWidth NOTIFY WindowWidthChanged)
    Q_PROPERTY(bool isWindowWidthImmutable READ isWindowWidthImmutable CONSTANT)
    /**
      Get Width of main window, in pixels
    */
    static
    uint windowWidth()
    {
      return self()->mWindowWidth;
    }

    /**
      Is Width of main window, in pixels Immutable
    */
    static
    bool isWindowWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "WindowWidth" ) );
    }

    /**
      Set Height of main window, in pixels
    */
    static
    void setWindowHeight( uint v )
    {
      if (v != self()->mWindowHeight && !self()->isWindowHeightImmutable()) {
        self()->mWindowHeight = v;
        Q_EMIT self()->WindowHeightChanged();
      }
    }

    Q_PROPERTY(uint windowHeight READ windowHeight WRITE setWindowHeight NOTIFY WindowHeightChanged)
    Q_PROPERTY(bool isWindowHeightImmutable READ isWindowHeightImmutable CONSTANT)
    /**
      Get Height of main window, in pixels
    */
    static
    uint windowHeight()
    {
      return self()->mWindowHeight;
    }

    /**
      Is Height of main window, in pixels Immutable
    */
    static
    bool isWindowHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "WindowHeight" ) );
    }

    /**
      Set Geometry of main window, encoded byte array
    */
    static
    void setKStarsGeometry( const QString & v )
    {
      if (v != self()->mKStarsGeometry && !self()->isKStarsGeometryImmutable()) {
        self()->mKStarsGeometry = v;
        Q_EMIT self()->KStarsGeometryChanged();
      }
    }

    Q_PROPERTY(QString kStarsGeometry READ kStarsGeometry WRITE setKStarsGeometry NOTIFY KStarsGeometryChanged)
    Q_PROPERTY(bool isKStarsGeometryImmutable READ isKStarsGeometryImmutable CONSTANT)
    /**
      Get Geometry of main window, encoded byte array
    */
    static
    QString kStarsGeometry()
    {
      return self()->mKStarsGeometry;
    }

    /**
      Is Geometry of main window, encoded byte array Immutable
    */
    static
    bool isKStarsGeometryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KStarsGeometry" ) );
    }

    /**
      Set Run Startup Wizard when KStars launches?
    */
    static
    void setRunStartupWizard( bool v )
    {
      if (v != self()->mRunStartupWizard && !self()->isRunStartupWizardImmutable()) {
        self()->mRunStartupWizard = v;
        Q_EMIT self()->RunStartupWizardChanged();
      }
    }

    Q_PROPERTY(bool runStartupWizard READ runStartupWizard WRITE setRunStartupWizard NOTIFY RunStartupWizardChanged)
    Q_PROPERTY(bool isRunStartupWizardImmutable READ isRunStartupWizardImmutable CONSTANT)
    /**
      Get Run Startup Wizard when KStars launches?
    */
    static
    bool runStartupWizard()
    {
      return self()->mRunStartupWizard;
    }

    /**
      Is Run Startup Wizard when KStars launches? Immutable
    */
    static
    bool isRunStartupWizardImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RunStartupWizard" ) );
    }

    /**
      Set Current application theme
    */
    static
    void setCurrentTheme( const QString & v )
    {
      if (v != self()->mCurrentTheme && !self()->isCurrentThemeImmutable()) {
        self()->mCurrentTheme = v;
        Q_EMIT self()->CurrentThemeChanged();
      }
    }

    Q_PROPERTY(QString currentTheme READ currentTheme WRITE setCurrentTheme NOTIFY CurrentThemeChanged)
    Q_PROPERTY(bool isCurrentThemeImmutable READ isCurrentThemeImmutable CONSTANT)
    /**
      Get Current application theme
    */
    static
    QString currentTheme()
    {
      return self()->mCurrentTheme;
    }

    /**
      Is Current application theme Immutable
    */
    static
    bool isCurrentThemeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CurrentTheme" ) );
    }

    /**
      Set Filenames of defined custom object catalogs.
    */
    static
    void setCatalogFile( const QStringList & v )
    {
      if (v != self()->mCatalogFile && !self()->isCatalogFileImmutable()) {
        self()->mCatalogFile = v;
        Q_EMIT self()->CatalogFileChanged();
      }
    }

    Q_PROPERTY(QStringList catalogFile READ catalogFile WRITE setCatalogFile NOTIFY CatalogFileChanged)
    Q_PROPERTY(bool isCatalogFileImmutable READ isCatalogFileImmutable CONSTANT)
    /**
      Get Filenames of defined custom object catalogs.
    */
    static
    QStringList catalogFile()
    {
      return self()->mCatalogFile;
    }

    /**
      Is Filenames of defined custom object catalogs. Immutable
    */
    static
    bool isCatalogFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CatalogFile" ) );
    }

    /**
      Set List of toggles for displaying custom object catalogs.
    */
    static
    void setShowCatalog( const QList<int> & v )
    {
      if (v != self()->mShowCatalog && !self()->isShowCatalogImmutable()) {
        self()->mShowCatalog = v;
        Q_EMIT self()->ShowCatalogChanged();
      }
    }

    Q_PROPERTY(QList<int> showCatalog READ showCatalog WRITE setShowCatalog NOTIFY ShowCatalogChanged)
    Q_PROPERTY(bool isShowCatalogImmutable READ isShowCatalogImmutable CONSTANT)
    /**
      Get List of toggles for displaying custom object catalogs.
    */
    static
    QList<int> showCatalog()
    {
      return self()->mShowCatalog;
    }

    /**
      Is List of toggles for displaying custom object catalogs. Immutable
    */
    static
    bool isShowCatalogImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowCatalog" ) );
    }

    /**
      Set List for displaying custom object catalogs.
    */
    static
    void setShowCatalogNames( const QStringList & v )
    {
      if (v != self()->mShowCatalogNames && !self()->isShowCatalogNamesImmutable()) {
        self()->mShowCatalogNames = v;
        Q_EMIT self()->ShowCatalogNamesChanged();
      }
    }

    Q_PROPERTY(QStringList showCatalogNames READ showCatalogNames WRITE setShowCatalogNames NOTIFY ShowCatalogNamesChanged)
    Q_PROPERTY(bool isShowCatalogNamesImmutable READ isShowCatalogNamesImmutable CONSTANT)
    /**
      Get List for displaying custom object catalogs.
    */
    static
    QStringList showCatalogNames()
    {
      return self()->mShowCatalogNames;
    }

    /**
      Is List for displaying custom object catalogs. Immutable
    */
    static
    bool isShowCatalogNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowCatalogNames" ) );
    }

    /**
      Set Resolve names using online services.
    */
    static
    void setResolveNamesOnline( bool v )
    {
      if (v != self()->mResolveNamesOnline && !self()->isResolveNamesOnlineImmutable()) {
        self()->mResolveNamesOnline = v;
        Q_EMIT self()->ResolveNamesOnlineChanged();
      }
    }

    Q_PROPERTY(bool resolveNamesOnline READ resolveNamesOnline WRITE setResolveNamesOnline NOTIFY ResolveNamesOnlineChanged)
    Q_PROPERTY(bool isResolveNamesOnlineImmutable READ isResolveNamesOnlineImmutable CONSTANT)
    /**
      Get Resolve names using online services.
    */
    static
    bool resolveNamesOnline()
    {
      return self()->mResolveNamesOnline;
    }

    /**
      Is Resolve names using online services. Immutable
    */
    static
    bool isResolveNamesOnlineImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ResolveNamesOnline" ) );
    }

    /**
      Set Percentage of the sky to cache DSOs for.
    */
    static
    void setDSOCachePercentage( uint v )
    {
      if (v < 5)
      {
        qDebug() << "setDSOCachePercentage: value " << v << " is less than the minimum value of 5";
        v = 5;
      }

      if (v > 100)
      {
        qDebug() << "setDSOCachePercentage: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (v != self()->mDSOCachePercentage && !self()->isDSOCachePercentageImmutable()) {
        self()->mDSOCachePercentage = v;
        Q_EMIT self()->DSOCachePercentageChanged();
      }
    }

    Q_PROPERTY(uint dSOCachePercentage READ dSOCachePercentage WRITE setDSOCachePercentage NOTIFY DSOCachePercentageChanged)
    Q_PROPERTY(bool isDSOCachePercentageImmutable READ isDSOCachePercentageImmutable CONSTANT)
    /**
      Get Percentage of the sky to cache DSOs for.
    */
    static
    uint dSOCachePercentage()
    {
      return self()->mDSOCachePercentage;
    }

    /**
      Is Percentage of the sky to cache DSOs for. Immutable
    */
    static
    bool isDSOCachePercentageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DSOCachePercentage" ) );
    }

    /**
      Set Minimum zoom level to render DeepSkyObjects.
    */
    static
    void setDSOMinZoomFactor( uint v )
    {
      if (v < 250)
      {
        qDebug() << "setDSOMinZoomFactor: value " << v << " is less than the minimum value of 250";
        v = 250;
      }

      if (v > 4000)
      {
        qDebug() << "setDSOMinZoomFactor: value " << v << " is greater than the maximum value of 4000";
        v = 4000;
      }

      if (v != self()->mDSOMinZoomFactor && !self()->isDSOMinZoomFactorImmutable()) {
        self()->mDSOMinZoomFactor = v;
        Q_EMIT self()->DSOMinZoomFactorChanged();
      }
    }

    Q_PROPERTY(uint dSOMinZoomFactor READ dSOMinZoomFactor WRITE setDSOMinZoomFactor NOTIFY DSOMinZoomFactorChanged)
    Q_PROPERTY(bool isDSOMinZoomFactorImmutable READ isDSOMinZoomFactorImmutable CONSTANT)
    /**
      Get Minimum zoom level to render DeepSkyObjects.
    */
    static
    uint dSOMinZoomFactor()
    {
      return self()->mDSOMinZoomFactor;
    }

    /**
      Is Minimum zoom level to render DeepSkyObjects. Immutable
    */
    static
    bool isDSOMinZoomFactorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DSOMinZoomFactor" ) );
    }

    /**
      Set The filename of the DSO catalog.
    */
    static
    void setDSOCatalogFilename( const QString & v )
    {
      if (v != self()->mDSOCatalogFilename && !self()->isDSOCatalogFilenameImmutable()) {
        self()->mDSOCatalogFilename = v;
        Q_EMIT self()->DSOCatalogFilenameChanged();
      }
    }

    Q_PROPERTY(QString dSOCatalogFilename READ dSOCatalogFilename WRITE setDSOCatalogFilename NOTIFY DSOCatalogFilenameChanged)
    Q_PROPERTY(bool isDSOCatalogFilenameImmutable READ isDSOCatalogFilenameImmutable CONSTANT)
    /**
      Get The filename of the DSO catalog.
    */
    static
    QString dSOCatalogFilename()
    {
      return self()->mDSOCatalogFilename;
    }

    /**
      Is The filename of the DSO catalog. Immutable
    */
    static
    bool isDSOCatalogFilenameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DSOCatalogFilename" ) );
    }

    /**
      Set The filename of the default DSO catalog (OpenNGC).
    */
    static
    void setDSODefaultCatalogFilename( const QString & v )
    {
      if (v != self()->mDSODefaultCatalogFilename && !self()->isDSODefaultCatalogFilenameImmutable()) {
        self()->mDSODefaultCatalogFilename = v;
        Q_EMIT self()->DSODefaultCatalogFilenameChanged();
      }
    }

    Q_PROPERTY(QString dSODefaultCatalogFilename READ dSODefaultCatalogFilename WRITE setDSODefaultCatalogFilename NOTIFY DSODefaultCatalogFilenameChanged)
    Q_PROPERTY(bool isDSODefaultCatalogFilenameImmutable READ isDSODefaultCatalogFilenameImmutable CONSTANT)
    /**
      Get The filename of the default DSO catalog (OpenNGC).
    */
    static
    QString dSODefaultCatalogFilename()
    {
      return self()->mDSODefaultCatalogFilename;
    }

    /**
      Is The filename of the default DSO catalog (OpenNGC). Immutable
    */
    static
    bool isDSODefaultCatalogFilenameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DSODefaultCatalogFilename" ) );
    }

    /**
      Set INDI window width
    */
    static
    void setINDIWindowWidth( uint v )
    {
      if (v != self()->mINDIWindowWidth && !self()->isINDIWindowWidthImmutable()) {
        self()->mINDIWindowWidth = v;
        Q_EMIT self()->INDIWindowWidthChanged();
      }
    }

    Q_PROPERTY(uint iNDIWindowWidth READ iNDIWindowWidth WRITE setINDIWindowWidth NOTIFY INDIWindowWidthChanged)
    Q_PROPERTY(bool isINDIWindowWidthImmutable READ isINDIWindowWidthImmutable CONSTANT)
    /**
      Get INDI window width
    */
    static
    uint iNDIWindowWidth()
    {
      return self()->mINDIWindowWidth;
    }

    /**
      Is INDI window width Immutable
    */
    static
    bool isINDIWindowWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIWindowWidth" ) );
    }

    /**
      Set INDI window height
    */
    static
    void setINDIWindowHeight( uint v )
    {
      if (v != self()->mINDIWindowHeight && !self()->isINDIWindowHeightImmutable()) {
        self()->mINDIWindowHeight = v;
        Q_EMIT self()->INDIWindowHeightChanged();
      }
    }

    Q_PROPERTY(uint iNDIWindowHeight READ iNDIWindowHeight WRITE setINDIWindowHeight NOTIFY INDIWindowHeightChanged)
    Q_PROPERTY(bool isINDIWindowHeightImmutable READ isINDIWindowHeightImmutable CONSTANT)
    /**
      Get INDI window height
    */
    static
    uint iNDIWindowHeight()
    {
      return self()->mINDIWindowHeight;
    }

    /**
      Is INDI window height Immutable
    */
    static
    bool isINDIWindowHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIWindowHeight" ) );
    }

    /**
      Set Geometry of INDI window, encoded byte array
    */
    static
    void setINDIWindowGeometry( const QString & v )
    {
      if (v != self()->mINDIWindowGeometry && !self()->isINDIWindowGeometryImmutable()) {
        self()->mINDIWindowGeometry = v;
        Q_EMIT self()->INDIWindowGeometryChanged();
      }
    }

    Q_PROPERTY(QString iNDIWindowGeometry READ iNDIWindowGeometry WRITE setINDIWindowGeometry NOTIFY INDIWindowGeometryChanged)
    Q_PROPERTY(bool isINDIWindowGeometryImmutable READ isINDIWindowGeometryImmutable CONSTANT)
    /**
      Get Geometry of INDI window, encoded byte array
    */
    static
    QString iNDIWindowGeometry()
    {
      return self()->mINDIWindowGeometry;
    }

    /**
      Is Geometry of INDI window, encoded byte array Immutable
    */
    static
    bool isINDIWindowGeometryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIWindowGeometry" ) );
    }

    /**
      Set Automatically updates geographic location?
    */
    static
    void setUseGeographicUpdate( bool v )
    {
      if (v != self()->mUseGeographicUpdate && !self()->isUseGeographicUpdateImmutable()) {
        self()->mUseGeographicUpdate = v;
        Q_EMIT self()->useGeographicUpdateChanged();
      }
    }

    Q_PROPERTY(bool useGeographicUpdate READ useGeographicUpdate WRITE setUseGeographicUpdate NOTIFY useGeographicUpdateChanged)
    Q_PROPERTY(bool isUseGeographicUpdateImmutable READ isUseGeographicUpdateImmutable CONSTANT)
    /**
      Get Automatically updates geographic location?
    */
    static
    bool useGeographicUpdate()
    {
      return self()->mUseGeographicUpdate;
    }

    /**
      Is Automatically updates geographic location? Immutable
    */
    static
    bool isUseGeographicUpdateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useGeographicUpdate" ) );
    }

    /**
      Set Automatically updates time and date?
    */
    static
    void setUseTimeUpdate( bool v )
    {
      if (v != self()->mUseTimeUpdate && !self()->isUseTimeUpdateImmutable()) {
        self()->mUseTimeUpdate = v;
        Q_EMIT self()->useTimeUpdateChanged();
      }
    }

    Q_PROPERTY(bool useTimeUpdate READ useTimeUpdate WRITE setUseTimeUpdate NOTIFY useTimeUpdateChanged)
    Q_PROPERTY(bool isUseTimeUpdateImmutable READ isUseTimeUpdateImmutable CONSTANT)
    /**
      Get Automatically updates time and date?
    */
    static
    bool useTimeUpdate()
    {
      return self()->mUseTimeUpdate;
    }

    /**
      Is Automatically updates time and date? Immutable
    */
    static
    bool isUseTimeUpdateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useTimeUpdate" ) );
    }

    /**
      Set Make INDI Control Panel window independent of KStars main window
    */
    static
    void setIndependentWindowINDI( bool v )
    {
      if (v != self()->mIndependentWindowINDI && !self()->isIndependentWindowINDIImmutable()) {
        self()->mIndependentWindowINDI = v;
        Q_EMIT self()->independentWindowINDIChanged();
      }
    }

    Q_PROPERTY(bool independentWindowINDI READ independentWindowINDI WRITE setIndependentWindowINDI NOTIFY independentWindowINDIChanged)
    Q_PROPERTY(bool isIndependentWindowINDIImmutable READ isIndependentWindowINDIImmutable CONSTANT)
    /**
      Get Make INDI Control Panel window independent of KStars main window
    */
    static
    bool independentWindowINDI()
    {
      return self()->mIndependentWindowINDI;
    }

    /**
      Is Make INDI Control Panel window independent of KStars main window Immutable
    */
    static
    bool isIndependentWindowINDIImmutable()
    {
      return self()->isImmutable( QStringLiteral( "independentWindowINDI" ) );
    }

    /**
      Set Draw crosshairs at telescope position in the sky map?
    */
    static
    void setShowTargetCrosshair( bool v )
    {
      if (v != self()->mShowTargetCrosshair && !self()->isShowTargetCrosshairImmutable()) {
        self()->mShowTargetCrosshair = v;
        Q_EMIT self()->showTargetCrosshairChanged();
      }
    }

    Q_PROPERTY(bool showTargetCrosshair READ showTargetCrosshair WRITE setShowTargetCrosshair NOTIFY showTargetCrosshairChanged)
    Q_PROPERTY(bool isShowTargetCrosshairImmutable READ isShowTargetCrosshairImmutable CONSTANT)
    /**
      Get Draw crosshairs at telescope position in the sky map?
    */
    static
    bool showTargetCrosshair()
    {
      return self()->mShowTargetCrosshair;
    }

    /**
      Is Draw crosshairs at telescope position in the sky map? Immutable
    */
    static
    bool isShowTargetCrosshairImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showTargetCrosshair" ) );
    }

    /**
      Set Display INDI messages in the statusbar?
    */
    static
    void setShowINDIMessages( bool v )
    {
      if (v != self()->mShowINDIMessages && !self()->isShowINDIMessagesImmutable()) {
        self()->mShowINDIMessages = v;
        Q_EMIT self()->showINDIMessagesChanged();
      }
    }

    Q_PROPERTY(bool showINDIMessages READ showINDIMessages WRITE setShowINDIMessages NOTIFY showINDIMessagesChanged)
    Q_PROPERTY(bool isShowINDIMessagesImmutable READ isShowINDIMessagesImmutable CONSTANT)
    /**
      Get Display INDI messages in the statusbar?
    */
    static
    bool showINDIMessages()
    {
      return self()->mShowINDIMessages;
    }

    /**
      Is Display INDI messages in the statusbar? Immutable
    */
    static
    bool isShowINDIMessagesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showINDIMessages" ) );
    }

    /**
      Set Show the INDI window on startup?
    */
    static
    void setShowINDIwindowInitially( bool v )
    {
      if (v != self()->mShowINDIwindowInitially && !self()->isShowINDIwindowInitiallyImmutable()) {
        self()->mShowINDIwindowInitially = v;
        Q_EMIT self()->showINDIwindowInitiallyChanged();
      }
    }

    Q_PROPERTY(bool showINDIwindowInitially READ showINDIwindowInitially WRITE setShowINDIwindowInitially NOTIFY showINDIwindowInitiallyChanged)
    Q_PROPERTY(bool isShowINDIwindowInitiallyImmutable READ isShowINDIwindowInitiallyImmutable CONSTANT)
    /**
      Get Show the INDI window on startup?
    */
    static
    bool showINDIwindowInitially()
    {
      return self()->mShowINDIwindowInitially;
    }

    /**
      Is Show the INDI window on startup? Immutable
    */
    static
    bool isShowINDIwindowInitiallyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showINDIwindowInitially" ) );
    }

    /**
      Set Limit for saved focus frames
    */
    static
    void setMaxFocusFrameFiles( int v )
    {
      if (v != self()->mMaxFocusFrameFiles && !self()->isMaxFocusFrameFilesImmutable()) {
        self()->mMaxFocusFrameFiles = v;
        Q_EMIT self()->maxFocusFrameFilesChanged();
      }
    }

    Q_PROPERTY(int maxFocusFrameFiles READ maxFocusFrameFiles WRITE setMaxFocusFrameFiles NOTIFY maxFocusFrameFilesChanged)
    Q_PROPERTY(bool isMaxFocusFrameFilesImmutable READ isMaxFocusFrameFilesImmutable CONSTANT)
    /**
      Get Limit for saved focus frames
    */
    static
    int maxFocusFrameFiles()
    {
      return self()->mMaxFocusFrameFiles;
    }

    /**
      Is Limit for saved focus frames Immutable
    */
    static
    bool isMaxFocusFrameFilesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "maxFocusFrameFiles" ) );
    }

    /**
      Set INDI message notifications
    */
    static
    void setMessageNotificationINDI( bool v )
    {
      if (v != self()->mMessageNotificationINDI && !self()->isMessageNotificationINDIImmutable()) {
        self()->mMessageNotificationINDI = v;
        Q_EMIT self()->messageNotificationINDIChanged();
      }
    }

    Q_PROPERTY(bool messageNotificationINDI READ messageNotificationINDI WRITE setMessageNotificationINDI NOTIFY messageNotificationINDIChanged)
    Q_PROPERTY(bool isMessageNotificationINDIImmutable READ isMessageNotificationINDIImmutable CONSTANT)
    /**
      Get INDI message notifications
    */
    static
    bool messageNotificationINDI()
    {
      return self()->mMessageNotificationINDI;
    }

    /**
      Is INDI message notifications Immutable
    */
    static
    bool isMessageNotificationINDIImmutable()
    {
      return self()->isImmutable( QStringLiteral( "messageNotificationINDI" ) );
    }

    /**
      Set Master source for time (KStars, Mount, or INDI Device)
    */
    static
    void setTimeSource( const QString & v )
    {
      if (v != self()->mTimeSource && !self()->isTimeSourceImmutable()) {
        self()->mTimeSource = v;
        Q_EMIT self()->timeSourceChanged();
      }
    }

    Q_PROPERTY(QString timeSource READ timeSource WRITE setTimeSource NOTIFY timeSourceChanged)
    Q_PROPERTY(bool isTimeSourceImmutable READ isTimeSourceImmutable CONSTANT)
    /**
      Get Master source for time (KStars, Mount, or INDI Device)
    */
    static
    QString timeSource()
    {
      return self()->mTimeSource;
    }

    /**
      Is Master source for time (KStars, Mount, or INDI Device) Immutable
    */
    static
    bool isTimeSourceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "timeSource" ) );
    }

    /**
      Set Master source for location (KStars, Mount, or INDI Device)
    */
    static
    void setLocationSource( const QString & v )
    {
      if (v != self()->mLocationSource && !self()->isLocationSourceImmutable()) {
        self()->mLocationSource = v;
        Q_EMIT self()->locationSourceChanged();
      }
    }

    Q_PROPERTY(QString locationSource READ locationSource WRITE setLocationSource NOTIFY locationSourceChanged)
    Q_PROPERTY(bool isLocationSourceImmutable READ isLocationSourceImmutable CONSTANT)
    /**
      Get Master source for location (KStars, Mount, or INDI Device)
    */
    static
    QString locationSource()
    {
      return self()->mLocationSource;
    }

    /**
      Is Master source for location (KStars, Mount, or INDI Device) Immutable
    */
    static
    bool isLocationSourceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "locationSource" ) );
    }

    /**
      Set Use an external planetarium software to control mount slews and syncs.
    */
    static
    void setUseExternalSkyMap( bool v )
    {
      if (v != self()->mUseExternalSkyMap && !self()->isUseExternalSkyMapImmutable()) {
        self()->mUseExternalSkyMap = v;
        Q_EMIT self()->useExternalSkyMapChanged();
      }
    }

    Q_PROPERTY(bool useExternalSkyMap READ useExternalSkyMap WRITE setUseExternalSkyMap NOTIFY useExternalSkyMapChanged)
    Q_PROPERTY(bool isUseExternalSkyMapImmutable READ isUseExternalSkyMapImmutable CONSTANT)
    /**
      Get Use an external planetarium software to control mount slews and syncs.
    */
    static
    bool useExternalSkyMap()
    {
      return self()->mUseExternalSkyMap;
    }

    /**
      Is Use an external planetarium software to control mount slews and syncs. Immutable
    */
    static
    bool isUseExternalSkyMapImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useExternalSkyMap" ) );
    }

    /**
      Set FITS Default directory
    */
    static
    void setFitsDir( const QString & v )
    {
      if (v != self()->mFitsDir && !self()->isFitsDirImmutable()) {
        self()->mFitsDir = v;
        Q_EMIT self()->fitsDirChanged();
      }
    }

    Q_PROPERTY(QString fitsDir READ fitsDir WRITE setFitsDir NOTIFY fitsDirChanged)
    Q_PROPERTY(bool isFitsDirImmutable READ isFitsDirImmutable CONSTANT)
    /**
      Get FITS Default directory
    */
    static
    QString fitsDir()
    {
      return self()->mFitsDir;
    }

    /**
      Is FITS Default directory Immutable
    */
    static
    bool isFitsDirImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsDir" ) );
    }

    /**
      Set INDI Server Transfer Buffer
    */
    static
    void setServerTransferBufferSize( int v )
    {
      if (v != self()->mServerTransferBufferSize && !self()->isServerTransferBufferSizeImmutable()) {
        self()->mServerTransferBufferSize = v;
        Q_EMIT self()->serverTransferBufferSizeChanged();
      }
    }

    Q_PROPERTY(int serverTransferBufferSize READ serverTransferBufferSize WRITE setServerTransferBufferSize NOTIFY serverTransferBufferSizeChanged)
    Q_PROPERTY(bool isServerTransferBufferSizeImmutable READ isServerTransferBufferSizeImmutable CONSTANT)
    /**
      Get INDI Server Transfer Buffer
    */
    static
    int serverTransferBufferSize()
    {
      return self()->mServerTransferBufferSize;
    }

    /**
      Is INDI Server Transfer Buffer Immutable
    */
    static
    bool isServerTransferBufferSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "serverTransferBufferSize" ) );
    }

    /**
      Set INDI Server Start Port
    */
    static
    void setServerPortStart( int v )
    {
      if (v != self()->mServerPortStart && !self()->isServerPortStartImmutable()) {
        self()->mServerPortStart = v;
        Q_EMIT self()->serverPortStartChanged();
      }
    }

    Q_PROPERTY(int serverPortStart READ serverPortStart WRITE setServerPortStart NOTIFY serverPortStartChanged)
    Q_PROPERTY(bool isServerPortStartImmutable READ isServerPortStartImmutable CONSTANT)
    /**
      Get INDI Server Start Port
    */
    static
    int serverPortStart()
    {
      return self()->mServerPortStart;
    }

    /**
      Is INDI Server Start Port Immutable
    */
    static
    bool isServerPortStartImmutable()
    {
      return self()->isImmutable( QStringLiteral( "serverPortStart" ) );
    }

    /**
      Set INDI Server Final Port
    */
    static
    void setServerPortEnd( int v )
    {
      if (v != self()->mServerPortEnd && !self()->isServerPortEndImmutable()) {
        self()->mServerPortEnd = v;
        Q_EMIT self()->serverPortEndChanged();
      }
    }

    Q_PROPERTY(int serverPortEnd READ serverPortEnd WRITE setServerPortEnd NOTIFY serverPortEndChanged)
    Q_PROPERTY(bool isServerPortEndImmutable READ isServerPortEndImmutable CONSTANT)
    /**
      Get INDI Server Final Port
    */
    static
    int serverPortEnd()
    {
      return self()->mServerPortEnd;
    }

    /**
      Is INDI Server Final Port Immutable
    */
    static
    bool isServerPortEndImmutable()
    {
      return self()->isImmutable( QStringLiteral( "serverPortEnd" ) );
    }

    /**
      Set PATH to indiserver binary
    */
    static
    void setIndiServer( const QString & v )
    {
      if (v != self()->mIndiServer && !self()->isIndiServerImmutable()) {
        self()->mIndiServer = v;
        Q_EMIT self()->indiServerChanged();
      }
    }

    Q_PROPERTY(QString indiServer READ indiServer WRITE setIndiServer NOTIFY indiServerChanged)
    Q_PROPERTY(bool isIndiServerImmutable READ isIndiServerImmutable CONSTANT)
    /**
      Get PATH to indiserver binary
    */
    static
    QString indiServer()
    {
      return self()->mIndiServer;
    }

    /**
      Is PATH to indiserver binary Immutable
    */
    static
    bool isIndiServerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "indiServer" ) );
    }

    /**
      Set Internal or External INDI Server?
    */
    static
    void setIndiServerIsInternal( bool v )
    {
      if (v != self()->mIndiServerIsInternal && !self()->isIndiServerIsInternalImmutable()) {
        self()->mIndiServerIsInternal = v;
        Q_EMIT self()->indiServerIsInternalChanged();
      }
    }

    Q_PROPERTY(bool indiServerIsInternal READ indiServerIsInternal WRITE setIndiServerIsInternal NOTIFY indiServerIsInternalChanged)
    Q_PROPERTY(bool isIndiServerIsInternalImmutable READ isIndiServerIsInternalImmutable CONSTANT)
    /**
      Get Internal or External INDI Server?
    */
    static
    bool indiServerIsInternal()
    {
      return self()->mIndiServerIsInternal;
    }

    /**
      Is Internal or External INDI Server? Immutable
    */
    static
    bool isIndiServerIsInternalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "indiServerIsInternal" ) );
    }

    /**
      Set PATH to indi drivers directory
    */
    static
    void setIndiDriversDir( const QString & v )
    {
      if (v != self()->mIndiDriversDir && !self()->isIndiDriversDirImmutable()) {
        self()->mIndiDriversDir = v;
        Q_EMIT self()->indiDriversDirChanged();
      }
    }

    Q_PROPERTY(QString indiDriversDir READ indiDriversDir WRITE setIndiDriversDir NOTIFY indiDriversDirChanged)
    Q_PROPERTY(bool isIndiDriversDirImmutable READ isIndiDriversDirImmutable CONSTANT)
    /**
      Get PATH to indi drivers directory
    */
    static
    QString indiDriversDir()
    {
      return self()->mIndiDriversDir;
    }

    /**
      Is PATH to indi drivers directory Immutable
    */
    static
    bool isIndiDriversDirImmutable()
    {
      return self()->isImmutable( QStringLiteral( "indiDriversDir" ) );
    }

    /**
      Set Internal or External Astrometry Solver?
    */
    static
    void setIndiDriversAreInternal( bool v )
    {
      if (v != self()->mIndiDriversAreInternal && !self()->isIndiDriversAreInternalImmutable()) {
        self()->mIndiDriversAreInternal = v;
        Q_EMIT self()->indiDriversAreInternalChanged();
      }
    }

    Q_PROPERTY(bool indiDriversAreInternal READ indiDriversAreInternal WRITE setIndiDriversAreInternal NOTIFY indiDriversAreInternalChanged)
    Q_PROPERTY(bool isIndiDriversAreInternalImmutable READ isIndiDriversAreInternalImmutable CONSTANT)
    /**
      Get Internal or External Astrometry Solver?
    */
    static
    bool indiDriversAreInternal()
    {
      return self()->mIndiDriversAreInternal;
    }

    /**
      Is Internal or External Astrometry Solver? Immutable
    */
    static
    bool isIndiDriversAreInternalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "indiDriversAreInternal" ) );
    }

    /**
      Set Video streaming window width
    */
    static
    void setStreamWindowWidth( uint v )
    {
      if (v != self()->mStreamWindowWidth && !self()->isStreamWindowWidthImmutable()) {
        self()->mStreamWindowWidth = v;
        Q_EMIT self()->streamWindowWidthChanged();
      }
    }

    Q_PROPERTY(uint streamWindowWidth READ streamWindowWidth WRITE setStreamWindowWidth NOTIFY streamWindowWidthChanged)
    Q_PROPERTY(bool isStreamWindowWidthImmutable READ isStreamWindowWidthImmutable CONSTANT)
    /**
      Get Video streaming window width
    */
    static
    uint streamWindowWidth()
    {
      return self()->mStreamWindowWidth;
    }

    /**
      Is Video streaming window width Immutable
    */
    static
    bool isStreamWindowWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "streamWindowWidth" ) );
    }

    /**
      Set Video streaming window height
    */
    static
    void setStreamWindowHeight( uint v )
    {
      if (v != self()->mStreamWindowHeight && !self()->isStreamWindowHeightImmutable()) {
        self()->mStreamWindowHeight = v;
        Q_EMIT self()->streamWindowHeightChanged();
      }
    }

    Q_PROPERTY(uint streamWindowHeight READ streamWindowHeight WRITE setStreamWindowHeight NOTIFY streamWindowHeightChanged)
    Q_PROPERTY(bool isStreamWindowHeightImmutable READ isStreamWindowHeightImmutable CONSTANT)
    /**
      Get Video streaming window height
    */
    static
    uint streamWindowHeight()
    {
      return self()->mStreamWindowHeight;
    }

    /**
      Is Video streaming window height Immutable
    */
    static
    bool isStreamWindowHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "streamWindowHeight" ) );
    }

    /**
      Set Enable INDI Mount logging
    */
    static
    void setINDIMountLogging( bool v )
    {
      if (v != self()->mINDIMountLogging && !self()->isINDIMountLoggingImmutable()) {
        self()->mINDIMountLogging = v;
        Q_EMIT self()->INDIMountLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDIMountLogging READ iNDIMountLogging WRITE setINDIMountLogging NOTIFY INDIMountLoggingChanged)
    Q_PROPERTY(bool isINDIMountLoggingImmutable READ isINDIMountLoggingImmutable CONSTANT)
    /**
      Get Enable INDI Mount logging
    */
    static
    bool iNDIMountLogging()
    {
      return self()->mINDIMountLogging;
    }

    /**
      Is Enable INDI Mount logging Immutable
    */
    static
    bool isINDIMountLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIMountLogging" ) );
    }

    /**
      Set Enable INDI Focuser logging
    */
    static
    void setINDIFocuserLogging( bool v )
    {
      if (v != self()->mINDIFocuserLogging && !self()->isINDIFocuserLoggingImmutable()) {
        self()->mINDIFocuserLogging = v;
        Q_EMIT self()->INDIFocuserLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDIFocuserLogging READ iNDIFocuserLogging WRITE setINDIFocuserLogging NOTIFY INDIFocuserLoggingChanged)
    Q_PROPERTY(bool isINDIFocuserLoggingImmutable READ isINDIFocuserLoggingImmutable CONSTANT)
    /**
      Get Enable INDI Focuser logging
    */
    static
    bool iNDIFocuserLogging()
    {
      return self()->mINDIFocuserLogging;
    }

    /**
      Is Enable INDI Focuser logging Immutable
    */
    static
    bool isINDIFocuserLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIFocuserLogging" ) );
    }

    /**
      Set Enable INDI CCD logging
    */
    static
    void setINDICCDLogging( bool v )
    {
      if (v != self()->mINDICCDLogging && !self()->isINDICCDLoggingImmutable()) {
        self()->mINDICCDLogging = v;
        Q_EMIT self()->INDICCDLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDICCDLogging READ iNDICCDLogging WRITE setINDICCDLogging NOTIFY INDICCDLoggingChanged)
    Q_PROPERTY(bool isINDICCDLoggingImmutable READ isINDICCDLoggingImmutable CONSTANT)
    /**
      Get Enable INDI CCD logging
    */
    static
    bool iNDICCDLogging()
    {
      return self()->mINDICCDLogging;
    }

    /**
      Is Enable INDI CCD logging Immutable
    */
    static
    bool isINDICCDLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDICCDLogging" ) );
    }

    /**
      Set Enable INDI Filter Wheel logging
    */
    static
    void setINDIFilterWheelLogging( bool v )
    {
      if (v != self()->mINDIFilterWheelLogging && !self()->isINDIFilterWheelLoggingImmutable()) {
        self()->mINDIFilterWheelLogging = v;
        Q_EMIT self()->INDIFilterWheelLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDIFilterWheelLogging READ iNDIFilterWheelLogging WRITE setINDIFilterWheelLogging NOTIFY INDIFilterWheelLoggingChanged)
    Q_PROPERTY(bool isINDIFilterWheelLoggingImmutable READ isINDIFilterWheelLoggingImmutable CONSTANT)
    /**
      Get Enable INDI Filter Wheel logging
    */
    static
    bool iNDIFilterWheelLogging()
    {
      return self()->mINDIFilterWheelLogging;
    }

    /**
      Is Enable INDI Filter Wheel logging Immutable
    */
    static
    bool isINDIFilterWheelLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIFilterWheelLogging" ) );
    }

    /**
      Set Enable INDI Dome logging
    */
    static
    void setINDIDomeLogging( bool v )
    {
      if (v != self()->mINDIDomeLogging && !self()->isINDIDomeLoggingImmutable()) {
        self()->mINDIDomeLogging = v;
        Q_EMIT self()->INDIDomeLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDIDomeLogging READ iNDIDomeLogging WRITE setINDIDomeLogging NOTIFY INDIDomeLoggingChanged)
    Q_PROPERTY(bool isINDIDomeLoggingImmutable READ isINDIDomeLoggingImmutable CONSTANT)
    /**
      Get Enable INDI Dome logging
    */
    static
    bool iNDIDomeLogging()
    {
      return self()->mINDIDomeLogging;
    }

    /**
      Is Enable INDI Dome logging Immutable
    */
    static
    bool isINDIDomeLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIDomeLogging" ) );
    }

    /**
      Set Enable INDI Detector logging
    */
    static
    void setINDIDetectorLogging( bool v )
    {
      if (v != self()->mINDIDetectorLogging && !self()->isINDIDetectorLoggingImmutable()) {
        self()->mINDIDetectorLogging = v;
        Q_EMIT self()->INDIDetectorLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDIDetectorLogging READ iNDIDetectorLogging WRITE setINDIDetectorLogging NOTIFY INDIDetectorLoggingChanged)
    Q_PROPERTY(bool isINDIDetectorLoggingImmutable READ isINDIDetectorLoggingImmutable CONSTANT)
    /**
      Get Enable INDI Detector logging
    */
    static
    bool iNDIDetectorLogging()
    {
      return self()->mINDIDetectorLogging;
    }

    /**
      Is Enable INDI Detector logging Immutable
    */
    static
    bool isINDIDetectorLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIDetectorLogging" ) );
    }

    /**
      Set Enable INDI Weather logging
    */
    static
    void setINDIWeatherLogging( bool v )
    {
      if (v != self()->mINDIWeatherLogging && !self()->isINDIWeatherLoggingImmutable()) {
        self()->mINDIWeatherLogging = v;
        Q_EMIT self()->INDIWeatherLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDIWeatherLogging READ iNDIWeatherLogging WRITE setINDIWeatherLogging NOTIFY INDIWeatherLoggingChanged)
    Q_PROPERTY(bool isINDIWeatherLoggingImmutable READ isINDIWeatherLoggingImmutable CONSTANT)
    /**
      Get Enable INDI Weather logging
    */
    static
    bool iNDIWeatherLogging()
    {
      return self()->mINDIWeatherLogging;
    }

    /**
      Is Enable INDI Weather logging Immutable
    */
    static
    bool isINDIWeatherLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIWeatherLogging" ) );
    }

    /**
      Set Enable INDI Auxiliary logging
    */
    static
    void setINDIAuxiliaryLogging( bool v )
    {
      if (v != self()->mINDIAuxiliaryLogging && !self()->isINDIAuxiliaryLoggingImmutable()) {
        self()->mINDIAuxiliaryLogging = v;
        Q_EMIT self()->INDIAuxiliaryLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDIAuxiliaryLogging READ iNDIAuxiliaryLogging WRITE setINDIAuxiliaryLogging NOTIFY INDIAuxiliaryLoggingChanged)
    Q_PROPERTY(bool isINDIAuxiliaryLoggingImmutable READ isINDIAuxiliaryLoggingImmutable CONSTANT)
    /**
      Get Enable INDI Auxiliary logging
    */
    static
    bool iNDIAuxiliaryLogging()
    {
      return self()->mINDIAuxiliaryLogging;
    }

    /**
      Is Enable INDI Auxiliary logging Immutable
    */
    static
    bool isINDIAuxiliaryLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIAuxiliaryLogging" ) );
    }

    /**
      Set Enable INDI Rotator logging
    */
    static
    void setINDIRotatorLogging( bool v )
    {
      if (v != self()->mINDIRotatorLogging && !self()->isINDIRotatorLoggingImmutable()) {
        self()->mINDIRotatorLogging = v;
        Q_EMIT self()->INDIRotatorLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDIRotatorLogging READ iNDIRotatorLogging WRITE setINDIRotatorLogging NOTIFY INDIRotatorLoggingChanged)
    Q_PROPERTY(bool isINDIRotatorLoggingImmutable READ isINDIRotatorLoggingImmutable CONSTANT)
    /**
      Get Enable INDI Rotator logging
    */
    static
    bool iNDIRotatorLogging()
    {
      return self()->mINDIRotatorLogging;
    }

    /**
      Is Enable INDI Rotator logging Immutable
    */
    static
    bool isINDIRotatorLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIRotatorLogging" ) );
    }

    /**
      Set Enable INDI GPS logging
    */
    static
    void setINDIGPSLogging( bool v )
    {
      if (v != self()->mINDIGPSLogging && !self()->isINDIGPSLoggingImmutable()) {
        self()->mINDIGPSLogging = v;
        Q_EMIT self()->INDIGPSLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDIGPSLogging READ iNDIGPSLogging WRITE setINDIGPSLogging NOTIFY INDIGPSLoggingChanged)
    Q_PROPERTY(bool isINDIGPSLoggingImmutable READ isINDIGPSLoggingImmutable CONSTANT)
    /**
      Get Enable INDI GPS logging
    */
    static
    bool iNDIGPSLogging()
    {
      return self()->mINDIGPSLogging;
    }

    /**
      Is Enable INDI GPS logging Immutable
    */
    static
    bool isINDIGPSLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIGPSLogging" ) );
    }

    /**
      Set Enable INDI Adaptive Optics logging
    */
    static
    void setINDIAOLogging( bool v )
    {
      if (v != self()->mINDIAOLogging && !self()->isINDIAOLoggingImmutable()) {
        self()->mINDIAOLogging = v;
        Q_EMIT self()->INDIAOLoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDIAOLogging READ iNDIAOLogging WRITE setINDIAOLogging NOTIFY INDIAOLoggingChanged)
    Q_PROPERTY(bool isINDIAOLoggingImmutable READ isINDIAOLoggingImmutable CONSTANT)
    /**
      Get Enable INDI Adaptive Optics logging
    */
    static
    bool iNDIAOLogging()
    {
      return self()->mINDIAOLogging;
    }

    /**
      Is Enable INDI Adaptive Optics logging Immutable
    */
    static
    bool isINDIAOLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDIAOLogging" ) );
    }

    /**
      Set City name of geographic location.
    */
    static
    void setCityName( const QString & v )
    {
      if (v != self()->mCityName && !self()->isCityNameImmutable()) {
        self()->mCityName = v;
        Q_EMIT self()->CityNameChanged();
      }
    }

    Q_PROPERTY(QString cityName READ cityName WRITE setCityName NOTIFY CityNameChanged)
    Q_PROPERTY(bool isCityNameImmutable READ isCityNameImmutable CONSTANT)
    /**
      Get City name of geographic location.
    */
    static
    QString cityName()
    {
      return self()->mCityName;
    }

    /**
      Is City name of geographic location. Immutable
    */
    static
    bool isCityNameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CityName" ) );
    }

    /**
      Set Province name of geographic location.
    */
    static
    void setProvinceName( const QString & v )
    {
      if (v != self()->mProvinceName && !self()->isProvinceNameImmutable()) {
        self()->mProvinceName = v;
        Q_EMIT self()->ProvinceNameChanged();
      }
    }

    Q_PROPERTY(QString provinceName READ provinceName WRITE setProvinceName NOTIFY ProvinceNameChanged)
    Q_PROPERTY(bool isProvinceNameImmutable READ isProvinceNameImmutable CONSTANT)
    /**
      Get Province name of geographic location.
    */
    static
    QString provinceName()
    {
      return self()->mProvinceName;
    }

    /**
      Is Province name of geographic location. Immutable
    */
    static
    bool isProvinceNameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ProvinceName" ) );
    }

    /**
      Set Country name of geographic location.
    */
    static
    void setCountryName( const QString & v )
    {
      if (v != self()->mCountryName && !self()->isCountryNameImmutable()) {
        self()->mCountryName = v;
        Q_EMIT self()->CountryNameChanged();
      }
    }

    Q_PROPERTY(QString countryName READ countryName WRITE setCountryName NOTIFY CountryNameChanged)
    Q_PROPERTY(bool isCountryNameImmutable READ isCountryNameImmutable CONSTANT)
    /**
      Get Country name of geographic location.
    */
    static
    QString countryName()
    {
      return self()->mCountryName;
    }

    /**
      Is Country name of geographic location. Immutable
    */
    static
    bool isCountryNameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CountryName" ) );
    }

    /**
      Set Geographic Longitude, in degrees.
    */
    static
    void setLongitude( double v )
    {
      if (v != self()->mLongitude && !self()->isLongitudeImmutable()) {
        self()->mLongitude = v;
        Q_EMIT self()->LongitudeChanged();
      }
    }

    Q_PROPERTY(double longitude READ longitude WRITE setLongitude NOTIFY LongitudeChanged)
    Q_PROPERTY(bool isLongitudeImmutable READ isLongitudeImmutable CONSTANT)
    /**
      Get Geographic Longitude, in degrees.
    */
    static
    double longitude()
    {
      return self()->mLongitude;
    }

    /**
      Is Geographic Longitude, in degrees. Immutable
    */
    static
    bool isLongitudeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Longitude" ) );
    }

    /**
      Set Geographic Latitude, in degrees.
    */
    static
    void setLatitude( double v )
    {
      if (v != self()->mLatitude && !self()->isLatitudeImmutable()) {
        self()->mLatitude = v;
        Q_EMIT self()->LatitudeChanged();
      }
    }

    Q_PROPERTY(double latitude READ latitude WRITE setLatitude NOTIFY LatitudeChanged)
    Q_PROPERTY(bool isLatitudeImmutable READ isLatitudeImmutable CONSTANT)
    /**
      Get Geographic Latitude, in degrees.
    */
    static
    double latitude()
    {
      return self()->mLatitude;
    }

    /**
      Is Geographic Latitude, in degrees. Immutable
    */
    static
    bool isLatitudeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Latitude" ) );
    }

    /**
      Set Elevation above sea level of geographic location, in meters.
    */
    static
    void setElevation( double v )
    {
      if (v != self()->mElevation && !self()->isElevationImmutable()) {
        self()->mElevation = v;
        Q_EMIT self()->ElevationChanged();
      }
    }

    Q_PROPERTY(double elevation READ elevation WRITE setElevation NOTIFY ElevationChanged)
    Q_PROPERTY(bool isElevationImmutable READ isElevationImmutable CONSTANT)
    /**
      Get Elevation above sea level of geographic location, in meters.
    */
    static
    double elevation()
    {
      return self()->mElevation;
    }

    /**
      Is Elevation above sea level of geographic location, in meters. Immutable
    */
    static
    bool isElevationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Elevation" ) );
    }

    /**
      Set Time Zone offset of geographic location, in hours.
    */
    static
    void setTimeZone( double v )
    {
      if (v != self()->mTimeZone && !self()->isTimeZoneImmutable()) {
        self()->mTimeZone = v;
        Q_EMIT self()->TimeZoneChanged();
      }
    }

    Q_PROPERTY(double timeZone READ timeZone WRITE setTimeZone NOTIFY TimeZoneChanged)
    Q_PROPERTY(bool isTimeZoneImmutable READ isTimeZoneImmutable CONSTANT)
    /**
      Get Time Zone offset of geographic location, in hours.
    */
    static
    double timeZone()
    {
      return self()->mTimeZone;
    }

    /**
      Is Time Zone offset of geographic location, in hours. Immutable
    */
    static
    bool isTimeZoneImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TimeZone" ) );
    }

    /**
      Set Two-letter code for daylight savings time rule used by geographic location.
    */
    static
    void setDST( const QString & v )
    {
      if (v != self()->mDST && !self()->isDSTImmutable()) {
        self()->mDST = v;
        Q_EMIT self()->DSTChanged();
      }
    }

    Q_PROPERTY(QString dST READ dST WRITE setDST NOTIFY DSTChanged)
    Q_PROPERTY(bool isDSTImmutable READ isDSTImmutable CONSTANT)
    /**
      Get Two-letter code for daylight savings time rule used by geographic location.
    */
    static
    QString dST()
    {
      return self()->mDST;
    }

    /**
      Is Two-letter code for daylight savings time rule used by geographic location. Immutable
    */
    static
    bool isDSTImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DST" ) );
    }

    /**
      Set Use animated slewing effects when changing focus position?
    */
    static
    void setUseAnimatedSlewing( bool v )
    {
      if (v != self()->mUseAnimatedSlewing && !self()->isUseAnimatedSlewingImmutable()) {
        self()->mUseAnimatedSlewing = v;
        Q_EMIT self()->UseAnimatedSlewingChanged();
      }
    }

    Q_PROPERTY(bool useAnimatedSlewing READ useAnimatedSlewing WRITE setUseAnimatedSlewing NOTIFY UseAnimatedSlewingChanged)
    Q_PROPERTY(bool isUseAnimatedSlewingImmutable READ isUseAnimatedSlewingImmutable CONSTANT)
    /**
      Get Use animated slewing effects when changing focus position?
    */
    static
    bool useAnimatedSlewing()
    {
      return self()->mUseAnimatedSlewing;
    }

    /**
      Is Use animated slewing effects when changing focus position? Immutable
    */
    static
    bool isUseAnimatedSlewingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseAnimatedSlewing" ) );
    }

    /**
      Set Select objects on left click?
    */
    static
    void setLeftClickSelectsObject( bool v )
    {
      if (v != self()->mLeftClickSelectsObject && !self()->isLeftClickSelectsObjectImmutable()) {
        self()->mLeftClickSelectsObject = v;
        Q_EMIT self()->LeftClickSelectsObjectChanged();
      }
    }

    Q_PROPERTY(bool leftClickSelectsObject READ leftClickSelectsObject WRITE setLeftClickSelectsObject NOTIFY LeftClickSelectsObjectChanged)
    Q_PROPERTY(bool isLeftClickSelectsObjectImmutable READ isLeftClickSelectsObjectImmutable CONSTANT)
    /**
      Get Select objects on left click?
    */
    static
    bool leftClickSelectsObject()
    {
      return self()->mLeftClickSelectsObject;
    }

    /**
      Is Select objects on left click? Immutable
    */
    static
    bool isLeftClickSelectsObjectImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LeftClickSelectsObject" ) );
    }

    /**
      Set Select default Skymap cursor?
    */
    static
    void setDefaultCursor( uint v )
    {
      if (v != self()->mDefaultCursor && !self()->isDefaultCursorImmutable()) {
        self()->mDefaultCursor = v;
        Q_EMIT self()->DefaultCursorChanged();
      }
    }

    Q_PROPERTY(uint defaultCursor READ defaultCursor WRITE setDefaultCursor NOTIFY DefaultCursorChanged)
    Q_PROPERTY(bool isDefaultCursorImmutable READ isDefaultCursorImmutable CONSTANT)
    /**
      Get Select default Skymap cursor?
    */
    static
    uint defaultCursor()
    {
      return self()->mDefaultCursor;
    }

    /**
      Is Select default Skymap cursor? Immutable
    */
    static
    bool isDefaultCursorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DefaultCursor" ) );
    }

    /**
      Set Name of selected FOV indicators
    */
    static
    void setFOVNames( const QStringList & v )
    {
      if (v != self()->mFOVNames && !self()->isFOVNamesImmutable()) {
        self()->mFOVNames = v;
        Q_EMIT self()->FOVNamesChanged();
      }
    }

    Q_PROPERTY(QStringList fOVNames READ fOVNames WRITE setFOVNames NOTIFY FOVNamesChanged)
    Q_PROPERTY(bool isFOVNamesImmutable READ isFOVNamesImmutable CONSTANT)
    /**
      Get Name of selected FOV indicators
    */
    static
    QStringList fOVNames()
    {
      return self()->mFOVNames;
    }

    /**
      Is Name of selected FOV indicators Immutable
    */
    static
    bool isFOVNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FOVNames" ) );
    }

    /**
      Set Fade planet trails to background color?
    */
    static
    void setFadePlanetTrails( bool v )
    {
      if (v != self()->mFadePlanetTrails && !self()->isFadePlanetTrailsImmutable()) {
        self()->mFadePlanetTrails = v;
        Q_EMIT self()->FadePlanetTrailsChanged();
      }
    }

    Q_PROPERTY(bool fadePlanetTrails READ fadePlanetTrails WRITE setFadePlanetTrails NOTIFY FadePlanetTrailsChanged)
    Q_PROPERTY(bool isFadePlanetTrailsImmutable READ isFadePlanetTrailsImmutable CONSTANT)
    /**
      Get Fade planet trails to background color?
    */
    static
    bool fadePlanetTrails()
    {
      return self()->mFadePlanetTrails;
    }

    /**
      Is Fade planet trails to background color? Immutable
    */
    static
    bool isFadePlanetTrailsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FadePlanetTrails" ) );
    }

    /**
      Set Right Ascension of focus position
    */
    static
    void setFocusRA( double v )
    {
      if (v != self()->mFocusRA && !self()->isFocusRAImmutable()) {
        self()->mFocusRA = v;
        Q_EMIT self()->FocusRAChanged();
      }
    }

    Q_PROPERTY(double focusRA READ focusRA WRITE setFocusRA NOTIFY FocusRAChanged)
    Q_PROPERTY(bool isFocusRAImmutable READ isFocusRAImmutable CONSTANT)
    /**
      Get Right Ascension of focus position
    */
    static
    double focusRA()
    {
      return self()->mFocusRA;
    }

    /**
      Is Right Ascension of focus position Immutable
    */
    static
    bool isFocusRAImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusRA" ) );
    }

    /**
      Set Declination of focus position
    */
    static
    void setFocusDec( double v )
    {
      if (v != self()->mFocusDec && !self()->isFocusDecImmutable()) {
        self()->mFocusDec = v;
        Q_EMIT self()->FocusDecChanged();
      }
    }

    Q_PROPERTY(double focusDec READ focusDec WRITE setFocusDec NOTIFY FocusDecChanged)
    Q_PROPERTY(bool isFocusDecImmutable READ isFocusDecImmutable CONSTANT)
    /**
      Get Declination of focus position
    */
    static
    double focusDec()
    {
      return self()->mFocusDec;
    }

    /**
      Is Declination of focus position Immutable
    */
    static
    bool isFocusDecImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusDec" ) );
    }

    /**
      Set Name of focused object
    */
    static
    void setFocusObject( const QString & v )
    {
      if (v != self()->mFocusObject && !self()->isFocusObjectImmutable()) {
        self()->mFocusObject = v;
        Q_EMIT self()->FocusObjectChanged();
      }
    }

    Q_PROPERTY(QString focusObject READ focusObject WRITE setFocusObject NOTIFY FocusObjectChanged)
    Q_PROPERTY(bool isFocusObjectImmutable READ isFocusObjectImmutable CONSTANT)
    /**
      Get Name of focused object
    */
    static
    QString focusObject()
    {
      return self()->mFocusObject;
    }

    /**
      Is Name of focused object Immutable
    */
    static
    bool isFocusObjectImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusObject" ) );
    }

    /**
      Set Is tracking engaged?
    */
    static
    void setIsTracking( bool v )
    {
      if (v != self()->mIsTracking && !self()->isIsTrackingImmutable()) {
        self()->mIsTracking = v;
        Q_EMIT self()->IsTrackingChanged();
      }
    }

    Q_PROPERTY(bool isTracking READ isTracking WRITE setIsTracking NOTIFY IsTrackingChanged)
    Q_PROPERTY(bool isIsTrackingImmutable READ isIsTrackingImmutable CONSTANT)
    /**
      Get Is tracking engaged?
    */
    static
    bool isTracking()
    {
      return self()->mIsTracking;
    }

    /**
      Is Is tracking engaged? Immutable
    */
    static
    bool isIsTrackingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "IsTracking" ) );
    }

    /**
      Set Hide objects while moving?
    */
    static
    void setHideOnSlew( bool v )
    {
      if (v != self()->mHideOnSlew && !self()->isHideOnSlewImmutable()) {
        self()->mHideOnSlew = v;
        Q_EMIT self()->HideOnSlewChanged();
      }
    }

    Q_PROPERTY(bool hideOnSlew READ hideOnSlew WRITE setHideOnSlew NOTIFY HideOnSlewChanged)
    Q_PROPERTY(bool isHideOnSlewImmutable READ isHideOnSlewImmutable CONSTANT)
    /**
      Get Hide objects while moving?
    */
    static
    bool hideOnSlew()
    {
      return self()->mHideOnSlew;
    }

    /**
      Is Hide objects while moving? Immutable
    */
    static
    bool isHideOnSlewImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideOnSlew" ) );
    }

    /**
      Set Hide constellation boundaries while moving?
    */
    static
    void setHideCBounds( bool v )
    {
      if (v != self()->mHideCBounds && !self()->isHideCBoundsImmutable()) {
        self()->mHideCBounds = v;
        Q_EMIT self()->HideCBoundsChanged();
      }
    }

    Q_PROPERTY(bool hideCBounds READ hideCBounds WRITE setHideCBounds NOTIFY HideCBoundsChanged)
    Q_PROPERTY(bool isHideCBoundsImmutable READ isHideCBoundsImmutable CONSTANT)
    /**
      Get Hide constellation boundaries while moving?
    */
    static
    bool hideCBounds()
    {
      return self()->mHideCBounds;
    }

    /**
      Is Hide constellation boundaries while moving? Immutable
    */
    static
    bool isHideCBoundsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideCBounds" ) );
    }

    /**
      Set Hide constellation lines while moving?
    */
    static
    void setHideCLines( bool v )
    {
      if (v != self()->mHideCLines && !self()->isHideCLinesImmutable()) {
        self()->mHideCLines = v;
        Q_EMIT self()->HideCLinesChanged();
      }
    }

    Q_PROPERTY(bool hideCLines READ hideCLines WRITE setHideCLines NOTIFY HideCLinesChanged)
    Q_PROPERTY(bool isHideCLinesImmutable READ isHideCLinesImmutable CONSTANT)
    /**
      Get Hide constellation lines while moving?
    */
    static
    bool hideCLines()
    {
      return self()->mHideCLines;
    }

    /**
      Is Hide constellation lines while moving? Immutable
    */
    static
    bool isHideCLinesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideCLines" ) );
    }

    /**
      Set Sky culture
    */
    static
    void setSkyCulture( const QString & v )
    {
      if (v != self()->mSkyCulture && !self()->isSkyCultureImmutable()) {
        self()->mSkyCulture = v;
        Q_EMIT self()->SkyCultureChanged();
      }
    }

    Q_PROPERTY(QString skyCulture READ skyCulture WRITE setSkyCulture NOTIFY SkyCultureChanged)
    Q_PROPERTY(bool isSkyCultureImmutable READ isSkyCultureImmutable CONSTANT)
    /**
      Get Sky culture
    */
    static
    QString skyCulture()
    {
      return self()->mSkyCulture;
    }

    /**
      Is Sky culture Immutable
    */
    static
    bool isSkyCultureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SkyCulture" ) );
    }

    /**
      Set Hide constellation names while moving?
    */
    static
    void setHideCNames( bool v )
    {
      if (v != self()->mHideCNames && !self()->isHideCNamesImmutable()) {
        self()->mHideCNames = v;
        Q_EMIT self()->HideCNamesChanged();
      }
    }

    Q_PROPERTY(bool hideCNames READ hideCNames WRITE setHideCNames NOTIFY HideCNamesChanged)
    Q_PROPERTY(bool isHideCNamesImmutable READ isHideCNamesImmutable CONSTANT)
    /**
      Get Hide constellation names while moving?
    */
    static
    bool hideCNames()
    {
      return self()->mHideCNames;
    }

    /**
      Is Hide constellation names while moving? Immutable
    */
    static
    bool isHideCNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideCNames" ) );
    }

    /**
      Set Hide coordinate grids while moving?
    */
    static
    void setHideGrids( bool v )
    {
      if (v != self()->mHideGrids && !self()->isHideGridsImmutable()) {
        self()->mHideGrids = v;
        Q_EMIT self()->HideGridsChanged();
      }
    }

    Q_PROPERTY(bool hideGrids READ hideGrids WRITE setHideGrids NOTIFY HideGridsChanged)
    Q_PROPERTY(bool isHideGridsImmutable READ isHideGridsImmutable CONSTANT)
    /**
      Get Hide coordinate grids while moving?
    */
    static
    bool hideGrids()
    {
      return self()->mHideGrids;
    }

    /**
      Is Hide coordinate grids while moving? Immutable
    */
    static
    bool isHideGridsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideGrids" ) );
    }

    /**
      Set Hide Milky Way contour while moving?
    */
    static
    void setHideMilkyWay( bool v )
    {
      if (v != self()->mHideMilkyWay && !self()->isHideMilkyWayImmutable()) {
        self()->mHideMilkyWay = v;
        Q_EMIT self()->HideMilkyWayChanged();
      }
    }

    Q_PROPERTY(bool hideMilkyWay READ hideMilkyWay WRITE setHideMilkyWay NOTIFY HideMilkyWayChanged)
    Q_PROPERTY(bool isHideMilkyWayImmutable READ isHideMilkyWayImmutable CONSTANT)
    /**
      Get Hide Milky Way contour while moving?
    */
    static
    bool hideMilkyWay()
    {
      return self()->mHideMilkyWay;
    }

    /**
      Is Hide Milky Way contour while moving? Immutable
    */
    static
    bool isHideMilkyWayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideMilkyWay" ) );
    }

    /**
      Set Hide extra objects while moving?
    */
    static
    void setHideOther( bool v )
    {
      if (v != self()->mHideOther && !self()->isHideOtherImmutable()) {
        self()->mHideOther = v;
        Q_EMIT self()->HideOtherChanged();
      }
    }

    Q_PROPERTY(bool hideOther READ hideOther WRITE setHideOther NOTIFY HideOtherChanged)
    Q_PROPERTY(bool isHideOtherImmutable READ isHideOtherImmutable CONSTANT)
    /**
      Get Hide extra objects while moving?
    */
    static
    bool hideOther()
    {
      return self()->mHideOther;
    }

    /**
      Is Hide extra objects while moving? Immutable
    */
    static
    bool isHideOtherImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideOther" ) );
    }

    /**
      Set Hide solar system objects while moving?
    */
    static
    void setHidePlanets( bool v )
    {
      if (v != self()->mHidePlanets && !self()->isHidePlanetsImmutable()) {
        self()->mHidePlanets = v;
        Q_EMIT self()->HidePlanetsChanged();
      }
    }

    Q_PROPERTY(bool hidePlanets READ hidePlanets WRITE setHidePlanets NOTIFY HidePlanetsChanged)
    Q_PROPERTY(bool isHidePlanetsImmutable READ isHidePlanetsImmutable CONSTANT)
    /**
      Get Hide solar system objects while moving?
    */
    static
    bool hidePlanets()
    {
      return self()->mHidePlanets;
    }

    /**
      Is Hide solar system objects while moving? Immutable
    */
    static
    bool isHidePlanetsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HidePlanets" ) );
    }

    /**
      Set Hide faint stars while moving?
    */
    static
    void setHideStars( bool v )
    {
      if (v != self()->mHideStars && !self()->isHideStarsImmutable()) {
        self()->mHideStars = v;
        Q_EMIT self()->HideStarsChanged();
      }
    }

    Q_PROPERTY(bool hideStars READ hideStars WRITE setHideStars NOTIFY HideStarsChanged)
    Q_PROPERTY(bool isHideStarsImmutable READ isHideStarsImmutable CONSTANT)
    /**
      Get Hide faint stars while moving?
    */
    static
    bool hideStars()
    {
      return self()->mHideStars;
    }

    /**
      Is Hide faint stars while moving? Immutable
    */
    static
    bool isHideStarsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideStars" ) );
    }

    /**
      Set Hide object name labels while moving?
    */
    static
    void setHideLabels( bool v )
    {
      if (v != self()->mHideLabels && !self()->isHideLabelsImmutable()) {
        self()->mHideLabels = v;
        Q_EMIT self()->HideLabelsChanged();
      }
    }

    Q_PROPERTY(bool hideLabels READ hideLabels WRITE setHideLabels NOTIFY HideLabelsChanged)
    Q_PROPERTY(bool isHideLabelsImmutable READ isHideLabelsImmutable CONSTANT)
    /**
      Get Hide object name labels while moving?
    */
    static
    bool hideLabels()
    {
      return self()->mHideLabels;
    }

    /**
      Is Hide object name labels while moving? Immutable
    */
    static
    bool isHideLabelsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideLabels" ) );
    }

    /**
      Set Draw asteroids in the sky map?
    */
    static
    void setShowAsteroids( bool v )
    {
      if (v != self()->mShowAsteroids && !self()->isShowAsteroidsImmutable()) {
        self()->mShowAsteroids = v;
        Q_EMIT self()->ShowAsteroidsChanged();
      }
    }

    Q_PROPERTY(bool showAsteroids READ showAsteroids WRITE setShowAsteroids NOTIFY ShowAsteroidsChanged)
    Q_PROPERTY(bool isShowAsteroidsImmutable READ isShowAsteroidsImmutable CONSTANT)
    /**
      Get Draw asteroids in the sky map?
    */
    static
    bool showAsteroids()
    {
      return self()->mShowAsteroids;
    }

    /**
      Is Draw asteroids in the sky map? Immutable
    */
    static
    bool isShowAsteroidsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowAsteroids" ) );
    }

    /**
      Set Label asteroid names in the sky map?
    */
    static
    void setShowAsteroidNames( bool v )
    {
      if (v != self()->mShowAsteroidNames && !self()->isShowAsteroidNamesImmutable()) {
        self()->mShowAsteroidNames = v;
        Q_EMIT self()->ShowAsteroidNamesChanged();
      }
    }

    Q_PROPERTY(bool showAsteroidNames READ showAsteroidNames WRITE setShowAsteroidNames NOTIFY ShowAsteroidNamesChanged)
    Q_PROPERTY(bool isShowAsteroidNamesImmutable READ isShowAsteroidNamesImmutable CONSTANT)
    /**
      Get Label asteroid names in the sky map?
    */
    static
    bool showAsteroidNames()
    {
      return self()->mShowAsteroidNames;
    }

    /**
      Is Label asteroid names in the sky map? Immutable
    */
    static
    bool isShowAsteroidNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowAsteroidNames" ) );
    }

    /**
      Set Update orbital elements for comets and asteroids from online sources on startup.
    */
    static
    void setOrbitalElementsAutoUpdate( bool v )
    {
      if (v != self()->mOrbitalElementsAutoUpdate && !self()->isOrbitalElementsAutoUpdateImmutable()) {
        self()->mOrbitalElementsAutoUpdate = v;
        Q_EMIT self()->OrbitalElementsAutoUpdateChanged();
      }
    }

    Q_PROPERTY(bool orbitalElementsAutoUpdate READ orbitalElementsAutoUpdate WRITE setOrbitalElementsAutoUpdate NOTIFY OrbitalElementsAutoUpdateChanged)
    Q_PROPERTY(bool isOrbitalElementsAutoUpdateImmutable READ isOrbitalElementsAutoUpdateImmutable CONSTANT)
    /**
      Get Update orbital elements for comets and asteroids from online sources on startup.
    */
    static
    bool orbitalElementsAutoUpdate()
    {
      return self()->mOrbitalElementsAutoUpdate;
    }

    /**
      Is Update orbital elements for comets and asteroids from online sources on startup. Immutable
    */
    static
    bool isOrbitalElementsAutoUpdateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "OrbitalElementsAutoUpdate" ) );
    }

    /**
      Set Draw comets in the sky map?
    */
    static
    void setShowComets( bool v )
    {
      if (v != self()->mShowComets && !self()->isShowCometsImmutable()) {
        self()->mShowComets = v;
        Q_EMIT self()->ShowCometsChanged();
      }
    }

    Q_PROPERTY(bool showComets READ showComets WRITE setShowComets NOTIFY ShowCometsChanged)
    Q_PROPERTY(bool isShowCometsImmutable READ isShowCometsImmutable CONSTANT)
    /**
      Get Draw comets in the sky map?
    */
    static
    bool showComets()
    {
      return self()->mShowComets;
    }

    /**
      Is Draw comets in the sky map? Immutable
    */
    static
    bool isShowCometsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowComets" ) );
    }

    /**
      Set Draw comet comas in the sky map?
    */
    static
    void setShowCometComas( bool v )
    {
      if (v != self()->mShowCometComas && !self()->isShowCometComasImmutable()) {
        self()->mShowCometComas = v;
        Q_EMIT self()->ShowCometComasChanged();
      }
    }

    Q_PROPERTY(bool showCometComas READ showCometComas WRITE setShowCometComas NOTIFY ShowCometComasChanged)
    Q_PROPERTY(bool isShowCometComasImmutable READ isShowCometComasImmutable CONSTANT)
    /**
      Get Draw comet comas in the sky map?
    */
    static
    bool showCometComas()
    {
      return self()->mShowCometComas;
    }

    /**
      Is Draw comet comas in the sky map? Immutable
    */
    static
    bool isShowCometComasImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowCometComas" ) );
    }

    /**
      Set Label comet names in the sky map?
    */
    static
    void setShowCometNames( bool v )
    {
      if (v != self()->mShowCometNames && !self()->isShowCometNamesImmutable()) {
        self()->mShowCometNames = v;
        Q_EMIT self()->ShowCometNamesChanged();
      }
    }

    Q_PROPERTY(bool showCometNames READ showCometNames WRITE setShowCometNames NOTIFY ShowCometNamesChanged)
    Q_PROPERTY(bool isShowCometNamesImmutable READ isShowCometNamesImmutable CONSTANT)
    /**
      Get Label comet names in the sky map?
    */
    static
    bool showCometNames()
    {
      return self()->mShowCometNames;
    }

    /**
      Is Label comet names in the sky map? Immutable
    */
    static
    bool isShowCometNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowCometNames" ) );
    }

    /**
      Set Draw supernovae in the sky map?
    */
    static
    void setShowSupernovae( bool v )
    {
      if (v != self()->mShowSupernovae && !self()->isShowSupernovaeImmutable()) {
        self()->mShowSupernovae = v;
        Q_EMIT self()->ShowSupernovaeChanged();
      }
    }

    Q_PROPERTY(bool showSupernovae READ showSupernovae WRITE setShowSupernovae NOTIFY ShowSupernovaeChanged)
    Q_PROPERTY(bool isShowSupernovaeImmutable READ isShowSupernovaeImmutable CONSTANT)
    /**
      Get Draw supernovae in the sky map?
    */
    static
    bool showSupernovae()
    {
      return self()->mShowSupernovae;
    }

    /**
      Is Draw supernovae in the sky map? Immutable
    */
    static
    bool isShowSupernovaeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSupernovae" ) );
    }

    /**
      Set Label Supernova Names in the sky map?
    */
    static
    void setShowSupernovaNames( bool v )
    {
      if (v != self()->mShowSupernovaNames && !self()->isShowSupernovaNamesImmutable()) {
        self()->mShowSupernovaNames = v;
        Q_EMIT self()->ShowSupernovaNamesChanged();
      }
    }

    Q_PROPERTY(bool showSupernovaNames READ showSupernovaNames WRITE setShowSupernovaNames NOTIFY ShowSupernovaNamesChanged)
    Q_PROPERTY(bool isShowSupernovaNamesImmutable READ isShowSupernovaNamesImmutable CONSTANT)
    /**
      Get Label Supernova Names in the sky map?
    */
    static
    bool showSupernovaNames()
    {
      return self()->mShowSupernovaNames;
    }

    /**
      Is Label Supernova Names in the sky map? Immutable
    */
    static
    bool isShowSupernovaNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSupernovaNames" ) );
    }

    /**
      Set Set magnitude limit for supernovae to be shown on the skymap
    */
    static
    void setMagnitudeLimitShowSupernovae( double v )
    {
      if (v != self()->mMagnitudeLimitShowSupernovae && !self()->isMagnitudeLimitShowSupernovaeImmutable()) {
        self()->mMagnitudeLimitShowSupernovae = v;
        Q_EMIT self()->MagnitudeLimitShowSupernovaeChanged();
      }
    }

    Q_PROPERTY(double magnitudeLimitShowSupernovae READ magnitudeLimitShowSupernovae WRITE setMagnitudeLimitShowSupernovae NOTIFY MagnitudeLimitShowSupernovaeChanged)
    Q_PROPERTY(bool isMagnitudeLimitShowSupernovaeImmutable READ isMagnitudeLimitShowSupernovaeImmutable CONSTANT)
    /**
      Get Set magnitude limit for supernovae to be shown on the skymap
    */
    static
    double magnitudeLimitShowSupernovae()
    {
      return self()->mMagnitudeLimitShowSupernovae;
    }

    /**
      Is Set magnitude limit for supernovae to be shown on the skymap Immutable
    */
    static
    bool isMagnitudeLimitShowSupernovaeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MagnitudeLimitShowSupernovae" ) );
    }

    /**
      Set Maximum days passed since detection
    */
    static
    void setSupernovaDetectionAge( double v )
    {
      if (v != self()->mSupernovaDetectionAge && !self()->isSupernovaDetectionAgeImmutable()) {
        self()->mSupernovaDetectionAge = v;
        Q_EMIT self()->SupernovaDetectionAgeChanged();
      }
    }

    Q_PROPERTY(double supernovaDetectionAge READ supernovaDetectionAge WRITE setSupernovaDetectionAge NOTIFY SupernovaDetectionAgeChanged)
    Q_PROPERTY(bool isSupernovaDetectionAgeImmutable READ isSupernovaDetectionAgeImmutable CONSTANT)
    /**
      Get Maximum days passed since detection
    */
    static
    double supernovaDetectionAge()
    {
      return self()->mSupernovaDetectionAge;
    }

    /**
      Is Maximum days passed since detection Immutable
    */
    static
    bool isSupernovaDetectionAgeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SupernovaDetectionAge" ) );
    }

    /**
      Set Maximum days passed since detection
    */
    static
    void setSupernovaDownloadUrl( const QString & v )
    {
      if (v != self()->mSupernovaDownloadUrl && !self()->isSupernovaDownloadUrlImmutable()) {
        self()->mSupernovaDownloadUrl = v;
        Q_EMIT self()->SupernovaDownloadUrlChanged();
      }
    }

    Q_PROPERTY(QString supernovaDownloadUrl READ supernovaDownloadUrl WRITE setSupernovaDownloadUrl NOTIFY SupernovaDownloadUrlChanged)
    Q_PROPERTY(bool isSupernovaDownloadUrlImmutable READ isSupernovaDownloadUrlImmutable CONSTANT)
    /**
      Get Maximum days passed since detection
    */
    static
    QString supernovaDownloadUrl()
    {
      return self()->mSupernovaDownloadUrl;
    }

    /**
      Is Maximum days passed since detection Immutable
    */
    static
    bool isSupernovaDownloadUrlImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SupernovaDownloadUrl" ) );
    }

    /**
      Set Limit Supernovae by zoom limit
    */
    static
    void setLimitSupernovaeByZoom( bool v )
    {
      if (v != self()->mLimitSupernovaeByZoom && !self()->isLimitSupernovaeByZoomImmutable()) {
        self()->mLimitSupernovaeByZoom = v;
        Q_EMIT self()->LimitSupernovaeByZoomChanged();
      }
    }

    Q_PROPERTY(bool limitSupernovaeByZoom READ limitSupernovaeByZoom WRITE setLimitSupernovaeByZoom NOTIFY LimitSupernovaeByZoomChanged)
    Q_PROPERTY(bool isLimitSupernovaeByZoomImmutable READ isLimitSupernovaeByZoomImmutable CONSTANT)
    /**
      Get Limit Supernovae by zoom limit
    */
    static
    bool limitSupernovaeByZoom()
    {
      return self()->mLimitSupernovaeByZoom;
    }

    /**
      Is Limit Supernovae by zoom limit Immutable
    */
    static
    bool isLimitSupernovaeByZoomImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LimitSupernovaeByZoom" ) );
    }

    /**
      Set Show only supernovae with host
    */
    static
    void setSupernovaeHostOnly( bool v )
    {
      if (v != self()->mSupernovaeHostOnly && !self()->isSupernovaeHostOnlyImmutable()) {
        self()->mSupernovaeHostOnly = v;
        Q_EMIT self()->SupernovaeHostOnlyChanged();
      }
    }

    Q_PROPERTY(bool supernovaeHostOnly READ supernovaeHostOnly WRITE setSupernovaeHostOnly NOTIFY SupernovaeHostOnlyChanged)
    Q_PROPERTY(bool isSupernovaeHostOnlyImmutable READ isSupernovaeHostOnlyImmutable CONSTANT)
    /**
      Get Show only supernovae with host
    */
    static
    bool supernovaeHostOnly()
    {
      return self()->mSupernovaeHostOnly;
    }

    /**
      Is Show only supernovae with host Immutable
    */
    static
    bool isSupernovaeHostOnlyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SupernovaeHostOnly" ) );
    }

    /**
      Set Show only classified supernovae?
    */
    static
    void setSupernovaeClassifiedOnly( bool v )
    {
      if (v != self()->mSupernovaeClassifiedOnly && !self()->isSupernovaeClassifiedOnlyImmutable()) {
        self()->mSupernovaeClassifiedOnly = v;
        Q_EMIT self()->SupernovaeClassifiedOnlyChanged();
      }
    }

    Q_PROPERTY(bool supernovaeClassifiedOnly READ supernovaeClassifiedOnly WRITE setSupernovaeClassifiedOnly NOTIFY SupernovaeClassifiedOnlyChanged)
    Q_PROPERTY(bool isSupernovaeClassifiedOnlyImmutable READ isSupernovaeClassifiedOnlyImmutable CONSTANT)
    /**
      Get Show only classified supernovae?
    */
    static
    bool supernovaeClassifiedOnly()
    {
      return self()->mSupernovaeClassifiedOnly;
    }

    /**
      Is Show only classified supernovae? Immutable
    */
    static
    bool isSupernovaeClassifiedOnlyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SupernovaeClassifiedOnly" ) );
    }

    /**
      Set Show supernova alerts?
    */
    static
    void setShowSupernovaAlerts( bool v )
    {
      if (v != self()->mShowSupernovaAlerts && !self()->isShowSupernovaAlertsImmutable()) {
        self()->mShowSupernovaAlerts = v;
        Q_EMIT self()->ShowSupernovaAlertsChanged();
      }
    }

    Q_PROPERTY(bool showSupernovaAlerts READ showSupernovaAlerts WRITE setShowSupernovaAlerts NOTIFY ShowSupernovaAlertsChanged)
    Q_PROPERTY(bool isShowSupernovaAlertsImmutable READ isShowSupernovaAlertsImmutable CONSTANT)
    /**
      Get Show supernova alerts?
    */
    static
    bool showSupernovaAlerts()
    {
      return self()->mShowSupernovaAlerts;
    }

    /**
      Is Show supernova alerts? Immutable
    */
    static
    bool isShowSupernovaAlertsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSupernovaAlerts" ) );
    }

    /**
      Set Set magnitude limit for supernovae to be alerted
    */
    static
    void setMagnitudeLimitAlertSupernovae( double v )
    {
      if (v != self()->mMagnitudeLimitAlertSupernovae && !self()->isMagnitudeLimitAlertSupernovaeImmutable()) {
        self()->mMagnitudeLimitAlertSupernovae = v;
        Q_EMIT self()->MagnitudeLimitAlertSupernovaeChanged();
      }
    }

    Q_PROPERTY(double magnitudeLimitAlertSupernovae READ magnitudeLimitAlertSupernovae WRITE setMagnitudeLimitAlertSupernovae NOTIFY MagnitudeLimitAlertSupernovaeChanged)
    Q_PROPERTY(bool isMagnitudeLimitAlertSupernovaeImmutable READ isMagnitudeLimitAlertSupernovaeImmutable CONSTANT)
    /**
      Get Set magnitude limit for supernovae to be alerted
    */
    static
    double magnitudeLimitAlertSupernovae()
    {
      return self()->mMagnitudeLimitAlertSupernovae;
    }

    /**
      Is Set magnitude limit for supernovae to be alerted Immutable
    */
    static
    bool isMagnitudeLimitAlertSupernovaeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MagnitudeLimitAlertSupernovae" ) );
    }

    /**
      Set Draw constellation boundaries in the sky map?
    */
    static
    void setShowCBounds( bool v )
    {
      if (v != self()->mShowCBounds && !self()->isShowCBoundsImmutable()) {
        self()->mShowCBounds = v;
        Q_EMIT self()->ShowCBoundsChanged();
      }
    }

    Q_PROPERTY(bool showCBounds READ showCBounds WRITE setShowCBounds NOTIFY ShowCBoundsChanged)
    Q_PROPERTY(bool isShowCBoundsImmutable READ isShowCBoundsImmutable CONSTANT)
    /**
      Get Draw constellation boundaries in the sky map?
    */
    static
    bool showCBounds()
    {
      return self()->mShowCBounds;
    }

    /**
      Is Draw constellation boundaries in the sky map? Immutable
    */
    static
    bool isShowCBoundsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowCBounds" ) );
    }

    /**
      Set Highlight the central constellation boundary in the sky map?
    */
    static
    void setShowHighlightedCBound( bool v )
    {
      if (v != self()->mShowHighlightedCBound && !self()->isShowHighlightedCBoundImmutable()) {
        self()->mShowHighlightedCBound = v;
        Q_EMIT self()->ShowHighlightedCBoundChanged();
      }
    }

    Q_PROPERTY(bool showHighlightedCBound READ showHighlightedCBound WRITE setShowHighlightedCBound NOTIFY ShowHighlightedCBoundChanged)
    Q_PROPERTY(bool isShowHighlightedCBoundImmutable READ isShowHighlightedCBoundImmutable CONSTANT)
    /**
      Get Highlight the central constellation boundary in the sky map?
    */
    static
    bool showHighlightedCBound()
    {
      return self()->mShowHighlightedCBound;
    }

    /**
      Is Highlight the central constellation boundary in the sky map? Immutable
    */
    static
    bool isShowHighlightedCBoundImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowHighlightedCBound" ) );
    }

    /**
      Set Draw constellation lines in the sky map?
    */
    static
    void setShowCLines( bool v )
    {
      if (v != self()->mShowCLines && !self()->isShowCLinesImmutable()) {
        self()->mShowCLines = v;
        Q_EMIT self()->ShowCLinesChanged();
      }
    }

    Q_PROPERTY(bool showCLines READ showCLines WRITE setShowCLines NOTIFY ShowCLinesChanged)
    Q_PROPERTY(bool isShowCLinesImmutable READ isShowCLinesImmutable CONSTANT)
    /**
      Get Draw constellation lines in the sky map?
    */
    static
    bool showCLines()
    {
      return self()->mShowCLines;
    }

    /**
      Is Draw constellation lines in the sky map? Immutable
    */
    static
    bool isShowCLinesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowCLines" ) );
    }

    /**
      Set Draw constellation art in the sky map?
    */
    static
    void setShowConstellationArt( bool v )
    {
      if (v != self()->mShowConstellationArt && !self()->isShowConstellationArtImmutable()) {
        self()->mShowConstellationArt = v;
        Q_EMIT self()->ShowConstellationArtChanged();
      }
    }

    Q_PROPERTY(bool showConstellationArt READ showConstellationArt WRITE setShowConstellationArt NOTIFY ShowConstellationArtChanged)
    Q_PROPERTY(bool isShowConstellationArtImmutable READ isShowConstellationArtImmutable CONSTANT)
    /**
      Get Draw constellation art in the sky map?
    */
    static
    bool showConstellationArt()
    {
      return self()->mShowConstellationArt;
    }

    /**
      Is Draw constellation art in the sky map? Immutable
    */
    static
    bool isShowConstellationArtImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowConstellationArt" ) );
    }

    /**
      Set Draw constellation names in the sky map?
    */
    static
    void setShowCNames( bool v )
    {
      if (v != self()->mShowCNames && !self()->isShowCNamesImmutable()) {
        self()->mShowCNames = v;
        Q_EMIT self()->ShowCNamesChanged();
      }
    }

    Q_PROPERTY(bool showCNames READ showCNames WRITE setShowCNames NOTIFY ShowCNamesChanged)
    Q_PROPERTY(bool isShowCNamesImmutable READ isShowCNamesImmutable CONSTANT)
    /**
      Get Draw constellation names in the sky map?
    */
    static
    bool showCNames()
    {
      return self()->mShowCNames;
    }

    /**
      Is Draw constellation names in the sky map? Immutable
    */
    static
    bool isShowCNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowCNames" ) );
    }

    /**
      Set Draw "deep sky" objects in the sky map?
    */
    static
    void setShowDeepSky( bool v )
    {
      if (v != self()->mShowDeepSky && !self()->isShowDeepSkyImmutable()) {
        self()->mShowDeepSky = v;
        Q_EMIT self()->ShowDeepSkyChanged();
      }
    }

    Q_PROPERTY(bool showDeepSky READ showDeepSky WRITE setShowDeepSky NOTIFY ShowDeepSkyChanged)
    Q_PROPERTY(bool isShowDeepSkyImmutable READ isShowDeepSkyImmutable CONSTANT)
    /**
      Get Draw "deep sky" objects in the sky map?
    */
    static
    bool showDeepSky()
    {
      return self()->mShowDeepSky;
    }

    /**
      Is Draw "deep sky" objects in the sky map? Immutable
    */
    static
    bool isShowDeepSkyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowDeepSky" ) );
    }

    /**
      Set Draw ecliptic line in the sky map?
    */
    static
    void setShowEcliptic( bool v )
    {
      if (v != self()->mShowEcliptic && !self()->isShowEclipticImmutable()) {
        self()->mShowEcliptic = v;
        Q_EMIT self()->ShowEclipticChanged();
      }
    }

    Q_PROPERTY(bool showEcliptic READ showEcliptic WRITE setShowEcliptic NOTIFY ShowEclipticChanged)
    Q_PROPERTY(bool isShowEclipticImmutable READ isShowEclipticImmutable CONSTANT)
    /**
      Get Draw ecliptic line in the sky map?
    */
    static
    bool showEcliptic()
    {
      return self()->mShowEcliptic;
    }

    /**
      Is Draw ecliptic line in the sky map? Immutable
    */
    static
    bool isShowEclipticImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowEcliptic" ) );
    }

    /**
      Set Draw equator line in the sky map?
    */
    static
    void setShowEquator( bool v )
    {
      if (v != self()->mShowEquator && !self()->isShowEquatorImmutable()) {
        self()->mShowEquator = v;
        Q_EMIT self()->ShowEquatorChanged();
      }
    }

    Q_PROPERTY(bool showEquator READ showEquator WRITE setShowEquator NOTIFY ShowEquatorChanged)
    Q_PROPERTY(bool isShowEquatorImmutable READ isShowEquatorImmutable CONSTANT)
    /**
      Get Draw equator line in the sky map?
    */
    static
    bool showEquator()
    {
      return self()->mShowEquator;
    }

    /**
      Is Draw equator line in the sky map? Immutable
    */
    static
    bool isShowEquatorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowEquator" ) );
    }

    /**
      Set Draw grids according to active coordinate system?
    */
    static
    void setAutoSelectGrid( bool v )
    {
      if (v != self()->mAutoSelectGrid && !self()->isAutoSelectGridImmutable()) {
        self()->mAutoSelectGrid = v;
        Q_EMIT self()->AutoSelectGridChanged();
      }
    }

    Q_PROPERTY(bool autoSelectGrid READ autoSelectGrid WRITE setAutoSelectGrid NOTIFY AutoSelectGridChanged)
    Q_PROPERTY(bool isAutoSelectGridImmutable READ isAutoSelectGridImmutable CONSTANT)
    /**
      Get Draw grids according to active coordinate system?
    */
    static
    bool autoSelectGrid()
    {
      return self()->mAutoSelectGrid;
    }

    /**
      Is Draw grids according to active coordinate system? Immutable
    */
    static
    bool isAutoSelectGridImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoSelectGrid" ) );
    }

    /**
      Set Draw equatorial coordinate grid in the sky map?
    */
    static
    void setShowEquatorialGrid( bool v )
    {
      if (v != self()->mShowEquatorialGrid && !self()->isShowEquatorialGridImmutable()) {
        self()->mShowEquatorialGrid = v;
        Q_EMIT self()->ShowEquatorialGridChanged();
      }
    }

    Q_PROPERTY(bool showEquatorialGrid READ showEquatorialGrid WRITE setShowEquatorialGrid NOTIFY ShowEquatorialGridChanged)
    Q_PROPERTY(bool isShowEquatorialGridImmutable READ isShowEquatorialGridImmutable CONSTANT)
    /**
      Get Draw equatorial coordinate grid in the sky map?
    */
    static
    bool showEquatorialGrid()
    {
      return self()->mShowEquatorialGrid;
    }

    /**
      Is Draw equatorial coordinate grid in the sky map? Immutable
    */
    static
    bool isShowEquatorialGridImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowEquatorialGrid" ) );
    }

    /**
      Set Draw horizontal coordinate grid in the sky map?
    */
    static
    void setShowHorizontalGrid( bool v )
    {
      if (v != self()->mShowHorizontalGrid && !self()->isShowHorizontalGridImmutable()) {
        self()->mShowHorizontalGrid = v;
        Q_EMIT self()->ShowHorizontalGridChanged();
      }
    }

    Q_PROPERTY(bool showHorizontalGrid READ showHorizontalGrid WRITE setShowHorizontalGrid NOTIFY ShowHorizontalGridChanged)
    Q_PROPERTY(bool isShowHorizontalGridImmutable READ isShowHorizontalGridImmutable CONSTANT)
    /**
      Get Draw horizontal coordinate grid in the sky map?
    */
    static
    bool showHorizontalGrid()
    {
      return self()->mShowHorizontalGrid;
    }

    /**
      Is Draw horizontal coordinate grid in the sky map? Immutable
    */
    static
    bool isShowHorizontalGridImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowHorizontalGrid" ) );
    }

    /**
      Set Draw local meridian line in the sky map?
    */
    static
    void setShowLocalMeridian( bool v )
    {
      if (v != self()->mShowLocalMeridian && !self()->isShowLocalMeridianImmutable()) {
        self()->mShowLocalMeridian = v;
        Q_EMIT self()->ShowLocalMeridianChanged();
      }
    }

    Q_PROPERTY(bool showLocalMeridian READ showLocalMeridian WRITE setShowLocalMeridian NOTIFY ShowLocalMeridianChanged)
    Q_PROPERTY(bool isShowLocalMeridianImmutable READ isShowLocalMeridianImmutable CONSTANT)
    /**
      Get Draw local meridian line in the sky map?
    */
    static
    bool showLocalMeridian()
    {
      return self()->mShowLocalMeridian;
    }

    /**
      Is Draw local meridian line in the sky map? Immutable
    */
    static
    bool isShowLocalMeridianImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowLocalMeridian" ) );
    }

    /**
      Set Draw opaque ground in the sky map?
    */
    static
    void setShowGround( bool v )
    {
      if (v != self()->mShowGround && !self()->isShowGroundImmutable()) {
        self()->mShowGround = v;
        Q_EMIT self()->ShowGroundChanged();
      }
    }

    Q_PROPERTY(bool showGround READ showGround WRITE setShowGround NOTIFY ShowGroundChanged)
    Q_PROPERTY(bool isShowGroundImmutable READ isShowGroundImmutable CONSTANT)
    /**
      Get Draw opaque ground in the sky map?
    */
    static
    bool showGround()
    {
      return self()->mShowGround;
    }

    /**
      Is Draw opaque ground in the sky map? Immutable
    */
    static
    bool isShowGroundImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowGround" ) );
    }

    /**
      Set Draw horizon line in the sky map?
    */
    static
    void setShowHorizon( bool v )
    {
      if (v != self()->mShowHorizon && !self()->isShowHorizonImmutable()) {
        self()->mShowHorizon = v;
        Q_EMIT self()->ShowHorizonChanged();
      }
    }

    Q_PROPERTY(bool showHorizon READ showHorizon WRITE setShowHorizon NOTIFY ShowHorizonChanged)
    Q_PROPERTY(bool isShowHorizonImmutable READ isShowHorizonImmutable CONSTANT)
    /**
      Get Draw horizon line in the sky map?
    */
    static
    bool showHorizon()
    {
      return self()->mShowHorizon;
    }

    /**
      Is Draw horizon line in the sky map? Immutable
    */
    static
    bool isShowHorizonImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowHorizon" ) );
    }

    /**
      Set Draw flags in the sky map?
    */
    static
    void setShowFlags( bool v )
    {
      if (v != self()->mShowFlags && !self()->isShowFlagsImmutable()) {
        self()->mShowFlags = v;
        Q_EMIT self()->ShowFlagsChanged();
      }
    }

    Q_PROPERTY(bool showFlags READ showFlags WRITE setShowFlags NOTIFY ShowFlagsChanged)
    Q_PROPERTY(bool isShowFlagsImmutable READ isShowFlagsImmutable CONSTANT)
    /**
      Get Draw flags in the sky map?
    */
    static
    bool showFlags()
    {
      return self()->mShowFlags;
    }

    /**
      Is Draw flags in the sky map? Immutable
    */
    static
    bool isShowFlagsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowFlags" ) );
    }

    /**
      Set Simulate daytime?
    */
    static
    void setSimulateDaytime( bool v )
    {
      if (v != self()->mSimulateDaytime && !self()->isSimulateDaytimeImmutable()) {
        self()->mSimulateDaytime = v;
        Q_EMIT self()->SimulateDaytimeChanged();
      }
    }

    Q_PROPERTY(bool simulateDaytime READ simulateDaytime WRITE setSimulateDaytime NOTIFY SimulateDaytimeChanged)
    Q_PROPERTY(bool isSimulateDaytimeImmutable READ isSimulateDaytimeImmutable CONSTANT)
    /**
      Get Simulate daytime?
    */
    static
    bool simulateDaytime()
    {
      return self()->mSimulateDaytime;
    }

    /**
      Is Simulate daytime? Immutable
    */
    static
    bool isSimulateDaytimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SimulateDaytime" ) );
    }

    /**
      Set Draw extra deep-sky objects in the sky map?
    */
    static
    void setShowOther( bool v )
    {
      if (v != self()->mShowOther && !self()->isShowOtherImmutable()) {
        self()->mShowOther = v;
        Q_EMIT self()->ShowOtherChanged();
      }
    }

    Q_PROPERTY(bool showOther READ showOther WRITE setShowOther NOTIFY ShowOtherChanged)
    Q_PROPERTY(bool isShowOtherImmutable READ isShowOtherImmutable CONSTANT)
    /**
      Get Draw extra deep-sky objects in the sky map?
    */
    static
    bool showOther()
    {
      return self()->mShowOther;
    }

    /**
      Is Draw extra deep-sky objects in the sky map? Immutable
    */
    static
    bool isShowOtherImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowOther" ) );
    }

    /**
      Set Draw Milky Way contour in the sky map?
    */
    static
    void setShowMilkyWay( bool v )
    {
      if (v != self()->mShowMilkyWay && !self()->isShowMilkyWayImmutable()) {
        self()->mShowMilkyWay = v;
        Q_EMIT self()->ShowMilkyWayChanged();
      }
    }

    Q_PROPERTY(bool showMilkyWay READ showMilkyWay WRITE setShowMilkyWay NOTIFY ShowMilkyWayChanged)
    Q_PROPERTY(bool isShowMilkyWayImmutable READ isShowMilkyWayImmutable CONSTANT)
    /**
      Get Draw Milky Way contour in the sky map?
    */
    static
    bool showMilkyWay()
    {
      return self()->mShowMilkyWay;
    }

    /**
      Is Draw Milky Way contour in the sky map? Immutable
    */
    static
    bool isShowMilkyWayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowMilkyWay" ) );
    }

    /**
      Set Fill Milky Way contour? (false means use outline only)
    */
    static
    void setFillMilkyWay( bool v )
    {
      if (v != self()->mFillMilkyWay && !self()->isFillMilkyWayImmutable()) {
        self()->mFillMilkyWay = v;
        Q_EMIT self()->FillMilkyWayChanged();
      }
    }

    Q_PROPERTY(bool fillMilkyWay READ fillMilkyWay WRITE setFillMilkyWay NOTIFY FillMilkyWayChanged)
    Q_PROPERTY(bool isFillMilkyWayImmutable READ isFillMilkyWayImmutable CONSTANT)
    /**
      Get Fill Milky Way contour? (false means use outline only)
    */
    static
    bool fillMilkyWay()
    {
      return self()->mFillMilkyWay;
    }

    /**
      Is Fill Milky Way contour? (false means use outline only) Immutable
    */
    static
    bool isFillMilkyWayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FillMilkyWay" ) );
    }

    /**
      Set Meta-option for all planets in the sky map.
    */
    static
    void setShowSolarSystem( bool v )
    {
      if (v != self()->mShowSolarSystem && !self()->isShowSolarSystemImmutable()) {
        self()->mShowSolarSystem = v;
        Q_EMIT self()->ShowSolarSystemChanged();
      }
    }

    Q_PROPERTY(bool showSolarSystem READ showSolarSystem WRITE setShowSolarSystem NOTIFY ShowSolarSystemChanged)
    Q_PROPERTY(bool isShowSolarSystemImmutable READ isShowSolarSystemImmutable CONSTANT)
    /**
      Get Meta-option for all planets in the sky map.
    */
    static
    bool showSolarSystem()
    {
      return self()->mShowSolarSystem;
    }

    /**
      Is Meta-option for all planets in the sky map. Immutable
    */
    static
    bool isShowSolarSystemImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSolarSystem" ) );
    }

    /**
      Set Draw planets as images in the sky map?
    */
    static
    void setShowPlanetImages( bool v )
    {
      if (v != self()->mShowPlanetImages && !self()->isShowPlanetImagesImmutable()) {
        self()->mShowPlanetImages = v;
        Q_EMIT self()->ShowPlanetImagesChanged();
      }
    }

    Q_PROPERTY(bool showPlanetImages READ showPlanetImages WRITE setShowPlanetImages NOTIFY ShowPlanetImagesChanged)
    Q_PROPERTY(bool isShowPlanetImagesImmutable READ isShowPlanetImagesImmutable CONSTANT)
    /**
      Get Draw planets as images in the sky map?
    */
    static
    bool showPlanetImages()
    {
      return self()->mShowPlanetImages;
    }

    /**
      Is Draw planets as images in the sky map? Immutable
    */
    static
    bool isShowPlanetImagesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowPlanetImages" ) );
    }

    /**
      Set Label planet names in the sky map?
    */
    static
    void setShowPlanetNames( bool v )
    {
      if (v != self()->mShowPlanetNames && !self()->isShowPlanetNamesImmutable()) {
        self()->mShowPlanetNames = v;
        Q_EMIT self()->ShowPlanetNamesChanged();
      }
    }

    Q_PROPERTY(bool showPlanetNames READ showPlanetNames WRITE setShowPlanetNames NOTIFY ShowPlanetNamesChanged)
    Q_PROPERTY(bool isShowPlanetNamesImmutable READ isShowPlanetNamesImmutable CONSTANT)
    /**
      Get Label planet names in the sky map?
    */
    static
    bool showPlanetNames()
    {
      return self()->mShowPlanetNames;
    }

    /**
      Is Label planet names in the sky map? Immutable
    */
    static
    bool isShowPlanetNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowPlanetNames" ) );
    }

    /**
      Set Draw Sun in the sky map?
    */
    static
    void setShowSun( bool v )
    {
      if (v != self()->mShowSun && !self()->isShowSunImmutable()) {
        self()->mShowSun = v;
        Q_EMIT self()->ShowSunChanged();
      }
    }

    Q_PROPERTY(bool showSun READ showSun WRITE setShowSun NOTIFY ShowSunChanged)
    Q_PROPERTY(bool isShowSunImmutable READ isShowSunImmutable CONSTANT)
    /**
      Get Draw Sun in the sky map?
    */
    static
    bool showSun()
    {
      return self()->mShowSun;
    }

    /**
      Is Draw Sun in the sky map? Immutable
    */
    static
    bool isShowSunImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSun" ) );
    }

    /**
      Set Increase the size of the Sun by this factor.
    */
    static
    void setSunScale( double v )
    {
      if (v != self()->mSunScale && !self()->isSunScaleImmutable()) {
        self()->mSunScale = v;
        Q_EMIT self()->SunScaleChanged();
      }
    }

    Q_PROPERTY(double sunScale READ sunScale WRITE setSunScale NOTIFY SunScaleChanged)
    Q_PROPERTY(bool isSunScaleImmutable READ isSunScaleImmutable CONSTANT)
    /**
      Get Increase the size of the Sun by this factor.
    */
    static
    double sunScale()
    {
      return self()->mSunScale;
    }

    /**
      Is Increase the size of the Sun by this factor. Immutable
    */
    static
    bool isSunScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SunScale" ) );
    }

    /**
      Set Draw Moon in the sky map?
    */
    static
    void setShowMoon( bool v )
    {
      if (v != self()->mShowMoon && !self()->isShowMoonImmutable()) {
        self()->mShowMoon = v;
        Q_EMIT self()->ShowMoonChanged();
      }
    }

    Q_PROPERTY(bool showMoon READ showMoon WRITE setShowMoon NOTIFY ShowMoonChanged)
    Q_PROPERTY(bool isShowMoonImmutable READ isShowMoonImmutable CONSTANT)
    /**
      Get Draw Moon in the sky map?
    */
    static
    bool showMoon()
    {
      return self()->mShowMoon;
    }

    /**
      Is Draw Moon in the sky map? Immutable
    */
    static
    bool isShowMoonImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowMoon" ) );
    }

    /**
      Set Increase the size of the Moon by this factor.
    */
    static
    void setMoonScale( double v )
    {
      if (v != self()->mMoonScale && !self()->isMoonScaleImmutable()) {
        self()->mMoonScale = v;
        Q_EMIT self()->MoonScaleChanged();
      }
    }

    Q_PROPERTY(double moonScale READ moonScale WRITE setMoonScale NOTIFY MoonScaleChanged)
    Q_PROPERTY(bool isMoonScaleImmutable READ isMoonScaleImmutable CONSTANT)
    /**
      Get Increase the size of the Moon by this factor.
    */
    static
    double moonScale()
    {
      return self()->mMoonScale;
    }

    /**
      Is Increase the size of the Moon by this factor. Immutable
    */
    static
    bool isMoonScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MoonScale" ) );
    }

    /**
      Set Draw Mercury in the sky map?
    */
    static
    void setShowMercury( bool v )
    {
      if (v != self()->mShowMercury && !self()->isShowMercuryImmutable()) {
        self()->mShowMercury = v;
        Q_EMIT self()->ShowMercuryChanged();
      }
    }

    Q_PROPERTY(bool showMercury READ showMercury WRITE setShowMercury NOTIFY ShowMercuryChanged)
    Q_PROPERTY(bool isShowMercuryImmutable READ isShowMercuryImmutable CONSTANT)
    /**
      Get Draw Mercury in the sky map?
    */
    static
    bool showMercury()
    {
      return self()->mShowMercury;
    }

    /**
      Is Draw Mercury in the sky map? Immutable
    */
    static
    bool isShowMercuryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowMercury" ) );
    }

    /**
      Set Draw Venus in the sky map?
    */
    static
    void setShowVenus( bool v )
    {
      if (v != self()->mShowVenus && !self()->isShowVenusImmutable()) {
        self()->mShowVenus = v;
        Q_EMIT self()->ShowVenusChanged();
      }
    }

    Q_PROPERTY(bool showVenus READ showVenus WRITE setShowVenus NOTIFY ShowVenusChanged)
    Q_PROPERTY(bool isShowVenusImmutable READ isShowVenusImmutable CONSTANT)
    /**
      Get Draw Venus in the sky map?
    */
    static
    bool showVenus()
    {
      return self()->mShowVenus;
    }

    /**
      Is Draw Venus in the sky map? Immutable
    */
    static
    bool isShowVenusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowVenus" ) );
    }

    /**
      Set Draw Mars in the sky map?
    */
    static
    void setShowMars( bool v )
    {
      if (v != self()->mShowMars && !self()->isShowMarsImmutable()) {
        self()->mShowMars = v;
        Q_EMIT self()->ShowMarsChanged();
      }
    }

    Q_PROPERTY(bool showMars READ showMars WRITE setShowMars NOTIFY ShowMarsChanged)
    Q_PROPERTY(bool isShowMarsImmutable READ isShowMarsImmutable CONSTANT)
    /**
      Get Draw Mars in the sky map?
    */
    static
    bool showMars()
    {
      return self()->mShowMars;
    }

    /**
      Is Draw Mars in the sky map? Immutable
    */
    static
    bool isShowMarsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowMars" ) );
    }

    /**
      Set Draw Jupiter in the sky map?
    */
    static
    void setShowJupiter( bool v )
    {
      if (v != self()->mShowJupiter && !self()->isShowJupiterImmutable()) {
        self()->mShowJupiter = v;
        Q_EMIT self()->ShowJupiterChanged();
      }
    }

    Q_PROPERTY(bool showJupiter READ showJupiter WRITE setShowJupiter NOTIFY ShowJupiterChanged)
    Q_PROPERTY(bool isShowJupiterImmutable READ isShowJupiterImmutable CONSTANT)
    /**
      Get Draw Jupiter in the sky map?
    */
    static
    bool showJupiter()
    {
      return self()->mShowJupiter;
    }

    /**
      Is Draw Jupiter in the sky map? Immutable
    */
    static
    bool isShowJupiterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowJupiter" ) );
    }

    /**
      Set Draw Saturn in the sky map?
    */
    static
    void setShowSaturn( bool v )
    {
      if (v != self()->mShowSaturn && !self()->isShowSaturnImmutable()) {
        self()->mShowSaturn = v;
        Q_EMIT self()->ShowSaturnChanged();
      }
    }

    Q_PROPERTY(bool showSaturn READ showSaturn WRITE setShowSaturn NOTIFY ShowSaturnChanged)
    Q_PROPERTY(bool isShowSaturnImmutable READ isShowSaturnImmutable CONSTANT)
    /**
      Get Draw Saturn in the sky map?
    */
    static
    bool showSaturn()
    {
      return self()->mShowSaturn;
    }

    /**
      Is Draw Saturn in the sky map? Immutable
    */
    static
    bool isShowSaturnImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSaturn" ) );
    }

    /**
      Set Draw Uranus in the sky map?
    */
    static
    void setShowUranus( bool v )
    {
      if (v != self()->mShowUranus && !self()->isShowUranusImmutable()) {
        self()->mShowUranus = v;
        Q_EMIT self()->ShowUranusChanged();
      }
    }

    Q_PROPERTY(bool showUranus READ showUranus WRITE setShowUranus NOTIFY ShowUranusChanged)
    Q_PROPERTY(bool isShowUranusImmutable READ isShowUranusImmutable CONSTANT)
    /**
      Get Draw Uranus in the sky map?
    */
    static
    bool showUranus()
    {
      return self()->mShowUranus;
    }

    /**
      Is Draw Uranus in the sky map? Immutable
    */
    static
    bool isShowUranusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowUranus" ) );
    }

    /**
      Set Draw Neptune in the sky map?
    */
    static
    void setShowNeptune( bool v )
    {
      if (v != self()->mShowNeptune && !self()->isShowNeptuneImmutable()) {
        self()->mShowNeptune = v;
        Q_EMIT self()->ShowNeptuneChanged();
      }
    }

    Q_PROPERTY(bool showNeptune READ showNeptune WRITE setShowNeptune NOTIFY ShowNeptuneChanged)
    Q_PROPERTY(bool isShowNeptuneImmutable READ isShowNeptuneImmutable CONSTANT)
    /**
      Get Draw Neptune in the sky map?
    */
    static
    bool showNeptune()
    {
      return self()->mShowNeptune;
    }

    /**
      Is Draw Neptune in the sky map? Immutable
    */
    static
    bool isShowNeptuneImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowNeptune" ) );
    }

    /**
      Set Draw Pluto in the sky map?
    */
    static
    void setShowPluto( bool v )
    {
      if (v != self()->mShowPluto && !self()->isShowPlutoImmutable()) {
        self()->mShowPluto = v;
        Q_EMIT self()->ShowPlutoChanged();
      }
    }

    Q_PROPERTY(bool showPluto READ showPluto WRITE setShowPluto NOTIFY ShowPlutoChanged)
    Q_PROPERTY(bool isShowPlutoImmutable READ isShowPlutoImmutable CONSTANT)
    /**
      Get Draw Pluto in the sky map?
    */
    static
    bool showPluto()
    {
      return self()->mShowPluto;
    }

    /**
      Is Draw Pluto in the sky map? Immutable
    */
    static
    bool isShowPlutoImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowPluto" ) );
    }

    /**
      Set Draw stars in the sky map?
    */
    static
    void setShowStars( bool v )
    {
      if (v != self()->mShowStars && !self()->isShowStarsImmutable()) {
        self()->mShowStars = v;
        Q_EMIT self()->ShowStarsChanged();
      }
    }

    Q_PROPERTY(bool showStars READ showStars WRITE setShowStars NOTIFY ShowStarsChanged)
    Q_PROPERTY(bool isShowStarsImmutable READ isShowStarsImmutable CONSTANT)
    /**
      Get Draw stars in the sky map?
    */
    static
    bool showStars()
    {
      return self()->mShowStars;
    }

    /**
      Is Draw stars in the sky map? Immutable
    */
    static
    bool isShowStarsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowStars" ) );
    }

    /**
      Set Label star magnitudes in the sky map?
    */
    static
    void setShowStarMagnitudes( bool v )
    {
      if (v != self()->mShowStarMagnitudes && !self()->isShowStarMagnitudesImmutable()) {
        self()->mShowStarMagnitudes = v;
        Q_EMIT self()->ShowStarMagnitudesChanged();
      }
    }

    Q_PROPERTY(bool showStarMagnitudes READ showStarMagnitudes WRITE setShowStarMagnitudes NOTIFY ShowStarMagnitudesChanged)
    Q_PROPERTY(bool isShowStarMagnitudesImmutable READ isShowStarMagnitudesImmutable CONSTANT)
    /**
      Get Label star magnitudes in the sky map?
    */
    static
    bool showStarMagnitudes()
    {
      return self()->mShowStarMagnitudes;
    }

    /**
      Is Label star magnitudes in the sky map? Immutable
    */
    static
    bool isShowStarMagnitudesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowStarMagnitudes" ) );
    }

    /**
      Set Display catalog stars when HIPS is shown.
    */
    static
    void setShowStarsOverHIPS( bool v )
    {
      if (v != self()->mShowStarsOverHIPS && !self()->isShowStarsOverHIPSImmutable()) {
        self()->mShowStarsOverHIPS = v;
        Q_EMIT self()->ShowStarsOverHIPSChanged();
      }
    }

    Q_PROPERTY(bool showStarsOverHIPS READ showStarsOverHIPS WRITE setShowStarsOverHIPS NOTIFY ShowStarsOverHIPSChanged)
    Q_PROPERTY(bool isShowStarsOverHIPSImmutable READ isShowStarsOverHIPSImmutable CONSTANT)
    /**
      Get Display catalog stars when HIPS is shown.
    */
    static
    bool showStarsOverHIPS()
    {
      return self()->mShowStarsOverHIPS;
    }

    /**
      Is Display catalog stars when HIPS is shown. Immutable
    */
    static
    bool isShowStarsOverHIPSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowStarsOverHIPS" ) );
    }

    /**
      Set Label star names in the sky map?
    */
    static
    void setShowStarNames( bool v )
    {
      if (v != self()->mShowStarNames && !self()->isShowStarNamesImmutable()) {
        self()->mShowStarNames = v;
        Q_EMIT self()->ShowStarNamesChanged();
      }
    }

    Q_PROPERTY(bool showStarNames READ showStarNames WRITE setShowStarNames NOTIFY ShowStarNamesChanged)
    Q_PROPERTY(bool isShowStarNamesImmutable READ isShowStarNamesImmutable CONSTANT)
    /**
      Get Label star names in the sky map?
    */
    static
    bool showStarNames()
    {
      return self()->mShowStarNames;
    }

    /**
      Is Label star names in the sky map? Immutable
    */
    static
    bool isShowStarNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowStarNames" ) );
    }

    /**
      Set Label deep-sky object magnitudes in the sky map?
    */
    static
    void setShowDeepSkyMagnitudes( bool v )
    {
      if (v != self()->mShowDeepSkyMagnitudes && !self()->isShowDeepSkyMagnitudesImmutable()) {
        self()->mShowDeepSkyMagnitudes = v;
        Q_EMIT self()->ShowDeepSkyMagnitudesChanged();
      }
    }

    Q_PROPERTY(bool showDeepSkyMagnitudes READ showDeepSkyMagnitudes WRITE setShowDeepSkyMagnitudes NOTIFY ShowDeepSkyMagnitudesChanged)
    Q_PROPERTY(bool isShowDeepSkyMagnitudesImmutable READ isShowDeepSkyMagnitudesImmutable CONSTANT)
    /**
      Get Label deep-sky object magnitudes in the sky map?
    */
    static
    bool showDeepSkyMagnitudes()
    {
      return self()->mShowDeepSkyMagnitudes;
    }

    /**
      Is Label deep-sky object magnitudes in the sky map? Immutable
    */
    static
    bool isShowDeepSkyMagnitudesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowDeepSkyMagnitudes" ) );
    }

    /**
      Set Label deep-sky objects in the sky map?
    */
    static
    void setShowDeepSkyNames( bool v )
    {
      if (v != self()->mShowDeepSkyNames && !self()->isShowDeepSkyNamesImmutable()) {
        self()->mShowDeepSkyNames = v;
        Q_EMIT self()->ShowDeepSkyNamesChanged();
      }
    }

    Q_PROPERTY(bool showDeepSkyNames READ showDeepSkyNames WRITE setShowDeepSkyNames NOTIFY ShowDeepSkyNamesChanged)
    Q_PROPERTY(bool isShowDeepSkyNamesImmutable READ isShowDeepSkyNamesImmutable CONSTANT)
    /**
      Get Label deep-sky objects in the sky map?
    */
    static
    bool showDeepSkyNames()
    {
      return self()->mShowDeepSkyNames;
    }

    /**
      Is Label deep-sky objects in the sky map? Immutable
    */
    static
    bool isShowDeepSkyNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowDeepSkyNames" ) );
    }

    /**
      Set Draw Mosaic Panel in the sky map?
    */
    static
    void setShowMosaicPanel( bool v )
    {
      if (v != self()->mShowMosaicPanel && !self()->isShowMosaicPanelImmutable()) {
        self()->mShowMosaicPanel = v;
        Q_EMIT self()->ShowMosaicPanelChanged();
      }
    }

    Q_PROPERTY(bool showMosaicPanel READ showMosaicPanel WRITE setShowMosaicPanel NOTIFY ShowMosaicPanelChanged)
    Q_PROPERTY(bool isShowMosaicPanelImmutable READ isShowMosaicPanelImmutable CONSTANT)
    /**
      Get Draw Mosaic Panel in the sky map?
    */
    static
    bool showMosaicPanel()
    {
      return self()->mShowMosaicPanel;
    }

    /**
      Is Draw Mosaic Panel in the sky map? Immutable
    */
    static
    bool isShowMosaicPanelImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowMosaicPanel" ) );
    }

    /**
      Set Minimum timescale for forced-slewing mode
    */
    static
    void setSlewTimeScale( double v )
    {
      if (v != self()->mSlewTimeScale && !self()->isSlewTimeScaleImmutable()) {
        self()->mSlewTimeScale = v;
        Q_EMIT self()->SlewTimeScaleChanged();
      }
    }

    Q_PROPERTY(double slewTimeScale READ slewTimeScale WRITE setSlewTimeScale NOTIFY SlewTimeScaleChanged)
    Q_PROPERTY(bool isSlewTimeScaleImmutable READ isSlewTimeScaleImmutable CONSTANT)
    /**
      Get Minimum timescale for forced-slewing mode
    */
    static
    double slewTimeScale()
    {
      return self()->mSlewTimeScale;
    }

    /**
      Is Minimum timescale for forced-slewing mode Immutable
    */
    static
    bool isSlewTimeScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SlewTimeScale" ) );
    }

    /**
      Set InfoBoxes Background fill mode
    */
    static
    void setBoxBGMode( uint v )
    {
      if (v != self()->mBoxBGMode && !self()->isBoxBGModeImmutable()) {
        self()->mBoxBGMode = v;
        Q_EMIT self()->BoxBGModeChanged();
      }
    }

    Q_PROPERTY(uint boxBGMode READ boxBGMode WRITE setBoxBGMode NOTIFY BoxBGModeChanged)
    Q_PROPERTY(bool isBoxBGModeImmutable READ isBoxBGModeImmutable CONSTANT)
    /**
      Get InfoBoxes Background fill mode
    */
    static
    uint boxBGMode()
    {
      return self()->mBoxBGMode;
    }

    /**
      Is InfoBoxes Background fill mode Immutable
    */
    static
    bool isBoxBGModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BoxBGMode" ) );
    }

    /**
      Set Mapping projection algorithm
    */
    static
    void setProjection( uint v )
    {
      if (v != self()->mProjection && !self()->isProjectionImmutable()) {
        self()->mProjection = v;
        Q_EMIT self()->ProjectionChanged();
      }
    }

    Q_PROPERTY(uint projection READ projection WRITE setProjection NOTIFY ProjectionChanged)
    Q_PROPERTY(bool isProjectionImmutable READ isProjectionImmutable CONSTANT)
    /**
      Get Mapping projection algorithm
    */
    static
    uint projection()
    {
      return self()->mProjection;
    }

    /**
      Is Mapping projection algorithm Immutable
    */
    static
    bool isProjectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Projection" ) );
    }

    /**
      Set Use abbreviated constellation names?
    */
    static
    void setUseAbbrevConstellNames( bool v )
    {
      if (v != self()->mUseAbbrevConstellNames && !self()->isUseAbbrevConstellNamesImmutable()) {
        self()->mUseAbbrevConstellNames = v;
        Q_EMIT self()->UseAbbrevConstellNamesChanged();
      }
    }

    Q_PROPERTY(bool useAbbrevConstellNames READ useAbbrevConstellNames WRITE setUseAbbrevConstellNames NOTIFY UseAbbrevConstellNamesChanged)
    Q_PROPERTY(bool isUseAbbrevConstellNamesImmutable READ isUseAbbrevConstellNamesImmutable CONSTANT)
    /**
      Get Use abbreviated constellation names?
    */
    static
    bool useAbbrevConstellNames()
    {
      return self()->mUseAbbrevConstellNames;
    }

    /**
      Is Use abbreviated constellation names? Immutable
    */
    static
    bool isUseAbbrevConstellNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseAbbrevConstellNames" ) );
    }

    /**
      Set Use Latin constellation names?
    */
    static
    void setUseLatinConstellNames( bool v )
    {
      if (v != self()->mUseLatinConstellNames && !self()->isUseLatinConstellNamesImmutable()) {
        self()->mUseLatinConstellNames = v;
        Q_EMIT self()->UseLatinConstellNamesChanged();
      }
    }

    Q_PROPERTY(bool useLatinConstellNames READ useLatinConstellNames WRITE setUseLatinConstellNames NOTIFY UseLatinConstellNamesChanged)
    Q_PROPERTY(bool isUseLatinConstellNamesImmutable READ isUseLatinConstellNamesImmutable CONSTANT)
    /**
      Get Use Latin constellation names?
    */
    static
    bool useLatinConstellNames()
    {
      return self()->mUseLatinConstellNames;
    }

    /**
      Is Use Latin constellation names? Immutable
    */
    static
    bool isUseLatinConstellNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseLatinConstellNames" ) );
    }

    /**
      Set Use localized constellation names?
    */
    static
    void setUseLocalConstellNames( bool v )
    {
      if (v != self()->mUseLocalConstellNames && !self()->isUseLocalConstellNamesImmutable()) {
        self()->mUseLocalConstellNames = v;
        Q_EMIT self()->UseLocalConstellNamesChanged();
      }
    }

    Q_PROPERTY(bool useLocalConstellNames READ useLocalConstellNames WRITE setUseLocalConstellNames NOTIFY UseLocalConstellNamesChanged)
    Q_PROPERTY(bool isUseLocalConstellNamesImmutable READ isUseLocalConstellNamesImmutable CONSTANT)
    /**
      Get Use localized constellation names?
    */
    static
    bool useLocalConstellNames()
    {
      return self()->mUseLocalConstellNames;
    }

    /**
      Is Use localized constellation names? Immutable
    */
    static
    bool isUseLocalConstellNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseLocalConstellNames" ) );
    }

    /**
      Set Use horizontal coordinate system?
    */
    static
    void setUseAltAz( bool v )
    {
      if (v != self()->mUseAltAz && !self()->isUseAltAzImmutable()) {
        self()->mUseAltAz = v;
        Q_EMIT self()->UseAltAzChanged();
      }
    }

    Q_PROPERTY(bool useAltAz READ useAltAz WRITE setUseAltAz NOTIFY UseAltAzChanged)
    Q_PROPERTY(bool isUseAltAzImmutable READ isUseAltAzImmutable CONSTANT)
    /**
      Get Use horizontal coordinate system?
    */
    static
    bool useAltAz()
    {
      return self()->mUseAltAz;
    }

    /**
      Is Use horizontal coordinate system? Immutable
    */
    static
    bool isUseAltAzImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseAltAz" ) );
    }

    /**
      Set Automatically label focused object?
    */
    static
    void setUseAutoLabel( bool v )
    {
      if (v != self()->mUseAutoLabel && !self()->isUseAutoLabelImmutable()) {
        self()->mUseAutoLabel = v;
        Q_EMIT self()->UseAutoLabelChanged();
      }
    }

    Q_PROPERTY(bool useAutoLabel READ useAutoLabel WRITE setUseAutoLabel NOTIFY UseAutoLabelChanged)
    Q_PROPERTY(bool isUseAutoLabelImmutable READ isUseAutoLabelImmutable CONSTANT)
    /**
      Get Automatically label focused object?
    */
    static
    bool useAutoLabel()
    {
      return self()->mUseAutoLabel;
    }

    /**
      Is Automatically label focused object? Immutable
    */
    static
    bool isUseAutoLabelImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseAutoLabel" ) );
    }

    /**
      Set Automatically add trail to centered solar system body?
    */
    static
    void setUseAutoTrail( bool v )
    {
      if (v != self()->mUseAutoTrail && !self()->isUseAutoTrailImmutable()) {
        self()->mUseAutoTrail = v;
        Q_EMIT self()->UseAutoTrailChanged();
      }
    }

    Q_PROPERTY(bool useAutoTrail READ useAutoTrail WRITE setUseAutoTrail NOTIFY UseAutoTrailChanged)
    Q_PROPERTY(bool isUseAutoTrailImmutable READ isUseAutoTrailImmutable CONSTANT)
    /**
      Get Automatically add trail to centered solar system body?
    */
    static
    bool useAutoTrail()
    {
      return self()->mUseAutoTrail;
    }

    /**
      Is Automatically add trail to centered solar system body? Immutable
    */
    static
    bool isUseAutoTrailImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseAutoTrail" ) );
    }

    /**
      Set Add temporary label on mouse hover?
    */
    static
    void setUseHoverLabel( bool v )
    {
      if (v != self()->mUseHoverLabel && !self()->isUseHoverLabelImmutable()) {
        self()->mUseHoverLabel = v;
        Q_EMIT self()->UseHoverLabelChanged();
      }
    }

    Q_PROPERTY(bool useHoverLabel READ useHoverLabel WRITE setUseHoverLabel NOTIFY UseHoverLabelChanged)
    Q_PROPERTY(bool isUseHoverLabelImmutable READ isUseHoverLabelImmutable CONSTANT)
    /**
      Get Add temporary label on mouse hover?
    */
    static
    bool useHoverLabel()
    {
      return self()->mUseHoverLabel;
    }

    /**
      Is Add temporary label on mouse hover? Immutable
    */
    static
    bool isUseHoverLabelImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseHoverLabel" ) );
    }

    /**
      Set Correct positions for atmospheric refraction?
    */
    static
    void setUseRefraction( bool v )
    {
      if (v != self()->mUseRefraction && !self()->isUseRefractionImmutable()) {
        self()->mUseRefraction = v;
        Q_EMIT self()->UseRefractionChanged();
      }
    }

    Q_PROPERTY(bool useRefraction READ useRefraction WRITE setUseRefraction NOTIFY UseRefractionChanged)
    Q_PROPERTY(bool isUseRefractionImmutable READ isUseRefractionImmutable CONSTANT)
    /**
      Get Correct positions for atmospheric refraction?
    */
    static
    bool useRefraction()
    {
      return self()->mUseRefraction;
    }

    /**
      Is Correct positions for atmospheric refraction? Immutable
    */
    static
    bool isUseRefractionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseRefraction" ) );
    }

    /**
      Set Apply relativistic corrections due to the bending of light in sun's gravitational field
    */
    static
    void setUseRelativistic( bool v )
    {
      if (v != self()->mUseRelativistic && !self()->isUseRelativisticImmutable()) {
        self()->mUseRelativistic = v;
        Q_EMIT self()->UseRelativisticChanged();
      }
    }

    Q_PROPERTY(bool useRelativistic READ useRelativistic WRITE setUseRelativistic NOTIFY UseRelativisticChanged)
    Q_PROPERTY(bool isUseRelativisticImmutable READ isUseRelativisticImmutable CONSTANT)
    /**
      Get Apply relativistic corrections due to the bending of light in sun's gravitational field
    */
    static
    bool useRelativistic()
    {
      return self()->mUseRelativistic;
    }

    /**
      Is Apply relativistic corrections due to the bending of light in sun's gravitational field Immutable
    */
    static
    bool isUseRelativisticImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseRelativistic" ) );
    }

    /**
      Set Use antialiasing when drawing the screen?
    */
    static
    void setUseAntialias( bool v )
    {
      if (v != self()->mUseAntialias && !self()->isUseAntialiasImmutable()) {
        self()->mUseAntialias = v;
        Q_EMIT self()->UseAntialiasChanged();
      }
    }

    Q_PROPERTY(bool useAntialias READ useAntialias WRITE setUseAntialias NOTIFY UseAntialiasChanged)
    Q_PROPERTY(bool isUseAntialiasImmutable READ isUseAntialiasImmutable CONSTANT)
    /**
      Get Use antialiasing when drawing the screen?
    */
    static
    bool useAntialias()
    {
      return self()->mUseAntialias;
    }

    /**
      Is Use antialiasing when drawing the screen? Immutable
    */
    static
    bool isUseAntialiasImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseAntialias" ) );
    }

    /**
      Set Zoom Factor, in pixels per radian
    */
    static
    void setZoomFactor( double v )
    {
      if (v < 250.)
      {
        qDebug() << "setZoomFactor: value " << v << " is less than the minimum value of 250.";
        v = 250.;
      }

      if (v > 5000000.)
      {
        qDebug() << "setZoomFactor: value " << v << " is greater than the maximum value of 5000000.";
        v = 5000000.;
      }

      if (v != self()->mZoomFactor && !self()->isZoomFactorImmutable()) {
        self()->mZoomFactor = v;
        Q_EMIT self()->ZoomFactorChanged();
      }
    }

    Q_PROPERTY(double zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY ZoomFactorChanged)
    Q_PROPERTY(bool isZoomFactorImmutable READ isZoomFactorImmutable CONSTANT)
    /**
      Get Zoom Factor, in pixels per radian
    */
    static
    double zoomFactor()
    {
      return self()->mZoomFactor;
    }

    /**
      Is Zoom Factor, in pixels per radian Immutable
    */
    static
    bool isZoomFactorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ZoomFactor" ) );
    }

    /**
      Set Angle by which the sky map is rotated
    */
    static
    void setSkyRotation( double v )
    {
      if (v < 0.)
      {
        qDebug() << "setSkyRotation: value " << v << " is less than the minimum value of 0.";
        v = 0.;
      }

      if (v > 359.9999)
      {
        qDebug() << "setSkyRotation: value " << v << " is greater than the maximum value of 359.9999";
        v = 359.9999;
      }

      if (v != self()->mSkyRotation && !self()->isSkyRotationImmutable()) {
        self()->mSkyRotation = v;
        Q_EMIT self()->SkyRotationChanged();
      }
    }

    Q_PROPERTY(double skyRotation READ skyRotation WRITE setSkyRotation NOTIFY SkyRotationChanged)
    Q_PROPERTY(bool isSkyRotationImmutable READ isSkyRotationImmutable CONSTANT)
    /**
      Get Angle by which the sky map is rotated
    */
    static
    double skyRotation()
    {
      return self()->mSkyRotation;
    }

    /**
      Is Angle by which the sky map is rotated Immutable
    */
    static
    bool isSkyRotationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SkyRotation" ) );
    }

    /**
      Set Mirrors the sky map
    */
    static
    void setMirrorSkyMap( bool v )
    {
      if (v != self()->mMirrorSkyMap && !self()->isMirrorSkyMapImmutable()) {
        self()->mMirrorSkyMap = v;
        Q_EMIT self()->MirrorSkyMapChanged();
      }
    }

    Q_PROPERTY(bool mirrorSkyMap READ mirrorSkyMap WRITE setMirrorSkyMap NOTIFY MirrorSkyMapChanged)
    Q_PROPERTY(bool isMirrorSkyMapImmutable READ isMirrorSkyMapImmutable CONSTANT)
    /**
      Get Mirrors the sky map
    */
    static
    bool mirrorSkyMap()
    {
      return self()->mMirrorSkyMap;
    }

    /**
      Is Mirrors the sky map Immutable
    */
    static
    bool isMirrorSkyMapImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MirrorSkyMap" ) );
    }

    /**
      Set Orients the sky-map to account for an erect observer at the eyepiece
    */
    static
    void setErectObserverCorrection( int v )
    {
      if (v != self()->mErectObserverCorrection && !self()->isErectObserverCorrectionImmutable()) {
        self()->mErectObserverCorrection = v;
        Q_EMIT self()->ErectObserverCorrectionChanged();
      }
    }

    Q_PROPERTY(int erectObserverCorrection READ erectObserverCorrection WRITE setErectObserverCorrection NOTIFY ErectObserverCorrectionChanged)
    Q_PROPERTY(bool isErectObserverCorrectionImmutable READ isErectObserverCorrectionImmutable CONSTANT)
    /**
      Get Orients the sky-map to account for an erect observer at the eyepiece
    */
    static
    int erectObserverCorrection()
    {
      return self()->mErectObserverCorrection;
    }

    /**
      Is Orients the sky-map to account for an erect observer at the eyepiece Immutable
    */
    static
    bool isErectObserverCorrectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ErectObserverCorrection" ) );
    }

    /**
      Set Zoom scroll sensitivity.
    */
    static
    void setZoomScrollFactor( double v )
    {
      if (v < 0.01)
      {
        qDebug() << "setZoomScrollFactor: value " << v << " is less than the minimum value of 0.01";
        v = 0.01;
      }

      if (v > 1.0)
      {
        qDebug() << "setZoomScrollFactor: value " << v << " is greater than the maximum value of 1.0";
        v = 1.0;
      }

      if (v != self()->mZoomScrollFactor && !self()->isZoomScrollFactorImmutable()) {
        self()->mZoomScrollFactor = v;
        Q_EMIT self()->ZoomScrollFactorChanged();
      }
    }

    Q_PROPERTY(double zoomScrollFactor READ zoomScrollFactor WRITE setZoomScrollFactor NOTIFY ZoomScrollFactorChanged)
    Q_PROPERTY(bool isZoomScrollFactorImmutable READ isZoomScrollFactorImmutable CONSTANT)
    /**
      Get Zoom scroll sensitivity.
    */
    static
    double zoomScrollFactor()
    {
      return self()->mZoomScrollFactor;
    }

    /**
      Is Zoom scroll sensitivity. Immutable
    */
    static
    bool isZoomScrollFactorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ZoomScrollFactor" ) );
    }

    /**
      Set Faint limit for asteroids
    */
    static
    void setMagLimitAsteroid( double v )
    {
      if (v != self()->mMagLimitAsteroid && !self()->isMagLimitAsteroidImmutable()) {
        self()->mMagLimitAsteroid = v;
        Q_EMIT self()->MagLimitAsteroidChanged();
      }
    }

    Q_PROPERTY(double magLimitAsteroid READ magLimitAsteroid WRITE setMagLimitAsteroid NOTIFY MagLimitAsteroidChanged)
    Q_PROPERTY(bool isMagLimitAsteroidImmutable READ isMagLimitAsteroidImmutable CONSTANT)
    /**
      Get Faint limit for asteroids
    */
    static
    double magLimitAsteroid()
    {
      return self()->mMagLimitAsteroid;
    }

    /**
      Is Faint limit for asteroids Immutable
    */
    static
    bool isMagLimitAsteroidImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MagLimitAsteroid" ) );
    }

    /**
      Set Maximum magnitude for asteroids to be downloaded from JPL.
    */
    static
    void setMagLimitAsteroidDownload( double v )
    {
      if (v != self()->mMagLimitAsteroidDownload && !self()->isMagLimitAsteroidDownloadImmutable()) {
        self()->mMagLimitAsteroidDownload = v;
        Q_EMIT self()->MagLimitAsteroidDownloadChanged();
      }
    }

    Q_PROPERTY(double magLimitAsteroidDownload READ magLimitAsteroidDownload WRITE setMagLimitAsteroidDownload NOTIFY MagLimitAsteroidDownloadChanged)
    Q_PROPERTY(bool isMagLimitAsteroidDownloadImmutable READ isMagLimitAsteroidDownloadImmutable CONSTANT)
    /**
      Get Maximum magnitude for asteroids to be downloaded from JPL.
    */
    static
    double magLimitAsteroidDownload()
    {
      return self()->mMagLimitAsteroidDownload;
    }

    /**
      Is Maximum magnitude for asteroids to be downloaded from JPL. Immutable
    */
    static
    bool isMagLimitAsteroidDownloadImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MagLimitAsteroidDownload" ) );
    }

    /**
      Set Label density for asteroid names
    */
    static
    void setAsteroidLabelDensity( double v )
    {
      if (v != self()->mAsteroidLabelDensity && !self()->isAsteroidLabelDensityImmutable()) {
        self()->mAsteroidLabelDensity = v;
        Q_EMIT self()->AsteroidLabelDensityChanged();
      }
    }

    Q_PROPERTY(double asteroidLabelDensity READ asteroidLabelDensity WRITE setAsteroidLabelDensity NOTIFY AsteroidLabelDensityChanged)
    Q_PROPERTY(bool isAsteroidLabelDensityImmutable READ isAsteroidLabelDensityImmutable CONSTANT)
    /**
      Get Label density for asteroid names
    */
    static
    double asteroidLabelDensity()
    {
      return self()->mAsteroidLabelDensity;
    }

    /**
      Is Label density for asteroid names Immutable
    */
    static
    bool isAsteroidLabelDensityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AsteroidLabelDensity" ) );
    }

    /**
      Set Faint limit for deep-sky objects
    */
    static
    void setMagLimitDrawDeepSky( double v )
    {
      if (v != self()->mMagLimitDrawDeepSky && !self()->isMagLimitDrawDeepSkyImmutable()) {
        self()->mMagLimitDrawDeepSky = v;
        Q_EMIT self()->MagLimitDrawDeepSkyChanged();
      }
    }

    Q_PROPERTY(double magLimitDrawDeepSky READ magLimitDrawDeepSky WRITE setMagLimitDrawDeepSky NOTIFY MagLimitDrawDeepSkyChanged)
    Q_PROPERTY(bool isMagLimitDrawDeepSkyImmutable READ isMagLimitDrawDeepSkyImmutable CONSTANT)
    /**
      Get Faint limit for deep-sky objects
    */
    static
    double magLimitDrawDeepSky()
    {
      return self()->mMagLimitDrawDeepSky;
    }

    /**
      Is Faint limit for deep-sky objects Immutable
    */
    static
    bool isMagLimitDrawDeepSkyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MagLimitDrawDeepSky" ) );
    }

    /**
      Set Faint limit for deep-sky objects when zoomed out
    */
    static
    void setMagLimitDrawDeepSkyZoomOut( double v )
    {
      if (v != self()->mMagLimitDrawDeepSkyZoomOut && !self()->isMagLimitDrawDeepSkyZoomOutImmutable()) {
        self()->mMagLimitDrawDeepSkyZoomOut = v;
        Q_EMIT self()->MagLimitDrawDeepSkyZoomOutChanged();
      }
    }

    Q_PROPERTY(double magLimitDrawDeepSkyZoomOut READ magLimitDrawDeepSkyZoomOut WRITE setMagLimitDrawDeepSkyZoomOut NOTIFY MagLimitDrawDeepSkyZoomOutChanged)
    Q_PROPERTY(bool isMagLimitDrawDeepSkyZoomOutImmutable READ isMagLimitDrawDeepSkyZoomOutImmutable CONSTANT)
    /**
      Get Faint limit for deep-sky objects when zoomed out
    */
    static
    double magLimitDrawDeepSkyZoomOut()
    {
      return self()->mMagLimitDrawDeepSkyZoomOut;
    }

    /**
      Is Faint limit for deep-sky objects when zoomed out Immutable
    */
    static
    bool isMagLimitDrawDeepSkyZoomOutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MagLimitDrawDeepSkyZoomOut" ) );
    }

    /**
      Set Show deep-sky objects of unknown magnitude
    */
    static
    void setShowUnknownMagObjects( bool v )
    {
      if (v != self()->mShowUnknownMagObjects && !self()->isShowUnknownMagObjectsImmutable()) {
        self()->mShowUnknownMagObjects = v;
        Q_EMIT self()->ShowUnknownMagObjectsChanged();
      }
    }

    Q_PROPERTY(bool showUnknownMagObjects READ showUnknownMagObjects WRITE setShowUnknownMagObjects NOTIFY ShowUnknownMagObjectsChanged)
    Q_PROPERTY(bool isShowUnknownMagObjectsImmutable READ isShowUnknownMagObjectsImmutable CONSTANT)
    /**
      Get Show deep-sky objects of unknown magnitude
    */
    static
    bool showUnknownMagObjects()
    {
      return self()->mShowUnknownMagObjects;
    }

    /**
      Is Show deep-sky objects of unknown magnitude Immutable
    */
    static
    bool isShowUnknownMagObjectsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowUnknownMagObjects" ) );
    }

    /**
      Set Draw inline images for some objects on the sky?
    */
    static
    void setShowInlineImages( bool v )
    {
      if (v != self()->mShowInlineImages && !self()->isShowInlineImagesImmutable()) {
        self()->mShowInlineImages = v;
        Q_EMIT self()->ShowInlineImagesChanged();
      }
    }

    Q_PROPERTY(bool showInlineImages READ showInlineImages WRITE setShowInlineImages NOTIFY ShowInlineImagesChanged)
    Q_PROPERTY(bool isShowInlineImagesImmutable READ isShowInlineImagesImmutable CONSTANT)
    /**
      Get Draw inline images for some objects on the sky?
    */
    static
    bool showInlineImages()
    {
      return self()->mShowInlineImages;
    }

    /**
      Is Draw inline images for some objects on the sky? Immutable
    */
    static
    bool isShowInlineImagesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowInlineImages" ) );
    }

    /**
      Set Density of stars in the field of view
    */
    static
    void setStarDensity( int v )
    {
      if (v != self()->mStarDensity && !self()->isStarDensityImmutable()) {
        self()->mStarDensity = v;
        Q_EMIT self()->StarDensityChanged();
      }
    }

    Q_PROPERTY(int starDensity READ starDensity WRITE setStarDensity NOTIFY StarDensityChanged)
    Q_PROPERTY(bool isStarDensityImmutable READ isStarDensityImmutable CONSTANT)
    /**
      Get Density of stars in the field of view
    */
    static
    int starDensity()
    {
      return self()->mStarDensity;
    }

    /**
      Is Density of stars in the field of view Immutable
    */
    static
    bool isStarDensityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StarDensity" ) );
    }

    /**
      Set Faint limit for stars when slewing
    */
    static
    void setMagLimitHideStar( double v )
    {
      if (v != self()->mMagLimitHideStar && !self()->isMagLimitHideStarImmutable()) {
        self()->mMagLimitHideStar = v;
        Q_EMIT self()->MagLimitHideStarChanged();
      }
    }

    Q_PROPERTY(double magLimitHideStar READ magLimitHideStar WRITE setMagLimitHideStar NOTIFY MagLimitHideStarChanged)
    Q_PROPERTY(bool isMagLimitHideStarImmutable READ isMagLimitHideStarImmutable CONSTANT)
    /**
      Get Faint limit for stars when slewing
    */
    static
    double magLimitHideStar()
    {
      return self()->mMagLimitHideStar;
    }

    /**
      Is Faint limit for stars when slewing Immutable
    */
    static
    bool isMagLimitHideStarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MagLimitHideStar" ) );
    }

    /**
      Set Relative density for star name labels and/or magnitudes
    */
    static
    void setStarLabelDensity( double v )
    {
      if (v != self()->mStarLabelDensity && !self()->isStarLabelDensityImmutable()) {
        self()->mStarLabelDensity = v;
        Q_EMIT self()->StarLabelDensityChanged();
      }
    }

    Q_PROPERTY(double starLabelDensity READ starLabelDensity WRITE setStarLabelDensity NOTIFY StarLabelDensityChanged)
    Q_PROPERTY(bool isStarLabelDensityImmutable READ isStarLabelDensityImmutable CONSTANT)
    /**
      Get Relative density for star name labels and/or magnitudes
    */
    static
    double starLabelDensity()
    {
      return self()->mStarLabelDensity;
    }

    /**
      Is Relative density for star name labels and/or magnitudes Immutable
    */
    static
    bool isStarLabelDensityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StarLabelDensity" ) );
    }

    /**
      Set Relative density for deep-sky object name labels and/or magnitudes
    */
    static
    void setDeepSkyLabelDensity( double v )
    {
      if (v != self()->mDeepSkyLabelDensity && !self()->isDeepSkyLabelDensityImmutable()) {
        self()->mDeepSkyLabelDensity = v;
        Q_EMIT self()->DeepSkyLabelDensityChanged();
      }
    }

    Q_PROPERTY(double deepSkyLabelDensity READ deepSkyLabelDensity WRITE setDeepSkyLabelDensity NOTIFY DeepSkyLabelDensityChanged)
    Q_PROPERTY(bool isDeepSkyLabelDensityImmutable READ isDeepSkyLabelDensityImmutable CONSTANT)
    /**
      Get Relative density for deep-sky object name labels and/or magnitudes
    */
    static
    double deepSkyLabelDensity()
    {
      return self()->mDeepSkyLabelDensity;
    }

    /**
      Is Relative density for deep-sky object name labels and/or magnitudes Immutable
    */
    static
    bool isDeepSkyLabelDensityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DeepSkyLabelDensity" ) );
    }

    /**
      Set Show long names in deep-sky object name labels?
    */
    static
    void setDeepSkyLongLabels( bool v )
    {
      if (v != self()->mDeepSkyLongLabels && !self()->isDeepSkyLongLabelsImmutable()) {
        self()->mDeepSkyLongLabels = v;
        Q_EMIT self()->DeepSkyLongLabelsChanged();
      }
    }

    Q_PROPERTY(bool deepSkyLongLabels READ deepSkyLongLabels WRITE setDeepSkyLongLabels NOTIFY DeepSkyLongLabelsChanged)
    Q_PROPERTY(bool isDeepSkyLongLabelsImmutable READ isDeepSkyLongLabelsImmutable CONSTANT)
    /**
      Get Show long names in deep-sky object name labels?
    */
    static
    bool deepSkyLongLabels()
    {
      return self()->mDeepSkyLongLabels;
    }

    /**
      Is Show long names in deep-sky object name labels? Immutable
    */
    static
    bool isDeepSkyLongLabelsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DeepSkyLongLabels" ) );
    }

    /**
      Set Label font size
    */
    static
    void setLabelFontScaling( int v )
    {
      if (v != self()->mLabelFontScaling && !self()->isLabelFontScalingImmutable()) {
        self()->mLabelFontScaling = v;
        Q_EMIT self()->LabelFontScalingChanged();
      }
    }

    Q_PROPERTY(int labelFontScaling READ labelFontScaling WRITE setLabelFontScaling NOTIFY LabelFontScalingChanged)
    Q_PROPERTY(bool isLabelFontScalingImmutable READ isLabelFontScalingImmutable CONSTANT)
    /**
      Get Label font size
    */
    static
    int labelFontScaling()
    {
      return self()->mLabelFontScaling;
    }

    /**
      Is Label font size Immutable
    */
    static
    bool isLabelFontScalingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LabelFontScaling" ) );
    }

    /**
      Set Maximum distance from Sun for labeling comets, in AU
    */
    static
    void setMaxRadCometName( double v )
    {
      if (v != self()->mMaxRadCometName && !self()->isMaxRadCometNameImmutable()) {
        self()->mMaxRadCometName = v;
        Q_EMIT self()->MaxRadCometNameChanged();
      }
    }

    Q_PROPERTY(double maxRadCometName READ maxRadCometName WRITE setMaxRadCometName NOTIFY MaxRadCometNameChanged)
    Q_PROPERTY(bool isMaxRadCometNameImmutable READ isMaxRadCometNameImmutable CONSTANT)
    /**
      Get Maximum distance from Sun for labeling comets, in AU
    */
    static
    double maxRadCometName()
    {
      return self()->mMaxRadCometName;
    }

    /**
      Is Maximum distance from Sun for labeling comets, in AU Immutable
    */
    static
    bool isMaxRadCometNameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxRadCometName" ) );
    }

    /**
      Set Switch to OpenGL backend
    */
    static
    void setUseGL( bool v )
    {
      if (v != self()->mUseGL && !self()->isUseGLImmutable()) {
        self()->mUseGL = v;
        Q_EMIT self()->UseGLChanged();
      }
    }

    Q_PROPERTY(bool useGL READ useGL WRITE setUseGL NOTIFY UseGLChanged)
    Q_PROPERTY(bool isUseGLImmutable READ isUseGLImmutable CONSTANT)
    /**
      Get Switch to OpenGL backend
    */
    static
    bool useGL()
    {
      return self()->mUseGL;
    }

    /**
      Is Switch to OpenGL backend Immutable
    */
    static
    bool isUseGLImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseGL" ) );
    }

    /**
      Set Run clock
    */
    static
    void setRunClock( bool v )
    {
      if (v != self()->mRunClock && !self()->isRunClockImmutable()) {
        self()->mRunClock = v;
        Q_EMIT self()->RunClockChanged();
      }
    }

    Q_PROPERTY(bool runClock READ runClock WRITE setRunClock NOTIFY RunClockChanged)
    Q_PROPERTY(bool isRunClockImmutable READ isRunClockImmutable CONSTANT)
    /**
      Get Run clock
    */
    static
    bool runClock()
    {
      return self()->mRunClock;
    }

    /**
      Is Run clock Immutable
    */
    static
    bool isRunClockImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RunClock" ) );
    }

    /**
      Set Should the imaging Planner tool process open clusters.
    */
    static
    void setImagingPlannerAcceptOpenCluster( bool v )
    {
      if (v != self()->mImagingPlannerAcceptOpenCluster && !self()->isImagingPlannerAcceptOpenClusterImmutable()) {
        self()->mImagingPlannerAcceptOpenCluster = v;
        Q_EMIT self()->ImagingPlannerAcceptOpenClusterChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerAcceptOpenCluster READ imagingPlannerAcceptOpenCluster WRITE setImagingPlannerAcceptOpenCluster NOTIFY ImagingPlannerAcceptOpenClusterChanged)
    Q_PROPERTY(bool isImagingPlannerAcceptOpenClusterImmutable READ isImagingPlannerAcceptOpenClusterImmutable CONSTANT)
    /**
      Get Should the imaging Planner tool process open clusters.
    */
    static
    bool imagingPlannerAcceptOpenCluster()
    {
      return self()->mImagingPlannerAcceptOpenCluster;
    }

    /**
      Is Should the imaging Planner tool process open clusters. Immutable
    */
    static
    bool isImagingPlannerAcceptOpenClusterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerAcceptOpenCluster" ) );
    }

    /**
      Set Should the imaging Planner tool process nebulae.
    */
    static
    void setImagingPlannerAcceptNebula( bool v )
    {
      if (v != self()->mImagingPlannerAcceptNebula && !self()->isImagingPlannerAcceptNebulaImmutable()) {
        self()->mImagingPlannerAcceptNebula = v;
        Q_EMIT self()->ImagingPlannerAcceptNebulaChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerAcceptNebula READ imagingPlannerAcceptNebula WRITE setImagingPlannerAcceptNebula NOTIFY ImagingPlannerAcceptNebulaChanged)
    Q_PROPERTY(bool isImagingPlannerAcceptNebulaImmutable READ isImagingPlannerAcceptNebulaImmutable CONSTANT)
    /**
      Get Should the imaging Planner tool process nebulae.
    */
    static
    bool imagingPlannerAcceptNebula()
    {
      return self()->mImagingPlannerAcceptNebula;
    }

    /**
      Is Should the imaging Planner tool process nebulae. Immutable
    */
    static
    bool isImagingPlannerAcceptNebulaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerAcceptNebula" ) );
    }

    /**
      Set Should the imaging Planner tool process globular clusters.
    */
    static
    void setImagingPlannerAcceptGlobularCluster( bool v )
    {
      if (v != self()->mImagingPlannerAcceptGlobularCluster && !self()->isImagingPlannerAcceptGlobularClusterImmutable()) {
        self()->mImagingPlannerAcceptGlobularCluster = v;
        Q_EMIT self()->ImagingPlannerAcceptGlobularClusterChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerAcceptGlobularCluster READ imagingPlannerAcceptGlobularCluster WRITE setImagingPlannerAcceptGlobularCluster NOTIFY ImagingPlannerAcceptGlobularClusterChanged)
    Q_PROPERTY(bool isImagingPlannerAcceptGlobularClusterImmutable READ isImagingPlannerAcceptGlobularClusterImmutable CONSTANT)
    /**
      Get Should the imaging Planner tool process globular clusters.
    */
    static
    bool imagingPlannerAcceptGlobularCluster()
    {
      return self()->mImagingPlannerAcceptGlobularCluster;
    }

    /**
      Is Should the imaging Planner tool process globular clusters. Immutable
    */
    static
    bool isImagingPlannerAcceptGlobularClusterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerAcceptGlobularCluster" ) );
    }

    /**
      Set Should the imaging Planner tool process planetary nebulae.
    */
    static
    void setImagingPlannerAcceptPlanetary( bool v )
    {
      if (v != self()->mImagingPlannerAcceptPlanetary && !self()->isImagingPlannerAcceptPlanetaryImmutable()) {
        self()->mImagingPlannerAcceptPlanetary = v;
        Q_EMIT self()->ImagingPlannerAcceptPlanetaryChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerAcceptPlanetary READ imagingPlannerAcceptPlanetary WRITE setImagingPlannerAcceptPlanetary NOTIFY ImagingPlannerAcceptPlanetaryChanged)
    Q_PROPERTY(bool isImagingPlannerAcceptPlanetaryImmutable READ isImagingPlannerAcceptPlanetaryImmutable CONSTANT)
    /**
      Get Should the imaging Planner tool process planetary nebulae.
    */
    static
    bool imagingPlannerAcceptPlanetary()
    {
      return self()->mImagingPlannerAcceptPlanetary;
    }

    /**
      Is Should the imaging Planner tool process planetary nebulae. Immutable
    */
    static
    bool isImagingPlannerAcceptPlanetaryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerAcceptPlanetary" ) );
    }

    /**
      Set Should the imaging Planner tool process supernova remnants.
    */
    static
    void setImagingPlannerAcceptSupernovaRemnant( bool v )
    {
      if (v != self()->mImagingPlannerAcceptSupernovaRemnant && !self()->isImagingPlannerAcceptSupernovaRemnantImmutable()) {
        self()->mImagingPlannerAcceptSupernovaRemnant = v;
        Q_EMIT self()->ImagingPlannerAcceptSupernovaRemnantChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerAcceptSupernovaRemnant READ imagingPlannerAcceptSupernovaRemnant WRITE setImagingPlannerAcceptSupernovaRemnant NOTIFY ImagingPlannerAcceptSupernovaRemnantChanged)
    Q_PROPERTY(bool isImagingPlannerAcceptSupernovaRemnantImmutable READ isImagingPlannerAcceptSupernovaRemnantImmutable CONSTANT)
    /**
      Get Should the imaging Planner tool process supernova remnants.
    */
    static
    bool imagingPlannerAcceptSupernovaRemnant()
    {
      return self()->mImagingPlannerAcceptSupernovaRemnant;
    }

    /**
      Is Should the imaging Planner tool process supernova remnants. Immutable
    */
    static
    bool isImagingPlannerAcceptSupernovaRemnantImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerAcceptSupernovaRemnant" ) );
    }

    /**
      Set Should the imaging Planner tool process galaxies.
    */
    static
    void setImagingPlannerAcceptGalaxy( bool v )
    {
      if (v != self()->mImagingPlannerAcceptGalaxy && !self()->isImagingPlannerAcceptGalaxyImmutable()) {
        self()->mImagingPlannerAcceptGalaxy = v;
        Q_EMIT self()->ImagingPlannerAcceptGalaxyChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerAcceptGalaxy READ imagingPlannerAcceptGalaxy WRITE setImagingPlannerAcceptGalaxy NOTIFY ImagingPlannerAcceptGalaxyChanged)
    Q_PROPERTY(bool isImagingPlannerAcceptGalaxyImmutable READ isImagingPlannerAcceptGalaxyImmutable CONSTANT)
    /**
      Get Should the imaging Planner tool process galaxies.
    */
    static
    bool imagingPlannerAcceptGalaxy()
    {
      return self()->mImagingPlannerAcceptGalaxy;
    }

    /**
      Is Should the imaging Planner tool process galaxies. Immutable
    */
    static
    bool isImagingPlannerAcceptGalaxyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerAcceptGalaxy" ) );
    }

    /**
      Set Should the imaging Planner tool process galaxy clusters.
    */
    static
    void setImagingPlannerAcceptGalaxyCluster( bool v )
    {
      if (v != self()->mImagingPlannerAcceptGalaxyCluster && !self()->isImagingPlannerAcceptGalaxyClusterImmutable()) {
        self()->mImagingPlannerAcceptGalaxyCluster = v;
        Q_EMIT self()->ImagingPlannerAcceptGalaxyClusterChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerAcceptGalaxyCluster READ imagingPlannerAcceptGalaxyCluster WRITE setImagingPlannerAcceptGalaxyCluster NOTIFY ImagingPlannerAcceptGalaxyClusterChanged)
    Q_PROPERTY(bool isImagingPlannerAcceptGalaxyClusterImmutable READ isImagingPlannerAcceptGalaxyClusterImmutable CONSTANT)
    /**
      Get Should the imaging Planner tool process galaxy clusters.
    */
    static
    bool imagingPlannerAcceptGalaxyCluster()
    {
      return self()->mImagingPlannerAcceptGalaxyCluster;
    }

    /**
      Is Should the imaging Planner tool process galaxy clusters. Immutable
    */
    static
    bool isImagingPlannerAcceptGalaxyClusterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerAcceptGalaxyCluster" ) );
    }

    /**
      Set Should the imaging Planner tool process dark nebulae.
    */
    static
    void setImagingPlannerAcceptDarkNebula( bool v )
    {
      if (v != self()->mImagingPlannerAcceptDarkNebula && !self()->isImagingPlannerAcceptDarkNebulaImmutable()) {
        self()->mImagingPlannerAcceptDarkNebula = v;
        Q_EMIT self()->ImagingPlannerAcceptDarkNebulaChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerAcceptDarkNebula READ imagingPlannerAcceptDarkNebula WRITE setImagingPlannerAcceptDarkNebula NOTIFY ImagingPlannerAcceptDarkNebulaChanged)
    Q_PROPERTY(bool isImagingPlannerAcceptDarkNebulaImmutable READ isImagingPlannerAcceptDarkNebulaImmutable CONSTANT)
    /**
      Get Should the imaging Planner tool process dark nebulae.
    */
    static
    bool imagingPlannerAcceptDarkNebula()
    {
      return self()->mImagingPlannerAcceptDarkNebula;
    }

    /**
      Is Should the imaging Planner tool process dark nebulae. Immutable
    */
    static
    bool isImagingPlannerAcceptDarkNebulaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerAcceptDarkNebula" ) );
    }

    /**
      Set Should the imaging Planner tool process other types.
    */
    static
    void setImagingPlannerAcceptOther( bool v )
    {
      if (v != self()->mImagingPlannerAcceptOther && !self()->isImagingPlannerAcceptOtherImmutable()) {
        self()->mImagingPlannerAcceptOther = v;
        Q_EMIT self()->ImagingPlannerAcceptOtherChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerAcceptOther READ imagingPlannerAcceptOther WRITE setImagingPlannerAcceptOther NOTIFY ImagingPlannerAcceptOtherChanged)
    Q_PROPERTY(bool isImagingPlannerAcceptOtherImmutable READ isImagingPlannerAcceptOtherImmutable CONSTANT)
    /**
      Get Should the imaging Planner tool process other types.
    */
    static
    bool imagingPlannerAcceptOther()
    {
      return self()->mImagingPlannerAcceptOther;
    }

    /**
      Is Should the imaging Planner tool process other types. Immutable
    */
    static
    bool isImagingPlannerAcceptOtherImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerAcceptOther" ) );
    }

    /**
      Set Should the imaging Planner tool required an award when searching for an object in Astrobin.
    */
    static
    void setAstrobinAward( bool v )
    {
      if (v != self()->mAstrobinAward && !self()->isAstrobinAwardImmutable()) {
        self()->mAstrobinAward = v;
        Q_EMIT self()->AstrobinAwardChanged();
      }
    }

    Q_PROPERTY(bool astrobinAward READ astrobinAward WRITE setAstrobinAward NOTIFY AstrobinAwardChanged)
    Q_PROPERTY(bool isAstrobinAwardImmutable READ isAstrobinAwardImmutable CONSTANT)
    /**
      Get Should the imaging Planner tool required an award when searching for an object in Astrobin.
    */
    static
    bool astrobinAward()
    {
      return self()->mAstrobinAward;
    }

    /**
      Is Should the imaging Planner tool required an award when searching for an object in Astrobin. Immutable
    */
    static
    bool isAstrobinAwardImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrobinAward" ) );
    }

    /**
      Set Minimum radius of image (degrees) when searching Astrobin
    */
    static
    void setAstrobinMinRadius( double v )
    {
      if (v != self()->mAstrobinMinRadius && !self()->isAstrobinMinRadiusImmutable()) {
        self()->mAstrobinMinRadius = v;
        Q_EMIT self()->AstrobinMinRadiusChanged();
      }
    }

    Q_PROPERTY(double astrobinMinRadius READ astrobinMinRadius WRITE setAstrobinMinRadius NOTIFY AstrobinMinRadiusChanged)
    Q_PROPERTY(bool isAstrobinMinRadiusImmutable READ isAstrobinMinRadiusImmutable CONSTANT)
    /**
      Get Minimum radius of image (degrees) when searching Astrobin
    */
    static
    double astrobinMinRadius()
    {
      return self()->mAstrobinMinRadius;
    }

    /**
      Is Minimum radius of image (degrees) when searching Astrobin Immutable
    */
    static
    bool isAstrobinMinRadiusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrobinMinRadius" ) );
    }

    /**
      Set Maximum radius of image (degrees) when searching Astrobin
    */
    static
    void setAstrobinMaxRadius( double v )
    {
      if (v != self()->mAstrobinMaxRadius && !self()->isAstrobinMaxRadiusImmutable()) {
        self()->mAstrobinMaxRadius = v;
        Q_EMIT self()->AstrobinMaxRadiusChanged();
      }
    }

    Q_PROPERTY(double astrobinMaxRadius READ astrobinMaxRadius WRITE setAstrobinMaxRadius NOTIFY AstrobinMaxRadiusChanged)
    Q_PROPERTY(bool isAstrobinMaxRadiusImmutable READ isAstrobinMaxRadiusImmutable CONSTANT)
    /**
      Get Maximum radius of image (degrees) when searching Astrobin
    */
    static
    double astrobinMaxRadius()
    {
      return self()->mAstrobinMaxRadius;
    }

    /**
      Is Maximum radius of image (degrees) when searching Astrobin Immutable
    */
    static
    bool isAstrobinMaxRadiusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrobinMaxRadius" ) );
    }

    /**
      Set Use the system's artificial horizon for calculating imaging hours.
    */
    static
    void setImagingPlannerUseArtificialHorizon( bool v )
    {
      if (v != self()->mImagingPlannerUseArtificialHorizon && !self()->isImagingPlannerUseArtificialHorizonImmutable()) {
        self()->mImagingPlannerUseArtificialHorizon = v;
        Q_EMIT self()->ImagingPlannerUseArtificialHorizonChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerUseArtificialHorizon READ imagingPlannerUseArtificialHorizon WRITE setImagingPlannerUseArtificialHorizon NOTIFY ImagingPlannerUseArtificialHorizonChanged)
    Q_PROPERTY(bool isImagingPlannerUseArtificialHorizonImmutable READ isImagingPlannerUseArtificialHorizonImmutable CONSTANT)
    /**
      Get Use the system's artificial horizon for calculating imaging hours.
    */
    static
    bool imagingPlannerUseArtificialHorizon()
    {
      return self()->mImagingPlannerUseArtificialHorizon;
    }

    /**
      Is Use the system's artificial horizon for calculating imaging hours. Immutable
    */
    static
    bool isImagingPlannerUseArtificialHorizonImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerUseArtificialHorizon" ) );
    }

    /**
      Set Objects are only shown if they can be imaged for this many hours.
    */
    static
    void setImagingPlannerMinHours( double v )
    {
      if (v != self()->mImagingPlannerMinHours && !self()->isImagingPlannerMinHoursImmutable()) {
        self()->mImagingPlannerMinHours = v;
        Q_EMIT self()->ImagingPlannerMinHoursChanged();
      }
    }

    Q_PROPERTY(double imagingPlannerMinHours READ imagingPlannerMinHours WRITE setImagingPlannerMinHours NOTIFY ImagingPlannerMinHoursChanged)
    Q_PROPERTY(bool isImagingPlannerMinHoursImmutable READ isImagingPlannerMinHoursImmutable CONSTANT)
    /**
      Get Objects are only shown if they can be imaged for this many hours.
    */
    static
    double imagingPlannerMinHours()
    {
      return self()->mImagingPlannerMinHours;
    }

    /**
      Is Objects are only shown if they can be imaged for this many hours. Immutable
    */
    static
    bool isImagingPlannerMinHoursImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerMinHours" ) );
    }

    /**
      Set For imaging hours calculation, object must be above this altitude.
    */
    static
    void setImagingPlannerMinAltitude( double v )
    {
      if (v != self()->mImagingPlannerMinAltitude && !self()->isImagingPlannerMinAltitudeImmutable()) {
        self()->mImagingPlannerMinAltitude = v;
        Q_EMIT self()->ImagingPlannerMinAltitudeChanged();
      }
    }

    Q_PROPERTY(double imagingPlannerMinAltitude READ imagingPlannerMinAltitude WRITE setImagingPlannerMinAltitude NOTIFY ImagingPlannerMinAltitudeChanged)
    Q_PROPERTY(bool isImagingPlannerMinAltitudeImmutable READ isImagingPlannerMinAltitudeImmutable CONSTANT)
    /**
      Get For imaging hours calculation, object must be above this altitude.
    */
    static
    double imagingPlannerMinAltitude()
    {
      return self()->mImagingPlannerMinAltitude;
    }

    /**
      Is For imaging hours calculation, object must be above this altitude. Immutable
    */
    static
    bool isImagingPlannerMinAltitudeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerMinAltitude" ) );
    }

    /**
      Set For imaging hours calculation, object must be more than this far from the moon.
    */
    static
    void setImagingPlannerMinMoonSeparation( double v )
    {
      if (v != self()->mImagingPlannerMinMoonSeparation && !self()->isImagingPlannerMinMoonSeparationImmutable()) {
        self()->mImagingPlannerMinMoonSeparation = v;
        Q_EMIT self()->ImagingPlannerMinMoonSeparationChanged();
      }
    }

    Q_PROPERTY(double imagingPlannerMinMoonSeparation READ imagingPlannerMinMoonSeparation WRITE setImagingPlannerMinMoonSeparation NOTIFY ImagingPlannerMinMoonSeparationChanged)
    Q_PROPERTY(bool isImagingPlannerMinMoonSeparationImmutable READ isImagingPlannerMinMoonSeparationImmutable CONSTANT)
    /**
      Get For imaging hours calculation, object must be more than this far from the moon.
    */
    static
    double imagingPlannerMinMoonSeparation()
    {
      return self()->mImagingPlannerMinMoonSeparation;
    }

    /**
      Is For imaging hours calculation, object must be more than this far from the moon. Immutable
    */
    static
    bool isImagingPlannerMinMoonSeparationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerMinMoonSeparation" ) );
    }

    /**
      Set For imaging hours calculation, the moon must have an altitude lower than this.
    */
    static
    void setImagingPlannerMaxMoonAltitude( double v )
    {
      if (v != self()->mImagingPlannerMaxMoonAltitude && !self()->isImagingPlannerMaxMoonAltitudeImmutable()) {
        self()->mImagingPlannerMaxMoonAltitude = v;
        Q_EMIT self()->ImagingPlannerMaxMoonAltitudeChanged();
      }
    }

    Q_PROPERTY(double imagingPlannerMaxMoonAltitude READ imagingPlannerMaxMoonAltitude WRITE setImagingPlannerMaxMoonAltitude NOTIFY ImagingPlannerMaxMoonAltitudeChanged)
    Q_PROPERTY(bool isImagingPlannerMaxMoonAltitudeImmutable READ isImagingPlannerMaxMoonAltitudeImmutable CONSTANT)
    /**
      Get For imaging hours calculation, the moon must have an altitude lower than this.
    */
    static
    double imagingPlannerMaxMoonAltitude()
    {
      return self()->mImagingPlannerMaxMoonAltitude;
    }

    /**
      Is For imaging hours calculation, the moon must have an altitude lower than this. Immutable
    */
    static
    bool isImagingPlannerMaxMoonAltitudeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerMaxMoonAltitude" ) );
    }

    /**
      Set Show the objects that are marked picked (don't show those that are not picked).
    */
    static
    void setImagingPlannerShowPicked( bool v )
    {
      if (v != self()->mImagingPlannerShowPicked && !self()->isImagingPlannerShowPickedImmutable()) {
        self()->mImagingPlannerShowPicked = v;
        Q_EMIT self()->ImagingPlannerShowPickedChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerShowPicked READ imagingPlannerShowPicked WRITE setImagingPlannerShowPicked NOTIFY ImagingPlannerShowPickedChanged)
    Q_PROPERTY(bool isImagingPlannerShowPickedImmutable READ isImagingPlannerShowPickedImmutable CONSTANT)
    /**
      Get Show the objects that are marked picked (don't show those that are not picked).
    */
    static
    bool imagingPlannerShowPicked()
    {
      return self()->mImagingPlannerShowPicked;
    }

    /**
      Is Show the objects that are marked picked (don't show those that are not picked). Immutable
    */
    static
    bool isImagingPlannerShowPickedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerShowPicked" ) );
    }

    /**
      Set Show the objects that are not marked picked (don't show those that are picked).
    */
    static
    void setImagingPlannerShowNotPicked( bool v )
    {
      if (v != self()->mImagingPlannerShowNotPicked && !self()->isImagingPlannerShowNotPickedImmutable()) {
        self()->mImagingPlannerShowNotPicked = v;
        Q_EMIT self()->ImagingPlannerShowNotPickedChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerShowNotPicked READ imagingPlannerShowNotPicked WRITE setImagingPlannerShowNotPicked NOTIFY ImagingPlannerShowNotPickedChanged)
    Q_PROPERTY(bool isImagingPlannerShowNotPickedImmutable READ isImagingPlannerShowNotPickedImmutable CONSTANT)
    /**
      Get Show the objects that are not marked picked (don't show those that are picked).
    */
    static
    bool imagingPlannerShowNotPicked()
    {
      return self()->mImagingPlannerShowNotPicked;
    }

    /**
      Is Show the objects that are not marked picked (don't show those that are picked). Immutable
    */
    static
    bool isImagingPlannerShowNotPickedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerShowNotPicked" ) );
    }

    /**
      Set Object display doesn't depend on whether objects are marked picked or not.
    */
    static
    void setImagingPlannerDontCarePicked( bool v )
    {
      if (v != self()->mImagingPlannerDontCarePicked && !self()->isImagingPlannerDontCarePickedImmutable()) {
        self()->mImagingPlannerDontCarePicked = v;
        Q_EMIT self()->ImagingPlannerDontCarePickedChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerDontCarePicked READ imagingPlannerDontCarePicked WRITE setImagingPlannerDontCarePicked NOTIFY ImagingPlannerDontCarePickedChanged)
    Q_PROPERTY(bool isImagingPlannerDontCarePickedImmutable READ isImagingPlannerDontCarePickedImmutable CONSTANT)
    /**
      Get Object display doesn't depend on whether objects are marked picked or not.
    */
    static
    bool imagingPlannerDontCarePicked()
    {
      return self()->mImagingPlannerDontCarePicked;
    }

    /**
      Is Object display doesn't depend on whether objects are marked picked or not. Immutable
    */
    static
    bool isImagingPlannerDontCarePickedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerDontCarePicked" ) );
    }

    /**
      Set Show the objects that have the keyword in their notes (and don't show those that don't).
    */
    static
    void setImagingPlannerShowKeyword( bool v )
    {
      if (v != self()->mImagingPlannerShowKeyword && !self()->isImagingPlannerShowKeywordImmutable()) {
        self()->mImagingPlannerShowKeyword = v;
        Q_EMIT self()->ImagingPlannerShowKeywordChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerShowKeyword READ imagingPlannerShowKeyword WRITE setImagingPlannerShowKeyword NOTIFY ImagingPlannerShowKeywordChanged)
    Q_PROPERTY(bool isImagingPlannerShowKeywordImmutable READ isImagingPlannerShowKeywordImmutable CONSTANT)
    /**
      Get Show the objects that have the keyword in their notes (and don't show those that don't).
    */
    static
    bool imagingPlannerShowKeyword()
    {
      return self()->mImagingPlannerShowKeyword;
    }

    /**
      Is Show the objects that have the keyword in their notes (and don't show those that don't). Immutable
    */
    static
    bool isImagingPlannerShowKeywordImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerShowKeyword" ) );
    }

    /**
      Set Show the objects that don't have the keyword in their notes (and don't show those that do).
    */
    static
    void setImagingPlannerShowNotKeyword( bool v )
    {
      if (v != self()->mImagingPlannerShowNotKeyword && !self()->isImagingPlannerShowNotKeywordImmutable()) {
        self()->mImagingPlannerShowNotKeyword = v;
        Q_EMIT self()->ImagingPlannerShowNotKeywordChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerShowNotKeyword READ imagingPlannerShowNotKeyword WRITE setImagingPlannerShowNotKeyword NOTIFY ImagingPlannerShowNotKeywordChanged)
    Q_PROPERTY(bool isImagingPlannerShowNotKeywordImmutable READ isImagingPlannerShowNotKeywordImmutable CONSTANT)
    /**
      Get Show the objects that don't have the keyword in their notes (and don't show those that do).
    */
    static
    bool imagingPlannerShowNotKeyword()
    {
      return self()->mImagingPlannerShowNotKeyword;
    }

    /**
      Is Show the objects that don't have the keyword in their notes (and don't show those that do). Immutable
    */
    static
    bool isImagingPlannerShowNotKeywordImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerShowNotKeyword" ) );
    }

    /**
      Set Object display doesn't depend on whether or not objects have the keyword in their notes.
    */
    static
    void setImagingPlannerDontCareKeyword( bool v )
    {
      if (v != self()->mImagingPlannerDontCareKeyword && !self()->isImagingPlannerDontCareKeywordImmutable()) {
        self()->mImagingPlannerDontCareKeyword = v;
        Q_EMIT self()->ImagingPlannerDontCareKeywordChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerDontCareKeyword READ imagingPlannerDontCareKeyword WRITE setImagingPlannerDontCareKeyword NOTIFY ImagingPlannerDontCareKeywordChanged)
    Q_PROPERTY(bool isImagingPlannerDontCareKeywordImmutable READ isImagingPlannerDontCareKeywordImmutable CONSTANT)
    /**
      Get Object display doesn't depend on whether or not objects have the keyword in their notes.
    */
    static
    bool imagingPlannerDontCareKeyword()
    {
      return self()->mImagingPlannerDontCareKeyword;
    }

    /**
      Is Object display doesn't depend on whether or not objects have the keyword in their notes. Immutable
    */
    static
    bool isImagingPlannerDontCareKeywordImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerDontCareKeyword" ) );
    }

    /**
      Set Keyword used for the keyword filter.
    */
    static
    void setImagingPlannerKeyword( const QString & v )
    {
      if (v != self()->mImagingPlannerKeyword && !self()->isImagingPlannerKeywordImmutable()) {
        self()->mImagingPlannerKeyword = v;
        Q_EMIT self()->ImagingPlannerKeywordChanged();
      }
    }

    Q_PROPERTY(QString imagingPlannerKeyword READ imagingPlannerKeyword WRITE setImagingPlannerKeyword NOTIFY ImagingPlannerKeywordChanged)
    Q_PROPERTY(bool isImagingPlannerKeywordImmutable READ isImagingPlannerKeywordImmutable CONSTANT)
    /**
      Get Keyword used for the keyword filter.
    */
    static
    QString imagingPlannerKeyword()
    {
      return self()->mImagingPlannerKeyword;
    }

    /**
      Is Keyword used for the keyword filter. Immutable
    */
    static
    bool isImagingPlannerKeywordImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerKeyword" ) );
    }

    /**
      Set Show the objects that are marked imaged (don't show those that are not marked imaged).
    */
    static
    void setImagingPlannerShowImaged( bool v )
    {
      if (v != self()->mImagingPlannerShowImaged && !self()->isImagingPlannerShowImagedImmutable()) {
        self()->mImagingPlannerShowImaged = v;
        Q_EMIT self()->ImagingPlannerShowImagedChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerShowImaged READ imagingPlannerShowImaged WRITE setImagingPlannerShowImaged NOTIFY ImagingPlannerShowImagedChanged)
    Q_PROPERTY(bool isImagingPlannerShowImagedImmutable READ isImagingPlannerShowImagedImmutable CONSTANT)
    /**
      Get Show the objects that are marked imaged (don't show those that are not marked imaged).
    */
    static
    bool imagingPlannerShowImaged()
    {
      return self()->mImagingPlannerShowImaged;
    }

    /**
      Is Show the objects that are marked imaged (don't show those that are not marked imaged). Immutable
    */
    static
    bool isImagingPlannerShowImagedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerShowImaged" ) );
    }

    /**
      Set Show the objects that are not marked imaged (don't show those that are marked imaged).
    */
    static
    void setImagingPlannerShowNotImaged( bool v )
    {
      if (v != self()->mImagingPlannerShowNotImaged && !self()->isImagingPlannerShowNotImagedImmutable()) {
        self()->mImagingPlannerShowNotImaged = v;
        Q_EMIT self()->ImagingPlannerShowNotImagedChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerShowNotImaged READ imagingPlannerShowNotImaged WRITE setImagingPlannerShowNotImaged NOTIFY ImagingPlannerShowNotImagedChanged)
    Q_PROPERTY(bool isImagingPlannerShowNotImagedImmutable READ isImagingPlannerShowNotImagedImmutable CONSTANT)
    /**
      Get Show the objects that are not marked imaged (don't show those that are marked imaged).
    */
    static
    bool imagingPlannerShowNotImaged()
    {
      return self()->mImagingPlannerShowNotImaged;
    }

    /**
      Is Show the objects that are not marked imaged (don't show those that are marked imaged). Immutable
    */
    static
    bool isImagingPlannerShowNotImagedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerShowNotImaged" ) );
    }

    /**
      Set Object display doesn't depend on whether objects are marked imaged or not.
    */
    static
    void setImagingPlannerDontCareImaged( bool v )
    {
      if (v != self()->mImagingPlannerDontCareImaged && !self()->isImagingPlannerDontCareImagedImmutable()) {
        self()->mImagingPlannerDontCareImaged = v;
        Q_EMIT self()->ImagingPlannerDontCareImagedChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerDontCareImaged READ imagingPlannerDontCareImaged WRITE setImagingPlannerDontCareImaged NOTIFY ImagingPlannerDontCareImagedChanged)
    Q_PROPERTY(bool isImagingPlannerDontCareImagedImmutable READ isImagingPlannerDontCareImagedImmutable CONSTANT)
    /**
      Get Object display doesn't depend on whether objects are marked imaged or not.
    */
    static
    bool imagingPlannerDontCareImaged()
    {
      return self()->mImagingPlannerDontCareImaged;
    }

    /**
      Is Object display doesn't depend on whether objects are marked imaged or not. Immutable
    */
    static
    bool isImagingPlannerDontCareImagedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerDontCareImaged" ) );
    }

    /**
      Set Show the objects that have been added (and don't show those that have not been added).
    */
    static
    void setImagingPlannerShowAdded( bool v )
    {
      if (v != self()->mImagingPlannerShowAdded && !self()->isImagingPlannerShowAddedImmutable()) {
        self()->mImagingPlannerShowAdded = v;
        Q_EMIT self()->ImagingPlannerShowAddedChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerShowAdded READ imagingPlannerShowAdded WRITE setImagingPlannerShowAdded NOTIFY ImagingPlannerShowAddedChanged)
    Q_PROPERTY(bool isImagingPlannerShowAddedImmutable READ isImagingPlannerShowAddedImmutable CONSTANT)
    /**
      Get Show the objects that have been added (and don't show those that have not been added).
    */
    static
    bool imagingPlannerShowAdded()
    {
      return self()->mImagingPlannerShowAdded;
    }

    /**
      Is Show the objects that have been added (and don't show those that have not been added). Immutable
    */
    static
    bool isImagingPlannerShowAddedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerShowAdded" ) );
    }

    /**
      Set Show the objects that have not been added (and don't show those that have been added.
    */
    static
    void setImagingPlannerShowNotAdded( bool v )
    {
      if (v != self()->mImagingPlannerShowNotAdded && !self()->isImagingPlannerShowNotAddedImmutable()) {
        self()->mImagingPlannerShowNotAdded = v;
        Q_EMIT self()->ImagingPlannerShowNotAddedChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerShowNotAdded READ imagingPlannerShowNotAdded WRITE setImagingPlannerShowNotAdded NOTIFY ImagingPlannerShowNotAddedChanged)
    Q_PROPERTY(bool isImagingPlannerShowNotAddedImmutable READ isImagingPlannerShowNotAddedImmutable CONSTANT)
    /**
      Get Show the objects that have not been added (and don't show those that have been added.
    */
    static
    bool imagingPlannerShowNotAdded()
    {
      return self()->mImagingPlannerShowNotAdded;
    }

    /**
      Is Show the objects that have not been added (and don't show those that have been added. Immutable
    */
    static
    bool isImagingPlannerShowNotAddedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerShowNotAdded" ) );
    }

    /**
      Set Object display doesn't depend on whether objects have been added or not.
    */
    static
    void setImagingPlannerDontCareAdded( bool v )
    {
      if (v != self()->mImagingPlannerDontCareAdded && !self()->isImagingPlannerDontCareAddedImmutable()) {
        self()->mImagingPlannerDontCareAdded = v;
        Q_EMIT self()->ImagingPlannerDontCareAddedChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerDontCareAdded READ imagingPlannerDontCareAdded WRITE setImagingPlannerDontCareAdded NOTIFY ImagingPlannerDontCareAddedChanged)
    Q_PROPERTY(bool isImagingPlannerDontCareAddedImmutable READ isImagingPlannerDontCareAddedImmutable CONSTANT)
    /**
      Get Object display doesn't depend on whether objects have been added or not.
    */
    static
    bool imagingPlannerDontCareAdded()
    {
      return self()->mImagingPlannerDontCareAdded;
    }

    /**
      Is Object display doesn't depend on whether objects have been added or not. Immutable
    */
    static
    bool isImagingPlannerDontCareAddedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerDontCareAdded" ) );
    }

    /**
      Set Show the objects that have been ignored (and don't show those that have not been ignored).
    */
    static
    void setImagingPlannerShowIgnored( bool v )
    {
      if (v != self()->mImagingPlannerShowIgnored && !self()->isImagingPlannerShowIgnoredImmutable()) {
        self()->mImagingPlannerShowIgnored = v;
        Q_EMIT self()->ImagingPlannerShowIgnoredChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerShowIgnored READ imagingPlannerShowIgnored WRITE setImagingPlannerShowIgnored NOTIFY ImagingPlannerShowIgnoredChanged)
    Q_PROPERTY(bool isImagingPlannerShowIgnoredImmutable READ isImagingPlannerShowIgnoredImmutable CONSTANT)
    /**
      Get Show the objects that have been ignored (and don't show those that have not been ignored).
    */
    static
    bool imagingPlannerShowIgnored()
    {
      return self()->mImagingPlannerShowIgnored;
    }

    /**
      Is Show the objects that have been ignored (and don't show those that have not been ignored). Immutable
    */
    static
    bool isImagingPlannerShowIgnoredImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerShowIgnored" ) );
    }

    /**
      Set Show the objects that have not been ignored (and don't show those that have been ignored).
    */
    static
    void setImagingPlannerShowNotIgnored( bool v )
    {
      if (v != self()->mImagingPlannerShowNotIgnored && !self()->isImagingPlannerShowNotIgnoredImmutable()) {
        self()->mImagingPlannerShowNotIgnored = v;
        Q_EMIT self()->ImagingPlannerShowNotIgnoredChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerShowNotIgnored READ imagingPlannerShowNotIgnored WRITE setImagingPlannerShowNotIgnored NOTIFY ImagingPlannerShowNotIgnoredChanged)
    Q_PROPERTY(bool isImagingPlannerShowNotIgnoredImmutable READ isImagingPlannerShowNotIgnoredImmutable CONSTANT)
    /**
      Get Show the objects that have not been ignored (and don't show those that have been ignored).
    */
    static
    bool imagingPlannerShowNotIgnored()
    {
      return self()->mImagingPlannerShowNotIgnored;
    }

    /**
      Is Show the objects that have not been ignored (and don't show those that have been ignored). Immutable
    */
    static
    bool isImagingPlannerShowNotIgnoredImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerShowNotIgnored" ) );
    }

    /**
      Set Object display doesn't depend on whether objects have been ignored or not.
    */
    static
    void setImagingPlannerDontCareIgnored( bool v )
    {
      if (v != self()->mImagingPlannerDontCareIgnored && !self()->isImagingPlannerDontCareIgnoredImmutable()) {
        self()->mImagingPlannerDontCareIgnored = v;
        Q_EMIT self()->ImagingPlannerDontCareIgnoredChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerDontCareIgnored READ imagingPlannerDontCareIgnored WRITE setImagingPlannerDontCareIgnored NOTIFY ImagingPlannerDontCareIgnoredChanged)
    Q_PROPERTY(bool isImagingPlannerDontCareIgnoredImmutable READ isImagingPlannerDontCareIgnoredImmutable CONSTANT)
    /**
      Get Object display doesn't depend on whether objects have been ignored or not.
    */
    static
    bool imagingPlannerDontCareIgnored()
    {
      return self()->mImagingPlannerDontCareIgnored;
    }

    /**
      Is Object display doesn't depend on whether objects have been ignored or not. Immutable
    */
    static
    bool isImagingPlannerDontCareIgnoredImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerDontCareIgnored" ) );
    }

    /**
      Set Hide the imaging planner's Astrobin search details section.
    */
    static
    void setImagingPlannerHideAstrobinDetails( bool v )
    {
      if (v != self()->mImagingPlannerHideAstrobinDetails && !self()->isImagingPlannerHideAstrobinDetailsImmutable()) {
        self()->mImagingPlannerHideAstrobinDetails = v;
        Q_EMIT self()->ImagingPlannerHideAstrobinDetailsChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerHideAstrobinDetails READ imagingPlannerHideAstrobinDetails WRITE setImagingPlannerHideAstrobinDetails NOTIFY ImagingPlannerHideAstrobinDetailsChanged)
    Q_PROPERTY(bool isImagingPlannerHideAstrobinDetailsImmutable READ isImagingPlannerHideAstrobinDetailsImmutable CONSTANT)
    /**
      Get Hide the imaging planner's Astrobin search details section.
    */
    static
    bool imagingPlannerHideAstrobinDetails()
    {
      return self()->mImagingPlannerHideAstrobinDetails;
    }

    /**
      Is Hide the imaging planner's Astrobin search details section. Immutable
    */
    static
    bool isImagingPlannerHideAstrobinDetailsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerHideAstrobinDetails" ) );
    }

    /**
      Set Hide the imaging planner's filters section.
    */
    static
    void setImagingPlannerHideFilters( bool v )
    {
      if (v != self()->mImagingPlannerHideFilters && !self()->isImagingPlannerHideFiltersImmutable()) {
        self()->mImagingPlannerHideFilters = v;
        Q_EMIT self()->ImagingPlannerHideFiltersChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerHideFilters READ imagingPlannerHideFilters WRITE setImagingPlannerHideFilters NOTIFY ImagingPlannerHideFiltersChanged)
    Q_PROPERTY(bool isImagingPlannerHideFiltersImmutable READ isImagingPlannerHideFiltersImmutable CONSTANT)
    /**
      Get Hide the imaging planner's filters section.
    */
    static
    bool imagingPlannerHideFilters()
    {
      return self()->mImagingPlannerHideFilters;
    }

    /**
      Is Hide the imaging planner's filters section. Immutable
    */
    static
    bool isImagingPlannerHideFiltersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerHideFilters" ) );
    }

    /**
      Set Hide the imaging planner's image section.
    */
    static
    void setImagingPlannerHideImage( bool v )
    {
      if (v != self()->mImagingPlannerHideImage && !self()->isImagingPlannerHideImageImmutable()) {
        self()->mImagingPlannerHideImage = v;
        Q_EMIT self()->ImagingPlannerHideImageChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerHideImage READ imagingPlannerHideImage WRITE setImagingPlannerHideImage NOTIFY ImagingPlannerHideImageChanged)
    Q_PROPERTY(bool isImagingPlannerHideImageImmutable READ isImagingPlannerHideImageImmutable CONSTANT)
    /**
      Get Hide the imaging planner's image section.
    */
    static
    bool imagingPlannerHideImage()
    {
      return self()->mImagingPlannerHideImage;
    }

    /**
      Is Hide the imaging planner's image section. Immutable
    */
    static
    bool isImagingPlannerHideImageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerHideImage" ) );
    }

    /**
      Set Hide the imaging planner's altitude graph.
    */
    static
    void setImagingPlannerHideAltitudeGraph( bool v )
    {
      if (v != self()->mImagingPlannerHideAltitudeGraph && !self()->isImagingPlannerHideAltitudeGraphImmutable()) {
        self()->mImagingPlannerHideAltitudeGraph = v;
        Q_EMIT self()->ImagingPlannerHideAltitudeGraphChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerHideAltitudeGraph READ imagingPlannerHideAltitudeGraph WRITE setImagingPlannerHideAltitudeGraph NOTIFY ImagingPlannerHideAltitudeGraphChanged)
    Q_PROPERTY(bool isImagingPlannerHideAltitudeGraphImmutable READ isImagingPlannerHideAltitudeGraphImmutable CONSTANT)
    /**
      Get Hide the imaging planner's altitude graph.
    */
    static
    bool imagingPlannerHideAltitudeGraph()
    {
      return self()->mImagingPlannerHideAltitudeGraph;
    }

    /**
      Is Hide the imaging planner's altitude graph. Immutable
    */
    static
    bool isImagingPlannerHideAltitudeGraphImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerHideAltitudeGraph" ) );
    }

    /**
      Set File path to the most recent catalog loaded by the Imaging Planner.
    */
    static
    void setImagingPlannerCatalogPath( const QString & v )
    {
      if (v != self()->mImagingPlannerCatalogPath && !self()->isImagingPlannerCatalogPathImmutable()) {
        self()->mImagingPlannerCatalogPath = v;
        Q_EMIT self()->ImagingPlannerCatalogPathChanged();
      }
    }

    Q_PROPERTY(QString imagingPlannerCatalogPath READ imagingPlannerCatalogPath WRITE setImagingPlannerCatalogPath NOTIFY ImagingPlannerCatalogPathChanged)
    Q_PROPERTY(bool isImagingPlannerCatalogPathImmutable READ isImagingPlannerCatalogPathImmutable CONSTANT)
    /**
      Get File path to the most recent catalog loaded by the Imaging Planner.
    */
    static
    QString imagingPlannerCatalogPath()
    {
      return self()->mImagingPlannerCatalogPath;
    }

    /**
      Is File path to the most recent catalog loaded by the Imaging Planner. Immutable
    */
    static
    bool isImagingPlannerCatalogPathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerCatalogPath" ) );
    }

    /**
      Set Slew to selected objects on the SkyMap.
    */
    static
    void setImagingPlannerCenterOnSkyMap( bool v )
    {
      if (v != self()->mImagingPlannerCenterOnSkyMap && !self()->isImagingPlannerCenterOnSkyMapImmutable()) {
        self()->mImagingPlannerCenterOnSkyMap = v;
        Q_EMIT self()->ImagingPlannerCenterOnSkyMapChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerCenterOnSkyMap READ imagingPlannerCenterOnSkyMap WRITE setImagingPlannerCenterOnSkyMap NOTIFY ImagingPlannerCenterOnSkyMapChanged)
    Q_PROPERTY(bool isImagingPlannerCenterOnSkyMapImmutable READ isImagingPlannerCenterOnSkyMapImmutable CONSTANT)
    /**
      Get Slew to selected objects on the SkyMap.
    */
    static
    bool imagingPlannerCenterOnSkyMap()
    {
      return self()->mImagingPlannerCenterOnSkyMap;
    }

    /**
      Is Slew to selected objects on the SkyMap. Immutable
    */
    static
    bool isImagingPlannerCenterOnSkyMapImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerCenterOnSkyMap" ) );
    }

    /**
      Set Make the Imaging Planner tool an independent window.
    */
    static
    void setImagingPlannerIndependentWindow( bool v )
    {
      if (v != self()->mImagingPlannerIndependentWindow && !self()->isImagingPlannerIndependentWindowImmutable()) {
        self()->mImagingPlannerIndependentWindow = v;
        Q_EMIT self()->ImagingPlannerIndependentWindowChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerIndependentWindow READ imagingPlannerIndependentWindow WRITE setImagingPlannerIndependentWindow NOTIFY ImagingPlannerIndependentWindowChanged)
    Q_PROPERTY(bool isImagingPlannerIndependentWindowImmutable READ isImagingPlannerIndependentWindowImmutable CONSTANT)
    /**
      Get Make the Imaging Planner tool an independent window.
    */
    static
    bool imagingPlannerIndependentWindow()
    {
      return self()->mImagingPlannerIndependentWindow;
    }

    /**
      Is Make the Imaging Planner tool an independent window. Immutable
    */
    static
    bool isImagingPlannerIndependentWindowImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerIndependentWindow" ) );
    }

    /**
      Set Start solving immediately after taking a screenshot.
    */
    static
    void setImagingPlannerStartSolvingImmediately( bool v )
    {
      if (v != self()->mImagingPlannerStartSolvingImmediately && !self()->isImagingPlannerStartSolvingImmediatelyImmutable()) {
        self()->mImagingPlannerStartSolvingImmediately = v;
        Q_EMIT self()->ImagingPlannerStartSolvingImmediatelyChanged();
      }
    }

    Q_PROPERTY(bool imagingPlannerStartSolvingImmediately READ imagingPlannerStartSolvingImmediately WRITE setImagingPlannerStartSolvingImmediately NOTIFY ImagingPlannerStartSolvingImmediatelyChanged)
    Q_PROPERTY(bool isImagingPlannerStartSolvingImmediatelyImmutable READ isImagingPlannerStartSolvingImmediatelyImmutable CONSTANT)
    /**
      Get Start solving immediately after taking a screenshot.
    */
    static
    bool imagingPlannerStartSolvingImmediately()
    {
      return self()->mImagingPlannerStartSolvingImmediately;
    }

    /**
      Is Start solving immediately after taking a screenshot. Immutable
    */
    static
    bool isImagingPlannerStartSolvingImmediatelyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImagingPlannerStartSolvingImmediately" ) );
    }

    /**
      Set Use symbols to label observing list objects
    */
    static
    void setObsListSymbol( bool v )
    {
      if (v != self()->mObsListSymbol && !self()->isObsListSymbolImmutable()) {
        self()->mObsListSymbol = v;
        Q_EMIT self()->ObsListSymbolChanged();
      }
    }

    Q_PROPERTY(bool obsListSymbol READ obsListSymbol WRITE setObsListSymbol NOTIFY ObsListSymbolChanged)
    Q_PROPERTY(bool isObsListSymbolImmutable READ isObsListSymbolImmutable CONSTANT)
    /**
      Get Use symbols to label observing list objects
    */
    static
    bool obsListSymbol()
    {
      return self()->mObsListSymbol;
    }

    /**
      Is Use symbols to label observing list objects Immutable
    */
    static
    bool isObsListSymbolImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ObsListSymbol" ) );
    }

    /**
      Set Use text to label observing list objects
    */
    static
    void setObsListText( bool v )
    {
      if (v != self()->mObsListText && !self()->isObsListTextImmutable()) {
        self()->mObsListText = v;
        Q_EMIT self()->ObsListTextChanged();
      }
    }

    Q_PROPERTY(bool obsListText READ obsListText WRITE setObsListText NOTIFY ObsListTextChanged)
    Q_PROPERTY(bool isObsListTextImmutable READ isObsListTextImmutable CONSTANT)
    /**
      Get Use text to label observing list objects
    */
    static
    bool obsListText()
    {
      return self()->mObsListText;
    }

    /**
      Is Use text to label observing list objects Immutable
    */
    static
    bool isObsListTextImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ObsListText" ) );
    }

    /**
      Set Prefer Digitized Sky Survey imagery in the observing list
    */
    static
    void setObsListPreferDSS( bool v )
    {
      if (v != self()->mObsListPreferDSS && !self()->isObsListPreferDSSImmutable()) {
        self()->mObsListPreferDSS = v;
        Q_EMIT self()->ObsListPreferDSSChanged();
      }
    }

    Q_PROPERTY(bool obsListPreferDSS READ obsListPreferDSS WRITE setObsListPreferDSS NOTIFY ObsListPreferDSSChanged)
    Q_PROPERTY(bool isObsListPreferDSSImmutable READ isObsListPreferDSSImmutable CONSTANT)
    /**
      Get Prefer Digitized Sky Survey imagery in the observing list
    */
    static
    bool obsListPreferDSS()
    {
      return self()->mObsListPreferDSS;
    }

    /**
      Is Prefer Digitized Sky Survey imagery in the observing list Immutable
    */
    static
    bool isObsListPreferDSSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ObsListPreferDSS" ) );
    }

    /**
      Set Prefer Sloan Digital Sky Survey imagery in the observing list
    */
    static
    void setObsListPreferSDSS( bool v )
    {
      if (v != self()->mObsListPreferSDSS && !self()->isObsListPreferSDSSImmutable()) {
        self()->mObsListPreferSDSS = v;
        Q_EMIT self()->ObsListPreferSDSSChanged();
      }
    }

    Q_PROPERTY(bool obsListPreferSDSS READ obsListPreferSDSS WRITE setObsListPreferSDSS NOTIFY ObsListPreferSDSSChanged)
    Q_PROPERTY(bool isObsListPreferSDSSImmutable READ isObsListPreferSDSSImmutable CONSTANT)
    /**
      Get Prefer Sloan Digital Sky Survey imagery in the observing list
    */
    static
    bool obsListPreferSDSS()
    {
      return self()->mObsListPreferSDSS;
    }

    /**
      Is Prefer Sloan Digital Sky Survey imagery in the observing list Immutable
    */
    static
    bool isObsListPreferSDSSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ObsListPreferSDSS" ) );
    }

    /**
      Set While sorting by percentage altitude in the observing list, demote objects present in the Dobsonian hole
    */
    static
    void setObsListDemoteHole( bool v )
    {
      if (v != self()->mObsListDemoteHole && !self()->isObsListDemoteHoleImmutable()) {
        self()->mObsListDemoteHole = v;
        Q_EMIT self()->ObsListDemoteHoleChanged();
      }
    }

    Q_PROPERTY(bool obsListDemoteHole READ obsListDemoteHole WRITE setObsListDemoteHole NOTIFY ObsListDemoteHoleChanged)
    Q_PROPERTY(bool isObsListDemoteHoleImmutable READ isObsListDemoteHoleImmutable CONSTANT)
    /**
      Get While sorting by percentage altitude in the observing list, demote objects present in the Dobsonian hole
    */
    static
    bool obsListDemoteHole()
    {
      return self()->mObsListDemoteHole;
    }

    /**
      Is While sorting by percentage altitude in the observing list, demote objects present in the Dobsonian hole Immutable
    */
    static
    bool isObsListDemoteHoleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ObsListDemoteHole" ) );
    }

    /**
      Set This is the angular distance from the zenith, in degrees, below which you can easily point your telescope.
    */
    static
    void setObsListHoleSize( double v )
    {
      if (v != self()->mObsListHoleSize && !self()->isObsListHoleSizeImmutable()) {
        self()->mObsListHoleSize = v;
        Q_EMIT self()->ObsListHoleSizeChanged();
      }
    }

    Q_PROPERTY(double obsListHoleSize READ obsListHoleSize WRITE setObsListHoleSize NOTIFY ObsListHoleSizeChanged)
    Q_PROPERTY(bool isObsListHoleSizeImmutable READ isObsListHoleSizeImmutable CONSTANT)
    /**
      Get This is the angular distance from the zenith, in degrees, below which you can easily point your telescope.
    */
    static
    double obsListHoleSize()
    {
      return self()->mObsListHoleSize;
    }

    /**
      Is This is the angular distance from the zenith, in degrees, below which you can easily point your telescope. Immutable
    */
    static
    bool isObsListHoleSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ObsListHoleSize" ) );
    }

    /**
      Set The object must obey the minimum and maximum altitudes at least this much percentage of the indicated time range.
    */
    static
    void setObsListCoverage( double v )
    {
      if (v != self()->mObsListCoverage && !self()->isObsListCoverageImmutable()) {
        self()->mObsListCoverage = v;
        Q_EMIT self()->ObsListCoverageChanged();
      }
    }

    Q_PROPERTY(double obsListCoverage READ obsListCoverage WRITE setObsListCoverage NOTIFY ObsListCoverageChanged)
    Q_PROPERTY(bool isObsListCoverageImmutable READ isObsListCoverageImmutable CONSTANT)
    /**
      Get The object must obey the minimum and maximum altitudes at least this much percentage of the indicated time range.
    */
    static
    double obsListCoverage()
    {
      return self()->mObsListCoverage;
    }

    /**
      Is The object must obey the minimum and maximum altitudes at least this much percentage of the indicated time range. Immutable
    */
    static
    bool isObsListCoverageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ObsListCoverage" ) );
    }

    /**
      Set The name of the color scheme
    */
    static
    void setColorSchemeFile( const QString & v )
    {
      if (v != self()->mColorSchemeFile && !self()->isColorSchemeFileImmutable()) {
        self()->mColorSchemeFile = v;
        Q_EMIT self()->ColorSchemeFileChanged();
      }
    }

    Q_PROPERTY(QString colorSchemeFile READ colorSchemeFile WRITE setColorSchemeFile NOTIFY ColorSchemeFileChanged)
    Q_PROPERTY(bool isColorSchemeFileImmutable READ isColorSchemeFileImmutable CONSTANT)
    /**
      Get The name of the color scheme
    */
    static
    QString colorSchemeFile()
    {
      return self()->mColorSchemeFile;
    }

    /**
      Is The name of the color scheme Immutable
    */
    static
    bool isColorSchemeFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ColorSchemeFile" ) );
    }

    /**
      Set Mode for rendering stars
    */
    static
    void setStarColorMode( uint v )
    {

      if (v > 4)
      {
        qDebug() << "setStarColorMode: value " << v << " is greater than the maximum value of 4";
        v = 4;
      }

      if (v != self()->mStarColorMode && !self()->isStarColorModeImmutable()) {
        self()->mStarColorMode = v;
        Q_EMIT self()->StarColorModeChanged();
      }
    }

    Q_PROPERTY(uint starColorMode READ starColorMode WRITE setStarColorMode NOTIFY StarColorModeChanged)
    Q_PROPERTY(bool isStarColorModeImmutable READ isStarColorModeImmutable CONSTANT)
    /**
      Get Mode for rendering stars
    */
    static
    uint starColorMode()
    {
      return self()->mStarColorMode;
    }

    /**
      Is Mode for rendering stars Immutable
    */
    static
    bool isStarColorModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StarColorMode" ) );
    }

    /**
      Set Saturation level of star colors
    */
    static
    void setStarColorIntensity( uint v )
    {

      if (v > 10)
      {
        qDebug() << "setStarColorIntensity: value " << v << " is greater than the maximum value of 10";
        v = 10;
      }

      if (v != self()->mStarColorIntensity && !self()->isStarColorIntensityImmutable()) {
        self()->mStarColorIntensity = v;
        Q_EMIT self()->StarColorIntensityChanged();
      }
    }

    Q_PROPERTY(uint starColorIntensity READ starColorIntensity WRITE setStarColorIntensity NOTIFY StarColorIntensityChanged)
    Q_PROPERTY(bool isStarColorIntensityImmutable READ isStarColorIntensityImmutable CONSTANT)
    /**
      Get Saturation level of star colors
    */
    static
    uint starColorIntensity()
    {
      return self()->mStarColorIntensity;
    }

    /**
      Is Saturation level of star colors Immutable
    */
    static
    bool isStarColorIntensityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StarColorIntensity" ) );
    }

    /**
      Set Mode for filling dome slit
    */
    static
    void setDomeSlitInverted( bool v )
    {
      if (v != self()->mDomeSlitInverted && !self()->isDomeSlitInvertedImmutable()) {
        self()->mDomeSlitInverted = v;
        Q_EMIT self()->DomeSlitInvertedChanged();
      }
    }

    Q_PROPERTY(bool domeSlitInverted READ domeSlitInverted WRITE setDomeSlitInverted NOTIFY DomeSlitInvertedChanged)
    Q_PROPERTY(bool isDomeSlitInvertedImmutable READ isDomeSlitInvertedImmutable CONSTANT)
    /**
      Get Mode for filling dome slit
    */
    static
    bool domeSlitInverted()
    {
      return self()->mDomeSlitInverted;
    }

    /**
      Is Mode for filling dome slit Immutable
    */
    static
    bool isDomeSlitInvertedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DomeSlitInverted" ) );
    }

    /**
      Set Color of angular distance ruler
    */
    static
    void setAngularRulerColor( const QString & v )
    {
      if (v != self()->mAngularRulerColor && !self()->isAngularRulerColorImmutable()) {
        self()->mAngularRulerColor = v;
        Q_EMIT self()->AngularRulerColorChanged();
      }
    }

    Q_PROPERTY(QString angularRulerColor READ angularRulerColor WRITE setAngularRulerColor NOTIFY AngularRulerColorChanged)
    Q_PROPERTY(bool isAngularRulerColorImmutable READ isAngularRulerColorImmutable CONSTANT)
    /**
      Get Color of angular distance ruler
    */
    static
    QString angularRulerColor()
    {
      return self()->mAngularRulerColor;
    }

    /**
      Is Color of angular distance ruler Immutable
    */
    static
    bool isAngularRulerColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AngularRulerColor" ) );
    }

    /**
      Set Background color of InfoBoxes
    */
    static
    void setBoxBGColor( const QString & v )
    {
      if (v != self()->mBoxBGColor && !self()->isBoxBGColorImmutable()) {
        self()->mBoxBGColor = v;
        Q_EMIT self()->BoxBGColorChanged();
      }
    }

    Q_PROPERTY(QString boxBGColor READ boxBGColor WRITE setBoxBGColor NOTIFY BoxBGColorChanged)
    Q_PROPERTY(bool isBoxBGColorImmutable READ isBoxBGColorImmutable CONSTANT)
    /**
      Get Background color of InfoBoxes
    */
    static
    QString boxBGColor()
    {
      return self()->mBoxBGColor;
    }

    /**
      Is Background color of InfoBoxes Immutable
    */
    static
    bool isBoxBGColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BoxBGColor" ) );
    }

    /**
      Set Text color of InfoBoxes when grabbed with mouse
    */
    static
    void setBoxGrabColor( const QString & v )
    {
      if (v != self()->mBoxGrabColor && !self()->isBoxGrabColorImmutable()) {
        self()->mBoxGrabColor = v;
        Q_EMIT self()->BoxGrabColorChanged();
      }
    }

    Q_PROPERTY(QString boxGrabColor READ boxGrabColor WRITE setBoxGrabColor NOTIFY BoxGrabColorChanged)
    Q_PROPERTY(bool isBoxGrabColorImmutable READ isBoxGrabColorImmutable CONSTANT)
    /**
      Get Text color of InfoBoxes when grabbed with mouse
    */
    static
    QString boxGrabColor()
    {
      return self()->mBoxGrabColor;
    }

    /**
      Is Text color of InfoBoxes when grabbed with mouse Immutable
    */
    static
    bool isBoxGrabColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BoxGrabColor" ) );
    }

    /**
      Set Text color of InfoBoxes
    */
    static
    void setBoxTextColor( const QString & v )
    {
      if (v != self()->mBoxTextColor && !self()->isBoxTextColorImmutable()) {
        self()->mBoxTextColor = v;
        Q_EMIT self()->BoxTextColorChanged();
      }
    }

    Q_PROPERTY(QString boxTextColor READ boxTextColor WRITE setBoxTextColor NOTIFY BoxTextColorChanged)
    Q_PROPERTY(bool isBoxTextColorImmutable READ isBoxTextColorImmutable CONSTANT)
    /**
      Get Text color of InfoBoxes
    */
    static
    QString boxTextColor()
    {
      return self()->mBoxTextColor;
    }

    /**
      Is Text color of InfoBoxes Immutable
    */
    static
    bool isBoxTextColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BoxTextColor" ) );
    }

    /**
      Set Color of constellation boundaries
    */
    static
    void setCBoundColor( const QString & v )
    {
      if (v != self()->mCBoundColor && !self()->isCBoundColorImmutable()) {
        self()->mCBoundColor = v;
        Q_EMIT self()->CBoundColorChanged();
      }
    }

    Q_PROPERTY(QString cBoundColor READ cBoundColor WRITE setCBoundColor NOTIFY CBoundColorChanged)
    Q_PROPERTY(bool isCBoundColorImmutable READ isCBoundColorImmutable CONSTANT)
    /**
      Get Color of constellation boundaries
    */
    static
    QString cBoundColor()
    {
      return self()->mCBoundColor;
    }

    /**
      Is Color of constellation boundaries Immutable
    */
    static
    bool isCBoundColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CBoundColor" ) );
    }

    /**
      Set Color of highlighted constellation boundary
    */
    static
    void setCBoundHighColor( const QString & v )
    {
      if (v != self()->mCBoundHighColor && !self()->isCBoundHighColorImmutable()) {
        self()->mCBoundHighColor = v;
        Q_EMIT self()->CBoundHighColorChanged();
      }
    }

    Q_PROPERTY(QString cBoundHighColor READ cBoundHighColor WRITE setCBoundHighColor NOTIFY CBoundHighColorChanged)
    Q_PROPERTY(bool isCBoundHighColorImmutable READ isCBoundHighColorImmutable CONSTANT)
    /**
      Get Color of highlighted constellation boundary
    */
    static
    QString cBoundHighColor()
    {
      return self()->mCBoundHighColor;
    }

    /**
      Is Color of highlighted constellation boundary Immutable
    */
    static
    bool isCBoundHighColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CBoundHighColor" ) );
    }

    /**
      Set Color of constellation lines
    */
    static
    void setCLineColor( const QString & v )
    {
      if (v != self()->mCLineColor && !self()->isCLineColorImmutable()) {
        self()->mCLineColor = v;
        Q_EMIT self()->CLineColorChanged();
      }
    }

    Q_PROPERTY(QString cLineColor READ cLineColor WRITE setCLineColor NOTIFY CLineColorChanged)
    Q_PROPERTY(bool isCLineColorImmutable READ isCLineColorImmutable CONSTANT)
    /**
      Get Color of constellation lines
    */
    static
    QString cLineColor()
    {
      return self()->mCLineColor;
    }

    /**
      Is Color of constellation lines Immutable
    */
    static
    bool isCLineColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CLineColor" ) );
    }

    /**
      Set Color of constellation names
    */
    static
    void setCNameColor( const QString & v )
    {
      if (v != self()->mCNameColor && !self()->isCNameColorImmutable()) {
        self()->mCNameColor = v;
        Q_EMIT self()->CNameColorChanged();
      }
    }

    Q_PROPERTY(QString cNameColor READ cNameColor WRITE setCNameColor NOTIFY CNameColorChanged)
    Q_PROPERTY(bool isCNameColorImmutable READ isCNameColorImmutable CONSTANT)
    /**
      Get Color of constellation names
    */
    static
    QString cNameColor()
    {
      return self()->mCNameColor;
    }

    /**
      Is Color of constellation names Immutable
    */
    static
    bool isCNameColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CNameColor" ) );
    }

    /**
      Set Color of cardinal compass labels along horizon
    */
    static
    void setCompassColor( const QString & v )
    {
      if (v != self()->mCompassColor && !self()->isCompassColorImmutable()) {
        self()->mCompassColor = v;
        Q_EMIT self()->CompassColorChanged();
      }
    }

    Q_PROPERTY(QString compassColor READ compassColor WRITE setCompassColor NOTIFY CompassColorChanged)
    Q_PROPERTY(bool isCompassColorImmutable READ isCompassColorImmutable CONSTANT)
    /**
      Get Color of cardinal compass labels along horizon
    */
    static
    QString compassColor()
    {
      return self()->mCompassColor;
    }

    /**
      Is Color of cardinal compass labels along horizon Immutable
    */
    static
    bool isCompassColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CompassColor" ) );
    }

    /**
      Set Color of ecliptic line
    */
    static
    void setEclipticColor( const QString & v )
    {
      if (v != self()->mEclipticColor && !self()->isEclipticColorImmutable()) {
        self()->mEclipticColor = v;
        Q_EMIT self()->EclipticColorChanged();
      }
    }

    Q_PROPERTY(QString eclipticColor READ eclipticColor WRITE setEclipticColor NOTIFY EclipticColorChanged)
    Q_PROPERTY(bool isEclipticColorImmutable READ isEclipticColorImmutable CONSTANT)
    /**
      Get Color of ecliptic line
    */
    static
    QString eclipticColor()
    {
      return self()->mEclipticColor;
    }

    /**
      Is Color of ecliptic line Immutable
    */
    static
    bool isEclipticColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EclipticColor" ) );
    }

    /**
      Set Color of equator line
    */
    static
    void setEquatorColor( const QString & v )
    {
      if (v != self()->mEquatorColor && !self()->isEquatorColorImmutable()) {
        self()->mEquatorColor = v;
        Q_EMIT self()->EquatorColorChanged();
      }
    }

    Q_PROPERTY(QString equatorColor READ equatorColor WRITE setEquatorColor NOTIFY EquatorColorChanged)
    Q_PROPERTY(bool isEquatorColorImmutable READ isEquatorColorImmutable CONSTANT)
    /**
      Get Color of equator line
    */
    static
    QString equatorColor()
    {
      return self()->mEquatorColor;
    }

    /**
      Is Color of equator line Immutable
    */
    static
    bool isEquatorColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EquatorColor" ) );
    }

    /**
      Set Color of equatorial coordinate grid lines
    */
    static
    void setEquatorialGridColor( const QString & v )
    {
      if (v != self()->mEquatorialGridColor && !self()->isEquatorialGridColorImmutable()) {
        self()->mEquatorialGridColor = v;
        Q_EMIT self()->EquatorialGridColorChanged();
      }
    }

    Q_PROPERTY(QString equatorialGridColor READ equatorialGridColor WRITE setEquatorialGridColor NOTIFY EquatorialGridColorChanged)
    Q_PROPERTY(bool isEquatorialGridColorImmutable READ isEquatorialGridColorImmutable CONSTANT)
    /**
      Get Color of equatorial coordinate grid lines
    */
    static
    QString equatorialGridColor()
    {
      return self()->mEquatorialGridColor;
    }

    /**
      Is Color of equatorial coordinate grid lines Immutable
    */
    static
    bool isEquatorialGridColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EquatorialGridColor" ) );
    }

    /**
      Set Color of horizontal coordinate grid lines
    */
    static
    void setHorizontalGridColor( const QString & v )
    {
      if (v != self()->mHorizontalGridColor && !self()->isHorizontalGridColorImmutable()) {
        self()->mHorizontalGridColor = v;
        Q_EMIT self()->HorizontalGridColorChanged();
      }
    }

    Q_PROPERTY(QString horizontalGridColor READ horizontalGridColor WRITE setHorizontalGridColor NOTIFY HorizontalGridColorChanged)
    Q_PROPERTY(bool isHorizontalGridColorImmutable READ isHorizontalGridColorImmutable CONSTANT)
    /**
      Get Color of horizontal coordinate grid lines
    */
    static
    QString horizontalGridColor()
    {
      return self()->mHorizontalGridColor;
    }

    /**
      Is Color of horizontal coordinate grid lines Immutable
    */
    static
    bool isHorizontalGridColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HorizontalGridColor" ) );
    }

    /**
      Set Color of objects with extra links available
    */
    static
    void setSpecialObjectColor( const QString & v )
    {
      if (v != self()->mSpecialObjectColor && !self()->isSpecialObjectColorImmutable()) {
        self()->mSpecialObjectColor = v;
        Q_EMIT self()->SpecialObjectColorChanged();
      }
    }

    Q_PROPERTY(QString specialObjectColor READ specialObjectColor WRITE setSpecialObjectColor NOTIFY SpecialObjectColorChanged)
    Q_PROPERTY(bool isSpecialObjectColorImmutable READ isSpecialObjectColorImmutable CONSTANT)
    /**
      Get Color of objects with extra links available
    */
    static
    QString specialObjectColor()
    {
      return self()->mSpecialObjectColor;
    }

    /**
      Is Color of objects with extra links available Immutable
    */
    static
    bool isSpecialObjectColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SpecialObjectColor" ) );
    }

    /**
      Set Color of horizon line
    */
    static
    void setHorizonColor( const QString & v )
    {
      if (v != self()->mHorizonColor && !self()->isHorizonColorImmutable()) {
        self()->mHorizonColor = v;
        Q_EMIT self()->HorizonColorChanged();
      }
    }

    Q_PROPERTY(QString horizonColor READ horizonColor WRITE setHorizonColor NOTIFY HorizonColorChanged)
    Q_PROPERTY(bool isHorizonColorImmutable READ isHorizonColorImmutable CONSTANT)
    /**
      Get Color of horizon line
    */
    static
    QString horizonColor()
    {
      return self()->mHorizonColor;
    }

    /**
      Is Color of horizon line Immutable
    */
    static
    bool isHorizonColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HorizonColor" ) );
    }

    /**
      Set Color of local meridian line
    */
    static
    void setLocalMeridianColor( const QString & v )
    {
      if (v != self()->mLocalMeridianColor && !self()->isLocalMeridianColorImmutable()) {
        self()->mLocalMeridianColor = v;
        Q_EMIT self()->LocalMeridianColorChanged();
      }
    }

    Q_PROPERTY(QString localMeridianColor READ localMeridianColor WRITE setLocalMeridianColor NOTIFY LocalMeridianColorChanged)
    Q_PROPERTY(bool isLocalMeridianColorImmutable READ isLocalMeridianColorImmutable CONSTANT)
    /**
      Get Color of local meridian line
    */
    static
    QString localMeridianColor()
    {
      return self()->mLocalMeridianColor;
    }

    /**
      Is Color of local meridian line Immutable
    */
    static
    bool isLocalMeridianColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LocalMeridianColor" ) );
    }

    /**
      Set Color of Milky Way contour
    */
    static
    void setMilkyWayWColor( const QString & v )
    {
      if (v != self()->mMilkyWayWColor && !self()->isMilkyWayWColorImmutable()) {
        self()->mMilkyWayWColor = v;
        Q_EMIT self()->MilkyWayWColorChanged();
      }
    }

    Q_PROPERTY(QString milkyWayWColor READ milkyWayWColor WRITE setMilkyWayWColor NOTIFY MilkyWayWColorChanged)
    Q_PROPERTY(bool isMilkyWayWColorImmutable READ isMilkyWayWColorImmutable CONSTANT)
    /**
      Get Color of Milky Way contour
    */
    static
    QString milkyWayWColor()
    {
      return self()->mMilkyWayWColor;
    }

    /**
      Is Color of Milky Way contour Immutable
    */
    static
    bool isMilkyWayWColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MilkyWayWColor" ) );
    }

    /**
      Set Color of star name labels
    */
    static
    void setStarNameColor( const QString & v )
    {
      if (v != self()->mStarNameColor && !self()->isStarNameColorImmutable()) {
        self()->mStarNameColor = v;
        Q_EMIT self()->StarNameColorChanged();
      }
    }

    Q_PROPERTY(QString starNameColor READ starNameColor WRITE setStarNameColor NOTIFY StarNameColorChanged)
    Q_PROPERTY(bool isStarNameColorImmutable READ isStarNameColorImmutable CONSTANT)
    /**
      Get Color of star name labels
    */
    static
    QString starNameColor()
    {
      return self()->mStarNameColor;
    }

    /**
      Is Color of star name labels Immutable
    */
    static
    bool isStarNameColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StarNameColor" ) );
    }

    /**
      Set Color of deep-sky object name labels
    */
    static
    void setDeepSkyNameColor( const QString & v )
    {
      if (v != self()->mDeepSkyNameColor && !self()->isDeepSkyNameColorImmutable()) {
        self()->mDeepSkyNameColor = v;
        Q_EMIT self()->DeepSkyNameColorChanged();
      }
    }

    Q_PROPERTY(QString deepSkyNameColor READ deepSkyNameColor WRITE setDeepSkyNameColor NOTIFY DeepSkyNameColorChanged)
    Q_PROPERTY(bool isDeepSkyNameColorImmutable READ isDeepSkyNameColorImmutable CONSTANT)
    /**
      Get Color of deep-sky object name labels
    */
    static
    QString deepSkyNameColor()
    {
      return self()->mDeepSkyNameColor;
    }

    /**
      Is Color of deep-sky object name labels Immutable
    */
    static
    bool isDeepSkyNameColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DeepSkyNameColor" ) );
    }

    /**
      Set Color of planet name labels
    */
    static
    void setPlanetNameColor( const QString & v )
    {
      if (v != self()->mPlanetNameColor && !self()->isPlanetNameColorImmutable()) {
        self()->mPlanetNameColor = v;
        Q_EMIT self()->PlanetNameColorChanged();
      }
    }

    Q_PROPERTY(QString planetNameColor READ planetNameColor WRITE setPlanetNameColor NOTIFY PlanetNameColorChanged)
    Q_PROPERTY(bool isPlanetNameColorImmutable READ isPlanetNameColorImmutable CONSTANT)
    /**
      Get Color of planet name labels
    */
    static
    QString planetNameColor()
    {
      return self()->mPlanetNameColor;
    }

    /**
      Is Color of planet name labels Immutable
    */
    static
    bool isPlanetNameColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PlanetNameColor" ) );
    }

    /**
      Set Color of planet trails
    */
    static
    void setPlanetTrailColor( const QString & v )
    {
      if (v != self()->mPlanetTrailColor && !self()->isPlanetTrailColorImmutable()) {
        self()->mPlanetTrailColor = v;
        Q_EMIT self()->PlanetTrailColorChanged();
      }
    }

    Q_PROPERTY(QString planetTrailColor READ planetTrailColor WRITE setPlanetTrailColor NOTIFY PlanetTrailColorChanged)
    Q_PROPERTY(bool isPlanetTrailColorImmutable READ isPlanetTrailColorImmutable CONSTANT)
    /**
      Get Color of planet trails
    */
    static
    QString planetTrailColor()
    {
      return self()->mPlanetTrailColor;
    }

    /**
      Is Color of planet trails Immutable
    */
    static
    bool isPlanetTrailColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PlanetTrailColor" ) );
    }

    /**
      Set Color of sky
    */
    static
    void setSkyColor( const QString & v )
    {
      if (v != self()->mSkyColor && !self()->isSkyColorImmutable()) {
        self()->mSkyColor = v;
        Q_EMIT self()->SkyColorChanged();
      }
    }

    Q_PROPERTY(QString skyColor READ skyColor WRITE setSkyColor NOTIFY SkyColorChanged)
    Q_PROPERTY(bool isSkyColorImmutable READ isSkyColorImmutable CONSTANT)
    /**
      Get Color of sky
    */
    static
    QString skyColor()
    {
      return self()->mSkyColor;
    }

    /**
      Is Color of sky Immutable
    */
    static
    bool isSkyColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SkyColor" ) );
    }

    /**
      Set Color of sky during the daytime
    */
    static
    void setSkyColorDaytime( const QString & v )
    {
      if (v != self()->mSkyColorDaytime && !self()->isSkyColorDaytimeImmutable()) {
        self()->mSkyColorDaytime = v;
        Q_EMIT self()->SkyColorDaytimeChanged();
      }
    }

    Q_PROPERTY(QString skyColorDaytime READ skyColorDaytime WRITE setSkyColorDaytime NOTIFY SkyColorDaytimeChanged)
    Q_PROPERTY(bool isSkyColorDaytimeImmutable READ isSkyColorDaytimeImmutable CONSTANT)
    /**
      Get Color of sky during the daytime
    */
    static
    QString skyColorDaytime()
    {
      return self()->mSkyColorDaytime;
    }

    /**
      Is Color of sky during the daytime Immutable
    */
    static
    bool isSkyColorDaytimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SkyColorDaytime" ) );
    }

    /**
      Set Color Artificial Horizon
    */
    static
    void setArtificialHorizonColor( const QString & v )
    {
      if (v != self()->mArtificialHorizonColor && !self()->isArtificialHorizonColorImmutable()) {
        self()->mArtificialHorizonColor = v;
        Q_EMIT self()->ArtificialHorizonColorChanged();
      }
    }

    Q_PROPERTY(QString artificialHorizonColor READ artificialHorizonColor WRITE setArtificialHorizonColor NOTIFY ArtificialHorizonColorChanged)
    Q_PROPERTY(bool isArtificialHorizonColorImmutable READ isArtificialHorizonColorImmutable CONSTANT)
    /**
      Get Color Artificial Horizon
    */
    static
    QString artificialHorizonColor()
    {
      return self()->mArtificialHorizonColor;
    }

    /**
      Is Color Artificial Horizon Immutable
    */
    static
    bool isArtificialHorizonColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ArtificialHorizonColor" ) );
    }

    /**
      Set Color of telescope symbols
    */
    static
    void setTelescopeTargetColor( const QString & v )
    {
      if (v != self()->mTelescopeTargetColor && !self()->isTelescopeTargetColorImmutable()) {
        self()->mTelescopeTargetColor = v;
        Q_EMIT self()->TelescopeTargetColorChanged();
      }
    }

    Q_PROPERTY(QString telescopeTargetColor READ telescopeTargetColor WRITE setTelescopeTargetColor NOTIFY TelescopeTargetColorChanged)
    Q_PROPERTY(bool isTelescopeTargetColorImmutable READ isTelescopeTargetColorImmutable CONSTANT)
    /**
      Get Color of telescope symbols
    */
    static
    QString telescopeTargetColor()
    {
      return self()->mTelescopeTargetColor;
    }

    /**
      Is Color of telescope symbols Immutable
    */
    static
    bool isTelescopeTargetColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TelescopeTargetColor" ) );
    }

    /**
      Set Color of visible satellites
    */
    static
    void setVisibleSatColor( const QString & v )
    {
      if (v != self()->mVisibleSatColor && !self()->isVisibleSatColorImmutable()) {
        self()->mVisibleSatColor = v;
        Q_EMIT self()->VisibleSatColorChanged();
      }
    }

    Q_PROPERTY(QString visibleSatColor READ visibleSatColor WRITE setVisibleSatColor NOTIFY VisibleSatColorChanged)
    Q_PROPERTY(bool isVisibleSatColorImmutable READ isVisibleSatColorImmutable CONSTANT)
    /**
      Get Color of visible satellites
    */
    static
    QString visibleSatColor()
    {
      return self()->mVisibleSatColor;
    }

    /**
      Is Color of visible satellites Immutable
    */
    static
    bool isVisibleSatColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "VisibleSatColor" ) );
    }

    /**
      Set Color of invisible satellites
    */
    static
    void setSatColor( const QString & v )
    {
      if (v != self()->mSatColor && !self()->isSatColorImmutable()) {
        self()->mSatColor = v;
        Q_EMIT self()->SatColorChanged();
      }
    }

    Q_PROPERTY(QString satColor READ satColor WRITE setSatColor NOTIFY SatColorChanged)
    Q_PROPERTY(bool isSatColorImmutable READ isSatColorImmutable CONSTANT)
    /**
      Get Color of invisible satellites
    */
    static
    QString satColor()
    {
      return self()->mSatColor;
    }

    /**
      Is Color of invisible satellites Immutable
    */
    static
    bool isSatColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SatColor" ) );
    }

    /**
      Set Color of satellites labels
    */
    static
    void setSatLabelColor( const QString & v )
    {
      if (v != self()->mSatLabelColor && !self()->isSatLabelColorImmutable()) {
        self()->mSatLabelColor = v;
        Q_EMIT self()->SatLabelColorChanged();
      }
    }

    Q_PROPERTY(QString satLabelColor READ satLabelColor WRITE setSatLabelColor NOTIFY SatLabelColorChanged)
    Q_PROPERTY(bool isSatLabelColorImmutable READ isSatLabelColorImmutable CONSTANT)
    /**
      Get Color of satellites labels
    */
    static
    QString satLabelColor()
    {
      return self()->mSatLabelColor;
    }

    /**
      Is Color of satellites labels Immutable
    */
    static
    bool isSatLabelColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SatLabelColor" ) );
    }

    /**
      Set Color of supernovae
    */
    static
    void setSupernovaColor( const QString & v )
    {
      if (v != self()->mSupernovaColor && !self()->isSupernovaColorImmutable()) {
        self()->mSupernovaColor = v;
        Q_EMIT self()->SupernovaColorChanged();
      }
    }

    Q_PROPERTY(QString supernovaColor READ supernovaColor WRITE setSupernovaColor NOTIFY SupernovaColorChanged)
    Q_PROPERTY(bool isSupernovaColorImmutable READ isSupernovaColorImmutable CONSTANT)
    /**
      Get Color of supernovae
    */
    static
    QString supernovaColor()
    {
      return self()->mSupernovaColor;
    }

    /**
      Is Color of supernovae Immutable
    */
    static
    bool isSupernovaColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SupernovaColor" ) );
    }

    /**
      Set Color of asteroids
    */
    static
    void setAsteroidColor( const QString & v )
    {
      if (v != self()->mAsteroidColor && !self()->isAsteroidColorImmutable()) {
        self()->mAsteroidColor = v;
        Q_EMIT self()->AsteroidColorChanged();
      }
    }

    Q_PROPERTY(QString asteroidColor READ asteroidColor WRITE setAsteroidColor NOTIFY AsteroidColorChanged)
    Q_PROPERTY(bool isAsteroidColorImmutable READ isAsteroidColorImmutable CONSTANT)
    /**
      Get Color of asteroids
    */
    static
    QString asteroidColor()
    {
      return self()->mAsteroidColor;
    }

    /**
      Is Color of asteroids Immutable
    */
    static
    bool isAsteroidColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AsteroidColor" ) );
    }

    /**
      Set Color of user-added labels
    */
    static
    void setUserLabelColor( const QString & v )
    {
      if (v != self()->mUserLabelColor && !self()->isUserLabelColorImmutable()) {
        self()->mUserLabelColor = v;
        Q_EMIT self()->UserLabelColorChanged();
      }
    }

    Q_PROPERTY(QString userLabelColor READ userLabelColor WRITE setUserLabelColor NOTIFY UserLabelColorChanged)
    Q_PROPERTY(bool isUserLabelColorImmutable READ isUserLabelColorImmutable CONSTANT)
    /**
      Get Color of user-added labels
    */
    static
    QString userLabelColor()
    {
      return self()->mUserLabelColor;
    }

    /**
      Is Color of user-added labels Immutable
    */
    static
    bool isUserLabelColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UserLabelColor" ) );
    }

    /**
      Set Color of RA Guide Error
    */
    static
    void setRAGuideColor( const QString & v )
    {
      if (v != self()->mRAGuideColor && !self()->isRAGuideColorImmutable()) {
        self()->mRAGuideColor = v;
        Q_EMIT self()->RAGuideColorChanged();
      }
    }

    Q_PROPERTY(QString rAGuideColor READ rAGuideColor WRITE setRAGuideColor NOTIFY RAGuideColorChanged)
    Q_PROPERTY(bool isRAGuideColorImmutable READ isRAGuideColorImmutable CONSTANT)
    /**
      Get Color of RA Guide Error
    */
    static
    QString rAGuideColor()
    {
      return self()->mRAGuideColor;
    }

    /**
      Is Color of RA Guide Error Immutable
    */
    static
    bool isRAGuideColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RAGuideColor" ) );
    }

    /**
      Set Color of DEC Guide Error
    */
    static
    void setDEGuideColor( const QString & v )
    {
      if (v != self()->mDEGuideColor && !self()->isDEGuideColorImmutable()) {
        self()->mDEGuideColor = v;
        Q_EMIT self()->DEGuideColorChanged();
      }
    }

    Q_PROPERTY(QString dEGuideColor READ dEGuideColor WRITE setDEGuideColor NOTIFY DEGuideColorChanged)
    Q_PROPERTY(bool isDEGuideColorImmutable READ isDEGuideColorImmutable CONSTANT)
    /**
      Get Color of DEC Guide Error
    */
    static
    QString dEGuideColor()
    {
      return self()->mDEGuideColor;
    }

    /**
      Is Color of DEC Guide Error Immutable
    */
    static
    bool isDEGuideColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DEGuideColor" ) );
    }

    /**
      Set Color of solver FOV box
    */
    static
    void setSolverFOVColor( const QString & v )
    {
      if (v != self()->mSolverFOVColor && !self()->isSolverFOVColorImmutable()) {
        self()->mSolverFOVColor = v;
        Q_EMIT self()->SolverFOVColorChanged();
      }
    }

    Q_PROPERTY(QString solverFOVColor READ solverFOVColor WRITE setSolverFOVColor NOTIFY SolverFOVColorChanged)
    Q_PROPERTY(bool isSolverFOVColorImmutable READ isSolverFOVColorImmutable CONSTANT)
    /**
      Get Color of solver FOV box
    */
    static
    QString solverFOVColor()
    {
      return self()->mSolverFOVColor;
    }

    /**
      Is Color of solver FOV box Immutable
    */
    static
    bool isSolverFOVColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SolverFOVColor" ) );
    }

    /**
      Set Internal or External XPlanet?
    */
    static
    void setXplanetIsInternal( bool v )
    {
      if (v != self()->mXplanetIsInternal && !self()->isXplanetIsInternalImmutable()) {
        self()->mXplanetIsInternal = v;
        Q_EMIT self()->xplanetIsInternalChanged();
      }
    }

    Q_PROPERTY(bool xplanetIsInternal READ xplanetIsInternal WRITE setXplanetIsInternal NOTIFY xplanetIsInternalChanged)
    Q_PROPERTY(bool isXplanetIsInternalImmutable READ isXplanetIsInternalImmutable CONSTANT)
    /**
      Get Internal or External XPlanet?
    */
    static
    bool xplanetIsInternal()
    {
      return self()->mXplanetIsInternal;
    }

    /**
      Is Internal or External XPlanet? Immutable
    */
    static
    bool isXplanetIsInternalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "xplanetIsInternal" ) );
    }

    /**
      Set Path to xplanet binary
    */
    static
    void setXplanetPath( const QString & v )
    {
      if (v != self()->mXplanetPath && !self()->isXplanetPathImmutable()) {
        self()->mXplanetPath = v;
        Q_EMIT self()->XplanetPathChanged();
      }
    }

    Q_PROPERTY(QString xplanetPath READ xplanetPath WRITE setXplanetPath NOTIFY XplanetPathChanged)
    Q_PROPERTY(bool isXplanetPathImmutable READ isXplanetPathImmutable CONSTANT)
    /**
      Get Path to xplanet binary
    */
    static
    QString xplanetPath()
    {
      return self()->mXplanetPath;
    }

    /**
      Is Path to xplanet binary Immutable
    */
    static
    bool isXplanetPathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetPath" ) );
    }

    /**
      Set Use FIFO file
    */
    static
    void setXplanetUseFIFO( bool v )
    {
      if (v != self()->mXplanetUseFIFO && !self()->isXplanetUseFIFOImmutable()) {
        self()->mXplanetUseFIFO = v;
        Q_EMIT self()->XplanetUseFIFOChanged();
      }
    }

    Q_PROPERTY(bool xplanetUseFIFO READ xplanetUseFIFO WRITE setXplanetUseFIFO NOTIFY XplanetUseFIFOChanged)
    Q_PROPERTY(bool isXplanetUseFIFOImmutable READ isXplanetUseFIFOImmutable CONSTANT)
    /**
      Get Use FIFO file
    */
    static
    bool xplanetUseFIFO()
    {
      return self()->mXplanetUseFIFO;
    }

    /**
      Is Use FIFO file Immutable
    */
    static
    bool isXplanetUseFIFOImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetUseFIFO" ) );
    }

    /**
      Set XPlanet timeout
    */
    static
    void setXplanetTimeout( uint v )
    {
      if (v != self()->mXplanetTimeout && !self()->isXplanetTimeoutImmutable()) {
        self()->mXplanetTimeout = v;
        Q_EMIT self()->XplanetTimeoutChanged();
      }
    }

    Q_PROPERTY(uint xplanetTimeout READ xplanetTimeout WRITE setXplanetTimeout NOTIFY XplanetTimeoutChanged)
    Q_PROPERTY(bool isXplanetTimeoutImmutable READ isXplanetTimeoutImmutable CONSTANT)
    /**
      Get XPlanet timeout
    */
    static
    uint xplanetTimeout()
    {
      return self()->mXplanetTimeout;
    }

    /**
      Is XPlanet timeout Immutable
    */
    static
    bool isXplanetTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetTimeout" ) );
    }

    /**
      Set XPlanet animation delay
    */
    static
    void setXplanetAnimationDelay( uint v )
    {
      if (v != self()->mXplanetAnimationDelay && !self()->isXplanetAnimationDelayImmutable()) {
        self()->mXplanetAnimationDelay = v;
        Q_EMIT self()->XplanetAnimationDelayChanged();
      }
    }

    Q_PROPERTY(uint xplanetAnimationDelay READ xplanetAnimationDelay WRITE setXplanetAnimationDelay NOTIFY XplanetAnimationDelayChanged)
    Q_PROPERTY(bool isXplanetAnimationDelayImmutable READ isXplanetAnimationDelayImmutable CONSTANT)
    /**
      Get XPlanet animation delay
    */
    static
    uint xplanetAnimationDelay()
    {
      return self()->mXplanetAnimationDelay;
    }

    /**
      Is XPlanet animation delay Immutable
    */
    static
    bool isXplanetAnimationDelayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetAnimationDelay" ) );
    }

    /**
      Set Width of xplanet window
    */
    static
    void setXplanetWidth( uint v )
    {
      if (v != self()->mXplanetWidth && !self()->isXplanetWidthImmutable()) {
        self()->mXplanetWidth = v;
        Q_EMIT self()->XplanetWidthChanged();
      }
    }

    Q_PROPERTY(uint xplanetWidth READ xplanetWidth WRITE setXplanetWidth NOTIFY XplanetWidthChanged)
    Q_PROPERTY(bool isXplanetWidthImmutable READ isXplanetWidthImmutable CONSTANT)
    /**
      Get Width of xplanet window
    */
    static
    uint xplanetWidth()
    {
      return self()->mXplanetWidth;
    }

    /**
      Is Width of xplanet window Immutable
    */
    static
    bool isXplanetWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetWidth" ) );
    }

    /**
      Set Height of xplanet window
    */
    static
    void setXplanetHeight( uint v )
    {
      if (v != self()->mXplanetHeight && !self()->isXplanetHeightImmutable()) {
        self()->mXplanetHeight = v;
        Q_EMIT self()->XplanetHeightChanged();
      }
    }

    Q_PROPERTY(uint xplanetHeight READ xplanetHeight WRITE setXplanetHeight NOTIFY XplanetHeightChanged)
    Q_PROPERTY(bool isXplanetHeightImmutable READ isXplanetHeightImmutable CONSTANT)
    /**
      Get Height of xplanet window
    */
    static
    uint xplanetHeight()
    {
      return self()->mXplanetHeight;
    }

    /**
      Is Height of xplanet window Immutable
    */
    static
    bool isXplanetHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetHeight" ) );
    }

    /**
      Set Show label
    */
    static
    void setXplanetLabel( bool v )
    {
      if (v != self()->mXplanetLabel && !self()->isXplanetLabelImmutable()) {
        self()->mXplanetLabel = v;
        Q_EMIT self()->XplanetLabelChanged();
      }
    }

    Q_PROPERTY(bool xplanetLabel READ xplanetLabel WRITE setXplanetLabel NOTIFY XplanetLabelChanged)
    Q_PROPERTY(bool isXplanetLabelImmutable READ isXplanetLabelImmutable CONSTANT)
    /**
      Get Show label
    */
    static
    bool xplanetLabel()
    {
      return self()->mXplanetLabel;
    }

    /**
      Is Show label Immutable
    */
    static
    bool isXplanetLabelImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLabel" ) );
    }

    /**
      Set Show GMT label
    */
    static
    void setXplanetLabelLocalTime( bool v )
    {
      if (v != self()->mXplanetLabelLocalTime && !self()->isXplanetLabelLocalTimeImmutable()) {
        self()->mXplanetLabelLocalTime = v;
        Q_EMIT self()->XplanetLabelLocalTimeChanged();
      }
    }

    Q_PROPERTY(bool xplanetLabelLocalTime READ xplanetLabelLocalTime WRITE setXplanetLabelLocalTime NOTIFY XplanetLabelLocalTimeChanged)
    Q_PROPERTY(bool isXplanetLabelLocalTimeImmutable READ isXplanetLabelLocalTimeImmutable CONSTANT)
    /**
      Get Show GMT label
    */
    static
    bool xplanetLabelLocalTime()
    {
      return self()->mXplanetLabelLocalTime;
    }

    /**
      Is Show GMT label Immutable
    */
    static
    bool isXplanetLabelLocalTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLabelLocalTime" ) );
    }

    /**
      Set Show GMT label
    */
    static
    void setXplanetLabelGMT( bool v )
    {
      if (v != self()->mXplanetLabelGMT && !self()->isXplanetLabelGMTImmutable()) {
        self()->mXplanetLabelGMT = v;
        Q_EMIT self()->XplanetLabelGMTChanged();
      }
    }

    Q_PROPERTY(bool xplanetLabelGMT READ xplanetLabelGMT WRITE setXplanetLabelGMT NOTIFY XplanetLabelGMTChanged)
    Q_PROPERTY(bool isXplanetLabelGMTImmutable READ isXplanetLabelGMTImmutable CONSTANT)
    /**
      Get Show GMT label
    */
    static
    bool xplanetLabelGMT()
    {
      return self()->mXplanetLabelGMT;
    }

    /**
      Is Show GMT label Immutable
    */
    static
    bool isXplanetLabelGMTImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLabelGMT" ) );
    }

    /**
      Set Planet string
    */
    static
    void setXplanetLabelString( const QString & v )
    {
      if (v != self()->mXplanetLabelString && !self()->isXplanetLabelStringImmutable()) {
        self()->mXplanetLabelString = v;
        Q_EMIT self()->XplanetLabelStringChanged();
      }
    }

    Q_PROPERTY(QString xplanetLabelString READ xplanetLabelString WRITE setXplanetLabelString NOTIFY XplanetLabelStringChanged)
    Q_PROPERTY(bool isXplanetLabelStringImmutable READ isXplanetLabelStringImmutable CONSTANT)
    /**
      Get Planet string
    */
    static
    QString xplanetLabelString()
    {
      return self()->mXplanetLabelString;
    }

    /**
      Is Planet string Immutable
    */
    static
    bool isXplanetLabelStringImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLabelString" ) );
    }

    /**
      Set Font Size
    */
    static
    void setXplanetFontSize( const QString & v )
    {
      if (v != self()->mXplanetFontSize && !self()->isXplanetFontSizeImmutable()) {
        self()->mXplanetFontSize = v;
        Q_EMIT self()->XplanetFontSizeChanged();
      }
    }

    Q_PROPERTY(QString xplanetFontSize READ xplanetFontSize WRITE setXplanetFontSize NOTIFY XplanetFontSizeChanged)
    Q_PROPERTY(bool isXplanetFontSizeImmutable READ isXplanetFontSizeImmutable CONSTANT)
    /**
      Get Font Size
    */
    static
    QString xplanetFontSize()
    {
      return self()->mXplanetFontSize;
    }

    /**
      Is Font Size Immutable
    */
    static
    bool isXplanetFontSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetFontSize" ) );
    }

    /**
      Set Label color
    */
    static
    void setXplanetColor( const QString & v )
    {
      if (v != self()->mXplanetColor && !self()->isXplanetColorImmutable()) {
        self()->mXplanetColor = v;
        Q_EMIT self()->XplanetColorChanged();
      }
    }

    Q_PROPERTY(QString xplanetColor READ xplanetColor WRITE setXplanetColor NOTIFY XplanetColorChanged)
    Q_PROPERTY(bool isXplanetColorImmutable READ isXplanetColorImmutable CONSTANT)
    /**
      Get Label color
    */
    static
    QString xplanetColor()
    {
      return self()->mXplanetColor;
    }

    /**
      Is Label color Immutable
    */
    static
    bool isXplanetColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetColor" ) );
    }

    /**
      Set Date format
    */
    static
    void setXplanetDateFormat( const QString & v )
    {
      if (v != self()->mXplanetDateFormat && !self()->isXplanetDateFormatImmutable()) {
        self()->mXplanetDateFormat = v;
        Q_EMIT self()->XplanetDateFormatChanged();
      }
    }

    Q_PROPERTY(QString xplanetDateFormat READ xplanetDateFormat WRITE setXplanetDateFormat NOTIFY XplanetDateFormatChanged)
    Q_PROPERTY(bool isXplanetDateFormatImmutable READ isXplanetDateFormatImmutable CONSTANT)
    /**
      Get Date format
    */
    static
    QString xplanetDateFormat()
    {
      return self()->mXplanetDateFormat;
    }

    /**
      Is Date format Immutable
    */
    static
    bool isXplanetDateFormatImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetDateFormat" ) );
    }

    /**
      Set Top left
    */
    static
    void setXplanetLabelTL( bool v )
    {
      if (v != self()->mXplanetLabelTL && !self()->isXplanetLabelTLImmutable()) {
        self()->mXplanetLabelTL = v;
        Q_EMIT self()->XplanetLabelTLChanged();
      }
    }

    Q_PROPERTY(bool xplanetLabelTL READ xplanetLabelTL WRITE setXplanetLabelTL NOTIFY XplanetLabelTLChanged)
    Q_PROPERTY(bool isXplanetLabelTLImmutable READ isXplanetLabelTLImmutable CONSTANT)
    /**
      Get Top left
    */
    static
    bool xplanetLabelTL()
    {
      return self()->mXplanetLabelTL;
    }

    /**
      Is Top left Immutable
    */
    static
    bool isXplanetLabelTLImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLabelTL" ) );
    }

    /**
      Set Top right
    */
    static
    void setXplanetLabelTR( bool v )
    {
      if (v != self()->mXplanetLabelTR && !self()->isXplanetLabelTRImmutable()) {
        self()->mXplanetLabelTR = v;
        Q_EMIT self()->XplanetLabelTRChanged();
      }
    }

    Q_PROPERTY(bool xplanetLabelTR READ xplanetLabelTR WRITE setXplanetLabelTR NOTIFY XplanetLabelTRChanged)
    Q_PROPERTY(bool isXplanetLabelTRImmutable READ isXplanetLabelTRImmutable CONSTANT)
    /**
      Get Top right
    */
    static
    bool xplanetLabelTR()
    {
      return self()->mXplanetLabelTR;
    }

    /**
      Is Top right Immutable
    */
    static
    bool isXplanetLabelTRImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLabelTR" ) );
    }

    /**
      Set Bottom right
    */
    static
    void setXplanetLabelBR( bool v )
    {
      if (v != self()->mXplanetLabelBR && !self()->isXplanetLabelBRImmutable()) {
        self()->mXplanetLabelBR = v;
        Q_EMIT self()->XplanetLabelBRChanged();
      }
    }

    Q_PROPERTY(bool xplanetLabelBR READ xplanetLabelBR WRITE setXplanetLabelBR NOTIFY XplanetLabelBRChanged)
    Q_PROPERTY(bool isXplanetLabelBRImmutable READ isXplanetLabelBRImmutable CONSTANT)
    /**
      Get Bottom right
    */
    static
    bool xplanetLabelBR()
    {
      return self()->mXplanetLabelBR;
    }

    /**
      Is Bottom right Immutable
    */
    static
    bool isXplanetLabelBRImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLabelBR" ) );
    }

    /**
      Set Bottom left
    */
    static
    void setXplanetLabelBL( bool v )
    {
      if (v != self()->mXplanetLabelBL && !self()->isXplanetLabelBLImmutable()) {
        self()->mXplanetLabelBL = v;
        Q_EMIT self()->XplanetLabelBLChanged();
      }
    }

    Q_PROPERTY(bool xplanetLabelBL READ xplanetLabelBL WRITE setXplanetLabelBL NOTIFY XplanetLabelBLChanged)
    Q_PROPERTY(bool isXplanetLabelBLImmutable READ isXplanetLabelBLImmutable CONSTANT)
    /**
      Get Bottom left
    */
    static
    bool xplanetLabelBL()
    {
      return self()->mXplanetLabelBL;
    }

    /**
      Is Bottom left Immutable
    */
    static
    bool isXplanetLabelBLImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLabelBL" ) );
    }

    /**
      Set Sun Glare
    */
    static
    void setXplanetGlare( const QString & v )
    {
      if (v != self()->mXplanetGlare && !self()->isXplanetGlareImmutable()) {
        self()->mXplanetGlare = v;
        Q_EMIT self()->XplanetGlareChanged();
      }
    }

    Q_PROPERTY(QString xplanetGlare READ xplanetGlare WRITE setXplanetGlare NOTIFY XplanetGlareChanged)
    Q_PROPERTY(bool isXplanetGlareImmutable READ isXplanetGlareImmutable CONSTANT)
    /**
      Get Sun Glare
    */
    static
    QString xplanetGlare()
    {
      return self()->mXplanetGlare;
    }

    /**
      Is Sun Glare Immutable
    */
    static
    bool isXplanetGlareImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetGlare" ) );
    }

    /**
      Set Random latitude and longitude
    */
    static
    void setXplanetRandom( bool v )
    {
      if (v != self()->mXplanetRandom && !self()->isXplanetRandomImmutable()) {
        self()->mXplanetRandom = v;
        Q_EMIT self()->XplanetRandomChanged();
      }
    }

    Q_PROPERTY(bool xplanetRandom READ xplanetRandom WRITE setXplanetRandom NOTIFY XplanetRandomChanged)
    Q_PROPERTY(bool isXplanetRandomImmutable READ isXplanetRandomImmutable CONSTANT)
    /**
      Get Random latitude and longitude
    */
    static
    bool xplanetRandom()
    {
      return self()->mXplanetRandom;
    }

    /**
      Is Random latitude and longitude Immutable
    */
    static
    bool isXplanetRandomImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetRandom" ) );
    }

    /**
      Set Latitude-Longitude
    */
    static
    void setXplanetLatLong( bool v )
    {
      if (v != self()->mXplanetLatLong && !self()->isXplanetLatLongImmutable()) {
        self()->mXplanetLatLong = v;
        Q_EMIT self()->XplanetLatLongChanged();
      }
    }

    Q_PROPERTY(bool xplanetLatLong READ xplanetLatLong WRITE setXplanetLatLong NOTIFY XplanetLatLongChanged)
    Q_PROPERTY(bool isXplanetLatLongImmutable READ isXplanetLatLongImmutable CONSTANT)
    /**
      Get Latitude-Longitude
    */
    static
    bool xplanetLatLong()
    {
      return self()->mXplanetLatLong;
    }

    /**
      Is Latitude-Longitude Immutable
    */
    static
    bool isXplanetLatLongImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLatLong" ) );
    }

    /**
      Set Latitude in degrees
    */
    static
    void setXplanetLatitude( const QString & v )
    {
      if (v != self()->mXplanetLatitude && !self()->isXplanetLatitudeImmutable()) {
        self()->mXplanetLatitude = v;
        Q_EMIT self()->XplanetLatitudeChanged();
      }
    }

    Q_PROPERTY(QString xplanetLatitude READ xplanetLatitude WRITE setXplanetLatitude NOTIFY XplanetLatitudeChanged)
    Q_PROPERTY(bool isXplanetLatitudeImmutable READ isXplanetLatitudeImmutable CONSTANT)
    /**
      Get Latitude in degrees
    */
    static
    QString xplanetLatitude()
    {
      return self()->mXplanetLatitude;
    }

    /**
      Is Latitude in degrees Immutable
    */
    static
    bool isXplanetLatitudeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLatitude" ) );
    }

    /**
      Set Longitude in degrees
    */
    static
    void setXplanetLongitude( const QString & v )
    {
      if (v != self()->mXplanetLongitude && !self()->isXplanetLongitudeImmutable()) {
        self()->mXplanetLongitude = v;
        Q_EMIT self()->XplanetLongitudeChanged();
      }
    }

    Q_PROPERTY(QString xplanetLongitude READ xplanetLongitude WRITE setXplanetLongitude NOTIFY XplanetLongitudeChanged)
    Q_PROPERTY(bool isXplanetLongitudeImmutable READ isXplanetLongitudeImmutable CONSTANT)
    /**
      Get Longitude in degrees
    */
    static
    QString xplanetLongitude()
    {
      return self()->mXplanetLongitude;
    }

    /**
      Is Longitude in degrees Immutable
    */
    static
    bool isXplanetLongitudeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetLongitude" ) );
    }

    /**
      Set Projection
    */
    static
    void setXplanetProjection( uint v )
    {
      if (v != self()->mXplanetProjection && !self()->isXplanetProjectionImmutable()) {
        self()->mXplanetProjection = v;
        Q_EMIT self()->XplanetProjectionChanged();
      }
    }

    Q_PROPERTY(uint xplanetProjection READ xplanetProjection WRITE setXplanetProjection NOTIFY XplanetProjectionChanged)
    Q_PROPERTY(bool isXplanetProjectionImmutable READ isXplanetProjectionImmutable CONSTANT)
    /**
      Get Projection
    */
    static
    uint xplanetProjection()
    {
      return self()->mXplanetProjection;
    }

    /**
      Is Projection Immutable
    */
    static
    bool isXplanetProjectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetProjection" ) );
    }

    /**
      Set Use background
    */
    static
    void setXplanetBackground( bool v )
    {
      if (v != self()->mXplanetBackground && !self()->isXplanetBackgroundImmutable()) {
        self()->mXplanetBackground = v;
        Q_EMIT self()->XplanetBackgroundChanged();
      }
    }

    Q_PROPERTY(bool xplanetBackground READ xplanetBackground WRITE setXplanetBackground NOTIFY XplanetBackgroundChanged)
    Q_PROPERTY(bool isXplanetBackgroundImmutable READ isXplanetBackgroundImmutable CONSTANT)
    /**
      Get Use background
    */
    static
    bool xplanetBackground()
    {
      return self()->mXplanetBackground;
    }

    /**
      Is Use background Immutable
    */
    static
    bool isXplanetBackgroundImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetBackground" ) );
    }

    /**
      Set Use background image
    */
    static
    void setXplanetBackgroundImage( bool v )
    {
      if (v != self()->mXplanetBackgroundImage && !self()->isXplanetBackgroundImageImmutable()) {
        self()->mXplanetBackgroundImage = v;
        Q_EMIT self()->XplanetBackgroundImageChanged();
      }
    }

    Q_PROPERTY(bool xplanetBackgroundImage READ xplanetBackgroundImage WRITE setXplanetBackgroundImage NOTIFY XplanetBackgroundImageChanged)
    Q_PROPERTY(bool isXplanetBackgroundImageImmutable READ isXplanetBackgroundImageImmutable CONSTANT)
    /**
      Get Use background image
    */
    static
    bool xplanetBackgroundImage()
    {
      return self()->mXplanetBackgroundImage;
    }

    /**
      Is Use background image Immutable
    */
    static
    bool isXplanetBackgroundImageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetBackgroundImage" ) );
    }

    /**
      Set Background image path
    */
    static
    void setXplanetBackgroundImagePath( const QString & v )
    {
      if (v != self()->mXplanetBackgroundImagePath && !self()->isXplanetBackgroundImagePathImmutable()) {
        self()->mXplanetBackgroundImagePath = v;
        Q_EMIT self()->XplanetBackgroundImagePathChanged();
      }
    }

    Q_PROPERTY(QString xplanetBackgroundImagePath READ xplanetBackgroundImagePath WRITE setXplanetBackgroundImagePath NOTIFY XplanetBackgroundImagePathChanged)
    Q_PROPERTY(bool isXplanetBackgroundImagePathImmutable READ isXplanetBackgroundImagePathImmutable CONSTANT)
    /**
      Get Background image path
    */
    static
    QString xplanetBackgroundImagePath()
    {
      return self()->mXplanetBackgroundImagePath;
    }

    /**
      Is Background image path Immutable
    */
    static
    bool isXplanetBackgroundImagePathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetBackgroundImagePath" ) );
    }

    /**
      Set Use background color
    */
    static
    void setXplanetBackgroundColor( bool v )
    {
      if (v != self()->mXplanetBackgroundColor && !self()->isXplanetBackgroundColorImmutable()) {
        self()->mXplanetBackgroundColor = v;
        Q_EMIT self()->XplanetBackgroundColorChanged();
      }
    }

    Q_PROPERTY(bool xplanetBackgroundColor READ xplanetBackgroundColor WRITE setXplanetBackgroundColor NOTIFY XplanetBackgroundColorChanged)
    Q_PROPERTY(bool isXplanetBackgroundColorImmutable READ isXplanetBackgroundColorImmutable CONSTANT)
    /**
      Get Use background color
    */
    static
    bool xplanetBackgroundColor()
    {
      return self()->mXplanetBackgroundColor;
    }

    /**
      Is Use background color Immutable
    */
    static
    bool isXplanetBackgroundColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetBackgroundColor" ) );
    }

    /**
      Set Background color
    */
    static
    void setXplanetBackgroundColorValue( const QString & v )
    {
      if (v != self()->mXplanetBackgroundColorValue && !self()->isXplanetBackgroundColorValueImmutable()) {
        self()->mXplanetBackgroundColorValue = v;
        Q_EMIT self()->XplanetBackgroundColorValueChanged();
      }
    }

    Q_PROPERTY(QString xplanetBackgroundColorValue READ xplanetBackgroundColorValue WRITE setXplanetBackgroundColorValue NOTIFY XplanetBackgroundColorValueChanged)
    Q_PROPERTY(bool isXplanetBackgroundColorValueImmutable READ isXplanetBackgroundColorValueImmutable CONSTANT)
    /**
      Get Background color
    */
    static
    QString xplanetBackgroundColorValue()
    {
      return self()->mXplanetBackgroundColorValue;
    }

    /**
      Is Background color Immutable
    */
    static
    bool isXplanetBackgroundColorValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetBackgroundColorValue" ) );
    }

    /**
      Set Base magnitude
    */
    static
    void setXplanetMagnitude( const QString & v )
    {
      if (v != self()->mXplanetMagnitude && !self()->isXplanetMagnitudeImmutable()) {
        self()->mXplanetMagnitude = v;
        Q_EMIT self()->XplanetMagnitudeChanged();
      }
    }

    Q_PROPERTY(QString xplanetMagnitude READ xplanetMagnitude WRITE setXplanetMagnitude NOTIFY XplanetMagnitudeChanged)
    Q_PROPERTY(bool isXplanetMagnitudeImmutable READ isXplanetMagnitudeImmutable CONSTANT)
    /**
      Get Base magnitude
    */
    static
    QString xplanetMagnitude()
    {
      return self()->mXplanetMagnitude;
    }

    /**
      Is Base magnitude Immutable
    */
    static
    bool isXplanetMagnitudeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetMagnitude" ) );
    }

    /**
      Set Arc file
    */
    static
    void setXplanetArcFile( bool v )
    {
      if (v != self()->mXplanetArcFile && !self()->isXplanetArcFileImmutable()) {
        self()->mXplanetArcFile = v;
        Q_EMIT self()->XplanetArcFileChanged();
      }
    }

    Q_PROPERTY(bool xplanetArcFile READ xplanetArcFile WRITE setXplanetArcFile NOTIFY XplanetArcFileChanged)
    Q_PROPERTY(bool isXplanetArcFileImmutable READ isXplanetArcFileImmutable CONSTANT)
    /**
      Get Arc file
    */
    static
    bool xplanetArcFile()
    {
      return self()->mXplanetArcFile;
    }

    /**
      Is Arc file Immutable
    */
    static
    bool isXplanetArcFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetArcFile" ) );
    }

    /**
      Set Path to arc file
    */
    static
    void setXplanetArcFilePath( const QString & v )
    {
      if (v != self()->mXplanetArcFilePath && !self()->isXplanetArcFilePathImmutable()) {
        self()->mXplanetArcFilePath = v;
        Q_EMIT self()->XplanetArcFilePathChanged();
      }
    }

    Q_PROPERTY(QString xplanetArcFilePath READ xplanetArcFilePath WRITE setXplanetArcFilePath NOTIFY XplanetArcFilePathChanged)
    Q_PROPERTY(bool isXplanetArcFilePathImmutable READ isXplanetArcFilePathImmutable CONSTANT)
    /**
      Get Path to arc file
    */
    static
    QString xplanetArcFilePath()
    {
      return self()->mXplanetArcFilePath;
    }

    /**
      Is Path to arc file Immutable
    */
    static
    bool isXplanetArcFilePathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetArcFilePath" ) );
    }

    /**
      Set Config file
    */
    static
    void setXplanetConfigFile( bool v )
    {
      if (v != self()->mXplanetConfigFile && !self()->isXplanetConfigFileImmutable()) {
        self()->mXplanetConfigFile = v;
        Q_EMIT self()->XplanetConfigFileChanged();
      }
    }

    Q_PROPERTY(bool xplanetConfigFile READ xplanetConfigFile WRITE setXplanetConfigFile NOTIFY XplanetConfigFileChanged)
    Q_PROPERTY(bool isXplanetConfigFileImmutable READ isXplanetConfigFileImmutable CONSTANT)
    /**
      Get Config file
    */
    static
    bool xplanetConfigFile()
    {
      return self()->mXplanetConfigFile;
    }

    /**
      Is Config file Immutable
    */
    static
    bool isXplanetConfigFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetConfigFile" ) );
    }

    /**
      Set Path to config file
    */
    static
    void setXplanetConfigFilePath( const QString & v )
    {
      if (v != self()->mXplanetConfigFilePath && !self()->isXplanetConfigFilePathImmutable()) {
        self()->mXplanetConfigFilePath = v;
        Q_EMIT self()->XplanetConfigFilePathChanged();
      }
    }

    Q_PROPERTY(QString xplanetConfigFilePath READ xplanetConfigFilePath WRITE setXplanetConfigFilePath NOTIFY XplanetConfigFilePathChanged)
    Q_PROPERTY(bool isXplanetConfigFilePathImmutable READ isXplanetConfigFilePathImmutable CONSTANT)
    /**
      Get Path to config file
    */
    static
    QString xplanetConfigFilePath()
    {
      return self()->mXplanetConfigFilePath;
    }

    /**
      Is Path to config file Immutable
    */
    static
    bool isXplanetConfigFilePathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetConfigFilePath" ) );
    }

    /**
      Set Use KStars's FOV
    */
    static
    void setXplanetFOV( bool v )
    {
      if (v != self()->mXplanetFOV && !self()->isXplanetFOVImmutable()) {
        self()->mXplanetFOV = v;
        Q_EMIT self()->XplanetFOVChanged();
      }
    }

    Q_PROPERTY(bool xplanetFOV READ xplanetFOV WRITE setXplanetFOV NOTIFY XplanetFOVChanged)
    Q_PROPERTY(bool isXplanetFOVImmutable READ isXplanetFOVImmutable CONSTANT)
    /**
      Get Use KStars's FOV
    */
    static
    bool xplanetFOV()
    {
      return self()->mXplanetFOV;
    }

    /**
      Is Use KStars's FOV Immutable
    */
    static
    bool isXplanetFOVImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetFOV" ) );
    }

    /**
      Set Use marker file
    */
    static
    void setXplanetMarkerFile( bool v )
    {
      if (v != self()->mXplanetMarkerFile && !self()->isXplanetMarkerFileImmutable()) {
        self()->mXplanetMarkerFile = v;
        Q_EMIT self()->XplanetMarkerFileChanged();
      }
    }

    Q_PROPERTY(bool xplanetMarkerFile READ xplanetMarkerFile WRITE setXplanetMarkerFile NOTIFY XplanetMarkerFileChanged)
    Q_PROPERTY(bool isXplanetMarkerFileImmutable READ isXplanetMarkerFileImmutable CONSTANT)
    /**
      Get Use marker file
    */
    static
    bool xplanetMarkerFile()
    {
      return self()->mXplanetMarkerFile;
    }

    /**
      Is Use marker file Immutable
    */
    static
    bool isXplanetMarkerFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetMarkerFile" ) );
    }

    /**
      Set Marker file path
    */
    static
    void setXplanetMarkerFilePath( const QString & v )
    {
      if (v != self()->mXplanetMarkerFilePath && !self()->isXplanetMarkerFilePathImmutable()) {
        self()->mXplanetMarkerFilePath = v;
        Q_EMIT self()->XplanetMarkerFilePathChanged();
      }
    }

    Q_PROPERTY(QString xplanetMarkerFilePath READ xplanetMarkerFilePath WRITE setXplanetMarkerFilePath NOTIFY XplanetMarkerFilePathChanged)
    Q_PROPERTY(bool isXplanetMarkerFilePathImmutable READ isXplanetMarkerFilePathImmutable CONSTANT)
    /**
      Get Marker file path
    */
    static
    QString xplanetMarkerFilePath()
    {
      return self()->mXplanetMarkerFilePath;
    }

    /**
      Is Marker file path Immutable
    */
    static
    bool isXplanetMarkerFilePathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetMarkerFilePath" ) );
    }

    /**
      Set Write marker bounds
    */
    static
    void setXplanetMarkerBounds( bool v )
    {
      if (v != self()->mXplanetMarkerBounds && !self()->isXplanetMarkerBoundsImmutable()) {
        self()->mXplanetMarkerBounds = v;
        Q_EMIT self()->XplanetMarkerBoundsChanged();
      }
    }

    Q_PROPERTY(bool xplanetMarkerBounds READ xplanetMarkerBounds WRITE setXplanetMarkerBounds NOTIFY XplanetMarkerBoundsChanged)
    Q_PROPERTY(bool isXplanetMarkerBoundsImmutable READ isXplanetMarkerBoundsImmutable CONSTANT)
    /**
      Get Write marker bounds
    */
    static
    bool xplanetMarkerBounds()
    {
      return self()->mXplanetMarkerBounds;
    }

    /**
      Is Write marker bounds Immutable
    */
    static
    bool isXplanetMarkerBoundsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetMarkerBounds" ) );
    }

    /**
      Set Marker bounds file path
    */
    static
    void setXplanetMarkerBoundsPath( const QString & v )
    {
      if (v != self()->mXplanetMarkerBoundsPath && !self()->isXplanetMarkerBoundsPathImmutable()) {
        self()->mXplanetMarkerBoundsPath = v;
        Q_EMIT self()->XplanetMarkerBoundsPathChanged();
      }
    }

    Q_PROPERTY(QString xplanetMarkerBoundsPath READ xplanetMarkerBoundsPath WRITE setXplanetMarkerBoundsPath NOTIFY XplanetMarkerBoundsPathChanged)
    Q_PROPERTY(bool isXplanetMarkerBoundsPathImmutable READ isXplanetMarkerBoundsPathImmutable CONSTANT)
    /**
      Get Marker bounds file path
    */
    static
    QString xplanetMarkerBoundsPath()
    {
      return self()->mXplanetMarkerBoundsPath;
    }

    /**
      Is Marker bounds file path Immutable
    */
    static
    bool isXplanetMarkerBoundsPathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetMarkerBoundsPath" ) );
    }

    /**
      Set Star map
    */
    static
    void setXplanetStarmap( bool v )
    {
      if (v != self()->mXplanetStarmap && !self()->isXplanetStarmapImmutable()) {
        self()->mXplanetStarmap = v;
        Q_EMIT self()->XplanetStarmapChanged();
      }
    }

    Q_PROPERTY(bool xplanetStarmap READ xplanetStarmap WRITE setXplanetStarmap NOTIFY XplanetStarmapChanged)
    Q_PROPERTY(bool isXplanetStarmapImmutable READ isXplanetStarmapImmutable CONSTANT)
    /**
      Get Star map
    */
    static
    bool xplanetStarmap()
    {
      return self()->mXplanetStarmap;
    }

    /**
      Is Star map Immutable
    */
    static
    bool isXplanetStarmapImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetStarmap" ) );
    }

    /**
      Set Star map file path
    */
    static
    void setXplanetStarmapPath( const QString & v )
    {
      if (v != self()->mXplanetStarmapPath && !self()->isXplanetStarmapPathImmutable()) {
        self()->mXplanetStarmapPath = v;
        Q_EMIT self()->XplanetStarmapPathChanged();
      }
    }

    Q_PROPERTY(QString xplanetStarmapPath READ xplanetStarmapPath WRITE setXplanetStarmapPath NOTIFY XplanetStarmapPathChanged)
    Q_PROPERTY(bool isXplanetStarmapPathImmutable READ isXplanetStarmapPathImmutable CONSTANT)
    /**
      Get Star map file path
    */
    static
    QString xplanetStarmapPath()
    {
      return self()->mXplanetStarmapPath;
    }

    /**
      Is Star map file path Immutable
    */
    static
    bool isXplanetStarmapPathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetStarmapPath" ) );
    }

    /**
      Set Output file quality
    */
    static
    void setXplanetQuality( const QString & v )
    {
      if (v != self()->mXplanetQuality && !self()->isXplanetQualityImmutable()) {
        self()->mXplanetQuality = v;
        Q_EMIT self()->XplanetQualityChanged();
      }
    }

    Q_PROPERTY(QString xplanetQuality READ xplanetQuality WRITE setXplanetQuality NOTIFY XplanetQualityChanged)
    Q_PROPERTY(bool isXplanetQualityImmutable READ isXplanetQualityImmutable CONSTANT)
    /**
      Get Output file quality
    */
    static
    QString xplanetQuality()
    {
      return self()->mXplanetQuality;
    }

    /**
      Is Output file quality Immutable
    */
    static
    bool isXplanetQualityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "XplanetQuality" ) );
    }

    /**
      Set Draw satellites in the sky map?
    */
    static
    void setShowSatellites( bool v )
    {
      if (v != self()->mShowSatellites && !self()->isShowSatellitesImmutable()) {
        self()->mShowSatellites = v;
        Q_EMIT self()->ShowSatellitesChanged();
      }
    }

    Q_PROPERTY(bool showSatellites READ showSatellites WRITE setShowSatellites NOTIFY ShowSatellitesChanged)
    Q_PROPERTY(bool isShowSatellitesImmutable READ isShowSatellitesImmutable CONSTANT)
    /**
      Get Draw satellites in the sky map?
    */
    static
    bool showSatellites()
    {
      return self()->mShowSatellites;
    }

    /**
      Is Draw satellites in the sky map? Immutable
    */
    static
    bool isShowSatellitesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSatellites" ) );
    }

    /**
      Set Draw only visible satellites in the sky map
    */
    static
    void setShowVisibleSatellites( bool v )
    {
      if (v != self()->mShowVisibleSatellites && !self()->isShowVisibleSatellitesImmutable()) {
        self()->mShowVisibleSatellites = v;
        Q_EMIT self()->ShowVisibleSatellitesChanged();
      }
    }

    Q_PROPERTY(bool showVisibleSatellites READ showVisibleSatellites WRITE setShowVisibleSatellites NOTIFY ShowVisibleSatellitesChanged)
    Q_PROPERTY(bool isShowVisibleSatellitesImmutable READ isShowVisibleSatellitesImmutable CONSTANT)
    /**
      Get Draw only visible satellites in the sky map
    */
    static
    bool showVisibleSatellites()
    {
      return self()->mShowVisibleSatellites;
    }

    /**
      Is Draw only visible satellites in the sky map Immutable
    */
    static
    bool isShowVisibleSatellitesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowVisibleSatellites" ) );
    }

    /**
      Set If selected, satellites will be draw like stars, otherwise, draw satellites as small colored square.
    */
    static
    void setDrawSatellitesLikeStars( bool v )
    {
      if (v != self()->mDrawSatellitesLikeStars && !self()->isDrawSatellitesLikeStarsImmutable()) {
        self()->mDrawSatellitesLikeStars = v;
        Q_EMIT self()->DrawSatellitesLikeStarsChanged();
      }
    }

    Q_PROPERTY(bool drawSatellitesLikeStars READ drawSatellitesLikeStars WRITE setDrawSatellitesLikeStars NOTIFY DrawSatellitesLikeStarsChanged)
    Q_PROPERTY(bool isDrawSatellitesLikeStarsImmutable READ isDrawSatellitesLikeStarsImmutable CONSTANT)
    /**
      Get If selected, satellites will be draw like stars, otherwise, draw satellites as small colored square.
    */
    static
    bool drawSatellitesLikeStars()
    {
      return self()->mDrawSatellitesLikeStars;
    }

    /**
      Is If selected, satellites will be draw like stars, otherwise, draw satellites as small colored square. Immutable
    */
    static
    bool isDrawSatellitesLikeStarsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DrawSatellitesLikeStars" ) );
    }

    /**
      Set Draw satellite labels?
    */
    static
    void setShowSatellitesLabels( bool v )
    {
      if (v != self()->mShowSatellitesLabels && !self()->isShowSatellitesLabelsImmutable()) {
        self()->mShowSatellitesLabels = v;
        Q_EMIT self()->ShowSatellitesLabelsChanged();
      }
    }

    Q_PROPERTY(bool showSatellitesLabels READ showSatellitesLabels WRITE setShowSatellitesLabels NOTIFY ShowSatellitesLabelsChanged)
    Q_PROPERTY(bool isShowSatellitesLabelsImmutable READ isShowSatellitesLabelsImmutable CONSTANT)
    /**
      Get Draw satellite labels?
    */
    static
    bool showSatellitesLabels()
    {
      return self()->mShowSatellitesLabels;
    }

    /**
      Is Draw satellite labels? Immutable
    */
    static
    bool isShowSatellitesLabelsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSatellitesLabels" ) );
    }

    /**
      Set Selected satellites.
    */
    static
    void setSelectedSatellites( const QStringList & v )
    {
      if (v != self()->mSelectedSatellites && !self()->isSelectedSatellitesImmutable()) {
        self()->mSelectedSatellites = v;
        Q_EMIT self()->SelectedSatellitesChanged();
      }
    }

    Q_PROPERTY(QStringList selectedSatellites READ selectedSatellites WRITE setSelectedSatellites NOTIFY SelectedSatellitesChanged)
    Q_PROPERTY(bool isSelectedSatellitesImmutable READ isSelectedSatellitesImmutable CONSTANT)
    /**
      Get Selected satellites.
    */
    static
    QStringList selectedSatellites()
    {
      return self()->mSelectedSatellites;
    }

    /**
      Is Selected satellites. Immutable
    */
    static
    bool isSelectedSatellitesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SelectedSatellites" ) );
    }

    /**
      Set Is this the first time running KStars?
    */
    static
    void setKStarsFirstRun( bool v )
    {
      if (v != self()->mKStarsFirstRun && !self()->isKStarsFirstRunImmutable()) {
        self()->mKStarsFirstRun = v;
        Q_EMIT self()->KStarsFirstRunChanged();
      }
    }

    Q_PROPERTY(bool kStarsFirstRun READ kStarsFirstRun WRITE setKStarsFirstRun NOTIFY KStarsFirstRunChanged)
    Q_PROPERTY(bool isKStarsFirstRunImmutable READ isKStarsFirstRunImmutable CONSTANT)
    /**
      Get Is this the first time running KStars?
    */
    static
    bool kStarsFirstRun()
    {
      return self()->mKStarsFirstRun;
    }

    /**
      Is Is this the first time running KStars? Immutable
    */
    static
    bool isKStarsFirstRunImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KStarsFirstRun" ) );
    }

    /**
      Set Always recompute coordinates
    */
    static
    void setAlwaysRecomputeCoordinates( bool v )
    {
      if (v != self()->mAlwaysRecomputeCoordinates && !self()->isAlwaysRecomputeCoordinatesImmutable()) {
        self()->mAlwaysRecomputeCoordinates = v;
        Q_EMIT self()->AlwaysRecomputeCoordinatesChanged();
      }
    }

    Q_PROPERTY(bool alwaysRecomputeCoordinates READ alwaysRecomputeCoordinates WRITE setAlwaysRecomputeCoordinates NOTIFY AlwaysRecomputeCoordinatesChanged)
    Q_PROPERTY(bool isAlwaysRecomputeCoordinatesImmutable READ isAlwaysRecomputeCoordinatesImmutable CONSTANT)
    /**
      Get Always recompute coordinates
    */
    static
    bool alwaysRecomputeCoordinates()
    {
      return self()->mAlwaysRecomputeCoordinates;
    }

    /**
      Is Always recompute coordinates Immutable
    */
    static
    bool isAlwaysRecomputeCoordinatesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlwaysRecomputeCoordinates" ) );
    }

    /**
      Set Default size for DSS images
    */
    static
    void setDefaultDSSImageSize( double v )
    {
      if (v != self()->mDefaultDSSImageSize && !self()->isDefaultDSSImageSizeImmutable()) {
        self()->mDefaultDSSImageSize = v;
        Q_EMIT self()->DefaultDSSImageSizeChanged();
      }
    }

    Q_PROPERTY(double defaultDSSImageSize READ defaultDSSImageSize WRITE setDefaultDSSImageSize NOTIFY DefaultDSSImageSizeChanged)
    Q_PROPERTY(bool isDefaultDSSImageSizeImmutable READ isDefaultDSSImageSizeImmutable CONSTANT)
    /**
      Get Default size for DSS images
    */
    static
    double defaultDSSImageSize()
    {
      return self()->mDefaultDSSImageSize;
    }

    /**
      Is Default size for DSS images Immutable
    */
    static
    bool isDefaultDSSImageSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DefaultDSSImageSize" ) );
    }

    /**
      Set Additional padding around DSS Images of deep-sky objects
    */
    static
    void setDSSPadding( double v )
    {
      if (v != self()->mDSSPadding && !self()->isDSSPaddingImmutable()) {
        self()->mDSSPadding = v;
        Q_EMIT self()->DSSPaddingChanged();
      }
    }

    Q_PROPERTY(double dSSPadding READ dSSPadding WRITE setDSSPadding NOTIFY DSSPaddingChanged)
    Q_PROPERTY(bool isDSSPaddingImmutable READ isDSSPaddingImmutable CONSTANT)
    /**
      Get Additional padding around DSS Images of deep-sky objects
    */
    static
    double dSSPadding()
    {
      return self()->mDSSPadding;
    }

    /**
      Is Additional padding around DSS Images of deep-sky objects Immutable
    */
    static
    bool isDSSPaddingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DSSPadding" ) );
    }

    /**
      Set Enable Verbose Logging
    */
    static
    void setVerboseLogging( bool v )
    {
      if (v != self()->mVerboseLogging && !self()->isVerboseLoggingImmutable()) {
        self()->mVerboseLogging = v;
        Q_EMIT self()->VerboseLoggingChanged();
      }
    }

    Q_PROPERTY(bool verboseLogging READ verboseLogging WRITE setVerboseLogging NOTIFY VerboseLoggingChanged)
    Q_PROPERTY(bool isVerboseLoggingImmutable READ isVerboseLoggingImmutable CONSTANT)
    /**
      Get Enable Verbose Logging
    */
    static
    bool verboseLogging()
    {
      return self()->mVerboseLogging;
    }

    /**
      Is Enable Verbose Logging Immutable
    */
    static
    bool isVerboseLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "VerboseLogging" ) );
    }

    /**
      Set Enable Regular Logging
    */
    static
    void setRegularLogging( bool v )
    {
      if (v != self()->mRegularLogging && !self()->isRegularLoggingImmutable()) {
        self()->mRegularLogging = v;
        Q_EMIT self()->RegularLoggingChanged();
      }
    }

    Q_PROPERTY(bool regularLogging READ regularLogging WRITE setRegularLogging NOTIFY RegularLoggingChanged)
    Q_PROPERTY(bool isRegularLoggingImmutable READ isRegularLoggingImmutable CONSTANT)
    /**
      Get Enable Regular Logging
    */
    static
    bool regularLogging()
    {
      return self()->mRegularLogging;
    }

    /**
      Is Enable Regular Logging Immutable
    */
    static
    bool isRegularLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RegularLogging" ) );
    }

    /**
      Set Disable Verbose Logging
    */
    static
    void setDisableLogging( bool v )
    {
      if (v != self()->mDisableLogging && !self()->isDisableLoggingImmutable()) {
        self()->mDisableLogging = v;
        Q_EMIT self()->DisableLoggingChanged();
      }
    }

    Q_PROPERTY(bool disableLogging READ disableLogging WRITE setDisableLogging NOTIFY DisableLoggingChanged)
    Q_PROPERTY(bool isDisableLoggingImmutable READ isDisableLoggingImmutable CONSTANT)
    /**
      Get Disable Verbose Logging
    */
    static
    bool disableLogging()
    {
      return self()->mDisableLogging;
    }

    /**
      Is Disable Verbose Logging Immutable
    */
    static
    bool isDisableLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DisableLogging" ) );
    }

    /**
      Set Log debug message to default output
    */
    static
    void setLogToDefault( bool v )
    {
      if (v != self()->mLogToDefault && !self()->isLogToDefaultImmutable()) {
        self()->mLogToDefault = v;
        Q_EMIT self()->LogToDefaultChanged();
      }
    }

    Q_PROPERTY(bool logToDefault READ logToDefault WRITE setLogToDefault NOTIFY LogToDefaultChanged)
    Q_PROPERTY(bool isLogToDefaultImmutable READ isLogToDefaultImmutable CONSTANT)
    /**
      Get Log debug message to default output
    */
    static
    bool logToDefault()
    {
      return self()->mLogToDefault;
    }

    /**
      Is Log debug message to default output Immutable
    */
    static
    bool isLogToDefaultImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LogToDefault" ) );
    }

    /**
      Set Log debug message to a log file
    */
    static
    void setLogToFile( bool v )
    {
      if (v != self()->mLogToFile && !self()->isLogToFileImmutable()) {
        self()->mLogToFile = v;
        Q_EMIT self()->LogToFileChanged();
      }
    }

    Q_PROPERTY(bool logToFile READ logToFile WRITE setLogToFile NOTIFY LogToFileChanged)
    Q_PROPERTY(bool isLogToFileImmutable READ isLogToFileImmutable CONSTANT)
    /**
      Get Log debug message to a log file
    */
    static
    bool logToFile()
    {
      return self()->mLogToFile;
    }

    /**
      Is Log debug message to a log file Immutable
    */
    static
    bool isLogToFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LogToFile" ) );
    }

    /**
      Set FITSLogging
    */
    static
    void setFITSLogging( bool v )
    {
      if (v != self()->mFITSLogging && !self()->isFITSLoggingImmutable()) {
        self()->mFITSLogging = v;
        Q_EMIT self()->FITSLoggingChanged();
      }
    }

    Q_PROPERTY(bool fITSLogging READ fITSLogging WRITE setFITSLogging NOTIFY FITSLoggingChanged)
    Q_PROPERTY(bool isFITSLoggingImmutable READ isFITSLoggingImmutable CONSTANT)
    /**
      Get FITSLogging
    */
    static
    bool fITSLogging()
    {
      return self()->mFITSLogging;
    }

    /**
      Is FITSLogging Immutable
    */
    static
    bool isFITSLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FITSLogging" ) );
    }

    /**
      Set INDILogging
    */
    static
    void setINDILogging( bool v )
    {
      if (v != self()->mINDILogging && !self()->isINDILoggingImmutable()) {
        self()->mINDILogging = v;
        Q_EMIT self()->INDILoggingChanged();
      }
    }

    Q_PROPERTY(bool iNDILogging READ iNDILogging WRITE setINDILogging NOTIFY INDILoggingChanged)
    Q_PROPERTY(bool isINDILoggingImmutable READ isINDILoggingImmutable CONSTANT)
    /**
      Get INDILogging
    */
    static
    bool iNDILogging()
    {
      return self()->mINDILogging;
    }

    /**
      Is INDILogging Immutable
    */
    static
    bool isINDILoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "INDILogging" ) );
    }

    /**
      Set CaptureLogging
    */
    static
    void setCaptureLogging( bool v )
    {
      if (v != self()->mCaptureLogging && !self()->isCaptureLoggingImmutable()) {
        self()->mCaptureLogging = v;
        Q_EMIT self()->CaptureLoggingChanged();
      }
    }

    Q_PROPERTY(bool captureLogging READ captureLogging WRITE setCaptureLogging NOTIFY CaptureLoggingChanged)
    Q_PROPERTY(bool isCaptureLoggingImmutable READ isCaptureLoggingImmutable CONSTANT)
    /**
      Get CaptureLogging
    */
    static
    bool captureLogging()
    {
      return self()->mCaptureLogging;
    }

    /**
      Is CaptureLogging Immutable
    */
    static
    bool isCaptureLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureLogging" ) );
    }

    /**
      Set FocusLogging
    */
    static
    void setFocusLogging( bool v )
    {
      if (v != self()->mFocusLogging && !self()->isFocusLoggingImmutable()) {
        self()->mFocusLogging = v;
        Q_EMIT self()->FocusLoggingChanged();
      }
    }

    Q_PROPERTY(bool focusLogging READ focusLogging WRITE setFocusLogging NOTIFY FocusLoggingChanged)
    Q_PROPERTY(bool isFocusLoggingImmutable READ isFocusLoggingImmutable CONSTANT)
    /**
      Get FocusLogging
    */
    static
    bool focusLogging()
    {
      return self()->mFocusLogging;
    }

    /**
      Is FocusLogging Immutable
    */
    static
    bool isFocusLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusLogging" ) );
    }

    /**
      Set Save Internal Guider images on disk?
    */
    static
    void setSaveGuideImages( bool v )
    {
      if (v != self()->mSaveGuideImages && !self()->isSaveGuideImagesImmutable()) {
        self()->mSaveGuideImages = v;
        Q_EMIT self()->SaveGuideImagesChanged();
      }
    }

    Q_PROPERTY(bool saveGuideImages READ saveGuideImages WRITE setSaveGuideImages NOTIFY SaveGuideImagesChanged)
    Q_PROPERTY(bool isSaveGuideImagesImmutable READ isSaveGuideImagesImmutable CONSTANT)
    /**
      Get Save Internal Guider images on disk?
    */
    static
    bool saveGuideImages()
    {
      return self()->mSaveGuideImages;
    }

    /**
      Is Save Internal Guider images on disk? Immutable
    */
    static
    bool isSaveGuideImagesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SaveGuideImages" ) );
    }

    /**
      Set Save Internal Align images on disk?
    */
    static
    void setSaveAlignImages( bool v )
    {
      if (v != self()->mSaveAlignImages && !self()->isSaveAlignImagesImmutable()) {
        self()->mSaveAlignImages = v;
        Q_EMIT self()->SaveAlignImagesChanged();
      }
    }

    Q_PROPERTY(bool saveAlignImages READ saveAlignImages WRITE setSaveAlignImages NOTIFY SaveAlignImagesChanged)
    Q_PROPERTY(bool isSaveAlignImagesImmutable READ isSaveAlignImagesImmutable CONSTANT)
    /**
      Get Save Internal Align images on disk?
    */
    static
    bool saveAlignImages()
    {
      return self()->mSaveAlignImages;
    }

    /**
      Is Save Internal Align images on disk? Immutable
    */
    static
    bool isSaveAlignImagesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SaveAlignImages" ) );
    }

    /**
      Set Save Failed Align images on disk?
    */
    static
    void setSaveFailedAlignImages( bool v )
    {
      if (v != self()->mSaveFailedAlignImages && !self()->isSaveFailedAlignImagesImmutable()) {
        self()->mSaveFailedAlignImages = v;
        Q_EMIT self()->SaveFailedAlignImagesChanged();
      }
    }

    Q_PROPERTY(bool saveFailedAlignImages READ saveFailedAlignImages WRITE setSaveFailedAlignImages NOTIFY SaveFailedAlignImagesChanged)
    Q_PROPERTY(bool isSaveFailedAlignImagesImmutable READ isSaveFailedAlignImagesImmutable CONSTANT)
    /**
      Get Save Failed Align images on disk?
    */
    static
    bool saveFailedAlignImages()
    {
      return self()->mSaveFailedAlignImages;
    }

    /**
      Is Save Failed Align images on disk? Immutable
    */
    static
    bool isSaveFailedAlignImagesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SaveFailedAlignImages" ) );
    }

    /**
      Set Don't sync to Real Time on Ekos startup.
    */
    static
    void setDontSyncToRealTime( bool v )
    {
      if (v != self()->mDontSyncToRealTime && !self()->isDontSyncToRealTimeImmutable()) {
        self()->mDontSyncToRealTime = v;
        Q_EMIT self()->DontSyncToRealTimeChanged();
      }
    }

    Q_PROPERTY(bool dontSyncToRealTime READ dontSyncToRealTime WRITE setDontSyncToRealTime NOTIFY DontSyncToRealTimeChanged)
    Q_PROPERTY(bool isDontSyncToRealTimeImmutable READ isDontSyncToRealTimeImmutable CONSTANT)
    /**
      Get Don't sync to Real Time on Ekos startup.
    */
    static
    bool dontSyncToRealTime()
    {
      return self()->mDontSyncToRealTime;
    }

    /**
      Is Don't sync to Real Time on Ekos startup. Immutable
    */
    static
    bool isDontSyncToRealTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DontSyncToRealTime" ) );
    }

    /**
      Set GuideLogging
    */
    static
    void setGuideLogging( bool v )
    {
      if (v != self()->mGuideLogging && !self()->isGuideLoggingImmutable()) {
        self()->mGuideLogging = v;
        Q_EMIT self()->GuideLoggingChanged();
      }
    }

    Q_PROPERTY(bool guideLogging READ guideLogging WRITE setGuideLogging NOTIFY GuideLoggingChanged)
    Q_PROPERTY(bool isGuideLoggingImmutable READ isGuideLoggingImmutable CONSTANT)
    /**
      Get GuideLogging
    */
    static
    bool guideLogging()
    {
      return self()->mGuideLogging;
    }

    /**
      Is GuideLogging Immutable
    */
    static
    bool isGuideLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideLogging" ) );
    }

    /**
      Set AlignmentLogging
    */
    static
    void setAlignmentLogging( bool v )
    {
      if (v != self()->mAlignmentLogging && !self()->isAlignmentLoggingImmutable()) {
        self()->mAlignmentLogging = v;
        Q_EMIT self()->AlignmentLoggingChanged();
      }
    }

    Q_PROPERTY(bool alignmentLogging READ alignmentLogging WRITE setAlignmentLogging NOTIFY AlignmentLoggingChanged)
    Q_PROPERTY(bool isAlignmentLoggingImmutable READ isAlignmentLoggingImmutable CONSTANT)
    /**
      Get AlignmentLogging
    */
    static
    bool alignmentLogging()
    {
      return self()->mAlignmentLogging;
    }

    /**
      Is AlignmentLogging Immutable
    */
    static
    bool isAlignmentLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignmentLogging" ) );
    }

    /**
      Set MountLogging
    */
    static
    void setMountLogging( bool v )
    {
      if (v != self()->mMountLogging && !self()->isMountLoggingImmutable()) {
        self()->mMountLogging = v;
        Q_EMIT self()->MountLoggingChanged();
      }
    }

    Q_PROPERTY(bool mountLogging READ mountLogging WRITE setMountLogging NOTIFY MountLoggingChanged)
    Q_PROPERTY(bool isMountLoggingImmutable READ isMountLoggingImmutable CONSTANT)
    /**
      Get MountLogging
    */
    static
    bool mountLogging()
    {
      return self()->mMountLogging;
    }

    /**
      Is MountLogging Immutable
    */
    static
    bool isMountLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MountLogging" ) );
    }

    /**
      Set ObservatoryLogging
    */
    static
    void setObservatoryLogging( bool v )
    {
      if (v != self()->mObservatoryLogging && !self()->isObservatoryLoggingImmutable()) {
        self()->mObservatoryLogging = v;
        Q_EMIT self()->ObservatoryLoggingChanged();
      }
    }

    Q_PROPERTY(bool observatoryLogging READ observatoryLogging WRITE setObservatoryLogging NOTIFY ObservatoryLoggingChanged)
    Q_PROPERTY(bool isObservatoryLoggingImmutable READ isObservatoryLoggingImmutable CONSTANT)
    /**
      Get ObservatoryLogging
    */
    static
    bool observatoryLogging()
    {
      return self()->mObservatoryLogging;
    }

    /**
      Is ObservatoryLogging Immutable
    */
    static
    bool isObservatoryLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ObservatoryLogging" ) );
    }

    /**
      Set Debayer engine to use on images.
    */
    static
    void setImageDebayerEngine( int v )
    {
      if (v != self()->mImageDebayerEngine && !self()->isImageDebayerEngineImmutable()) {
        self()->mImageDebayerEngine = v;
        Q_EMIT self()->ImageDebayerEngineChanged();
      }
    }

    Q_PROPERTY(int imageDebayerEngine READ imageDebayerEngine WRITE setImageDebayerEngine NOTIFY ImageDebayerEngineChanged)
    Q_PROPERTY(bool isImageDebayerEngineImmutable READ isImageDebayerEngineImmutable CONSTANT)
    /**
      Get Debayer engine to use on images.
    */
    static
    int imageDebayerEngine()
    {
      return self()->mImageDebayerEngine;
    }

    /**
      Is Debayer engine to use on images. Immutable
    */
    static
    bool isImageDebayerEngineImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImageDebayerEngine" ) );
    }

    /**
      Set Debayer algo to use on images.
    */
    static
    void setImageDebayerAlgo( int v )
    {
      if (v != self()->mImageDebayerAlgo && !self()->isImageDebayerAlgoImmutable()) {
        self()->mImageDebayerAlgo = v;
        Q_EMIT self()->ImageDebayerAlgoChanged();
      }
    }

    Q_PROPERTY(int imageDebayerAlgo READ imageDebayerAlgo WRITE setImageDebayerAlgo NOTIFY ImageDebayerAlgoChanged)
    Q_PROPERTY(bool isImageDebayerAlgoImmutable READ isImageDebayerAlgoImmutable CONSTANT)
    /**
      Get Debayer algo to use on images.
    */
    static
    int imageDebayerAlgo()
    {
      return self()->mImageDebayerAlgo;
    }

    /**
      Is Debayer algo to use on images. Immutable
    */
    static
    bool isImageDebayerAlgoImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImageDebayerAlgo" ) );
    }

    /**
      Set Debayer engine to use on live stack subs.
    */
    static
    void setStackDebayerEngine( int v )
    {
      if (v != self()->mStackDebayerEngine && !self()->isStackDebayerEngineImmutable()) {
        self()->mStackDebayerEngine = v;
        Q_EMIT self()->StackDebayerEngineChanged();
      }
    }

    Q_PROPERTY(int stackDebayerEngine READ stackDebayerEngine WRITE setStackDebayerEngine NOTIFY StackDebayerEngineChanged)
    Q_PROPERTY(bool isStackDebayerEngineImmutable READ isStackDebayerEngineImmutable CONSTANT)
    /**
      Get Debayer engine to use on live stack subs.
    */
    static
    int stackDebayerEngine()
    {
      return self()->mStackDebayerEngine;
    }

    /**
      Is Debayer engine to use on live stack subs. Immutable
    */
    static
    bool isStackDebayerEngineImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StackDebayerEngine" ) );
    }

    /**
      Set Debayer algo to use on live stack subs.
    */
    static
    void setStackDebayerAlgo( int v )
    {
      if (v != self()->mStackDebayerAlgo && !self()->isStackDebayerAlgoImmutable()) {
        self()->mStackDebayerAlgo = v;
        Q_EMIT self()->StackDebayerAlgoChanged();
      }
    }

    Q_PROPERTY(int stackDebayerAlgo READ stackDebayerAlgo WRITE setStackDebayerAlgo NOTIFY StackDebayerAlgoChanged)
    Q_PROPERTY(bool isStackDebayerAlgoImmutable READ isStackDebayerAlgoImmutable CONSTANT)
    /**
      Get Debayer algo to use on live stack subs.
    */
    static
    int stackDebayerAlgo()
    {
      return self()->mStackDebayerAlgo;
    }

    /**
      Is Debayer algo to use on live stack subs. Immutable
    */
    static
    bool isStackDebayerAlgoImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StackDebayerAlgo" ) );
    }

    /**
      Set Geometry of FITS window, encoded byte array
    */
    static
    void setFITSWindowGeometry( const QString & v )
    {
      if (v != self()->mFITSWindowGeometry && !self()->isFITSWindowGeometryImmutable()) {
        self()->mFITSWindowGeometry = v;
        Q_EMIT self()->FITSWindowGeometryChanged();
      }
    }

    Q_PROPERTY(QString fITSWindowGeometry READ fITSWindowGeometry WRITE setFITSWindowGeometry NOTIFY FITSWindowGeometryChanged)
    Q_PROPERTY(bool isFITSWindowGeometryImmutable READ isFITSWindowGeometryImmutable CONSTANT)
    /**
      Get Geometry of FITS window, encoded byte array
    */
    static
    QString fITSWindowGeometry()
    {
      return self()->mFITSWindowGeometry;
    }

    /**
      Is Geometry of FITS window, encoded byte array Immutable
    */
    static
    bool isFITSWindowGeometryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FITSWindowGeometry" ) );
    }

    /**
      Set Display every image captured in a FITS Viewer window.
    */
    static
    void setUseFITSViewer( bool v )
    {
      if (v != self()->mUseFITSViewer && !self()->isUseFITSViewerImmutable()) {
        self()->mUseFITSViewer = v;
        Q_EMIT self()->useFITSViewerChanged();
      }
    }

    Q_PROPERTY(bool useFITSViewer READ useFITSViewer WRITE setUseFITSViewer NOTIFY useFITSViewerChanged)
    Q_PROPERTY(bool isUseFITSViewerImmutable READ isUseFITSViewerImmutable CONSTANT)
    /**
      Get Display every image captured in a FITS Viewer window.
    */
    static
    bool useFITSViewer()
    {
      return self()->mUseFITSViewer;
    }

    /**
      Is Display every image captured in a FITS Viewer window. Immutable
    */
    static
    bool isUseFITSViewerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useFITSViewer" ) );
    }

    /**
      Set Preview FITS in a single tab?
    */
    static
    void setSinglePreviewFITS( bool v )
    {
      if (v != self()->mSinglePreviewFITS && !self()->isSinglePreviewFITSImmutable()) {
        self()->mSinglePreviewFITS = v;
        Q_EMIT self()->singlePreviewFITSChanged();
      }
    }

    Q_PROPERTY(bool singlePreviewFITS READ singlePreviewFITS WRITE setSinglePreviewFITS NOTIFY singlePreviewFITSChanged)
    Q_PROPERTY(bool isSinglePreviewFITSImmutable READ isSinglePreviewFITSImmutable CONSTANT)
    /**
      Get Preview FITS in a single tab?
    */
    static
    bool singlePreviewFITS()
    {
      return self()->mSinglePreviewFITS;
    }

    /**
      Is Preview FITS in a single tab? Immutable
    */
    static
    bool isSinglePreviewFITSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "singlePreviewFITS" ) );
    }

    /**
      Set Display all captured FITS in one window?
    */
    static
    void setSingleWindowCapturedFITS( bool v )
    {
      if (v != self()->mSingleWindowCapturedFITS && !self()->isSingleWindowCapturedFITSImmutable()) {
        self()->mSingleWindowCapturedFITS = v;
        Q_EMIT self()->singleWindowCapturedFITSChanged();
      }
    }

    Q_PROPERTY(bool singleWindowCapturedFITS READ singleWindowCapturedFITS WRITE setSingleWindowCapturedFITS NOTIFY singleWindowCapturedFITSChanged)
    Q_PROPERTY(bool isSingleWindowCapturedFITSImmutable READ isSingleWindowCapturedFITSImmutable CONSTANT)
    /**
      Get Display all captured FITS in one window?
    */
    static
    bool singleWindowCapturedFITS()
    {
      return self()->mSingleWindowCapturedFITS;
    }

    /**
      Is Display all captured FITS in one window? Immutable
    */
    static
    bool isSingleWindowCapturedFITSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "singleWindowCapturedFITS" ) );
    }

    /**
      Set Display all opened FITS in one window?
    */
    static
    void setSingleWindowOpenedFITS( bool v )
    {
      if (v != self()->mSingleWindowOpenedFITS && !self()->isSingleWindowOpenedFITSImmutable()) {
        self()->mSingleWindowOpenedFITS = v;
        Q_EMIT self()->singleWindowOpenedFITSChanged();
      }
    }

    Q_PROPERTY(bool singleWindowOpenedFITS READ singleWindowOpenedFITS WRITE setSingleWindowOpenedFITS NOTIFY singleWindowOpenedFITSChanged)
    Q_PROPERTY(bool isSingleWindowOpenedFITSImmutable READ isSingleWindowOpenedFITSImmutable CONSTANT)
    /**
      Get Display all opened FITS in one window?
    */
    static
    bool singleWindowOpenedFITS()
    {
      return self()->mSingleWindowOpenedFITS;
    }

    /**
      Is Display all opened FITS in one window? Immutable
    */
    static
    bool isSingleWindowOpenedFITSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "singleWindowOpenedFITS" ) );
    }

    /**
      Set focusFITSOnNewImage
    */
    static
    void setFocusFITSOnNewImage( bool v )
    {
      if (v != self()->mFocusFITSOnNewImage && !self()->isFocusFITSOnNewImageImmutable()) {
        self()->mFocusFITSOnNewImage = v;
        Q_EMIT self()->focusFITSOnNewImageChanged();
      }
    }

    Q_PROPERTY(bool focusFITSOnNewImage READ focusFITSOnNewImage WRITE setFocusFITSOnNewImage NOTIFY focusFITSOnNewImageChanged)
    Q_PROPERTY(bool isFocusFITSOnNewImageImmutable READ isFocusFITSOnNewImageImmutable CONSTANT)
    /**
      Get focusFITSOnNewImage
    */
    static
    bool focusFITSOnNewImage()
    {
      return self()->mFocusFITSOnNewImage;
    }

    /**
      Is focusFITSOnNewImage Immutable
    */
    static
    bool isFocusFITSOnNewImageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusFITSOnNewImage" ) );
    }

    /**
      Set Make FITS Viewer window independent of KStars main window
    */
    static
    void setIndependentWindowFITS( bool v )
    {
      if (v != self()->mIndependentWindowFITS && !self()->isIndependentWindowFITSImmutable()) {
        self()->mIndependentWindowFITS = v;
        Q_EMIT self()->independentWindowFITSChanged();
      }
    }

    Q_PROPERTY(bool independentWindowFITS READ independentWindowFITS WRITE setIndependentWindowFITS NOTIFY independentWindowFITSChanged)
    Q_PROPERTY(bool isIndependentWindowFITSImmutable READ isIndependentWindowFITSImmutable CONSTANT)
    /**
      Get Make FITS Viewer window independent of KStars main window
    */
    static
    bool independentWindowFITS()
    {
      return self()->mIndependentWindowFITS;
    }

    /**
      Is Make FITS Viewer window independent of KStars main window Immutable
    */
    static
    bool isIndependentWindowFITSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "independentWindowFITS" ) );
    }

    /**
      Set Run Live Stacker as a separate process
    */
    static
    void setLiveStackerOwnProcess( bool v )
    {
      if (v != self()->mLiveStackerOwnProcess && !self()->isLiveStackerOwnProcessImmutable()) {
        self()->mLiveStackerOwnProcess = v;
        Q_EMIT self()->liveStackerOwnProcessChanged();
      }
    }

    Q_PROPERTY(bool liveStackerOwnProcess READ liveStackerOwnProcess WRITE setLiveStackerOwnProcess NOTIFY liveStackerOwnProcessChanged)
    Q_PROPERTY(bool isLiveStackerOwnProcessImmutable READ isLiveStackerOwnProcessImmutable CONSTANT)
    /**
      Get Run Live Stacker as a separate process
    */
    static
    bool liveStackerOwnProcess()
    {
      return self()->mLiveStackerOwnProcess;
    }

    /**
      Is Run Live Stacker as a separate process Immutable
    */
    static
    bool isLiveStackerOwnProcessImmutable()
    {
      return self()->isImmutable( QStringLiteral( "liveStackerOwnProcess" ) );
    }

    /**
      Set Automatically debayer a FITS image if it is contains a bayer pattern
    */
    static
    void setAutoDebayer( bool v )
    {
      if (v != self()->mAutoDebayer && !self()->isAutoDebayerImmutable()) {
        self()->mAutoDebayer = v;
        Q_EMIT self()->AutoDebayerChanged();
      }
    }

    Q_PROPERTY(bool autoDebayer READ autoDebayer WRITE setAutoDebayer NOTIFY AutoDebayerChanged)
    Q_PROPERTY(bool isAutoDebayerImmutable READ isAutoDebayerImmutable CONSTANT)
    /**
      Get Automatically debayer a FITS image if it is contains a bayer pattern
    */
    static
    bool autoDebayer()
    {
      return self()->mAutoDebayer;
    }

    /**
      Is Automatically debayer a FITS image if it is contains a bayer pattern Immutable
    */
    static
    bool isAutoDebayerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoDebayer" ) );
    }

    /**
      Set Process 3D FITS Cube (RGB). If false, only first channel is processed.
    */
    static
    void setAuto3DCube( bool v )
    {
      if (v != self()->mAuto3DCube && !self()->isAuto3DCubeImmutable()) {
        self()->mAuto3DCube = v;
        Q_EMIT self()->Auto3DCubeChanged();
      }
    }

    Q_PROPERTY(bool auto3DCube READ auto3DCube WRITE setAuto3DCube NOTIFY Auto3DCubeChanged)
    Q_PROPERTY(bool isAuto3DCubeImmutable READ isAuto3DCubeImmutable CONSTANT)
    /**
      Get Process 3D FITS Cube (RGB). If false, only first channel is processed.
    */
    static
    bool auto3DCube()
    {
      return self()->mAuto3DCube;
    }

    /**
      Is Process 3D FITS Cube (RGB). If false, only first channel is processed. Immutable
    */
    static
    bool isAuto3DCubeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Auto3DCube" ) );
    }

    /**
      Set Automatically compute HFRs of fits images
    */
    static
    void setAutoHFR( bool v )
    {
      if (v != self()->mAutoHFR && !self()->isAutoHFRImmutable()) {
        self()->mAutoHFR = v;
        Q_EMIT self()->AutoHFRChanged();
      }
    }

    Q_PROPERTY(bool autoHFR READ autoHFR WRITE setAutoHFR NOTIFY AutoHFRChanged)
    Q_PROPERTY(bool isAutoHFRImmutable READ isAutoHFRImmutable CONSTANT)
    /**
      Get Automatically compute HFRs of fits images
    */
    static
    bool autoHFR()
    {
      return self()->mAutoHFR;
    }

    /**
      Is Automatically compute HFRs of fits images Immutable
    */
    static
    bool isAutoHFRImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoHFR" ) );
    }

    /**
      Set Compute the HFRs of normal images quickly by looking at the center 25% only.
    */
    static
    void setQuickHFR( bool v )
    {
      if (v != self()->mQuickHFR && !self()->isQuickHFRImmutable()) {
        self()->mQuickHFR = v;
        Q_EMIT self()->QuickHFRChanged();
      }
    }

    Q_PROPERTY(bool quickHFR READ quickHFR WRITE setQuickHFR NOTIFY QuickHFRChanged)
    Q_PROPERTY(bool isQuickHFRImmutable READ isQuickHFRImmutable CONSTANT)
    /**
      Get Compute the HFRs of normal images quickly by looking at the center 25% only.
    */
    static
    bool quickHFR()
    {
      return self()->mQuickHFR;
    }

    /**
      Is Compute the HFRs of normal images quickly by looking at the center 25% only. Immutable
    */
    static
    bool isQuickHFRImmutable()
    {
      return self()->isImmutable( QStringLiteral( "QuickHFR" ) );
    }

    /**
      Set Enable StellarSolver partition. Partitions the image in multiple threads to speed up detecting stars. This may significantly speed up source extraction but may result in unstable operation.
    */
    static
    void setStellarSolverPartition( bool v )
    {
      if (v != self()->mStellarSolverPartition && !self()->isStellarSolverPartitionImmutable()) {
        self()->mStellarSolverPartition = v;
        Q_EMIT self()->StellarSolverPartitionChanged();
      }
    }

    Q_PROPERTY(bool stellarSolverPartition READ stellarSolverPartition WRITE setStellarSolverPartition NOTIFY StellarSolverPartitionChanged)
    Q_PROPERTY(bool isStellarSolverPartitionImmutable READ isStellarSolverPartitionImmutable CONSTANT)
    /**
      Get Enable StellarSolver partition. Partitions the image in multiple threads to speed up detecting stars. This may significantly speed up source extraction but may result in unstable operation.
    */
    static
    bool stellarSolverPartition()
    {
      return self()->mStellarSolverPartition;
    }

    /**
      Is Enable StellarSolver partition. Partitions the image in multiple threads to speed up detecting stars. This may significantly speed up source extraction but may result in unstable operation. Immutable
    */
    static
    bool isStellarSolverPartitionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StellarSolverPartition" ) );
    }

    /**
      Set Automatically process World-Coordinate-System (WCS) data when loading a FITS file.
    */
    static
    void setAutoWCS( bool v )
    {
      if (v != self()->mAutoWCS && !self()->isAutoWCSImmutable()) {
        self()->mAutoWCS = v;
        Q_EMIT self()->AutoWCSChanged();
      }
    }

    Q_PROPERTY(bool autoWCS READ autoWCS WRITE setAutoWCS NOTIFY AutoWCSChanged)
    Q_PROPERTY(bool isAutoWCSImmutable READ isAutoWCSImmutable CONSTANT)
    /**
      Get Automatically process World-Coordinate-System (WCS) data when loading a FITS file.
    */
    static
    bool autoWCS()
    {
      return self()->mAutoWCS;
    }

    /**
      Is Automatically process World-Coordinate-System (WCS) data when loading a FITS file. Immutable
    */
    static
    bool isAutoWCSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoWCS" ) );
    }

    /**
      Set Conserve CPU and memory by disabling all resource-intensive features in FITS Viewer
    */
    static
    void setLimitedResourcesMode( bool v )
    {
      if (v != self()->mLimitedResourcesMode && !self()->isLimitedResourcesModeImmutable()) {
        self()->mLimitedResourcesMode = v;
        Q_EMIT self()->LimitedResourcesModeChanged();
      }
    }

    Q_PROPERTY(bool limitedResourcesMode READ limitedResourcesMode WRITE setLimitedResourcesMode NOTIFY LimitedResourcesModeChanged)
    Q_PROPERTY(bool isLimitedResourcesModeImmutable READ isLimitedResourcesModeImmutable CONSTANT)
    /**
      Get Conserve CPU and memory by disabling all resource-intensive features in FITS Viewer
    */
    static
    bool limitedResourcesMode()
    {
      return self()->mLimitedResourcesMode;
    }

    /**
      Is Conserve CPU and memory by disabling all resource-intensive features in FITS Viewer Immutable
    */
    static
    bool isLimitedResourcesModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LimitedResourcesMode" ) );
    }

    /**
      Set Create histogram from non-linear auto-stretched image rather than linear raw image data.
    */
    static
    void setNonLinearHistogram( bool v )
    {
      if (v != self()->mNonLinearHistogram && !self()->isNonLinearHistogramImmutable()) {
        self()->mNonLinearHistogram = v;
        Q_EMIT self()->NonLinearHistogramChanged();
      }
    }

    Q_PROPERTY(bool nonLinearHistogram READ nonLinearHistogram WRITE setNonLinearHistogram NOTIFY NonLinearHistogramChanged)
    Q_PROPERTY(bool isNonLinearHistogramImmutable READ isNonLinearHistogramImmutable CONSTANT)
    /**
      Get Create histogram from non-linear auto-stretched image rather than linear raw image data.
    */
    static
    bool nonLinearHistogram()
    {
      return self()->mNonLinearHistogram;
    }

    /**
      Is Create histogram from non-linear auto-stretched image rather than linear raw image data. Immutable
    */
    static
    bool isNonLinearHistogramImmutable()
    {
      return self()->isImmutable( QStringLiteral( "NonLinearHistogram" ) );
    }

    /**
      Set HiPS overlay opacity
    */
    static
    void setHIPSOpacity( double v )
    {
      if (v != self()->mHIPSOpacity && !self()->isHIPSOpacityImmutable()) {
        self()->mHIPSOpacity = v;
        Q_EMIT self()->HIPSOpacityChanged();
      }
    }

    Q_PROPERTY(double hIPSOpacity READ hIPSOpacity WRITE setHIPSOpacity NOTIFY HIPSOpacityChanged)
    Q_PROPERTY(bool isHIPSOpacityImmutable READ isHIPSOpacityImmutable CONSTANT)
    /**
      Get HiPS overlay opacity
    */
    static
    double hIPSOpacity()
    {
      return self()->mHIPSOpacity;
    }

    /**
      Is HiPS overlay opacity Immutable
    */
    static
    bool isHIPSOpacityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSOpacity" ) );
    }

    /**
      Set HiPS overlay X Offset
    */
    static
    void setHIPSOffsetX( int v )
    {
      if (v != self()->mHIPSOffsetX && !self()->isHIPSOffsetXImmutable()) {
        self()->mHIPSOffsetX = v;
        Q_EMIT self()->HIPSOffsetXChanged();
      }
    }

    Q_PROPERTY(int hIPSOffsetX READ hIPSOffsetX WRITE setHIPSOffsetX NOTIFY HIPSOffsetXChanged)
    Q_PROPERTY(bool isHIPSOffsetXImmutable READ isHIPSOffsetXImmutable CONSTANT)
    /**
      Get HiPS overlay X Offset
    */
    static
    int hIPSOffsetX()
    {
      return self()->mHIPSOffsetX;
    }

    /**
      Is HiPS overlay X Offset Immutable
    */
    static
    bool isHIPSOffsetXImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSOffsetX" ) );
    }

    /**
      Set HiPS overlay Y Offset
    */
    static
    void setHIPSOffsetY( int v )
    {
      if (v != self()->mHIPSOffsetY && !self()->isHIPSOffsetYImmutable()) {
        self()->mHIPSOffsetY = v;
        Q_EMIT self()->HIPSOffsetYChanged();
      }
    }

    Q_PROPERTY(int hIPSOffsetY READ hIPSOffsetY WRITE setHIPSOffsetY NOTIFY HIPSOffsetYChanged)
    Q_PROPERTY(bool isHIPSOffsetYImmutable READ isHIPSOffsetYImmutable CONSTANT)
    /**
      Get HiPS overlay Y Offset
    */
    static
    int hIPSOffsetY()
    {
      return self()->mHIPSOffsetY;
    }

    /**
      Is HiPS overlay Y Offset Immutable
    */
    static
    bool isHIPSOffsetYImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSOffsetY" ) );
    }

    /**
      Set Options Profile for Fitsviewer Solving.
    */
    static
    void setFitsSolverProfile( uint v )
    {
      if (v != self()->mFitsSolverProfile && !self()->isFitsSolverProfileImmutable()) {
        self()->mFitsSolverProfile = v;
        Q_EMIT self()->FitsSolverProfileChanged();
      }
    }

    Q_PROPERTY(uint fitsSolverProfile READ fitsSolverProfile WRITE setFitsSolverProfile NOTIFY FitsSolverProfileChanged)
    Q_PROPERTY(bool isFitsSolverProfileImmutable READ isFitsSolverProfileImmutable CONSTANT)
    /**
      Get Options Profile for Fitsviewer Solving.
    */
    static
    uint fitsSolverProfile()
    {
      return self()->mFitsSolverProfile;
    }

    /**
      Is Options Profile for Fitsviewer Solving. Immutable
    */
    static
    bool isFitsSolverProfileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FitsSolverProfile" ) );
    }

    /**
      Set Module from which profile is taken for Fitsviewer Solving.
    */
    static
    void setFitsSolverModule( uint v )
    {
      if (v != self()->mFitsSolverModule && !self()->isFitsSolverModuleImmutable()) {
        self()->mFitsSolverModule = v;
        Q_EMIT self()->FitsSolverModuleChanged();
      }
    }

    Q_PROPERTY(uint fitsSolverModule READ fitsSolverModule WRITE setFitsSolverModule NOTIFY FitsSolverModuleChanged)
    Q_PROPERTY(bool isFitsSolverModuleImmutable READ isFitsSolverModuleImmutable CONSTANT)
    /**
      Get Module from which profile is taken for Fitsviewer Solving.
    */
    static
    uint fitsSolverModule()
    {
      return self()->mFitsSolverModule;
    }

    /**
      Is Module from which profile is taken for Fitsviewer Solving. Immutable
    */
    static
    bool isFitsSolverModuleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FitsSolverModule" ) );
    }

    /**
      Set JSON storing the assignment of profile indices to module profiles for the FITS Viewer Solver
    */
    static
    void setFitsSolverProfileIndeces( const QString & v )
    {
      if (v != self()->mFitsSolverProfileIndeces && !self()->isFitsSolverProfileIndecesImmutable()) {
        self()->mFitsSolverProfileIndeces = v;
        Q_EMIT self()->FitsSolverProfileIndecesChanged();
      }
    }

    Q_PROPERTY(QString fitsSolverProfileIndeces READ fitsSolverProfileIndeces WRITE setFitsSolverProfileIndeces NOTIFY FitsSolverProfileIndecesChanged)
    Q_PROPERTY(bool isFitsSolverProfileIndecesImmutable READ isFitsSolverProfileIndecesImmutable CONSTANT)
    /**
      Get JSON storing the assignment of profile indices to module profiles for the FITS Viewer Solver
    */
    static
    QString fitsSolverProfileIndeces()
    {
      return self()->mFitsSolverProfileIndeces;
    }

    /**
      Is JSON storing the assignment of profile indices to module profiles for the FITS Viewer Solver Immutable
    */
    static
    bool isFitsSolverProfileIndecesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FitsSolverProfileIndeces" ) );
    }

    /**
      Set Which catalog to pull display objects from.
    */
    static
    void setFitsCatalog( uint v )
    {
      if (v != self()->mFitsCatalog && !self()->isFitsCatalogImmutable()) {
        self()->mFitsCatalog = v;
        Q_EMIT self()->FitsCatalogChanged();
      }
    }

    Q_PROPERTY(uint fitsCatalog READ fitsCatalog WRITE setFitsCatalog NOTIFY FitsCatalogChanged)
    Q_PROPERTY(bool isFitsCatalogImmutable READ isFitsCatalogImmutable CONSTANT)
    /**
      Get Which catalog to pull display objects from.
    */
    static
    uint fitsCatalog()
    {
      return self()->mFitsCatalog;
    }

    /**
      Is Which catalog to pull display objects from. Immutable
    */
    static
    bool isFitsCatalogImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FitsCatalog" ) );
    }

    /**
      Set Whether to display object names on the FITS Viewer or not.
    */
    static
    void setFitsCatObjShowNames( bool v )
    {
      if (v != self()->mFitsCatObjShowNames && !self()->isFitsCatObjShowNamesImmutable()) {
        self()->mFitsCatObjShowNames = v;
        Q_EMIT self()->FitsCatObjShowNamesChanged();
      }
    }

    Q_PROPERTY(bool fitsCatObjShowNames READ fitsCatObjShowNames WRITE setFitsCatObjShowNames NOTIFY FitsCatObjShowNamesChanged)
    Q_PROPERTY(bool isFitsCatObjShowNamesImmutable READ isFitsCatObjShowNamesImmutable CONSTANT)
    /**
      Get Whether to display object names on the FITS Viewer or not.
    */
    static
    bool fitsCatObjShowNames()
    {
      return self()->mFitsCatObjShowNames;
    }

    /**
      Is Whether to display object names on the FITS Viewer or not. Immutable
    */
    static
    bool isFitsCatObjShowNamesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FitsCatObjShowNames" ) );
    }

    /**
      Set Use scale for Fitsviewer Solving.
    */
    static
    void setFitsSolverUseScale( bool v )
    {
      if (v != self()->mFitsSolverUseScale && !self()->isFitsSolverUseScaleImmutable()) {
        self()->mFitsSolverUseScale = v;
        Q_EMIT self()->FitsSolverUseScaleChanged();
      }
    }

    Q_PROPERTY(bool fitsSolverUseScale READ fitsSolverUseScale WRITE setFitsSolverUseScale NOTIFY FitsSolverUseScaleChanged)
    Q_PROPERTY(bool isFitsSolverUseScaleImmutable READ isFitsSolverUseScaleImmutable CONSTANT)
    /**
      Get Use scale for Fitsviewer Solving.
    */
    static
    bool fitsSolverUseScale()
    {
      return self()->mFitsSolverUseScale;
    }

    /**
      Is Use scale for Fitsviewer Solving. Immutable
    */
    static
    bool isFitsSolverUseScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FitsSolverUseScale" ) );
    }

    /**
      Set Use position for Fitsviewer Solving.
    */
    static
    void setFitsSolverUsePosition( bool v )
    {
      if (v != self()->mFitsSolverUsePosition && !self()->isFitsSolverUsePositionImmutable()) {
        self()->mFitsSolverUsePosition = v;
        Q_EMIT self()->FitsSolverUsePositionChanged();
      }
    }

    Q_PROPERTY(bool fitsSolverUsePosition READ fitsSolverUsePosition WRITE setFitsSolverUsePosition NOTIFY FitsSolverUsePositionChanged)
    Q_PROPERTY(bool isFitsSolverUsePositionImmutable READ isFitsSolverUsePositionImmutable CONSTANT)
    /**
      Get Use position for Fitsviewer Solving.
    */
    static
    bool fitsSolverUsePosition()
    {
      return self()->mFitsSolverUsePosition;
    }

    /**
      Is Use position for Fitsviewer Solving. Immutable
    */
    static
    bool isFitsSolverUsePositionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FitsSolverUsePosition" ) );
    }

    /**
      Set Scale to use with Fitsviewer Solving.
    */
    static
    void setFitsSolverScale( double v )
    {
      if (v != self()->mFitsSolverScale && !self()->isFitsSolverScaleImmutable()) {
        self()->mFitsSolverScale = v;
        Q_EMIT self()->FitsSolverScaleChanged();
      }
    }

    Q_PROPERTY(double fitsSolverScale READ fitsSolverScale WRITE setFitsSolverScale NOTIFY FitsSolverScaleChanged)
    Q_PROPERTY(bool isFitsSolverScaleImmutable READ isFitsSolverScaleImmutable CONSTANT)
    /**
      Get Scale to use with Fitsviewer Solving.
    */
    static
    double fitsSolverScale()
    {
      return self()->mFitsSolverScale;
    }

    /**
      Is Scale to use with Fitsviewer Solving. Immutable
    */
    static
    bool isFitsSolverScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FitsSolverScale" ) );
    }

    /**
      Set Scale units to use with Fitsviewer Solving.
    */
    static
    void setFitsSolverImageScaleUnits( uint v )
    {
      if (v != self()->mFitsSolverImageScaleUnits && !self()->isFitsSolverImageScaleUnitsImmutable()) {
        self()->mFitsSolverImageScaleUnits = v;
        Q_EMIT self()->FitsSolverImageScaleUnitsChanged();
      }
    }

    Q_PROPERTY(uint fitsSolverImageScaleUnits READ fitsSolverImageScaleUnits WRITE setFitsSolverImageScaleUnits NOTIFY FitsSolverImageScaleUnitsChanged)
    Q_PROPERTY(bool isFitsSolverImageScaleUnitsImmutable READ isFitsSolverImageScaleUnitsImmutable CONSTANT)
    /**
      Get Scale units to use with Fitsviewer Solving.
    */
    static
    uint fitsSolverImageScaleUnits()
    {
      return self()->mFitsSolverImageScaleUnits;
    }

    /**
      Is Scale units to use with Fitsviewer Solving. Immutable
    */
    static
    bool isFitsSolverImageScaleUnitsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FitsSolverImageScaleUnits" ) );
    }

    /**
      Set Radius in position (degrees) to use with Fitsviewer Solving.
    */
    static
    void setFitsSolverRadius( double v )
    {
      if (v != self()->mFitsSolverRadius && !self()->isFitsSolverRadiusImmutable()) {
        self()->mFitsSolverRadius = v;
        Q_EMIT self()->FitsSolverRadiusChanged();
      }
    }

    Q_PROPERTY(double fitsSolverRadius READ fitsSolverRadius WRITE setFitsSolverRadius NOTIFY FitsSolverRadiusChanged)
    Q_PROPERTY(bool isFitsSolverRadiusImmutable READ isFitsSolverRadiusImmutable CONSTANT)
    /**
      Get Radius in position (degrees) to use with Fitsviewer Solving.
    */
    static
    double fitsSolverRadius()
    {
      return self()->mFitsSolverRadius;
    }

    /**
      Is Radius in position (degrees) to use with Fitsviewer Solving. Immutable
    */
    static
    bool isFitsSolverRadiusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FitsSolverRadius" ) );
    }

    /**
      Set fitsLSHideGeneral
    */
    static
    void setFitsLSHideGeneral( bool v )
    {
      if (v != self()->mFitsLSHideGeneral && !self()->isFitsLSHideGeneralImmutable()) {
        self()->mFitsLSHideGeneral = v;
        Q_EMIT self()->fitsLSHideGeneralChanged();
      }
    }

    Q_PROPERTY(bool fitsLSHideGeneral READ fitsLSHideGeneral WRITE setFitsLSHideGeneral NOTIFY fitsLSHideGeneralChanged)
    Q_PROPERTY(bool isFitsLSHideGeneralImmutable READ isFitsLSHideGeneralImmutable CONSTANT)
    /**
      Get fitsLSHideGeneral
    */
    static
    bool fitsLSHideGeneral()
    {
      return self()->mFitsLSHideGeneral;
    }

    /**
      Is fitsLSHideGeneral Immutable
    */
    static
    bool isFitsLSHideGeneralImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSHideGeneral" ) );
    }

    /**
      Set fitsLSHideCalibration
    */
    static
    void setFitsLSHideCalibration( bool v )
    {
      if (v != self()->mFitsLSHideCalibration && !self()->isFitsLSHideCalibrationImmutable()) {
        self()->mFitsLSHideCalibration = v;
        Q_EMIT self()->fitsLSHideCalibrationChanged();
      }
    }

    Q_PROPERTY(bool fitsLSHideCalibration READ fitsLSHideCalibration WRITE setFitsLSHideCalibration NOTIFY fitsLSHideCalibrationChanged)
    Q_PROPERTY(bool isFitsLSHideCalibrationImmutable READ isFitsLSHideCalibrationImmutable CONSTANT)
    /**
      Get fitsLSHideCalibration
    */
    static
    bool fitsLSHideCalibration()
    {
      return self()->mFitsLSHideCalibration;
    }

    /**
      Is fitsLSHideCalibration Immutable
    */
    static
    bool isFitsLSHideCalibrationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSHideCalibration" ) );
    }

    /**
      Set fitsLSHideAlignment
    */
    static
    void setFitsLSHideAlignment( bool v )
    {
      if (v != self()->mFitsLSHideAlignment && !self()->isFitsLSHideAlignmentImmutable()) {
        self()->mFitsLSHideAlignment = v;
        Q_EMIT self()->fitsLSHideAlignmentChanged();
      }
    }

    Q_PROPERTY(bool fitsLSHideAlignment READ fitsLSHideAlignment WRITE setFitsLSHideAlignment NOTIFY fitsLSHideAlignmentChanged)
    Q_PROPERTY(bool isFitsLSHideAlignmentImmutable READ isFitsLSHideAlignmentImmutable CONSTANT)
    /**
      Get fitsLSHideAlignment
    */
    static
    bool fitsLSHideAlignment()
    {
      return self()->mFitsLSHideAlignment;
    }

    /**
      Is fitsLSHideAlignment Immutable
    */
    static
    bool isFitsLSHideAlignmentImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSHideAlignment" ) );
    }

    /**
      Set fitsLSHideStacking
    */
    static
    void setFitsLSHideStacking( bool v )
    {
      if (v != self()->mFitsLSHideStacking && !self()->isFitsLSHideStackingImmutable()) {
        self()->mFitsLSHideStacking = v;
        Q_EMIT self()->fitsLSHideStackingChanged();
      }
    }

    Q_PROPERTY(bool fitsLSHideStacking READ fitsLSHideStacking WRITE setFitsLSHideStacking NOTIFY fitsLSHideStackingChanged)
    Q_PROPERTY(bool isFitsLSHideStackingImmutable READ isFitsLSHideStackingImmutable CONSTANT)
    /**
      Get fitsLSHideStacking
    */
    static
    bool fitsLSHideStacking()
    {
      return self()->mFitsLSHideStacking;
    }

    /**
      Is fitsLSHideStacking Immutable
    */
    static
    bool isFitsLSHideStackingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSHideStacking" ) );
    }

    /**
      Set fitsLSHidePostProc
    */
    static
    void setFitsLSHidePostProc( bool v )
    {
      if (v != self()->mFitsLSHidePostProc && !self()->isFitsLSHidePostProcImmutable()) {
        self()->mFitsLSHidePostProc = v;
        Q_EMIT self()->fitsLSHidePostProcChanged();
      }
    }

    Q_PROPERTY(bool fitsLSHidePostProc READ fitsLSHidePostProc WRITE setFitsLSHidePostProc NOTIFY fitsLSHidePostProcChanged)
    Q_PROPERTY(bool isFitsLSHidePostProcImmutable READ isFitsLSHidePostProcImmutable CONSTANT)
    /**
      Get fitsLSHidePostProc
    */
    static
    bool fitsLSHidePostProc()
    {
      return self()->mFitsLSHidePostProc;
    }

    /**
      Is fitsLSHidePostProc Immutable
    */
    static
    bool isFitsLSHidePostProcImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSHidePostProc" ) );
    }

    /**
      Set fitsLSCalcSNR
    */
    static
    void setFitsLSCalcSNR( bool v )
    {
      if (v != self()->mFitsLSCalcSNR && !self()->isFitsLSCalcSNRImmutable()) {
        self()->mFitsLSCalcSNR = v;
        Q_EMIT self()->fitsLSCalcSNRChanged();
      }
    }

    Q_PROPERTY(bool fitsLSCalcSNR READ fitsLSCalcSNR WRITE setFitsLSCalcSNR NOTIFY fitsLSCalcSNRChanged)
    Q_PROPERTY(bool isFitsLSCalcSNRImmutable READ isFitsLSCalcSNRImmutable CONSTANT)
    /**
      Get fitsLSCalcSNR
    */
    static
    bool fitsLSCalcSNR()
    {
      return self()->mFitsLSCalcSNR;
    }

    /**
      Is fitsLSCalcSNR Immutable
    */
    static
    bool isFitsLSCalcSNRImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSCalcSNR" ) );
    }

    /**
      Set fitsLSMasterDark
    */
    static
    void setFitsLSMasterDark( const QString & v )
    {
      if (v != self()->mFitsLSMasterDark && !self()->isFitsLSMasterDarkImmutable()) {
        self()->mFitsLSMasterDark = v;
        Q_EMIT self()->fitsLSMasterDarkChanged();
      }
    }

    Q_PROPERTY(QString fitsLSMasterDark READ fitsLSMasterDark WRITE setFitsLSMasterDark NOTIFY fitsLSMasterDarkChanged)
    Q_PROPERTY(bool isFitsLSMasterDarkImmutable READ isFitsLSMasterDarkImmutable CONSTANT)
    /**
      Get fitsLSMasterDark
    */
    static
    QString fitsLSMasterDark()
    {
      return self()->mFitsLSMasterDark;
    }

    /**
      Is fitsLSMasterDark Immutable
    */
    static
    bool isFitsLSMasterDarkImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSMasterDark" ) );
    }

    /**
      Set fitsLSMasterFlat
    */
    static
    void setFitsLSMasterFlat( const QString & v )
    {
      if (v != self()->mFitsLSMasterFlat && !self()->isFitsLSMasterFlatImmutable()) {
        self()->mFitsLSMasterFlat = v;
        Q_EMIT self()->fitsLSMasterFlatChanged();
      }
    }

    Q_PROPERTY(QString fitsLSMasterFlat READ fitsLSMasterFlat WRITE setFitsLSMasterFlat NOTIFY fitsLSMasterFlatChanged)
    Q_PROPERTY(bool isFitsLSMasterFlatImmutable READ isFitsLSMasterFlatImmutable CONSTANT)
    /**
      Get fitsLSMasterFlat
    */
    static
    QString fitsLSMasterFlat()
    {
      return self()->mFitsLSMasterFlat;
    }

    /**
      Is fitsLSMasterFlat Immutable
    */
    static
    bool isFitsLSMasterFlatImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSMasterFlat" ) );
    }

    /**
      Set fitsLSHotPixels
    */
    static
    void setFitsLSHotPixels( bool v )
    {
      if (v != self()->mFitsLSHotPixels && !self()->isFitsLSHotPixelsImmutable()) {
        self()->mFitsLSHotPixels = v;
        Q_EMIT self()->fitsLSHotPixelsChanged();
      }
    }

    Q_PROPERTY(bool fitsLSHotPixels READ fitsLSHotPixels WRITE setFitsLSHotPixels NOTIFY fitsLSHotPixelsChanged)
    Q_PROPERTY(bool isFitsLSHotPixelsImmutable READ isFitsLSHotPixelsImmutable CONSTANT)
    /**
      Get fitsLSHotPixels
    */
    static
    bool fitsLSHotPixels()
    {
      return self()->mFitsLSHotPixels;
    }

    /**
      Is fitsLSHotPixels Immutable
    */
    static
    bool isFitsLSHotPixelsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSHotPixels" ) );
    }

    /**
      Set fitsLSColdPixels
    */
    static
    void setFitsLSColdPixels( bool v )
    {
      if (v != self()->mFitsLSColdPixels && !self()->isFitsLSColdPixelsImmutable()) {
        self()->mFitsLSColdPixels = v;
        Q_EMIT self()->fitsLSColdPixelsChanged();
      }
    }

    Q_PROPERTY(bool fitsLSColdPixels READ fitsLSColdPixels WRITE setFitsLSColdPixels NOTIFY fitsLSColdPixelsChanged)
    Q_PROPERTY(bool isFitsLSColdPixelsImmutable READ isFitsLSColdPixelsImmutable CONSTANT)
    /**
      Get fitsLSColdPixels
    */
    static
    bool fitsLSColdPixels()
    {
      return self()->mFitsLSColdPixels;
    }

    /**
      Is fitsLSColdPixels Immutable
    */
    static
    bool isFitsLSColdPixelsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSColdPixels" ) );
    }

    /**
      Set fitsLSAlignMethod
    */
    static
    void setFitsLSAlignMethod( uint v )
    {
      if (v != self()->mFitsLSAlignMethod && !self()->isFitsLSAlignMethodImmutable()) {
        self()->mFitsLSAlignMethod = v;
        Q_EMIT self()->fitsLSAlignMethodChanged();
      }
    }

    Q_PROPERTY(uint fitsLSAlignMethod READ fitsLSAlignMethod WRITE setFitsLSAlignMethod NOTIFY fitsLSAlignMethodChanged)
    Q_PROPERTY(bool isFitsLSAlignMethodImmutable READ isFitsLSAlignMethodImmutable CONSTANT)
    /**
      Get fitsLSAlignMethod
    */
    static
    uint fitsLSAlignMethod()
    {
      return self()->mFitsLSAlignMethod;
    }

    /**
      Is fitsLSAlignMethod Immutable
    */
    static
    bool isFitsLSAlignMethodImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSAlignMethod" ) );
    }

    /**
      Set Live Stacking max number of subs to keep in memory
    */
    static
    void setFitsLSNumInMem( uint v )
    {
      if (v != self()->mFitsLSNumInMem && !self()->isFitsLSNumInMemImmutable()) {
        self()->mFitsLSNumInMem = v;
        Q_EMIT self()->fitsLSNumInMemChanged();
      }
    }

    Q_PROPERTY(uint fitsLSNumInMem READ fitsLSNumInMem WRITE setFitsLSNumInMem NOTIFY fitsLSNumInMemChanged)
    Q_PROPERTY(bool isFitsLSNumInMemImmutable READ isFitsLSNumInMemImmutable CONSTANT)
    /**
      Get Live Stacking max number of subs to keep in memory
    */
    static
    uint fitsLSNumInMem()
    {
      return self()->mFitsLSNumInMem;
    }

    /**
      Is Live Stacking max number of subs to keep in memory Immutable
    */
    static
    bool isFitsLSNumInMemImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSNumInMem" ) );
    }

    /**
      Set fitsLSDownscale
    */
    static
    void setFitsLSDownscale( uint v )
    {
      if (v != self()->mFitsLSDownscale && !self()->isFitsLSDownscaleImmutable()) {
        self()->mFitsLSDownscale = v;
        Q_EMIT self()->fitsLSDownscaleChanged();
      }
    }

    Q_PROPERTY(uint fitsLSDownscale READ fitsLSDownscale WRITE setFitsLSDownscale NOTIFY fitsLSDownscaleChanged)
    Q_PROPERTY(bool isFitsLSDownscaleImmutable READ isFitsLSDownscaleImmutable CONSTANT)
    /**
      Get fitsLSDownscale
    */
    static
    uint fitsLSDownscale()
    {
      return self()->mFitsLSDownscale;
    }

    /**
      Is fitsLSDownscale Immutable
    */
    static
    bool isFitsLSDownscaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSDownscale" ) );
    }

    /**
      Set fitsLSWeighting
    */
    static
    void setFitsLSWeighting( uint v )
    {
      if (v != self()->mFitsLSWeighting && !self()->isFitsLSWeightingImmutable()) {
        self()->mFitsLSWeighting = v;
        Q_EMIT self()->fitsLSWeightingChanged();
      }
    }

    Q_PROPERTY(uint fitsLSWeighting READ fitsLSWeighting WRITE setFitsLSWeighting NOTIFY fitsLSWeightingChanged)
    Q_PROPERTY(bool isFitsLSWeightingImmutable READ isFitsLSWeightingImmutable CONSTANT)
    /**
      Get fitsLSWeighting
    */
    static
    uint fitsLSWeighting()
    {
      return self()->mFitsLSWeighting;
    }

    /**
      Is fitsLSWeighting Immutable
    */
    static
    bool isFitsLSWeightingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSWeighting" ) );
    }

    /**
      Set fitsLSNormalization
    */
    static
    void setFitsLSNormalization( uint v )
    {
      if (v != self()->mFitsLSNormalization && !self()->isFitsLSNormalizationImmutable()) {
        self()->mFitsLSNormalization = v;
        Q_EMIT self()->fitsLSNormalizationChanged();
      }
    }

    Q_PROPERTY(uint fitsLSNormalization READ fitsLSNormalization WRITE setFitsLSNormalization NOTIFY fitsLSNormalizationChanged)
    Q_PROPERTY(bool isFitsLSNormalizationImmutable READ isFitsLSNormalizationImmutable CONSTANT)
    /**
      Get fitsLSNormalization
    */
    static
    uint fitsLSNormalization()
    {
      return self()->mFitsLSNormalization;
    }

    /**
      Is fitsLSNormalization Immutable
    */
    static
    bool isFitsLSNormalizationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSNormalization" ) );
    }

    /**
      Set fitsLSStackingMethod
    */
    static
    void setFitsLSStackingMethod( uint v )
    {
      if (v != self()->mFitsLSStackingMethod && !self()->isFitsLSStackingMethodImmutable()) {
        self()->mFitsLSStackingMethod = v;
        Q_EMIT self()->fitsLSStackingMethodChanged();
      }
    }

    Q_PROPERTY(uint fitsLSStackingMethod READ fitsLSStackingMethod WRITE setFitsLSStackingMethod NOTIFY fitsLSStackingMethodChanged)
    Q_PROPERTY(bool isFitsLSStackingMethodImmutable READ isFitsLSStackingMethodImmutable CONSTANT)
    /**
      Get fitsLSStackingMethod
    */
    static
    uint fitsLSStackingMethod()
    {
      return self()->mFitsLSStackingMethod;
    }

    /**
      Is fitsLSStackingMethod Immutable
    */
    static
    bool isFitsLSStackingMethodImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSStackingMethod" ) );
    }

    /**
      Set Live Stacking low sigma pixel rejection criteria
    */
    static
    void setFitsLSLowSigma( double v )
    {
      if (v != self()->mFitsLSLowSigma && !self()->isFitsLSLowSigmaImmutable()) {
        self()->mFitsLSLowSigma = v;
        Q_EMIT self()->fitsLSLowSigmaChanged();
      }
    }

    Q_PROPERTY(double fitsLSLowSigma READ fitsLSLowSigma WRITE setFitsLSLowSigma NOTIFY fitsLSLowSigmaChanged)
    Q_PROPERTY(bool isFitsLSLowSigmaImmutable READ isFitsLSLowSigmaImmutable CONSTANT)
    /**
      Get Live Stacking low sigma pixel rejection criteria
    */
    static
    double fitsLSLowSigma()
    {
      return self()->mFitsLSLowSigma;
    }

    /**
      Is Live Stacking low sigma pixel rejection criteria Immutable
    */
    static
    bool isFitsLSLowSigmaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSLowSigma" ) );
    }

    /**
      Set Live Stacking high sigma pixel rejection criteria
    */
    static
    void setFitsLSHighSigma( double v )
    {
      if (v != self()->mFitsLSHighSigma && !self()->isFitsLSHighSigmaImmutable()) {
        self()->mFitsLSHighSigma = v;
        Q_EMIT self()->fitsLSHighSigmaChanged();
      }
    }

    Q_PROPERTY(double fitsLSHighSigma READ fitsLSHighSigma WRITE setFitsLSHighSigma NOTIFY fitsLSHighSigmaChanged)
    Q_PROPERTY(bool isFitsLSHighSigmaImmutable READ isFitsLSHighSigmaImmutable CONSTANT)
    /**
      Get Live Stacking high sigma pixel rejection criteria
    */
    static
    double fitsLSHighSigma()
    {
      return self()->mFitsLSHighSigma;
    }

    /**
      Is Live Stacking high sigma pixel rejection criteria Immutable
    */
    static
    bool isFitsLSHighSigmaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSHighSigma" ) );
    }

    /**
      Set Live Stacking sigma clipping windzor cutoff
    */
    static
    void setFitsLSWinsorCutoff( double v )
    {
      if (v != self()->mFitsLSWinsorCutoff && !self()->isFitsLSWinsorCutoffImmutable()) {
        self()->mFitsLSWinsorCutoff = v;
        Q_EMIT self()->fitsLSWinsorCutoffChanged();
      }
    }

    Q_PROPERTY(double fitsLSWinsorCutoff READ fitsLSWinsorCutoff WRITE setFitsLSWinsorCutoff NOTIFY fitsLSWinsorCutoffChanged)
    Q_PROPERTY(bool isFitsLSWinsorCutoffImmutable READ isFitsLSWinsorCutoffImmutable CONSTANT)
    /**
      Get Live Stacking sigma clipping windzor cutoff
    */
    static
    double fitsLSWinsorCutoff()
    {
      return self()->mFitsLSWinsorCutoff;
    }

    /**
      Is Live Stacking sigma clipping windzor cutoff Immutable
    */
    static
    bool isFitsLSWinsorCutoffImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSWinsorCutoff" ) );
    }

    /**
      Set Live Stacking Iterations to use in ImageMM stacking
    */
    static
    void setFitsLSIterations( uint v )
    {
      if (v != self()->mFitsLSIterations && !self()->isFitsLSIterationsImmutable()) {
        self()->mFitsLSIterations = v;
        Q_EMIT self()->fitsLSIterationsChanged();
      }
    }

    Q_PROPERTY(uint fitsLSIterations READ fitsLSIterations WRITE setFitsLSIterations NOTIFY fitsLSIterationsChanged)
    Q_PROPERTY(bool isFitsLSIterationsImmutable READ isFitsLSIterationsImmutable CONSTANT)
    /**
      Get Live Stacking Iterations to use in ImageMM stacking
    */
    static
    uint fitsLSIterations()
    {
      return self()->mFitsLSIterations;
    }

    /**
      Is Live Stacking Iterations to use in ImageMM stacking Immutable
    */
    static
    bool isFitsLSIterationsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSIterations" ) );
    }

    /**
      Set Live Stacking ImageMM kappa
    */
    static
    void setFitsLSKappa( double v )
    {
      if (v != self()->mFitsLSKappa && !self()->isFitsLSKappaImmutable()) {
        self()->mFitsLSKappa = v;
        Q_EMIT self()->fitsLSKappaChanged();
      }
    }

    Q_PROPERTY(double fitsLSKappa READ fitsLSKappa WRITE setFitsLSKappa NOTIFY fitsLSKappaChanged)
    Q_PROPERTY(bool isFitsLSKappaImmutable READ isFitsLSKappaImmutable CONSTANT)
    /**
      Get Live Stacking ImageMM kappa
    */
    static
    double fitsLSKappa()
    {
      return self()->mFitsLSKappa;
    }

    /**
      Is Live Stacking ImageMM kappa Immutable
    */
    static
    bool isFitsLSKappaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSKappa" ) );
    }

    /**
      Set Live Stacking ImageMM alpha
    */
    static
    void setFitsLSAlpha( double v )
    {
      if (v != self()->mFitsLSAlpha && !self()->isFitsLSAlphaImmutable()) {
        self()->mFitsLSAlpha = v;
        Q_EMIT self()->fitsLSAlphaChanged();
      }
    }

    Q_PROPERTY(double fitsLSAlpha READ fitsLSAlpha WRITE setFitsLSAlpha NOTIFY fitsLSAlphaChanged)
    Q_PROPERTY(bool isFitsLSAlphaImmutable READ isFitsLSAlphaImmutable CONSTANT)
    /**
      Get Live Stacking ImageMM alpha
    */
    static
    double fitsLSAlpha()
    {
      return self()->mFitsLSAlpha;
    }

    /**
      Is Live Stacking ImageMM alpha Immutable
    */
    static
    bool isFitsLSAlphaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSAlpha" ) );
    }

    /**
      Set Live Stacking ImageMM sigma
    */
    static
    void setFitsLSSigma( double v )
    {
      if (v != self()->mFitsLSSigma && !self()->isFitsLSSigmaImmutable()) {
        self()->mFitsLSSigma = v;
        Q_EMIT self()->fitsLSSigmaChanged();
      }
    }

    Q_PROPERTY(double fitsLSSigma READ fitsLSSigma WRITE setFitsLSSigma NOTIFY fitsLSSigmaChanged)
    Q_PROPERTY(bool isFitsLSSigmaImmutable READ isFitsLSSigmaImmutable CONSTANT)
    /**
      Get Live Stacking ImageMM sigma
    */
    static
    double fitsLSSigma()
    {
      return self()->mFitsLSSigma;
    }

    /**
      Is Live Stacking ImageMM sigma Immutable
    */
    static
    bool isFitsLSSigmaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSSigma" ) );
    }

    /**
      Set Live Stacking ImageMM PSF Update interval
    */
    static
    void setFitsPSFUpdate( uint v )
    {
      if (v != self()->mFitsPSFUpdate && !self()->isFitsPSFUpdateImmutable()) {
        self()->mFitsPSFUpdate = v;
        Q_EMIT self()->fitsPSFUpdateChanged();
      }
    }

    Q_PROPERTY(uint fitsPSFUpdate READ fitsPSFUpdate WRITE setFitsPSFUpdate NOTIFY fitsPSFUpdateChanged)
    Q_PROPERTY(bool isFitsPSFUpdateImmutable READ isFitsPSFUpdateImmutable CONSTANT)
    /**
      Get Live Stacking ImageMM PSF Update interval
    */
    static
    uint fitsPSFUpdate()
    {
      return self()->mFitsPSFUpdate;
    }

    /**
      Is Live Stacking ImageMM PSF Update interval Immutable
    */
    static
    bool isFitsPSFUpdateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsPSFUpdate" ) );
    }

    /**
      Set fitsLSPostProc
    */
    static
    void setFitsLSPostProc( bool v )
    {
      if (v != self()->mFitsLSPostProc && !self()->isFitsLSPostProcImmutable()) {
        self()->mFitsLSPostProc = v;
        Q_EMIT self()->fitsLSPostProcChanged();
      }
    }

    Q_PROPERTY(bool fitsLSPostProc READ fitsLSPostProc WRITE setFitsLSPostProc NOTIFY fitsLSPostProcChanged)
    Q_PROPERTY(bool isFitsLSPostProcImmutable READ isFitsLSPostProcImmutable CONSTANT)
    /**
      Get fitsLSPostProc
    */
    static
    bool fitsLSPostProc()
    {
      return self()->mFitsLSPostProc;
    }

    /**
      Is fitsLSPostProc Immutable
    */
    static
    bool isFitsLSPostProcImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSPostProc" ) );
    }

    /**
      Set Live Stacking gradient removal amount
    */
    static
    void setFitsLSGradientAmt( double v )
    {
      if (v != self()->mFitsLSGradientAmt && !self()->isFitsLSGradientAmtImmutable()) {
        self()->mFitsLSGradientAmt = v;
        Q_EMIT self()->fitsLSGradientAmtChanged();
      }
    }

    Q_PROPERTY(double fitsLSGradientAmt READ fitsLSGradientAmt WRITE setFitsLSGradientAmt NOTIFY fitsLSGradientAmtChanged)
    Q_PROPERTY(bool isFitsLSGradientAmtImmutable READ isFitsLSGradientAmtImmutable CONSTANT)
    /**
      Get Live Stacking gradient removal amount
    */
    static
    double fitsLSGradientAmt()
    {
      return self()->mFitsLSGradientAmt;
    }

    /**
      Is Live Stacking gradient removal amount Immutable
    */
    static
    bool isFitsLSGradientAmtImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSGradientAmt" ) );
    }

    /**
      Set Live Stacking deconvolution amount
    */
    static
    void setFitsLSDeconvAmt( double v )
    {
      if (v != self()->mFitsLSDeconvAmt && !self()->isFitsLSDeconvAmtImmutable()) {
        self()->mFitsLSDeconvAmt = v;
        Q_EMIT self()->fitsLSDeconvAmtChanged();
      }
    }

    Q_PROPERTY(double fitsLSDeconvAmt READ fitsLSDeconvAmt WRITE setFitsLSDeconvAmt NOTIFY fitsLSDeconvAmtChanged)
    Q_PROPERTY(bool isFitsLSDeconvAmtImmutable READ isFitsLSDeconvAmtImmutable CONSTANT)
    /**
      Get Live Stacking deconvolution amount
    */
    static
    double fitsLSDeconvAmt()
    {
      return self()->mFitsLSDeconvAmt;
    }

    /**
      Is Live Stacking deconvolution amount Immutable
    */
    static
    bool isFitsLSDeconvAmtImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSDeconvAmt" ) );
    }

    /**
      Set Live Stacking PSF sigma to apply in deconvolution
    */
    static
    void setFitsLSPSFSigma( double v )
    {
      if (v != self()->mFitsLSPSFSigma && !self()->isFitsLSPSFSigmaImmutable()) {
        self()->mFitsLSPSFSigma = v;
        Q_EMIT self()->fitsLSPSFSigmaChanged();
      }
    }

    Q_PROPERTY(double fitsLSPSFSigma READ fitsLSPSFSigma WRITE setFitsLSPSFSigma NOTIFY fitsLSPSFSigmaChanged)
    Q_PROPERTY(bool isFitsLSPSFSigmaImmutable READ isFitsLSPSFSigmaImmutable CONSTANT)
    /**
      Get Live Stacking PSF sigma to apply in deconvolution
    */
    static
    double fitsLSPSFSigma()
    {
      return self()->mFitsLSPSFSigma;
    }

    /**
      Is Live Stacking PSF sigma to apply in deconvolution Immutable
    */
    static
    bool isFitsLSPSFSigmaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSPSFSigma" ) );
    }

    /**
      Set Live Stacking denoise amount
    */
    static
    void setFitsLSDenoiseAmt( double v )
    {
      if (v != self()->mFitsLSDenoiseAmt && !self()->isFitsLSDenoiseAmtImmutable()) {
        self()->mFitsLSDenoiseAmt = v;
        Q_EMIT self()->fitsLSDenoiseAmtChanged();
      }
    }

    Q_PROPERTY(double fitsLSDenoiseAmt READ fitsLSDenoiseAmt WRITE setFitsLSDenoiseAmt NOTIFY fitsLSDenoiseAmtChanged)
    Q_PROPERTY(bool isFitsLSDenoiseAmtImmutable READ isFitsLSDenoiseAmtImmutable CONSTANT)
    /**
      Get Live Stacking denoise amount
    */
    static
    double fitsLSDenoiseAmt()
    {
      return self()->mFitsLSDenoiseAmt;
    }

    /**
      Is Live Stacking denoise amount Immutable
    */
    static
    bool isFitsLSDenoiseAmtImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSDenoiseAmt" ) );
    }

    /**
      Set Live Stacking sharpen amount
    */
    static
    void setFitsLSSharpenAmt( double v )
    {
      if (v != self()->mFitsLSSharpenAmt && !self()->isFitsLSSharpenAmtImmutable()) {
        self()->mFitsLSSharpenAmt = v;
        Q_EMIT self()->fitsLSSharpenAmtChanged();
      }
    }

    Q_PROPERTY(double fitsLSSharpenAmt READ fitsLSSharpenAmt WRITE setFitsLSSharpenAmt NOTIFY fitsLSSharpenAmtChanged)
    Q_PROPERTY(bool isFitsLSSharpenAmtImmutable READ isFitsLSSharpenAmtImmutable CONSTANT)
    /**
      Get Live Stacking sharpen amount
    */
    static
    double fitsLSSharpenAmt()
    {
      return self()->mFitsLSSharpenAmt;
    }

    /**
      Is Live Stacking sharpen amount Immutable
    */
    static
    bool isFitsLSSharpenAmtImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSSharpenAmt" ) );
    }

    /**
      Set Live Stacking sharpening kernel size
    */
    static
    void setFitsLSSharpenKernal( uint v )
    {
      if (v != self()->mFitsLSSharpenKernal && !self()->isFitsLSSharpenKernalImmutable()) {
        self()->mFitsLSSharpenKernal = v;
        Q_EMIT self()->fitsLSSharpenKernalChanged();
      }
    }

    Q_PROPERTY(uint fitsLSSharpenKernal READ fitsLSSharpenKernal WRITE setFitsLSSharpenKernal NOTIFY fitsLSSharpenKernalChanged)
    Q_PROPERTY(bool isFitsLSSharpenKernalImmutable READ isFitsLSSharpenKernalImmutable CONSTANT)
    /**
      Get Live Stacking sharpening kernel size
    */
    static
    uint fitsLSSharpenKernal()
    {
      return self()->mFitsLSSharpenKernal;
    }

    /**
      Is Live Stacking sharpening kernel size Immutable
    */
    static
    bool isFitsLSSharpenKernalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSSharpenKernal" ) );
    }

    /**
      Set Live Stacking sharpening sigma
    */
    static
    void setFitsLSSharpenSigma( double v )
    {
      if (v != self()->mFitsLSSharpenSigma && !self()->isFitsLSSharpenSigmaImmutable()) {
        self()->mFitsLSSharpenSigma = v;
        Q_EMIT self()->fitsLSSharpenSigmaChanged();
      }
    }

    Q_PROPERTY(double fitsLSSharpenSigma READ fitsLSSharpenSigma WRITE setFitsLSSharpenSigma NOTIFY fitsLSSharpenSigmaChanged)
    Q_PROPERTY(bool isFitsLSSharpenSigmaImmutable READ isFitsLSSharpenSigmaImmutable CONSTANT)
    /**
      Get Live Stacking sharpening sigma
    */
    static
    double fitsLSSharpenSigma()
    {
      return self()->mFitsLSSharpenSigma;
    }

    /**
      Is Live Stacking sharpening sigma Immutable
    */
    static
    bool isFitsLSSharpenSigmaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSSharpenSigma" ) );
    }

    /**
      Set Geometry of Live Stacking Monitor window
    */
    static
    void setFitsLSMWindowGeometry( const QString & v )
    {
      if (v != self()->mFitsLSMWindowGeometry && !self()->isFitsLSMWindowGeometryImmutable()) {
        self()->mFitsLSMWindowGeometry = v;
        Q_EMIT self()->fitsLSMWindowGeometryChanged();
      }
    }

    Q_PROPERTY(QString fitsLSMWindowGeometry READ fitsLSMWindowGeometry WRITE setFitsLSMWindowGeometry NOTIFY fitsLSMWindowGeometryChanged)
    Q_PROPERTY(bool isFitsLSMWindowGeometryImmutable READ isFitsLSMWindowGeometryImmutable CONSTANT)
    /**
      Get Geometry of Live Stacking Monitor window
    */
    static
    QString fitsLSMWindowGeometry()
    {
      return self()->mFitsLSMWindowGeometry;
    }

    /**
      Is Geometry of Live Stacking Monitor window Immutable
    */
    static
    bool isFitsLSMWindowGeometryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSMWindowGeometry" ) );
    }

    /**
      Set Live Stacking Monitor column visibility
    */
    static
    void setFitsLSMVisibleColumns( const QStringList & v )
    {
      if (v != self()->mFitsLSMVisibleColumns && !self()->isFitsLSMVisibleColumnsImmutable()) {
        self()->mFitsLSMVisibleColumns = v;
        Q_EMIT self()->fitsLSMVisibleColumnsChanged();
      }
    }

    Q_PROPERTY(QStringList fitsLSMVisibleColumns READ fitsLSMVisibleColumns WRITE setFitsLSMVisibleColumns NOTIFY fitsLSMVisibleColumnsChanged)
    Q_PROPERTY(bool isFitsLSMVisibleColumnsImmutable READ isFitsLSMVisibleColumnsImmutable CONSTANT)
    /**
      Get Live Stacking Monitor column visibility
    */
    static
    QStringList fitsLSMVisibleColumns()
    {
      return self()->mFitsLSMVisibleColumns;
    }

    /**
      Is Live Stacking Monitor column visibility Immutable
    */
    static
    bool isFitsLSMVisibleColumnsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSMVisibleColumns" ) );
    }

    /**
      Set Live Stacking Monitor column widths
    */
    static
    void setFitsLSMColumnWidths( const QList<int> & v )
    {
      if (v != self()->mFitsLSMColumnWidths && !self()->isFitsLSMColumnWidthsImmutable()) {
        self()->mFitsLSMColumnWidths = v;
        Q_EMIT self()->fitsLSMColumnWidthsChanged();
      }
    }

    Q_PROPERTY(QList<int> fitsLSMColumnWidths READ fitsLSMColumnWidths WRITE setFitsLSMColumnWidths NOTIFY fitsLSMColumnWidthsChanged)
    Q_PROPERTY(bool isFitsLSMColumnWidthsImmutable READ isFitsLSMColumnWidthsImmutable CONSTANT)
    /**
      Get Live Stacking Monitor column widths
    */
    static
    QList<int> fitsLSMColumnWidths()
    {
      return self()->mFitsLSMColumnWidths;
    }

    /**
      Is Live Stacking Monitor column widths Immutable
    */
    static
    bool isFitsLSMColumnWidthsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSMColumnWidths" ) );
    }

    /**
      Set fitsLSMSortColumn
    */
    static
    void setFitsLSMSortColumn( int v )
    {
      if (v != self()->mFitsLSMSortColumn && !self()->isFitsLSMSortColumnImmutable()) {
        self()->mFitsLSMSortColumn = v;
        Q_EMIT self()->fitsLSMSortColumnChanged();
      }
    }

    Q_PROPERTY(int fitsLSMSortColumn READ fitsLSMSortColumn WRITE setFitsLSMSortColumn NOTIFY fitsLSMSortColumnChanged)
    Q_PROPERTY(bool isFitsLSMSortColumnImmutable READ isFitsLSMSortColumnImmutable CONSTANT)
    /**
      Get fitsLSMSortColumn
    */
    static
    int fitsLSMSortColumn()
    {
      return self()->mFitsLSMSortColumn;
    }

    /**
      Is fitsLSMSortColumn Immutable
    */
    static
    bool isFitsLSMSortColumnImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSMSortColumn" ) );
    }

    /**
      Set fitsLSMSortOrder
    */
    static
    void setFitsLSMSortOrder( int v )
    {
      if (v != self()->mFitsLSMSortOrder && !self()->isFitsLSMSortOrderImmutable()) {
        self()->mFitsLSMSortOrder = v;
        Q_EMIT self()->fitsLSMSortOrderChanged();
      }
    }

    Q_PROPERTY(int fitsLSMSortOrder READ fitsLSMSortOrder WRITE setFitsLSMSortOrder NOTIFY fitsLSMSortOrderChanged)
    Q_PROPERTY(bool isFitsLSMSortOrderImmutable READ isFitsLSMSortOrderImmutable CONSTANT)
    /**
      Get fitsLSMSortOrder
    */
    static
    int fitsLSMSortOrder()
    {
      return self()->mFitsLSMSortOrder;
    }

    /**
      Is fitsLSMSortOrder Immutable
    */
    static
    bool isFitsLSMSortOrderImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSMSortOrder" ) );
    }

    /**
      Set Live Stacking Monitor highlighting.
    */
    static
    void setFitsLSMHighlighting( bool v )
    {
      if (v != self()->mFitsLSMHighlighting && !self()->isFitsLSMHighlightingImmutable()) {
        self()->mFitsLSMHighlighting = v;
        Q_EMIT self()->fitsLSMHighlightingChanged();
      }
    }

    Q_PROPERTY(bool fitsLSMHighlighting READ fitsLSMHighlighting WRITE setFitsLSMHighlighting NOTIFY fitsLSMHighlightingChanged)
    Q_PROPERTY(bool isFitsLSMHighlightingImmutable READ isFitsLSMHighlightingImmutable CONSTANT)
    /**
      Get Live Stacking Monitor highlighting.
    */
    static
    bool fitsLSMHighlighting()
    {
      return self()->mFitsLSMHighlighting;
    }

    /**
      Is Live Stacking Monitor highlighting. Immutable
    */
    static
    bool isFitsLSMHighlightingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSMHighlighting" ) );
    }

    /**
      Set Live Stacking Webcast title
    */
    static
    void setFitsLSWebcastTitle( const QString & v )
    {
      if (v != self()->mFitsLSWebcastTitle && !self()->isFitsLSWebcastTitleImmutable()) {
        self()->mFitsLSWebcastTitle = v;
        Q_EMIT self()->fitsLSWebcastTitleChanged();
      }
    }

    Q_PROPERTY(QString fitsLSWebcastTitle READ fitsLSWebcastTitle WRITE setFitsLSWebcastTitle NOTIFY fitsLSWebcastTitleChanged)
    Q_PROPERTY(bool isFitsLSWebcastTitleImmutable READ isFitsLSWebcastTitleImmutable CONSTANT)
    /**
      Get Live Stacking Webcast title
    */
    static
    QString fitsLSWebcastTitle()
    {
      return self()->mFitsLSWebcastTitle;
    }

    /**
      Is Live Stacking Webcast title Immutable
    */
    static
    bool isFitsLSWebcastTitleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSWebcastTitle" ) );
    }

    /**
      Set Live Stacking Webcast left logo pathname
    */
    static
    void setFitsLSWebcastLogoL( const QString & v )
    {
      if (v != self()->mFitsLSWebcastLogoL && !self()->isFitsLSWebcastLogoLImmutable()) {
        self()->mFitsLSWebcastLogoL = v;
        Q_EMIT self()->fitsLSWebcastLogoLChanged();
      }
    }

    Q_PROPERTY(QString fitsLSWebcastLogoL READ fitsLSWebcastLogoL WRITE setFitsLSWebcastLogoL NOTIFY fitsLSWebcastLogoLChanged)
    Q_PROPERTY(bool isFitsLSWebcastLogoLImmutable READ isFitsLSWebcastLogoLImmutable CONSTANT)
    /**
      Get Live Stacking Webcast left logo pathname
    */
    static
    QString fitsLSWebcastLogoL()
    {
      return self()->mFitsLSWebcastLogoL;
    }

    /**
      Is Live Stacking Webcast left logo pathname Immutable
    */
    static
    bool isFitsLSWebcastLogoLImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSWebcastLogoL" ) );
    }

    /**
      Set Live Stacking Webcast right logo pathname
    */
    static
    void setFitsLSWebcastLogoR( const QString & v )
    {
      if (v != self()->mFitsLSWebcastLogoR && !self()->isFitsLSWebcastLogoRImmutable()) {
        self()->mFitsLSWebcastLogoR = v;
        Q_EMIT self()->fitsLSWebcastLogoRChanged();
      }
    }

    Q_PROPERTY(QString fitsLSWebcastLogoR READ fitsLSWebcastLogoR WRITE setFitsLSWebcastLogoR NOTIFY fitsLSWebcastLogoRChanged)
    Q_PROPERTY(bool isFitsLSWebcastLogoRImmutable READ isFitsLSWebcastLogoRImmutable CONSTANT)
    /**
      Get Live Stacking Webcast right logo pathname
    */
    static
    QString fitsLSWebcastLogoR()
    {
      return self()->mFitsLSWebcastLogoR;
    }

    /**
      Is Live Stacking Webcast right logo pathname Immutable
    */
    static
    bool isFitsLSWebcastLogoRImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSWebcastLogoR" ) );
    }

    /**
      Set Live Stacking Webcast port number
    */
    static
    void setFitsLSWebcastPort( uint v )
    {
      if (v != self()->mFitsLSWebcastPort && !self()->isFitsLSWebcastPortImmutable()) {
        self()->mFitsLSWebcastPort = v;
        Q_EMIT self()->fitsLSWebcastPortChanged();
      }
    }

    Q_PROPERTY(uint fitsLSWebcastPort READ fitsLSWebcastPort WRITE setFitsLSWebcastPort NOTIFY fitsLSWebcastPortChanged)
    Q_PROPERTY(bool isFitsLSWebcastPortImmutable READ isFitsLSWebcastPortImmutable CONSTANT)
    /**
      Get Live Stacking Webcast port number
    */
    static
    uint fitsLSWebcastPort()
    {
      return self()->mFitsLSWebcastPort;
    }

    /**
      Is Live Stacking Webcast port number Immutable
    */
    static
    bool isFitsLSWebcastPortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSWebcastPort" ) );
    }

    /**
      Set Live Stacking Webcast throttle in milliseconds
    */
    static
    void setFitsLSWebcastThrottle( uint v )
    {
      if (v != self()->mFitsLSWebcastThrottle && !self()->isFitsLSWebcastThrottleImmutable()) {
        self()->mFitsLSWebcastThrottle = v;
        Q_EMIT self()->fitsLSWebcastThrottleChanged();
      }
    }

    Q_PROPERTY(uint fitsLSWebcastThrottle READ fitsLSWebcastThrottle WRITE setFitsLSWebcastThrottle NOTIFY fitsLSWebcastThrottleChanged)
    Q_PROPERTY(bool isFitsLSWebcastThrottleImmutable READ isFitsLSWebcastThrottleImmutable CONSTANT)
    /**
      Get Live Stacking Webcast throttle in milliseconds
    */
    static
    uint fitsLSWebcastThrottle()
    {
      return self()->mFitsLSWebcastThrottle;
    }

    /**
      Is Live Stacking Webcast throttle in milliseconds Immutable
    */
    static
    bool isFitsLSWebcastThrottleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fitsLSWebcastThrottle" ) );
    }

    /**
      Set Bortle dark-sky rating
    */
    static
    void setBortleClass( uint v )
    {
      if (v != self()->mBortleClass && !self()->isBortleClassImmutable()) {
        self()->mBortleClass = v;
        Q_EMIT self()->BortleClassChanged();
      }
    }

    Q_PROPERTY(uint bortleClass READ bortleClass WRITE setBortleClass NOTIFY BortleClassChanged)
    Q_PROPERTY(bool isBortleClassImmutable READ isBortleClassImmutable CONSTANT)
    /**
      Get Bortle dark-sky rating
    */
    static
    uint bortleClass()
    {
      return self()->mBortleClass;
    }

    /**
      Is Bortle dark-sky rating Immutable
    */
    static
    bool isBortleClassImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BortleClass" ) );
    }

    /**
      Set Availability of telescope
    */
    static
    void setTelescopeCheck( bool v )
    {
      if (v != self()->mTelescopeCheck && !self()->isTelescopeCheckImmutable()) {
        self()->mTelescopeCheck = v;
        Q_EMIT self()->TelescopeCheckChanged();
      }
    }

    Q_PROPERTY(bool telescopeCheck READ telescopeCheck WRITE setTelescopeCheck NOTIFY TelescopeCheckChanged)
    Q_PROPERTY(bool isTelescopeCheckImmutable READ isTelescopeCheckImmutable CONSTANT)
    /**
      Get Availability of telescope
    */
    static
    bool telescopeCheck()
    {
      return self()->mTelescopeCheck;
    }

    /**
      Is Availability of telescope Immutable
    */
    static
    bool isTelescopeCheckImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TelescopeCheck" ) );
    }

    /**
      Set Availability of binoculars
    */
    static
    void setBinocularsCheck( bool v )
    {
      if (v != self()->mBinocularsCheck && !self()->isBinocularsCheckImmutable()) {
        self()->mBinocularsCheck = v;
        Q_EMIT self()->BinocularsCheckChanged();
      }
    }

    Q_PROPERTY(bool binocularsCheck READ binocularsCheck WRITE setBinocularsCheck NOTIFY BinocularsCheckChanged)
    Q_PROPERTY(bool isBinocularsCheckImmutable READ isBinocularsCheckImmutable CONSTANT)
    /**
      Get Availability of binoculars
    */
    static
    bool binocularsCheck()
    {
      return self()->mBinocularsCheck;
    }

    /**
      Is Availability of binoculars Immutable
    */
    static
    bool isBinocularsCheckImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BinocularsCheck" ) );
    }

    /**
      Set Aperture of available binocular
    */
    static
    void setBinocularsAperture( double v )
    {
      if (v != self()->mBinocularsAperture && !self()->isBinocularsApertureImmutable()) {
        self()->mBinocularsAperture = v;
        Q_EMIT self()->BinocularsApertureChanged();
      }
    }

    Q_PROPERTY(double binocularsAperture READ binocularsAperture WRITE setBinocularsAperture NOTIFY BinocularsApertureChanged)
    Q_PROPERTY(bool isBinocularsApertureImmutable READ isBinocularsApertureImmutable CONSTANT)
    /**
      Get Aperture of available binocular
    */
    static
    double binocularsAperture()
    {
      return self()->mBinocularsAperture;
    }

    /**
      Is Aperture of available binocular Immutable
    */
    static
    bool isBinocularsApertureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BinocularsAperture" ) );
    }

    /**
      Set Index of selected scope from list of scopes
    */
    static
    void setScopeListIndex( uint v )
    {
      if (v != self()->mScopeListIndex && !self()->isScopeListIndexImmutable()) {
        self()->mScopeListIndex = v;
        Q_EMIT self()->ScopeListIndexChanged();
      }
    }

    Q_PROPERTY(uint scopeListIndex READ scopeListIndex WRITE setScopeListIndex NOTIFY ScopeListIndexChanged)
    Q_PROPERTY(bool isScopeListIndexImmutable READ isScopeListIndexImmutable CONSTANT)
    /**
      Get Index of selected scope from list of scopes
    */
    static
    uint scopeListIndex()
    {
      return self()->mScopeListIndex;
    }

    /**
      Is Index of selected scope from list of scopes Immutable
    */
    static
    bool isScopeListIndexImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ScopeListIndex" ) );
    }

    /**
      Set Ekos window width
    */
    static
    void setEkosWindowWidth( uint v )
    {
      if (v != self()->mEkosWindowWidth && !self()->isEkosWindowWidthImmutable()) {
        self()->mEkosWindowWidth = v;
        Q_EMIT self()->EkosWindowWidthChanged();
      }
    }

    Q_PROPERTY(uint ekosWindowWidth READ ekosWindowWidth WRITE setEkosWindowWidth NOTIFY EkosWindowWidthChanged)
    Q_PROPERTY(bool isEkosWindowWidthImmutable READ isEkosWindowWidthImmutable CONSTANT)
    /**
      Get Ekos window width
    */
    static
    uint ekosWindowWidth()
    {
      return self()->mEkosWindowWidth;
    }

    /**
      Is Ekos window width Immutable
    */
    static
    bool isEkosWindowWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosWindowWidth" ) );
    }

    /**
      Set Ekos window height
    */
    static
    void setEkosWindowHeight( uint v )
    {
      if (v != self()->mEkosWindowHeight && !self()->isEkosWindowHeightImmutable()) {
        self()->mEkosWindowHeight = v;
        Q_EMIT self()->EkosWindowHeightChanged();
      }
    }

    Q_PROPERTY(uint ekosWindowHeight READ ekosWindowHeight WRITE setEkosWindowHeight NOTIFY EkosWindowHeightChanged)
    Q_PROPERTY(bool isEkosWindowHeightImmutable READ isEkosWindowHeightImmutable CONSTANT)
    /**
      Get Ekos window height
    */
    static
    uint ekosWindowHeight()
    {
      return self()->mEkosWindowHeight;
    }

    /**
      Is Ekos window height Immutable
    */
    static
    bool isEkosWindowHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosWindowHeight" ) );
    }

    /**
      Set Geometry of Ekos window, encoded byte array
    */
    static
    void setEkosGeometry( const QString & v )
    {
      if (v != self()->mEkosGeometry && !self()->isEkosGeometryImmutable()) {
        self()->mEkosGeometry = v;
        Q_EMIT self()->EkosGeometryChanged();
      }
    }

    Q_PROPERTY(QString ekosGeometry READ ekosGeometry WRITE setEkosGeometry NOTIFY EkosGeometryChanged)
    Q_PROPERTY(bool isEkosGeometryImmutable READ isEkosGeometryImmutable CONSTANT)
    /**
      Get Geometry of Ekos window, encoded byte array
    */
    static
    QString ekosGeometry()
    {
      return self()->mEkosGeometry;
    }

    /**
      Is Geometry of Ekos window, encoded byte array Immutable
    */
    static
    bool isEkosGeometryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosGeometry" ) );
    }

    /**
      Set Ekos modules icons are placed on the top of pages
    */
    static
    void setEkosTopIcons( bool v )
    {
      if (v != self()->mEkosTopIcons && !self()->isEkosTopIconsImmutable()) {
        self()->mEkosTopIcons = v;
        Q_EMIT self()->EkosTopIconsChanged();
      }
    }

    Q_PROPERTY(bool ekosTopIcons READ ekosTopIcons WRITE setEkosTopIcons NOTIFY EkosTopIconsChanged)
    Q_PROPERTY(bool isEkosTopIconsImmutable READ isEkosTopIconsImmutable CONSTANT)
    /**
      Get Ekos modules icons are placed on the top of pages
    */
    static
    bool ekosTopIcons()
    {
      return self()->mEkosTopIcons;
    }

    /**
      Is Ekos modules icons are placed on the top of pages Immutable
    */
    static
    bool isEkosTopIconsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosTopIcons" ) );
    }

    /**
      Set Ekos modules icons are placed to the left of pages
    */
    static
    void setEkosLeftIcons( bool v )
    {
      if (v != self()->mEkosLeftIcons && !self()->isEkosLeftIconsImmutable()) {
        self()->mEkosLeftIcons = v;
        Q_EMIT self()->EkosLeftIconsChanged();
      }
    }

    Q_PROPERTY(bool ekosLeftIcons READ ekosLeftIcons WRITE setEkosLeftIcons NOTIFY EkosLeftIconsChanged)
    Q_PROPERTY(bool isEkosLeftIconsImmutable READ isEkosLeftIconsImmutable CONSTANT)
    /**
      Get Ekos modules icons are placed to the left of pages
    */
    static
    bool ekosLeftIcons()
    {
      return self()->mEkosLeftIcons;
    }

    /**
      Is Ekos modules icons are placed to the left of pages Immutable
    */
    static
    bool isEkosLeftIconsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosLeftIcons" ) );
    }

    /**
      Set Make Ekos window independent of KStars main window
    */
    static
    void setIndependentWindowEkos( bool v )
    {
      if (v != self()->mIndependentWindowEkos && !self()->isIndependentWindowEkosImmutable()) {
        self()->mIndependentWindowEkos = v;
        Q_EMIT self()->independentWindowEkosChanged();
      }
    }

    Q_PROPERTY(bool independentWindowEkos READ independentWindowEkos WRITE setIndependentWindowEkos NOTIFY independentWindowEkosChanged)
    Q_PROPERTY(bool isIndependentWindowEkosImmutable READ isIndependentWindowEkosImmutable CONSTANT)
    /**
      Get Make Ekos window independent of KStars main window
    */
    static
    bool independentWindowEkos()
    {
      return self()->mIndependentWindowEkos;
    }

    /**
      Is Make Ekos window independent of KStars main window Immutable
    */
    static
    bool isIndependentWindowEkosImmutable()
    {
      return self()->isImmutable( QStringLiteral( "independentWindowEkos" ) );
    }

    /**
      Set Ekos drivers profile
    */
    static
    void setProfile( const QString & v )
    {
      if (v != self()->mProfile && !self()->isProfileImmutable()) {
        self()->mProfile = v;
        Q_EMIT self()->profileChanged();
      }
    }

    Q_PROPERTY(QString profile READ profile WRITE setProfile NOTIFY profileChanged)
    Q_PROPERTY(bool isProfileImmutable READ isProfileImmutable CONSTANT)
    /**
      Get Ekos drivers profile
    */
    static
    QString profile()
    {
      return self()->mProfile;
    }

    /**
      Is Ekos drivers profile Immutable
    */
    static
    bool isProfileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "profile" ) );
    }

    /**
      Set Never load device configuration?
    */
    static
    void setNeverLoadConfig( bool v )
    {
      if (v != self()->mNeverLoadConfig && !self()->isNeverLoadConfigImmutable()) {
        self()->mNeverLoadConfig = v;
        Q_EMIT self()->neverLoadConfigChanged();
      }
    }

    Q_PROPERTY(bool neverLoadConfig READ neverLoadConfig WRITE setNeverLoadConfig NOTIFY neverLoadConfigChanged)
    Q_PROPERTY(bool isNeverLoadConfigImmutable READ isNeverLoadConfigImmutable CONSTANT)
    /**
      Get Never load device configuration?
    */
    static
    bool neverLoadConfig()
    {
      return self()->mNeverLoadConfig;
    }

    /**
      Is Never load device configuration? Immutable
    */
    static
    bool isNeverLoadConfigImmutable()
    {
      return self()->isImmutable( QStringLiteral( "neverLoadConfig" ) );
    }

    /**
      Set Load device configuration upon successful connection?
    */
    static
    void setLoadConfigOnConnection( bool v )
    {
      if (v != self()->mLoadConfigOnConnection && !self()->isLoadConfigOnConnectionImmutable()) {
        self()->mLoadConfigOnConnection = v;
        Q_EMIT self()->loadConfigOnConnectionChanged();
      }
    }

    Q_PROPERTY(bool loadConfigOnConnection READ loadConfigOnConnection WRITE setLoadConfigOnConnection NOTIFY loadConfigOnConnectionChanged)
    Q_PROPERTY(bool isLoadConfigOnConnectionImmutable READ isLoadConfigOnConnectionImmutable CONSTANT)
    /**
      Get Load device configuration upon successful connection?
    */
    static
    bool loadConfigOnConnection()
    {
      return self()->mLoadConfigOnConnection;
    }

    /**
      Is Load device configuration upon successful connection? Immutable
    */
    static
    bool isLoadConfigOnConnectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "loadConfigOnConnection" ) );
    }

    /**
      Set Always load device default configuration upon successful connection?
    */
    static
    void setLoadDefaultConfig( bool v )
    {
      if (v != self()->mLoadDefaultConfig && !self()->isLoadDefaultConfigImmutable()) {
        self()->mLoadDefaultConfig = v;
        Q_EMIT self()->loadDefaultConfigChanged();
      }
    }

    Q_PROPERTY(bool loadDefaultConfig READ loadDefaultConfig WRITE setLoadDefaultConfig NOTIFY loadDefaultConfigChanged)
    Q_PROPERTY(bool isLoadDefaultConfigImmutable READ isLoadDefaultConfigImmutable CONSTANT)
    /**
      Get Always load device default configuration upon successful connection?
    */
    static
    bool loadDefaultConfig()
    {
      return self()->mLoadDefaultConfig;
    }

    /**
      Is Always load device default configuration upon successful connection? Immutable
    */
    static
    bool isLoadDefaultConfigImmutable()
    {
      return self()->isImmutable( QStringLiteral( "loadDefaultConfig" ) );
    }

    /**
      Set Automatically load Serial Port Assistant tool when detecting unmapped serial ports?
    */
    static
    void setAutoLoadSerialAssistant( bool v )
    {
      if (v != self()->mAutoLoadSerialAssistant && !self()->isAutoLoadSerialAssistantImmutable()) {
        self()->mAutoLoadSerialAssistant = v;
        Q_EMIT self()->autoLoadSerialAssistantChanged();
      }
    }

    Q_PROPERTY(bool autoLoadSerialAssistant READ autoLoadSerialAssistant WRITE setAutoLoadSerialAssistant NOTIFY autoLoadSerialAssistantChanged)
    Q_PROPERTY(bool isAutoLoadSerialAssistantImmutable READ isAutoLoadSerialAssistantImmutable CONSTANT)
    /**
      Get Automatically load Serial Port Assistant tool when detecting unmapped serial ports?
    */
    static
    bool autoLoadSerialAssistant()
    {
      return self()->mAutoLoadSerialAssistant;
    }

    /**
      Is Automatically load Serial Port Assistant tool when detecting unmapped serial ports? Immutable
    */
    static
    bool isAutoLoadSerialAssistantImmutable()
    {
      return self()->isImmutable( QStringLiteral( "autoLoadSerialAssistant" ) );
    }

    /**
      Set Remember Ekos Live credentials.
    */
    static
    void setRememberCredentials( bool v )
    {
      if (v != self()->mRememberCredentials && !self()->isRememberCredentialsImmutable()) {
        self()->mRememberCredentials = v;
        Q_EMIT self()->RememberCredentialsChanged();
      }
    }

    Q_PROPERTY(bool rememberCredentials READ rememberCredentials WRITE setRememberCredentials NOTIFY RememberCredentialsChanged)
    Q_PROPERTY(bool isRememberCredentialsImmutable READ isRememberCredentialsImmutable CONSTANT)
    /**
      Get Remember Ekos Live credentials.
    */
    static
    bool rememberCredentials()
    {
      return self()->mRememberCredentials;
    }

    /**
      Is Remember Ekos Live credentials. Immutable
    */
    static
    bool isRememberCredentialsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RememberCredentials" ) );
    }

    /**
      Set Start Ekos Live on KStars startup.
    */
    static
    void setAutoStartEkosLive( bool v )
    {
      if (v != self()->mAutoStartEkosLive && !self()->isAutoStartEkosLiveImmutable()) {
        self()->mAutoStartEkosLive = v;
        Q_EMIT self()->AutoStartEkosLiveChanged();
      }
    }

    Q_PROPERTY(bool autoStartEkosLive READ autoStartEkosLive WRITE setAutoStartEkosLive NOTIFY AutoStartEkosLiveChanged)
    Q_PROPERTY(bool isAutoStartEkosLiveImmutable READ isAutoStartEkosLiveImmutable CONSTANT)
    /**
      Get Start Ekos Live on KStars startup.
    */
    static
    bool autoStartEkosLive()
    {
      return self()->mAutoStartEkosLive;
    }

    /**
      Is Start Ekos Live on KStars startup. Immutable
    */
    static
    bool isAutoStartEkosLiveImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoStartEkosLive" ) );
    }

    /**
      Set EkosLive username
    */
    static
    void setEkosLiveUsername( const QString & v )
    {
      if (v != self()->mEkosLiveUsername && !self()->isEkosLiveUsernameImmutable()) {
        self()->mEkosLiveUsername = v;
        Q_EMIT self()->EkosLiveUsernameChanged();
      }
    }

    Q_PROPERTY(QString ekosLiveUsername READ ekosLiveUsername WRITE setEkosLiveUsername NOTIFY EkosLiveUsernameChanged)
    Q_PROPERTY(bool isEkosLiveUsernameImmutable READ isEkosLiveUsernameImmutable CONSTANT)
    /**
      Get EkosLive username
    */
    static
    QString ekosLiveUsername()
    {
      return self()->mEkosLiveUsername;
    }

    /**
      Is EkosLive username Immutable
    */
    static
    bool isEkosLiveUsernameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosLiveUsername" ) );
    }

    /**
      Set EkosLive Observatory Name
    */
    static
    void setEkosLiveObservatory( const QString & v )
    {
      if (v != self()->mEkosLiveObservatory && !self()->isEkosLiveObservatoryImmutable()) {
        self()->mEkosLiveObservatory = v;
        Q_EMIT self()->EkosLiveObservatoryChanged();
      }
    }

    Q_PROPERTY(QString ekosLiveObservatory READ ekosLiveObservatory WRITE setEkosLiveObservatory NOTIFY EkosLiveObservatoryChanged)
    Q_PROPERTY(bool isEkosLiveObservatoryImmutable READ isEkosLiveObservatoryImmutable CONSTANT)
    /**
      Get EkosLive Observatory Name
    */
    static
    QString ekosLiveObservatory()
    {
      return self()->mEkosLiveObservatory;
    }

    /**
      Is EkosLive Observatory Name Immutable
    */
    static
    bool isEkosLiveObservatoryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosLiveObservatory" ) );
    }

    /**
      Set EkosLive Offline Server
    */
    static
    void setEkosLiveOfflineServer( const QString & v )
    {
      if (v != self()->mEkosLiveOfflineServer && !self()->isEkosLiveOfflineServerImmutable()) {
        self()->mEkosLiveOfflineServer = v;
        Q_EMIT self()->EkosLiveOfflineServerChanged();
      }
    }

    Q_PROPERTY(QString ekosLiveOfflineServer READ ekosLiveOfflineServer WRITE setEkosLiveOfflineServer NOTIFY EkosLiveOfflineServerChanged)
    Q_PROPERTY(bool isEkosLiveOfflineServerImmutable READ isEkosLiveOfflineServerImmutable CONSTANT)
    /**
      Get EkosLive Offline Server
    */
    static
    QString ekosLiveOfflineServer()
    {
      return self()->mEkosLiveOfflineServer;
    }

    /**
      Is EkosLive Offline Server Immutable
    */
    static
    bool isEkosLiveOfflineServerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosLiveOfflineServer" ) );
    }

    /**
      Set EkosLive Online Server
    */
    static
    void setEkosLiveOnlineServer( const QString & v )
    {
      if (v != self()->mEkosLiveOnlineServer && !self()->isEkosLiveOnlineServerImmutable()) {
        self()->mEkosLiveOnlineServer = v;
        Q_EMIT self()->EkosLiveOnlineServerChanged();
      }
    }

    Q_PROPERTY(QString ekosLiveOnlineServer READ ekosLiveOnlineServer WRITE setEkosLiveOnlineServer NOTIFY EkosLiveOnlineServerChanged)
    Q_PROPERTY(bool isEkosLiveOnlineServerImmutable READ isEkosLiveOnlineServerImmutable CONSTANT)
    /**
      Get EkosLive Online Server
    */
    static
    QString ekosLiveOnlineServer()
    {
      return self()->mEkosLiveOnlineServer;
    }

    /**
      Is EkosLive Online Server Immutable
    */
    static
    bool isEkosLiveOnlineServerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosLiveOnlineServer" ) );
    }

    /**
      Set EkosLiveSound
    */
    static
    void setEkosLiveSound( bool v )
    {
      if (v != self()->mEkosLiveSound && !self()->isEkosLiveSoundImmutable()) {
        self()->mEkosLiveSound = v;
        Q_EMIT self()->EkosLiveSoundChanged();
      }
    }

    Q_PROPERTY(bool ekosLiveSound READ ekosLiveSound WRITE setEkosLiveSound NOTIFY EkosLiveSoundChanged)
    Q_PROPERTY(bool isEkosLiveSoundImmutable READ isEkosLiveSoundImmutable CONSTANT)
    /**
      Get EkosLiveSound
    */
    static
    bool ekosLiveSound()
    {
      return self()->mEkosLiveSound;
    }

    /**
      Is EkosLiveSound Immutable
    */
    static
    bool isEkosLiveSoundImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosLiveSound" ) );
    }

    /**
      Set EkosLiveNotifications
    */
    static
    void setEkosLiveNotifications( bool v )
    {
      if (v != self()->mEkosLiveNotifications && !self()->isEkosLiveNotificationsImmutable()) {
        self()->mEkosLiveNotifications = v;
        Q_EMIT self()->EkosLiveNotificationsChanged();
      }
    }

    Q_PROPERTY(bool ekosLiveNotifications READ ekosLiveNotifications WRITE setEkosLiveNotifications NOTIFY EkosLiveNotificationsChanged)
    Q_PROPERTY(bool isEkosLiveNotificationsImmutable READ isEkosLiveNotificationsImmutable CONSTANT)
    /**
      Get EkosLiveNotifications
    */
    static
    bool ekosLiveNotifications()
    {
      return self()->mEkosLiveNotifications;
    }

    /**
      Is EkosLiveNotifications Immutable
    */
    static
    bool isEkosLiveNotificationsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosLiveNotifications" ) );
    }

    /**
      Set EkosLiveCloud
    */
    static
    void setEkosLiveCloud( bool v )
    {
      if (v != self()->mEkosLiveCloud && !self()->isEkosLiveCloudImmutable()) {
        self()->mEkosLiveCloud = v;
        Q_EMIT self()->EkosLiveCloudChanged();
      }
    }

    Q_PROPERTY(bool ekosLiveCloud READ ekosLiveCloud WRITE setEkosLiveCloud NOTIFY EkosLiveCloudChanged)
    Q_PROPERTY(bool isEkosLiveCloudImmutable READ isEkosLiveCloudImmutable CONSTANT)
    /**
      Get EkosLiveCloud
    */
    static
    bool ekosLiveCloud()
    {
      return self()->mEkosLiveCloud;
    }

    /**
      Is EkosLiveCloud Immutable
    */
    static
    bool isEkosLiveCloudImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EkosLiveCloud" ) );
    }

    /**
      Set Maximum acceptable difference between current and recorded dark frame temperature set point. When the difference exceeds this value, a new dark frame shall be captured for this set point.
    */
    static
    void setMaxDarkTemperatureDiff( double v )
    {
      if (v != self()->mMaxDarkTemperatureDiff && !self()->isMaxDarkTemperatureDiffImmutable()) {
        self()->mMaxDarkTemperatureDiff = v;
        Q_EMIT self()->MaxDarkTemperatureDiffChanged();
      }
    }

    Q_PROPERTY(double maxDarkTemperatureDiff READ maxDarkTemperatureDiff WRITE setMaxDarkTemperatureDiff NOTIFY MaxDarkTemperatureDiffChanged)
    Q_PROPERTY(bool isMaxDarkTemperatureDiffImmutable READ isMaxDarkTemperatureDiffImmutable CONSTANT)
    /**
      Get Maximum acceptable difference between current and recorded dark frame temperature set point. When the difference exceeds this value, a new dark frame shall be captured for this set point.
    */
    static
    double maxDarkTemperatureDiff()
    {
      return self()->mMaxDarkTemperatureDiff;
    }

    /**
      Is Maximum acceptable difference between current and recorded dark frame temperature set point. When the difference exceeds this value, a new dark frame shall be captured for this set point. Immutable
    */
    static
    bool isMaxDarkTemperatureDiffImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxDarkTemperatureDiff" ) );
    }

    /**
      Set List of CCDs with mechanical or electronic shutters.
    */
    static
    void setShutterfulCCDs( const QStringList & v )
    {
      if (v != self()->mShutterfulCCDs && !self()->isShutterfulCCDsImmutable()) {
        self()->mShutterfulCCDs = v;
        Q_EMIT self()->shutterfulCCDsChanged();
      }
    }

    Q_PROPERTY(QStringList shutterfulCCDs READ shutterfulCCDs WRITE setShutterfulCCDs NOTIFY shutterfulCCDsChanged)
    Q_PROPERTY(bool isShutterfulCCDsImmutable READ isShutterfulCCDsImmutable CONSTANT)
    /**
      Get List of CCDs with mechanical or electronic shutters.
    */
    static
    QStringList shutterfulCCDs()
    {
      return self()->mShutterfulCCDs;
    }

    /**
      Is List of CCDs with mechanical or electronic shutters. Immutable
    */
    static
    bool isShutterfulCCDsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "shutterfulCCDs" ) );
    }

    /**
      Set List of CCDs without mechanical or electronic shutters.
    */
    static
    void setShutterlessCCDs( const QStringList & v )
    {
      if (v != self()->mShutterlessCCDs && !self()->isShutterlessCCDsImmutable()) {
        self()->mShutterlessCCDs = v;
        Q_EMIT self()->shutterlessCCDsChanged();
      }
    }

    Q_PROPERTY(QStringList shutterlessCCDs READ shutterlessCCDs WRITE setShutterlessCCDs NOTIFY shutterlessCCDsChanged)
    Q_PROPERTY(bool isShutterlessCCDsImmutable READ isShutterlessCCDsImmutable CONSTANT)
    /**
      Get List of CCDs without mechanical or electronic shutters.
    */
    static
    QStringList shutterlessCCDs()
    {
      return self()->mShutterlessCCDs;
    }

    /**
      Is List of CCDs without mechanical or electronic shutters. Immutable
    */
    static
    bool isShutterlessCCDsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "shutterlessCCDs" ) );
    }

    /**
      Set Reuse dark frames from the dark library for this many days. If exceeded, a new dark frame shall be captured and stored for future use.
    */
    static
    void setDarkLibraryDuration( uint v )
    {
      if (v != self()->mDarkLibraryDuration && !self()->isDarkLibraryDurationImmutable()) {
        self()->mDarkLibraryDuration = v;
        Q_EMIT self()->DarkLibraryDurationChanged();
      }
    }

    Q_PROPERTY(uint darkLibraryDuration READ darkLibraryDuration WRITE setDarkLibraryDuration NOTIFY DarkLibraryDurationChanged)
    Q_PROPERTY(bool isDarkLibraryDurationImmutable READ isDarkLibraryDurationImmutable CONSTANT)
    /**
      Get Reuse dark frames from the dark library for this many days. If exceeded, a new dark frame shall be captured and stored for future use.
    */
    static
    uint darkLibraryDuration()
    {
      return self()->mDarkLibraryDuration;
    }

    /**
      Is Reuse dark frames from the dark library for this many days. If exceeded, a new dark frame shall be captured and stored for future use. Immutable
    */
    static
    bool isDarkLibraryDurationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DarkLibraryDuration" ) );
    }

    /**
      Set Use the graphical version for capture/sequence/total counting using round progress bars.
    */
    static
    void setUseGraphicalCountsDisplay( bool v )
    {
      if (v != self()->mUseGraphicalCountsDisplay && !self()->isUseGraphicalCountsDisplayImmutable()) {
        self()->mUseGraphicalCountsDisplay = v;
        Q_EMIT self()->UseGraphicalCountsDisplayChanged();
      }
    }

    Q_PROPERTY(bool useGraphicalCountsDisplay READ useGraphicalCountsDisplay WRITE setUseGraphicalCountsDisplay NOTIFY UseGraphicalCountsDisplayChanged)
    Q_PROPERTY(bool isUseGraphicalCountsDisplayImmutable READ isUseGraphicalCountsDisplayImmutable CONSTANT)
    /**
      Get Use the graphical version for capture/sequence/total counting using round progress bars.
    */
    static
    bool useGraphicalCountsDisplay()
    {
      return self()->mUseGraphicalCountsDisplay;
    }

    /**
      Is Use the graphical version for capture/sequence/total counting using round progress bars. Immutable
    */
    static
    bool isUseGraphicalCountsDisplayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseGraphicalCountsDisplay" ) );
    }

    /**
      Set Default minimum mount altitude limit
    */
    static
    void setMinimumAltLimit( double v )
    {
      if (v != self()->mMinimumAltLimit && !self()->isMinimumAltLimitImmutable()) {
        self()->mMinimumAltLimit = v;
        Q_EMIT self()->MinimumAltLimitChanged();
      }
    }

    Q_PROPERTY(double minimumAltLimit READ minimumAltLimit WRITE setMinimumAltLimit NOTIFY MinimumAltLimitChanged)
    Q_PROPERTY(bool isMinimumAltLimitImmutable READ isMinimumAltLimitImmutable CONSTANT)
    /**
      Get Default minimum mount altitude limit
    */
    static
    double minimumAltLimit()
    {
      return self()->mMinimumAltLimit;
    }

    /**
      Is Default minimum mount altitude limit Immutable
    */
    static
    bool isMinimumAltLimitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MinimumAltLimit" ) );
    }

    /**
      Set Default maximum mount altitude limit.
    */
    static
    void setMaximumAltLimit( double v )
    {
      if (v != self()->mMaximumAltLimit && !self()->isMaximumAltLimitImmutable()) {
        self()->mMaximumAltLimit = v;
        Q_EMIT self()->MaximumAltLimitChanged();
      }
    }

    Q_PROPERTY(double maximumAltLimit READ maximumAltLimit WRITE setMaximumAltLimit NOTIFY MaximumAltLimitChanged)
    Q_PROPERTY(bool isMaximumAltLimitImmutable READ isMaximumAltLimitImmutable CONSTANT)
    /**
      Get Default maximum mount altitude limit.
    */
    static
    double maximumAltLimit()
    {
      return self()->mMaximumAltLimit;
    }

    /**
      Is Default maximum mount altitude limit. Immutable
    */
    static
    bool isMaximumAltLimitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaximumAltLimit" ) );
    }

    /**
      Set Enable mount altitude limits.
    */
    static
    void setEnableAltitudeLimits( bool v )
    {
      if (v != self()->mEnableAltitudeLimits && !self()->isEnableAltitudeLimitsImmutable()) {
        self()->mEnableAltitudeLimits = v;
        Q_EMIT self()->EnableAltitudeLimitsChanged();
      }
    }

    Q_PROPERTY(bool enableAltitudeLimits READ enableAltitudeLimits WRITE setEnableAltitudeLimits NOTIFY EnableAltitudeLimitsChanged)
    Q_PROPERTY(bool isEnableAltitudeLimitsImmutable READ isEnableAltitudeLimitsImmutable CONSTANT)
    /**
      Get Enable mount altitude limits.
    */
    static
    bool enableAltitudeLimits()
    {
      return self()->mEnableAltitudeLimits;
    }

    /**
      Is Enable mount altitude limits. Immutable
    */
    static
    bool isEnableAltitudeLimitsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnableAltitudeLimits" ) );
    }

    /**
      Set Restrict altitude limits to tracking mode only.
    */
    static
    void setEnableAltitudeLimitsTrackingOnly( bool v )
    {
      if (v != self()->mEnableAltitudeLimitsTrackingOnly && !self()->isEnableAltitudeLimitsTrackingOnlyImmutable()) {
        self()->mEnableAltitudeLimitsTrackingOnly = v;
        Q_EMIT self()->EnableAltitudeLimitsTrackingOnlyChanged();
      }
    }

    Q_PROPERTY(bool enableAltitudeLimitsTrackingOnly READ enableAltitudeLimitsTrackingOnly WRITE setEnableAltitudeLimitsTrackingOnly NOTIFY EnableAltitudeLimitsTrackingOnlyChanged)
    Q_PROPERTY(bool isEnableAltitudeLimitsTrackingOnlyImmutable READ isEnableAltitudeLimitsTrackingOnlyImmutable CONSTANT)
    /**
      Get Restrict altitude limits to tracking mode only.
    */
    static
    bool enableAltitudeLimitsTrackingOnly()
    {
      return self()->mEnableAltitudeLimitsTrackingOnly;
    }

    /**
      Is Restrict altitude limits to tracking mode only. Immutable
    */
    static
    bool isEnableAltitudeLimitsTrackingOnlyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnableAltitudeLimitsTrackingOnly" ) );
    }

    /**
      Set Warn user before command mount to go to a target below horizon.
    */
    static
    void setConfirmBelowHorizon( bool v )
    {
      if (v != self()->mConfirmBelowHorizon && !self()->isConfirmBelowHorizonImmutable()) {
        self()->mConfirmBelowHorizon = v;
        Q_EMIT self()->ConfirmBelowHorizonChanged();
      }
    }

    Q_PROPERTY(bool confirmBelowHorizon READ confirmBelowHorizon WRITE setConfirmBelowHorizon NOTIFY ConfirmBelowHorizonChanged)
    Q_PROPERTY(bool isConfirmBelowHorizonImmutable READ isConfirmBelowHorizonImmutable CONSTANT)
    /**
      Get Warn user before command mount to go to a target below horizon.
    */
    static
    bool confirmBelowHorizon()
    {
      return self()->mConfirmBelowHorizon;
    }

    /**
      Is Warn user before command mount to go to a target below horizon. Immutable
    */
    static
    bool isConfirmBelowHorizonImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ConfirmBelowHorizon" ) );
    }

    /**
      Set Default hour angle to perform meridian flip in degrees.
    */
    static
    void setMeridianFlipOffsetDegrees( double v )
    {
      if (v != self()->mMeridianFlipOffsetDegrees && !self()->isMeridianFlipOffsetDegreesImmutable()) {
        self()->mMeridianFlipOffsetDegrees = v;
        Q_EMIT self()->MeridianFlipOffsetDegreesChanged();
      }
    }

    Q_PROPERTY(double meridianFlipOffsetDegrees READ meridianFlipOffsetDegrees WRITE setMeridianFlipOffsetDegrees NOTIFY MeridianFlipOffsetDegreesChanged)
    Q_PROPERTY(bool isMeridianFlipOffsetDegreesImmutable READ isMeridianFlipOffsetDegreesImmutable CONSTANT)
    /**
      Get Default hour angle to perform meridian flip in degrees.
    */
    static
    double meridianFlipOffsetDegrees()
    {
      return self()->mMeridianFlipOffsetDegrees;
    }

    /**
      Is Default hour angle to perform meridian flip in degrees. Immutable
    */
    static
    bool isMeridianFlipOffsetDegreesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MeridianFlipOffsetDegrees" ) );
    }

    /**
      Set Default maximum limit for the hour angle.
    */
    static
    void setMaximumHaLimit( double v )
    {
      if (v != self()->mMaximumHaLimit && !self()->isMaximumHaLimitImmutable()) {
        self()->mMaximumHaLimit = v;
        Q_EMIT self()->MaximumHaLimitChanged();
      }
    }

    Q_PROPERTY(double maximumHaLimit READ maximumHaLimit WRITE setMaximumHaLimit NOTIFY MaximumHaLimitChanged)
    Q_PROPERTY(bool isMaximumHaLimitImmutable READ isMaximumHaLimitImmutable CONSTANT)
    /**
      Get Default maximum limit for the hour angle.
    */
    static
    double maximumHaLimit()
    {
      return self()->mMaximumHaLimit;
    }

    /**
      Is Default maximum limit for the hour angle. Immutable
    */
    static
    bool isMaximumHaLimitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaximumHaLimit" ) );
    }

    /**
      Set Enable mount hour angle limit.
    */
    static
    void setEnableHaLimit( bool v )
    {
      if (v != self()->mEnableHaLimit && !self()->isEnableHaLimitImmutable()) {
        self()->mEnableHaLimit = v;
        Q_EMIT self()->EnableHaLimitChanged();
      }
    }

    Q_PROPERTY(bool enableHaLimit READ enableHaLimit WRITE setEnableHaLimit NOTIFY EnableHaLimitChanged)
    Q_PROPERTY(bool isEnableHaLimitImmutable READ isEnableHaLimitImmutable CONSTANT)
    /**
      Get Enable mount hour angle limit.
    */
    static
    bool enableHaLimit()
    {
      return self()->mEnableHaLimit;
    }

    /**
      Is Enable mount hour angle limit. Immutable
    */
    static
    bool isEnableHaLimitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnableHaLimit" ) );
    }

    /**
      Set Flips the mount when reaching the meridian, if supported.
    */
    static
    void setExecuteMeridianFlip( bool v )
    {
      if (v != self()->mExecuteMeridianFlip && !self()->isExecuteMeridianFlipImmutable()) {
        self()->mExecuteMeridianFlip = v;
        Q_EMIT self()->ExecuteMeridianFlipChanged();
      }
    }

    Q_PROPERTY(bool executeMeridianFlip READ executeMeridianFlip WRITE setExecuteMeridianFlip NOTIFY ExecuteMeridianFlipChanged)
    Q_PROPERTY(bool isExecuteMeridianFlipImmutable READ isExecuteMeridianFlipImmutable CONSTANT)
    /**
      Get Flips the mount when reaching the meridian, if supported.
    */
    static
    bool executeMeridianFlip()
    {
      return self()->mExecuteMeridianFlip;
    }

    /**
      Is Flips the mount when reaching the meridian, if supported. Immutable
    */
    static
    bool isExecuteMeridianFlipImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ExecuteMeridianFlip" ) );
    }

    /**
      Set Reverse the direction of right and left buttons in mount control.
    */
    static
    void setLeftRightReversed( bool v )
    {
      if (v != self()->mLeftRightReversed && !self()->isLeftRightReversedImmutable()) {
        self()->mLeftRightReversed = v;
        Q_EMIT self()->LeftRightReversedChanged();
      }
    }

    Q_PROPERTY(bool leftRightReversed READ leftRightReversed WRITE setLeftRightReversed NOTIFY LeftRightReversedChanged)
    Q_PROPERTY(bool isLeftRightReversedImmutable READ isLeftRightReversedImmutable CONSTANT)
    /**
      Get Reverse the direction of right and left buttons in mount control.
    */
    static
    bool leftRightReversed()
    {
      return self()->mLeftRightReversed;
    }

    /**
      Is Reverse the direction of right and left buttons in mount control. Immutable
    */
    static
    bool isLeftRightReversedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LeftRightReversed" ) );
    }

    /**
      Set Reverse the direction of up and down buttons in mount control.
    */
    static
    void setUpDownReversed( bool v )
    {
      if (v != self()->mUpDownReversed && !self()->isUpDownReversedImmutable()) {
        self()->mUpDownReversed = v;
        Q_EMIT self()->UpDownReversedChanged();
      }
    }

    Q_PROPERTY(bool upDownReversed READ upDownReversed WRITE setUpDownReversed NOTIFY UpDownReversedChanged)
    Q_PROPERTY(bool isUpDownReversedImmutable READ isUpDownReversedImmutable CONSTANT)
    /**
      Get Reverse the direction of up and down buttons in mount control.
    */
    static
    bool upDownReversed()
    {
      return self()->mUpDownReversed;
    }

    /**
      Is Reverse the direction of up and down buttons in mount control. Immutable
    */
    static
    bool isUpDownReversedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UpDownReversed" ) );
    }

    /**
      Set Automatically start parking timer on startup.
    */
    static
    void setParkEveryDay( bool v )
    {
      if (v != self()->mParkEveryDay && !self()->isParkEveryDayImmutable()) {
        self()->mParkEveryDay = v;
        Q_EMIT self()->ParkEveryDayChanged();
      }
    }

    Q_PROPERTY(bool parkEveryDay READ parkEveryDay WRITE setParkEveryDay NOTIFY ParkEveryDayChanged)
    Q_PROPERTY(bool isParkEveryDayImmutable READ isParkEveryDayImmutable CONSTANT)
    /**
      Get Automatically start parking timer on startup.
    */
    static
    bool parkEveryDay()
    {
      return self()->mParkEveryDay;
    }

    /**
      Is Automatically start parking timer on startup. Immutable
    */
    static
    bool isParkEveryDayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ParkEveryDay" ) );
    }

    /**
      Set Park mount at this time in 12 hour format.
    */
    static
    void setParkTime( const QString & v )
    {
      if (v != self()->mParkTime && !self()->isParkTimeImmutable()) {
        self()->mParkTime = v;
        Q_EMIT self()->ParkTimeChanged();
      }
    }

    Q_PROPERTY(QString parkTime READ parkTime WRITE setParkTime NOTIFY ParkTimeChanged)
    Q_PROPERTY(bool isParkTimeImmutable READ isParkTimeImmutable CONSTANT)
    /**
      Get Park mount at this time in 12 hour format.
    */
    static
    QString parkTime()
    {
      return self()->mParkTime;
    }

    /**
      Is Park mount at this time in 12 hour format. Immutable
    */
    static
    bool isParkTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ParkTime" ) );
    }

    /**
      Set Default observer full name.
    */
    static
    void setDefaultObserver( const QString & v )
    {
      if (v != self()->mDefaultObserver && !self()->isDefaultObserverImmutable()) {
        self()->mDefaultObserver = v;
        Q_EMIT self()->DefaultObserverChanged();
      }
    }

    Q_PROPERTY(QString defaultObserver READ defaultObserver WRITE setDefaultObserver NOTIFY DefaultObserverChanged)
    Q_PROPERTY(bool isDefaultObserverImmutable READ isDefaultObserverImmutable CONSTANT)
    /**
      Get Default observer full name.
    */
    static
    QString defaultObserver()
    {
      return self()->mDefaultObserver;
    }

    /**
      Is Default observer full name. Immutable
    */
    static
    bool isDefaultObserverImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DefaultObserver" ) );
    }

    /**
      Set Sync FOV indicator Position Angle with Rotator Settings Position Angle
    */
    static
    void setSyncFOVPA( bool v )
    {
      if (v != self()->mSyncFOVPA && !self()->isSyncFOVPAImmutable()) {
        self()->mSyncFOVPA = v;
        Q_EMIT self()->SyncFOVPAChanged();
      }
    }

    Q_PROPERTY(bool syncFOVPA READ syncFOVPA WRITE setSyncFOVPA NOTIFY SyncFOVPAChanged)
    Q_PROPERTY(bool isSyncFOVPAImmutable READ isSyncFOVPAImmutable CONSTANT)
    /**
      Get Sync FOV indicator Position Angle with Rotator Settings Position Angle
    */
    static
    bool syncFOVPA()
    {
      return self()->mSyncFOVPA;
    }

    /**
      Is Sync FOV indicator Position Angle with Rotator Settings Position Angle Immutable
    */
    static
    bool isSyncFOVPAImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SyncFOVPA" ) );
    }

    /**
      Set Position angle multiplier
    */
    static
    void setPAMultiplier( double v )
    {
      if (v != self()->mPAMultiplier && !self()->isPAMultiplierImmutable()) {
        self()->mPAMultiplier = v;
        Q_EMIT self()->PAMultiplierChanged();
      }
    }

    Q_PROPERTY(double pAMultiplier READ pAMultiplier WRITE setPAMultiplier NOTIFY PAMultiplierChanged)
    Q_PROPERTY(bool isPAMultiplierImmutable READ isPAMultiplierImmutable CONSTANT)
    /**
      Get Position angle multiplier
    */
    static
    double pAMultiplier()
    {
      return self()->mPAMultiplier;
    }

    /**
      Is Position angle multiplier Immutable
    */
    static
    bool isPAMultiplierImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAMultiplier" ) );
    }

    /**
      Set Position angle offset
    */
    static
    void setPAOffset( double v )
    {
      if (v != self()->mPAOffset && !self()->isPAOffsetImmutable()) {
        self()->mPAOffset = v;
        Q_EMIT self()->PAOffsetChanged();
      }
    }

    Q_PROPERTY(double pAOffset READ pAOffset WRITE setPAOffset NOTIFY PAOffsetChanged)
    Q_PROPERTY(bool isPAOffsetImmutable READ isPAOffsetImmutable CONSTANT)
    /**
      Get Position angle offset
    */
    static
    double pAOffset()
    {
      return self()->mPAOffset;
    }

    /**
      Is Position angle offset Immutable
    */
    static
    bool isPAOffsetImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAOffset" ) );
    }

    /**
      Set Position angle calibration pier side
    */
    static
    void setPAPierSide( uint v )
    {
      if (v != self()->mPAPierSide && !self()->isPAPierSideImmutable()) {
        self()->mPAPierSide = v;
        Q_EMIT self()->PAPierSideChanged();
      }
    }

    Q_PROPERTY(uint pAPierSide READ pAPierSide WRITE setPAPierSide NOTIFY PAPierSideChanged)
    Q_PROPERTY(bool isPAPierSideImmutable READ isPAPierSideImmutable CONSTANT)
    /**
      Get Position angle calibration pier side
    */
    static
    uint pAPierSide()
    {
      return self()->mPAPierSide;
    }

    /**
      Is Position angle calibration pier side Immutable
    */
    static
    bool isPAPierSideImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAPierSide" ) );
    }

    /**
      Set Default maximum permittable guide deviation
    */
    static
    void setGuideDeviation( double v )
    {
      if (v != self()->mGuideDeviation && !self()->isGuideDeviationImmutable()) {
        self()->mGuideDeviation = v;
        Q_EMIT self()->GuideDeviationChanged();
      }
    }

    Q_PROPERTY(double guideDeviation READ guideDeviation WRITE setGuideDeviation NOTIFY GuideDeviationChanged)
    Q_PROPERTY(bool isGuideDeviationImmutable READ isGuideDeviationImmutable CONSTANT)
    /**
      Get Default maximum permittable guide deviation
    */
    static
    double guideDeviation()
    {
      return self()->mGuideDeviation;
    }

    /**
      Is Default maximum permittable guide deviation Immutable
    */
    static
    bool isGuideDeviationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideDeviation" ) );
    }

    /**
      Set Number of consecutive samples guide deviation needs to be high to abort capture.
    */
    static
    void setGuideDeviationReps( uint v )
    {
      if (v != self()->mGuideDeviationReps && !self()->isGuideDeviationRepsImmutable()) {
        self()->mGuideDeviationReps = v;
        Q_EMIT self()->GuideDeviationRepsChanged();
      }
    }

    Q_PROPERTY(uint guideDeviationReps READ guideDeviationReps WRITE setGuideDeviationReps NOTIFY GuideDeviationRepsChanged)
    Q_PROPERTY(bool isGuideDeviationRepsImmutable READ isGuideDeviationRepsImmutable CONSTANT)
    /**
      Get Number of consecutive samples guide deviation needs to be high to abort capture.
    */
    static
    uint guideDeviationReps()
    {
      return self()->mGuideDeviationReps;
    }

    /**
      Is Number of consecutive samples guide deviation needs to be high to abort capture. Immutable
    */
    static
    bool isGuideDeviationRepsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideDeviationReps" ) );
    }

    /**
      Set Default maximum permittable guide deviation before capture start
    */
    static
    void setStartGuideDeviation( double v )
    {
      if (v != self()->mStartGuideDeviation && !self()->isStartGuideDeviationImmutable()) {
        self()->mStartGuideDeviation = v;
        Q_EMIT self()->StartGuideDeviationChanged();
      }
    }

    Q_PROPERTY(double startGuideDeviation READ startGuideDeviation WRITE setStartGuideDeviation NOTIFY StartGuideDeviationChanged)
    Q_PROPERTY(bool isStartGuideDeviationImmutable READ isStartGuideDeviationImmutable CONSTANT)
    /**
      Get Default maximum permittable guide deviation before capture start
    */
    static
    double startGuideDeviation()
    {
      return self()->mStartGuideDeviation;
    }

    /**
      Is Default maximum permittable guide deviation before capture start Immutable
    */
    static
    bool isStartGuideDeviationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StartGuideDeviation" ) );
    }

    /**
      Set Set global dither frequency to this value when starting a job. Set 0 to use global value.
    */
    static
    void setGuideDitherPerJobFrequency( uint v )
    {
      if (v != self()->mGuideDitherPerJobFrequency && !self()->isGuideDitherPerJobFrequencyImmutable()) {
        self()->mGuideDitherPerJobFrequency = v;
        Q_EMIT self()->GuideDitherPerJobFrequencyChanged();
      }
    }

    Q_PROPERTY(uint guideDitherPerJobFrequency READ guideDitherPerJobFrequency WRITE setGuideDitherPerJobFrequency NOTIFY GuideDitherPerJobFrequencyChanged)
    Q_PROPERTY(bool isGuideDitherPerJobFrequencyImmutable READ isGuideDitherPerJobFrequencyImmutable CONSTANT)
    /**
      Get Set global dither frequency to this value when starting a job. Set 0 to use global value.
    */
    static
    uint guideDitherPerJobFrequency()
    {
      return self()->mGuideDitherPerJobFrequency;
    }

    /**
      Is Set global dither frequency to this value when starting a job. Set 0 to use global value. Immutable
    */
    static
    bool isGuideDitherPerJobFrequencyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideDitherPerJobFrequency" ) );
    }

    /**
      Set Default maximum permittable HFR deviation
    */
    static
    void setHFRDeviation( double v )
    {
      if (v != self()->mHFRDeviation && !self()->isHFRDeviationImmutable()) {
        self()->mHFRDeviation = v;
        Q_EMIT self()->HFRDeviationChanged();
      }
    }

    Q_PROPERTY(double hFRDeviation READ hFRDeviation WRITE setHFRDeviation NOTIFY HFRDeviationChanged)
    Q_PROPERTY(bool isHFRDeviationImmutable READ isHFRDeviationImmutable CONSTANT)
    /**
      Get Default maximum permittable HFR deviation
    */
    static
    double hFRDeviation()
    {
      return self()->mHFRDeviation;
    }

    /**
      Is Default maximum permittable HFR deviation Immutable
    */
    static
    bool isHFRDeviationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HFRDeviation" ) );
    }

    /**
      Set Default maximum focus temperature delta
    */
    static
    void setMaxFocusTemperatureDelta( double v )
    {
      if (v != self()->mMaxFocusTemperatureDelta && !self()->isMaxFocusTemperatureDeltaImmutable()) {
        self()->mMaxFocusTemperatureDelta = v;
        Q_EMIT self()->MaxFocusTemperatureDeltaChanged();
      }
    }

    Q_PROPERTY(double maxFocusTemperatureDelta READ maxFocusTemperatureDelta WRITE setMaxFocusTemperatureDelta NOTIFY MaxFocusTemperatureDeltaChanged)
    Q_PROPERTY(bool isMaxFocusTemperatureDeltaImmutable READ isMaxFocusTemperatureDeltaImmutable CONSTANT)
    /**
      Get Default maximum focus temperature delta
    */
    static
    double maxFocusTemperatureDelta()
    {
      return self()->mMaxFocusTemperatureDelta;
    }

    /**
      Is Default maximum focus temperature delta Immutable
    */
    static
    bool isMaxFocusTemperatureDeltaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxFocusTemperatureDelta" ) );
    }

    /**
      Set Automatically apply dark subtraction if a suitable dark frame is available.
    */
    static
    void setAutoDark( bool v )
    {
      if (v != self()->mAutoDark && !self()->isAutoDarkImmutable()) {
        self()->mAutoDark = v;
        Q_EMIT self()->AutoDarkChanged();
      }
    }

    Q_PROPERTY(bool autoDark READ autoDark WRITE setAutoDark NOTIFY AutoDarkChanged)
    Q_PROPERTY(bool isAutoDarkImmutable READ isAutoDarkImmutable CONSTANT)
    /**
      Get Automatically apply dark subtraction if a suitable dark frame is available.
    */
    static
    bool autoDark()
    {
      return self()->mAutoDark;
    }

    /**
      Is Automatically apply dark subtraction if a suitable dark frame is available. Immutable
    */
    static
    bool isAutoDarkImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoDark" ) );
    }

    /**
      Set Enforce guiding deviation limit.
    */
    static
    void setEnforceGuideDeviation( bool v )
    {
      if (v != self()->mEnforceGuideDeviation && !self()->isEnforceGuideDeviationImmutable()) {
        self()->mEnforceGuideDeviation = v;
        Q_EMIT self()->EnforceGuideDeviationChanged();
      }
    }

    Q_PROPERTY(bool enforceGuideDeviation READ enforceGuideDeviation WRITE setEnforceGuideDeviation NOTIFY EnforceGuideDeviationChanged)
    Q_PROPERTY(bool isEnforceGuideDeviationImmutable READ isEnforceGuideDeviationImmutable CONSTANT)
    /**
      Get Enforce guiding deviation limit.
    */
    static
    bool enforceGuideDeviation()
    {
      return self()->mEnforceGuideDeviation;
    }

    /**
      Is Enforce guiding deviation limit. Immutable
    */
    static
    bool isEnforceGuideDeviationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnforceGuideDeviation" ) );
    }

    /**
      Set Enforce Autofocus on HFR limit.
    */
    static
    void setEnforceAutofocusHFR( bool v )
    {
      if (v != self()->mEnforceAutofocusHFR && !self()->isEnforceAutofocusHFRImmutable()) {
        self()->mEnforceAutofocusHFR = v;
        Q_EMIT self()->EnforceAutofocusHFRChanged();
      }
    }

    Q_PROPERTY(bool enforceAutofocusHFR READ enforceAutofocusHFR WRITE setEnforceAutofocusHFR NOTIFY EnforceAutofocusHFRChanged)
    Q_PROPERTY(bool isEnforceAutofocusHFRImmutable READ isEnforceAutofocusHFRImmutable CONSTANT)
    /**
      Get Enforce Autofocus on HFR limit.
    */
    static
    bool enforceAutofocusHFR()
    {
      return self()->mEnforceAutofocusHFR;
    }

    /**
      Is Enforce Autofocus on HFR limit. Immutable
    */
    static
    bool isEnforceAutofocusHFRImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnforceAutofocusHFR" ) );
    }

    /**
      Set Enforce Autofocus on temperature change.
    */
    static
    void setEnforceAutofocusOnTemperature( bool v )
    {
      if (v != self()->mEnforceAutofocusOnTemperature && !self()->isEnforceAutofocusOnTemperatureImmutable()) {
        self()->mEnforceAutofocusOnTemperature = v;
        Q_EMIT self()->EnforceAutofocusOnTemperatureChanged();
      }
    }

    Q_PROPERTY(bool enforceAutofocusOnTemperature READ enforceAutofocusOnTemperature WRITE setEnforceAutofocusOnTemperature NOTIFY EnforceAutofocusOnTemperatureChanged)
    Q_PROPERTY(bool isEnforceAutofocusOnTemperatureImmutable READ isEnforceAutofocusOnTemperatureImmutable CONSTANT)
    /**
      Get Enforce Autofocus on temperature change.
    */
    static
    bool enforceAutofocusOnTemperature()
    {
      return self()->mEnforceAutofocusOnTemperature;
    }

    /**
      Is Enforce Autofocus on temperature change. Immutable
    */
    static
    bool isEnforceAutofocusOnTemperatureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnforceAutofocusOnTemperature" ) );
    }

    /**
      Set Enforce Refocus Every N Minutes.
    */
    static
    void setEnforceRefocusEveryN( bool v )
    {
      if (v != self()->mEnforceRefocusEveryN && !self()->isEnforceRefocusEveryNImmutable()) {
        self()->mEnforceRefocusEveryN = v;
        Q_EMIT self()->EnforceRefocusEveryNChanged();
      }
    }

    Q_PROPERTY(bool enforceRefocusEveryN READ enforceRefocusEveryN WRITE setEnforceRefocusEveryN NOTIFY EnforceRefocusEveryNChanged)
    Q_PROPERTY(bool isEnforceRefocusEveryNImmutable READ isEnforceRefocusEveryNImmutable CONSTANT)
    /**
      Get Enforce Refocus Every N Minutes.
    */
    static
    bool enforceRefocusEveryN()
    {
      return self()->mEnforceRefocusEveryN;
    }

    /**
      Is Enforce Refocus Every N Minutes. Immutable
    */
    static
    bool isEnforceRefocusEveryNImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnforceRefocusEveryN" ) );
    }

    /**
      Set Number of minute between forced refocus attempts
    */
    static
    void setRefocusEveryN( uint v )
    {
      if (v != self()->mRefocusEveryN && !self()->isRefocusEveryNImmutable()) {
        self()->mRefocusEveryN = v;
        Q_EMIT self()->RefocusEveryNChanged();
      }
    }

    Q_PROPERTY(uint refocusEveryN READ refocusEveryN WRITE setRefocusEveryN NOTIFY RefocusEveryNChanged)
    Q_PROPERTY(bool isRefocusEveryNImmutable READ isRefocusEveryNImmutable CONSTANT)
    /**
      Get Number of minute between forced refocus attempts
    */
    static
    uint refocusEveryN()
    {
      return self()->mRefocusEveryN;
    }

    /**
      Is Number of minute between forced refocus attempts Immutable
    */
    static
    bool isRefocusEveryNImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RefocusEveryN" ) );
    }

    /**
      Set Refocus after meridian flip is done
    */
    static
    void setRefocusAfterMeridianFlip( bool v )
    {
      if (v != self()->mRefocusAfterMeridianFlip && !self()->isRefocusAfterMeridianFlipImmutable()) {
        self()->mRefocusAfterMeridianFlip = v;
        Q_EMIT self()->RefocusAfterMeridianFlipChanged();
      }
    }

    Q_PROPERTY(bool refocusAfterMeridianFlip READ refocusAfterMeridianFlip WRITE setRefocusAfterMeridianFlip NOTIFY RefocusAfterMeridianFlipChanged)
    Q_PROPERTY(bool isRefocusAfterMeridianFlipImmutable READ isRefocusAfterMeridianFlipImmutable CONSTANT)
    /**
      Get Refocus after meridian flip is done
    */
    static
    bool refocusAfterMeridianFlip()
    {
      return self()->mRefocusAfterMeridianFlip;
    }

    /**
      Is Refocus after meridian flip is done Immutable
    */
    static
    bool isRefocusAfterMeridianFlipImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RefocusAfterMeridianFlip" ) );
    }

    /**
      Set Reset mount model after meridian flip.
    */
    static
    void setResetMountModelAfterMeridian( bool v )
    {
      if (v != self()->mResetMountModelAfterMeridian && !self()->isResetMountModelAfterMeridianImmutable()) {
        self()->mResetMountModelAfterMeridian = v;
        Q_EMIT self()->ResetMountModelAfterMeridianChanged();
      }
    }

    Q_PROPERTY(bool resetMountModelAfterMeridian READ resetMountModelAfterMeridian WRITE setResetMountModelAfterMeridian NOTIFY ResetMountModelAfterMeridianChanged)
    Q_PROPERTY(bool isResetMountModelAfterMeridianImmutable READ isResetMountModelAfterMeridianImmutable CONSTANT)
    /**
      Get Reset mount model after meridian flip.
    */
    static
    bool resetMountModelAfterMeridian()
    {
      return self()->mResetMountModelAfterMeridian;
    }

    /**
      Is Reset mount model after meridian flip. Immutable
    */
    static
    bool isResetMountModelAfterMeridianImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ResetMountModelAfterMeridian" ) );
    }

    /**
      Set Use Forced meridian flips if supported.
    */
    static
    void setForcedFlip( bool v )
    {
      if (v != self()->mForcedFlip && !self()->isForcedFlipImmutable()) {
        self()->mForcedFlip = v;
        Q_EMIT self()->ForcedFlipChanged();
      }
    }

    Q_PROPERTY(bool forcedFlip READ forcedFlip WRITE setForcedFlip NOTIFY ForcedFlipChanged)
    Q_PROPERTY(bool isForcedFlipImmutable READ isForcedFlipImmutable CONSTANT)
    /**
      Get Use Forced meridian flips if supported.
    */
    static
    bool forcedFlip()
    {
      return self()->mForcedFlip;
    }

    /**
      Is Use Forced meridian flips if supported. Immutable
    */
    static
    bool isForcedFlipImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ForcedFlip" ) );
    }

    /**
      Set Desired flat field ADU
    */
    static
    void setCalibrationADUValue( uint v )
    {
      if (v != self()->mCalibrationADUValue && !self()->isCalibrationADUValueImmutable()) {
        self()->mCalibrationADUValue = v;
        Q_EMIT self()->CalibrationADUValueChanged();
      }
    }

    Q_PROPERTY(uint calibrationADUValue READ calibrationADUValue WRITE setCalibrationADUValue NOTIFY CalibrationADUValueChanged)
    Q_PROPERTY(bool isCalibrationADUValueImmutable READ isCalibrationADUValueImmutable CONSTANT)
    /**
      Get Desired flat field ADU
    */
    static
    uint calibrationADUValue()
    {
      return self()->mCalibrationADUValue;
    }

    /**
      Is Desired flat field ADU Immutable
    */
    static
    bool isCalibrationADUValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CalibrationADUValue" ) );
    }

    /**
      Set ADU Value tolerance
    */
    static
    void setCalibrationADUValueTolerance( uint v )
    {
      if (v != self()->mCalibrationADUValueTolerance && !self()->isCalibrationADUValueToleranceImmutable()) {
        self()->mCalibrationADUValueTolerance = v;
        Q_EMIT self()->CalibrationADUValueToleranceChanged();
      }
    }

    Q_PROPERTY(uint calibrationADUValueTolerance READ calibrationADUValueTolerance WRITE setCalibrationADUValueTolerance NOTIFY CalibrationADUValueToleranceChanged)
    Q_PROPERTY(bool isCalibrationADUValueToleranceImmutable READ isCalibrationADUValueToleranceImmutable CONSTANT)
    /**
      Get ADU Value tolerance
    */
    static
    uint calibrationADUValueTolerance()
    {
      return self()->mCalibrationADUValueTolerance;
    }

    /**
      Is ADU Value tolerance Immutable
    */
    static
    bool isCalibrationADUValueToleranceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CalibrationADUValueTolerance" ) );
    }

    /**
      Set ORed list of calibration pre-actions.
    */
    static
    void setCalibrationPreActionIndex( uint v )
    {
      if (v != self()->mCalibrationPreActionIndex && !self()->isCalibrationPreActionIndexImmutable()) {
        self()->mCalibrationPreActionIndex = v;
        Q_EMIT self()->CalibrationPreActionIndexChanged();
      }
    }

    Q_PROPERTY(uint calibrationPreActionIndex READ calibrationPreActionIndex WRITE setCalibrationPreActionIndex NOTIFY CalibrationPreActionIndexChanged)
    Q_PROPERTY(bool isCalibrationPreActionIndexImmutable READ isCalibrationPreActionIndexImmutable CONSTANT)
    /**
      Get ORed list of calibration pre-actions.
    */
    static
    uint calibrationPreActionIndex()
    {
      return self()->mCalibrationPreActionIndex;
    }

    /**
      Is ORed list of calibration pre-actions. Immutable
    */
    static
    bool isCalibrationPreActionIndexImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CalibrationPreActionIndex" ) );
    }

    /**
      Set Index of flat duration option.
    */
    static
    void setCalibrationFlatDurationIndex( uint v )
    {
      if (v != self()->mCalibrationFlatDurationIndex && !self()->isCalibrationFlatDurationIndexImmutable()) {
        self()->mCalibrationFlatDurationIndex = v;
        Q_EMIT self()->CalibrationFlatDurationIndexChanged();
      }
    }

    Q_PROPERTY(uint calibrationFlatDurationIndex READ calibrationFlatDurationIndex WRITE setCalibrationFlatDurationIndex NOTIFY CalibrationFlatDurationIndexChanged)
    Q_PROPERTY(bool isCalibrationFlatDurationIndexImmutable READ isCalibrationFlatDurationIndexImmutable CONSTANT)
    /**
      Get Index of flat duration option.
    */
    static
    uint calibrationFlatDurationIndex()
    {
      return self()->mCalibrationFlatDurationIndex;
    }

    /**
      Is Index of flat duration option. Immutable
    */
    static
    bool isCalibrationFlatDurationIndexImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CalibrationFlatDurationIndex" ) );
    }

    /**
      Set Azimuth of calibration wall location.
    */
    static
    void setCalibrationWallAz( double v )
    {
      if (v != self()->mCalibrationWallAz && !self()->isCalibrationWallAzImmutable()) {
        self()->mCalibrationWallAz = v;
        Q_EMIT self()->CalibrationWallAzChanged();
      }
    }

    Q_PROPERTY(double calibrationWallAz READ calibrationWallAz WRITE setCalibrationWallAz NOTIFY CalibrationWallAzChanged)
    Q_PROPERTY(bool isCalibrationWallAzImmutable READ isCalibrationWallAzImmutable CONSTANT)
    /**
      Get Azimuth of calibration wall location.
    */
    static
    double calibrationWallAz()
    {
      return self()->mCalibrationWallAz;
    }

    /**
      Is Azimuth of calibration wall location. Immutable
    */
    static
    bool isCalibrationWallAzImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CalibrationWallAz" ) );
    }

    /**
      Set Altitude of calibration wall location.
    */
    static
    void setCalibrationWallAlt( double v )
    {
      if (v != self()->mCalibrationWallAlt && !self()->isCalibrationWallAltImmutable()) {
        self()->mCalibrationWallAlt = v;
        Q_EMIT self()->CalibrationWallAltChanged();
      }
    }

    Q_PROPERTY(double calibrationWallAlt READ calibrationWallAlt WRITE setCalibrationWallAlt NOTIFY CalibrationWallAltChanged)
    Q_PROPERTY(bool isCalibrationWallAltImmutable READ isCalibrationWallAltImmutable CONSTANT)
    /**
      Get Altitude of calibration wall location.
    */
    static
    double calibrationWallAlt()
    {
      return self()->mCalibrationWallAlt;
    }

    /**
      Is Altitude of calibration wall location. Immutable
    */
    static
    bool isCalibrationWallAltImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CalibrationWallAlt" ) );
    }

    /**
      Set Maximum acceptable difference between requested and measured temperature set point.
    */
    static
    void setMaxTemperatureDiff( double v )
    {
      if (v != self()->mMaxTemperatureDiff && !self()->isMaxTemperatureDiffImmutable()) {
        self()->mMaxTemperatureDiff = v;
        Q_EMIT self()->MaxTemperatureDiffChanged();
      }
    }

    Q_PROPERTY(double maxTemperatureDiff READ maxTemperatureDiff WRITE setMaxTemperatureDiff NOTIFY MaxTemperatureDiffChanged)
    Q_PROPERTY(bool isMaxTemperatureDiffImmutable READ isMaxTemperatureDiffImmutable CONSTANT)
    /**
      Get Maximum acceptable difference between requested and measured temperature set point.
    */
    static
    double maxTemperatureDiff()
    {
      return self()->mMaxTemperatureDiff;
    }

    /**
      Is Maximum acceptable difference between requested and measured temperature set point. Immutable
    */
    static
    bool isMaxTemperatureDiffImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxTemperatureDiff" ) );
    }

    /**
      Set Maximum acceptable guider drift allowed before starting capture.
    */
    static
    void setMaxStartGuiderDrift( double v )
    {
      if (v != self()->mMaxStartGuiderDrift && !self()->isMaxStartGuiderDriftImmutable()) {
        self()->mMaxStartGuiderDrift = v;
        Q_EMIT self()->MaxStartGuiderDriftChanged();
      }
    }

    Q_PROPERTY(double maxStartGuiderDrift READ maxStartGuiderDrift WRITE setMaxStartGuiderDrift NOTIFY MaxStartGuiderDriftChanged)
    Q_PROPERTY(bool isMaxStartGuiderDriftImmutable READ isMaxStartGuiderDriftImmutable CONSTANT)
    /**
      Get Maximum acceptable guider drift allowed before starting capture.
    */
    static
    double maxStartGuiderDrift()
    {
      return self()->mMaxStartGuiderDrift;
    }

    /**
      Is Maximum acceptable guider drift allowed before starting capture. Immutable
    */
    static
    bool isMaxStartGuiderDriftImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxStartGuiderDrift" ) );
    }

    /**
      Set Enforce maximum acceptable guider drift allowed before starting capture.
    */
    static
    void setEnforceStartGuiderDrift( bool v )
    {
      if (v != self()->mEnforceStartGuiderDrift && !self()->isEnforceStartGuiderDriftImmutable()) {
        self()->mEnforceStartGuiderDrift = v;
        Q_EMIT self()->EnforceStartGuiderDriftChanged();
      }
    }

    Q_PROPERTY(bool enforceStartGuiderDrift READ enforceStartGuiderDrift WRITE setEnforceStartGuiderDrift NOTIFY EnforceStartGuiderDriftChanged)
    Q_PROPERTY(bool isEnforceStartGuiderDriftImmutable READ isEnforceStartGuiderDriftImmutable CONSTANT)
    /**
      Get Enforce maximum acceptable guider drift allowed before starting capture.
    */
    static
    bool enforceStartGuiderDrift()
    {
      return self()->mEnforceStartGuiderDrift;
    }

    /**
      Is Enforce maximum acceptable guider drift allowed before starting capture. Immutable
    */
    static
    bool isEnforceStartGuiderDriftImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EnforceStartGuiderDrift" ) );
    }

    /**
      Set Wait this many seconds after guiding is resumed before starting capture.
    */
    static
    void setGuidingSettle( double v )
    {
      if (v != self()->mGuidingSettle && !self()->isGuidingSettleImmutable()) {
        self()->mGuidingSettle = v;
        Q_EMIT self()->GuidingSettleChanged();
      }
    }

    Q_PROPERTY(double guidingSettle READ guidingSettle WRITE setGuidingSettle NOTIFY GuidingSettleChanged)
    Q_PROPERTY(bool isGuidingSettleImmutable READ isGuidingSettleImmutable CONSTANT)
    /**
      Get Wait this many seconds after guiding is resumed before starting capture.
    */
    static
    double guidingSettle()
    {
      return self()->mGuidingSettle;
    }

    /**
      Is Wait this many seconds after guiding is resumed before starting capture. Immutable
    */
    static
    bool isGuidingSettleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuidingSettle" ) );
    }

    /**
      Set <html><head/><body><p>When starting to process a sequence list, reset all capture counts to zero. Scheduler overrides this option when Remember Job Progress is enabled.</p></body></html>
    */
    static
    void setAlwaysResetSequenceWhenStarting( bool v )
    {
      if (v != self()->mAlwaysResetSequenceWhenStarting && !self()->isAlwaysResetSequenceWhenStartingImmutable()) {
        self()->mAlwaysResetSequenceWhenStarting = v;
        Q_EMIT self()->AlwaysResetSequenceWhenStartingChanged();
      }
    }

    Q_PROPERTY(bool alwaysResetSequenceWhenStarting READ alwaysResetSequenceWhenStarting WRITE setAlwaysResetSequenceWhenStarting NOTIFY AlwaysResetSequenceWhenStartingChanged)
    Q_PROPERTY(bool isAlwaysResetSequenceWhenStartingImmutable READ isAlwaysResetSequenceWhenStartingImmutable CONSTANT)
    /**
      Get <html><head/><body><p>When starting to process a sequence list, reset all capture counts to zero. Scheduler overrides this option when Remember Job Progress is enabled.</p></body></html>
    */
    static
    bool alwaysResetSequenceWhenStarting()
    {
      return self()->mAlwaysResetSequenceWhenStarting;
    }

    /**
      Is <html><head/><body><p>When starting to process a sequence list, reset all capture counts to zero. Scheduler overrides this option when Remember Job Progress is enabled.</p></body></html> Immutable
    */
    static
    bool isAlwaysResetSequenceWhenStartingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlwaysResetSequenceWhenStarting" ) );
    }

    /**
      Set Capture flat frames at the same focus position of light frames.
    */
    static
    void setFlatSyncFocus( bool v )
    {
      if (v != self()->mFlatSyncFocus && !self()->isFlatSyncFocusImmutable()) {
        self()->mFlatSyncFocus = v;
        Q_EMIT self()->FlatSyncFocusChanged();
      }
    }

    Q_PROPERTY(bool flatSyncFocus READ flatSyncFocus WRITE setFlatSyncFocus NOTIFY FlatSyncFocusChanged)
    Q_PROPERTY(bool isFlatSyncFocusImmutable READ isFlatSyncFocusImmutable CONSTANT)
    /**
      Get Capture flat frames at the same focus position of light frames.
    */
    static
    bool flatSyncFocus()
    {
      return self()->mFlatSyncFocus;
    }

    /**
      Is Capture flat frames at the same focus position of light frames. Immutable
    */
    static
    bool isFlatSyncFocusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FlatSyncFocus" ) );
    }

    /**
      Set Increase autofocus HFR value by this percentage gain and store it in Capture Module.
    */
    static
    void setHFRThresholdPercentage( double v )
    {
      if (v != self()->mHFRThresholdPercentage && !self()->isHFRThresholdPercentageImmutable()) {
        self()->mHFRThresholdPercentage = v;
        Q_EMIT self()->HFRThresholdPercentageChanged();
      }
    }

    Q_PROPERTY(double hFRThresholdPercentage READ hFRThresholdPercentage WRITE setHFRThresholdPercentage NOTIFY HFRThresholdPercentageChanged)
    Q_PROPERTY(bool isHFRThresholdPercentageImmutable READ isHFRThresholdPercentageImmutable CONSTANT)
    /**
      Get Increase autofocus HFR value by this percentage gain and store it in Capture Module.
    */
    static
    double hFRThresholdPercentage()
    {
      return self()->mHFRThresholdPercentage;
    }

    /**
      Is Increase autofocus HFR value by this percentage gain and store it in Capture Module. Immutable
    */
    static
    bool isHFRThresholdPercentageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HFRThresholdPercentage" ) );
    }

    /**
      Set HFRCheckAlgorithm
    */
    static
    void setHFRCheckAlgorithm( int v )
    {
      if (v != self()->mHFRCheckAlgorithm && !self()->isHFRCheckAlgorithmImmutable()) {
        self()->mHFRCheckAlgorithm = v;
        Q_EMIT self()->HFRCheckAlgorithmChanged();
      }
    }

    Q_PROPERTY(int hFRCheckAlgorithm READ hFRCheckAlgorithm WRITE setHFRCheckAlgorithm NOTIFY HFRCheckAlgorithmChanged)
    Q_PROPERTY(bool isHFRCheckAlgorithmImmutable READ isHFRCheckAlgorithmImmutable CONSTANT)
    /**
      Get HFRCheckAlgorithm
    */
    static
    int hFRCheckAlgorithm()
    {
      return self()->mHFRCheckAlgorithm;
    }

    /**
      Is HFRCheckAlgorithm Immutable
    */
    static
    bool isHFRCheckAlgorithmImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HFRCheckAlgorithm" ) );
    }

    /**
      Set Run In-Sequence HFR check after this many frames.
    */
    static
    void setInSequenceCheckFrames( uint v )
    {
      if (v != self()->mInSequenceCheckFrames && !self()->isInSequenceCheckFramesImmutable()) {
        self()->mInSequenceCheckFrames = v;
        Q_EMIT self()->InSequenceCheckFramesChanged();
      }
    }

    Q_PROPERTY(uint inSequenceCheckFrames READ inSequenceCheckFrames WRITE setInSequenceCheckFrames NOTIFY InSequenceCheckFramesChanged)
    Q_PROPERTY(bool isInSequenceCheckFramesImmutable READ isInSequenceCheckFramesImmutable CONSTANT)
    /**
      Get Run In-Sequence HFR check after this many frames.
    */
    static
    uint inSequenceCheckFrames()
    {
      return self()->mInSequenceCheckFrames;
    }

    /**
      Is Run In-Sequence HFR check after this many frames. Immutable
    */
    static
    bool isInSequenceCheckFramesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "InSequenceCheckFrames" ) );
    }

    /**
      Set Perform auto stretch on captured images in FITS Viewer.
    */
    static
    void setAutoStretch( bool v )
    {
      if (v != self()->mAutoStretch && !self()->isAutoStretchImmutable()) {
        self()->mAutoStretch = v;
        Q_EMIT self()->AutoStretchChanged();
      }
    }

    Q_PROPERTY(bool autoStretch READ autoStretch WRITE setAutoStretch NOTIFY AutoStretchChanged)
    Q_PROPERTY(bool isAutoStretchImmutable READ isAutoStretchImmutable CONSTANT)
    /**
      Get Perform auto stretch on captured images in FITS Viewer.
    */
    static
    bool autoStretch()
    {
      return self()->mAutoStretch;
    }

    /**
      Is Perform auto stretch on captured images in FITS Viewer. Immutable
    */
    static
    bool isAutoStretchImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoStretch" ) );
    }

    /**
      Set Set the coarseness of the preview shown when sliding the fitsviewer's stretch parameter sliders. 1 is full resolution, but can be slow, 4 would be coarse resolution and fast.
    */
    static
    void setStretchPreviewSampling( uint v )
    {
      if (v != self()->mStretchPreviewSampling && !self()->isStretchPreviewSamplingImmutable()) {
        self()->mStretchPreviewSampling = v;
        Q_EMIT self()->StretchPreviewSamplingChanged();
      }
    }

    Q_PROPERTY(uint stretchPreviewSampling READ stretchPreviewSampling WRITE setStretchPreviewSampling NOTIFY StretchPreviewSamplingChanged)
    Q_PROPERTY(bool isStretchPreviewSamplingImmutable READ isStretchPreviewSamplingImmutable CONSTANT)
    /**
      Get Set the coarseness of the preview shown when sliding the fitsviewer's stretch parameter sliders. 1 is full resolution, but can be slow, 4 would be coarse resolution and fast.
    */
    static
    uint stretchPreviewSampling()
    {
      return self()->mStretchPreviewSampling;
    }

    /**
      Is Set the coarseness of the preview shown when sliding the fitsviewer's stretch parameter sliders. 1 is full resolution, but can be slow, 4 would be coarse resolution and fast. Immutable
    */
    static
    bool isStretchPreviewSamplingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StretchPreviewSampling" ) );
    }

    /**
      Set Min value of pixels marked as clipped in the fitsviewer for 16-bit images.
    */
    static
    void setClipping64KValue( uint v )
    {
      if (v != self()->mClipping64KValue && !self()->isClipping64KValueImmutable()) {
        self()->mClipping64KValue = v;
        Q_EMIT self()->Clipping64KValueChanged();
      }
    }

    Q_PROPERTY(uint clipping64KValue READ clipping64KValue WRITE setClipping64KValue NOTIFY Clipping64KValueChanged)
    Q_PROPERTY(bool isClipping64KValueImmutable READ isClipping64KValueImmutable CONSTANT)
    /**
      Get Min value of pixels marked as clipped in the fitsviewer for 16-bit images.
    */
    static
    uint clipping64KValue()
    {
      return self()->mClipping64KValue;
    }

    /**
      Is Min value of pixels marked as clipped in the fitsviewer for 16-bit images. Immutable
    */
    static
    bool isClipping64KValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Clipping64KValue" ) );
    }

    /**
      Set Min value of pixels marked as clipped in the fitsviewer for 8-bit images.
    */
    static
    void setClipping256Value( uint v )
    {
      if (v != self()->mClipping256Value && !self()->isClipping256ValueImmutable()) {
        self()->mClipping256Value = v;
        Q_EMIT self()->Clipping256ValueChanged();
      }
    }

    Q_PROPERTY(uint clipping256Value READ clipping256Value WRITE setClipping256Value NOTIFY Clipping256ValueChanged)
    Q_PROPERTY(bool isClipping256ValueImmutable READ isClipping256ValueImmutable CONSTANT)
    /**
      Get Min value of pixels marked as clipped in the fitsviewer for 8-bit images.
    */
    static
    uint clipping256Value()
    {
      return self()->mClipping256Value;
    }

    /**
      Is Min value of pixels marked as clipped in the fitsviewer for 8-bit images. Immutable
    */
    static
    bool isClipping256ValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Clipping256Value" ) );
    }

    /**
      Set Automatically down sample images based on available resources.
    */
    static
    void setAdaptiveSampling( bool v )
    {
      if (v != self()->mAdaptiveSampling && !self()->isAdaptiveSamplingImmutable()) {
        self()->mAdaptiveSampling = v;
        Q_EMIT self()->AdaptiveSamplingChanged();
      }
    }

    Q_PROPERTY(bool adaptiveSampling READ adaptiveSampling WRITE setAdaptiveSampling NOTIFY AdaptiveSamplingChanged)
    Q_PROPERTY(bool isAdaptiveSamplingImmutable READ isAdaptiveSamplingImmutable CONSTANT)
    /**
      Get Automatically down sample images based on available resources.
    */
    static
    bool adaptiveSampling()
    {
      return self()->mAdaptiveSampling;
    }

    /**
      Is Automatically down sample images based on available resources. Immutable
    */
    static
    bool isAdaptiveSamplingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AdaptiveSampling" ) );
    }

    /**
      Set Display every image captured sequence image in the Ekos summary screen preview window.
    */
    static
    void setUseSummaryPreview( bool v )
    {
      if (v != self()->mUseSummaryPreview && !self()->isUseSummaryPreviewImmutable()) {
        self()->mUseSummaryPreview = v;
        Q_EMIT self()->useSummaryPreviewChanged();
      }
    }

    Q_PROPERTY(bool useSummaryPreview READ useSummaryPreview WRITE setUseSummaryPreview NOTIFY useSummaryPreviewChanged)
    Q_PROPERTY(bool isUseSummaryPreviewImmutable READ isUseSummaryPreviewImmutable CONSTANT)
    /**
      Get Display every image captured sequence image in the Ekos summary screen preview window.
    */
    static
    bool useSummaryPreview()
    {
      return self()->mUseSummaryPreview;
    }

    /**
      Is Display every image captured sequence image in the Ekos summary screen preview window. Immutable
    */
    static
    bool isUseSummaryPreviewImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useSummaryPreview" ) );
    }

    /**
      Set Display every captured DSLR image in the Image Viewer window.
    */
    static
    void setUseDSLRImageViewer( bool v )
    {
      if (v != self()->mUseDSLRImageViewer && !self()->isUseDSLRImageViewerImmutable()) {
        self()->mUseDSLRImageViewer = v;
        Q_EMIT self()->useDSLRImageViewerChanged();
      }
    }

    Q_PROPERTY(bool useDSLRImageViewer READ useDSLRImageViewer WRITE setUseDSLRImageViewer NOTIFY useDSLRImageViewerChanged)
    Q_PROPERTY(bool isUseDSLRImageViewerImmutable READ isUseDSLRImageViewerImmutable CONSTANT)
    /**
      Get Display every captured DSLR image in the Image Viewer window.
    */
    static
    bool useDSLRImageViewer()
    {
      return self()->mUseDSLRImageViewer;
    }

    /**
      Is Display every captured DSLR image in the Image Viewer window. Immutable
    */
    static
    bool isUseDSLRImageViewerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useDSLRImageViewer" ) );
    }

    /**
      Set Force exposure times to align with DSLR exposure presets. This insures accurate exposure times for sub-second exposures.
    */
    static
    void setForceDSLRPresets( bool v )
    {
      if (v != self()->mForceDSLRPresets && !self()->isForceDSLRPresetsImmutable()) {
        self()->mForceDSLRPresets = v;
        Q_EMIT self()->ForceDSLRPresetsChanged();
      }
    }

    Q_PROPERTY(bool forceDSLRPresets READ forceDSLRPresets WRITE setForceDSLRPresets NOTIFY ForceDSLRPresetsChanged)
    Q_PROPERTY(bool isForceDSLRPresetsImmutable READ isForceDSLRPresetsImmutable CONSTANT)
    /**
      Get Force exposure times to align with DSLR exposure presets. This insures accurate exposure times for sub-second exposures.
    */
    static
    bool forceDSLRPresets()
    {
      return self()->mForceDSLRPresets;
    }

    /**
      Is Force exposure times to align with DSLR exposure presets. This insures accurate exposure times for sub-second exposures. Immutable
    */
    static
    bool isForceDSLRPresetsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ForceDSLRPresets" ) );
    }

    /**
      Set Path to capture directory to save images.
    */
    static
    void setCaptureDirectory( const QString & v )
    {
      if (v != self()->mCaptureDirectory && !self()->isCaptureDirectoryImmutable()) {
        self()->mCaptureDirectory = v;
        Q_EMIT self()->CaptureDirectoryChanged();
      }
    }

    Q_PROPERTY(QString captureDirectory READ captureDirectory WRITE setCaptureDirectory NOTIFY CaptureDirectoryChanged)
    Q_PROPERTY(bool isCaptureDirectoryImmutable READ isCaptureDirectoryImmutable CONSTANT)
    /**
      Get Path to capture directory to save images.
    */
    static
    QString captureDirectory()
    {
      return self()->mCaptureDirectory;
    }

    /**
      Is Path to capture directory to save images. Immutable
    */
    static
    bool isCaptureDirectoryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureDirectory" ) );
    }

    /**
      Set How to format captured image filename.
    */
    static
    void setPlaceholderFormat( const QString & v )
    {
      if (v != self()->mPlaceholderFormat && !self()->isPlaceholderFormatImmutable()) {
        self()->mPlaceholderFormat = v;
        Q_EMIT self()->PlaceholderFormatChanged();
      }
    }

    Q_PROPERTY(QString placeholderFormat READ placeholderFormat WRITE setPlaceholderFormat NOTIFY PlaceholderFormatChanged)
    Q_PROPERTY(bool isPlaceholderFormatImmutable READ isPlaceholderFormatImmutable CONSTANT)
    /**
      Get How to format captured image filename.
    */
    static
    QString placeholderFormat()
    {
      return self()->mPlaceholderFormat;
    }

    /**
      Is How to format captured image filename. Immutable
    */
    static
    bool isPlaceholderFormatImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PlaceholderFormat" ) );
    }

    /**
      Set Path to remote capture directory to save images.
    */
    static
    void setRemoteCaptureDirectory( const QString & v )
    {
      if (v != self()->mRemoteCaptureDirectory && !self()->isRemoteCaptureDirectoryImmutable()) {
        self()->mRemoteCaptureDirectory = v;
        Q_EMIT self()->RemoteCaptureDirectoryChanged();
      }
    }

    Q_PROPERTY(QString remoteCaptureDirectory READ remoteCaptureDirectory WRITE setRemoteCaptureDirectory NOTIFY RemoteCaptureDirectoryChanged)
    Q_PROPERTY(bool isRemoteCaptureDirectoryImmutable READ isRemoteCaptureDirectoryImmutable CONSTANT)
    /**
      Get Path to remote capture directory to save images.
    */
    static
    QString remoteCaptureDirectory()
    {
      return self()->mRemoteCaptureDirectory;
    }

    /**
      Is Path to remote capture directory to save images. Immutable
    */
    static
    bool isRemoteCaptureDirectoryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RemoteCaptureDirectory" ) );
    }

    /**
      Set Cover or uncover telescope dialog timeout in seconds.
    */
    static
    void setManualCoverTimeout( uint v )
    {
      if (v != self()->mManualCoverTimeout && !self()->isManualCoverTimeoutImmutable()) {
        self()->mManualCoverTimeout = v;
        Q_EMIT self()->ManualCoverTimeoutChanged();
      }
    }

    Q_PROPERTY(uint manualCoverTimeout READ manualCoverTimeout WRITE setManualCoverTimeout NOTIFY ManualCoverTimeoutChanged)
    Q_PROPERTY(bool isManualCoverTimeoutImmutable READ isManualCoverTimeoutImmutable CONSTANT)
    /**
      Get Cover or uncover telescope dialog timeout in seconds.
    */
    static
    uint manualCoverTimeout()
    {
      return self()->mManualCoverTimeout;
    }

    /**
      Is Cover or uncover telescope dialog timeout in seconds. Immutable
    */
    static
    bool isManualCoverTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ManualCoverTimeout" ) );
    }

    /**
      Set Maximum number of seconds to wait before aborting the capture if operations like filter wheel changes or meridian flips take too long. Also bounds the time the scheduler spends establishing guiding (calibration and lock) before starting capture.
    */
    static
    void setCaptureOperationsTimeout( uint v )
    {
      if (v != self()->mCaptureOperationsTimeout && !self()->isCaptureOperationsTimeoutImmutable()) {
        self()->mCaptureOperationsTimeout = v;
        Q_EMIT self()->CaptureOperationsTimeoutChanged();
      }
    }

    Q_PROPERTY(uint captureOperationsTimeout READ captureOperationsTimeout WRITE setCaptureOperationsTimeout NOTIFY CaptureOperationsTimeoutChanged)
    Q_PROPERTY(bool isCaptureOperationsTimeoutImmutable READ isCaptureOperationsTimeoutImmutable CONSTANT)
    /**
      Get Maximum number of seconds to wait before aborting the capture if operations like filter wheel changes or meridian flips take too long. Also bounds the time the scheduler spends establishing guiding (calibration and lock) before starting capture.
    */
    static
    uint captureOperationsTimeout()
    {
      return self()->mCaptureOperationsTimeout;
    }

    /**
      Is Maximum number of seconds to wait before aborting the capture if operations like filter wheel changes or meridian flips take too long. Also bounds the time the scheduler spends establishing guiding (calibration and lock) before starting capture. Immutable
    */
    static
    bool isCaptureOperationsTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureOperationsTimeout" ) );
    }

    /**
      Set Minimal duration of a meridian flip.
    */
    static
    void setMinFlipDuration( uint v )
    {
      if (v != self()->mMinFlipDuration && !self()->isMinFlipDurationImmutable()) {
        self()->mMinFlipDuration = v;
        Q_EMIT self()->MinFlipDurationChanged();
      }
    }

    Q_PROPERTY(uint minFlipDuration READ minFlipDuration WRITE setMinFlipDuration NOTIFY MinFlipDurationChanged)
    Q_PROPERTY(bool isMinFlipDurationImmutable READ isMinFlipDurationImmutable CONSTANT)
    /**
      Get Minimal duration of a meridian flip.
    */
    static
    uint minFlipDuration()
    {
      return self()->mMinFlipDuration;
    }

    /**
      Is Minimal duration of a meridian flip. Immutable
    */
    static
    bool isMinFlipDurationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MinFlipDuration" ) );
    }

    /**
      Set Calculate position after captures.
    */
    static
    void setCapturePosition( bool v )
    {
      if (v != self()->mCapturePosition && !self()->isCapturePositionImmutable()) {
        self()->mCapturePosition = v;
        Q_EMIT self()->CapturePositionChanged();
      }
    }

    Q_PROPERTY(bool capturePosition READ capturePosition WRITE setCapturePosition NOTIFY CapturePositionChanged)
    Q_PROPERTY(bool isCapturePositionImmutable READ isCapturePositionImmutable CONSTANT)
    /**
      Get Calculate position after captures.
    */
    static
    bool capturePosition()
    {
      return self()->mCapturePosition;
    }

    /**
      Is Calculate position after captures. Immutable
    */
    static
    bool isCapturePositionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CapturePosition" ) );
    }

    /**
      Set Optical train ID most recently used in Capture.
    */
    static
    void setCaptureTrainID( uint v )
    {
      if (v != self()->mCaptureTrainID && !self()->isCaptureTrainIDImmutable()) {
        self()->mCaptureTrainID = v;
        Q_EMIT self()->CaptureTrainIDChanged();
      }
    }

    Q_PROPERTY(uint captureTrainID READ captureTrainID WRITE setCaptureTrainID NOTIFY CaptureTrainIDChanged)
    Q_PROPERTY(bool isCaptureTrainIDImmutable READ isCaptureTrainIDImmutable CONSTANT)
    /**
      Get Optical train ID most recently used in Capture.
    */
    static
    uint captureTrainID()
    {
      return self()->mCaptureTrainID;
    }

    /**
      Is Optical train ID most recently used in Capture. Immutable
    */
    static
    bool isCaptureTrainIDImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureTrainID" ) );
    }

    /**
      Set Go to specific coordinates on calibration.
    */
    static
    void setCaptureCalibrationWall( bool v )
    {
      if (v != self()->mCaptureCalibrationWall && !self()->isCaptureCalibrationWallImmutable()) {
        self()->mCaptureCalibrationWall = v;
        Q_EMIT self()->CaptureCalibrationWallChanged();
      }
    }

    Q_PROPERTY(bool captureCalibrationWall READ captureCalibrationWall WRITE setCaptureCalibrationWall NOTIFY CaptureCalibrationWallChanged)
    Q_PROPERTY(bool isCaptureCalibrationWallImmutable READ isCaptureCalibrationWallImmutable CONSTANT)
    /**
      Get Go to specific coordinates on calibration.
    */
    static
    bool captureCalibrationWall()
    {
      return self()->mCaptureCalibrationWall;
    }

    /**
      Is Go to specific coordinates on calibration. Immutable
    */
    static
    bool isCaptureCalibrationWallImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureCalibrationWall" ) );
    }

    /**
      Set Park mount on calibration.
    */
    static
    void setCaptureCalibrationParkMount( bool v )
    {
      if (v != self()->mCaptureCalibrationParkMount && !self()->isCaptureCalibrationParkMountImmutable()) {
        self()->mCaptureCalibrationParkMount = v;
        Q_EMIT self()->CaptureCalibrationParkMountChanged();
      }
    }

    Q_PROPERTY(bool captureCalibrationParkMount READ captureCalibrationParkMount WRITE setCaptureCalibrationParkMount NOTIFY CaptureCalibrationParkMountChanged)
    Q_PROPERTY(bool isCaptureCalibrationParkMountImmutable READ isCaptureCalibrationParkMountImmutable CONSTANT)
    /**
      Get Park mount on calibration.
    */
    static
    bool captureCalibrationParkMount()
    {
      return self()->mCaptureCalibrationParkMount;
    }

    /**
      Is Park mount on calibration. Immutable
    */
    static
    bool isCaptureCalibrationParkMountImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureCalibrationParkMount" ) );
    }

    /**
      Set Park dome on calibration.
    */
    static
    void setCaptureCalibrationParkDome( bool v )
    {
      if (v != self()->mCaptureCalibrationParkDome && !self()->isCaptureCalibrationParkDomeImmutable()) {
        self()->mCaptureCalibrationParkDome = v;
        Q_EMIT self()->CaptureCalibrationParkDomeChanged();
      }
    }

    Q_PROPERTY(bool captureCalibrationParkDome READ captureCalibrationParkDome WRITE setCaptureCalibrationParkDome NOTIFY CaptureCalibrationParkDomeChanged)
    Q_PROPERTY(bool isCaptureCalibrationParkDomeImmutable READ isCaptureCalibrationParkDomeImmutable CONSTANT)
    /**
      Get Park dome on calibration.
    */
    static
    bool captureCalibrationParkDome()
    {
      return self()->mCaptureCalibrationParkDome;
    }

    /**
      Is Park dome on calibration. Immutable
    */
    static
    bool isCaptureCalibrationParkDomeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureCalibrationParkDome" ) );
    }

    /**
      Set Capture calibration frames at the specified exposures.
    */
    static
    void setCaptureCalibrationUseManual( bool v )
    {
      if (v != self()->mCaptureCalibrationUseManual && !self()->isCaptureCalibrationUseManualImmutable()) {
        self()->mCaptureCalibrationUseManual = v;
        Q_EMIT self()->CaptureCalibrationUseManualChanged();
      }
    }

    Q_PROPERTY(bool captureCalibrationUseManual READ captureCalibrationUseManual WRITE setCaptureCalibrationUseManual NOTIFY CaptureCalibrationUseManualChanged)
    Q_PROPERTY(bool isCaptureCalibrationUseManualImmutable READ isCaptureCalibrationUseManualImmutable CONSTANT)
    /**
      Get Capture calibration frames at the specified exposures.
    */
    static
    bool captureCalibrationUseManual()
    {
      return self()->mCaptureCalibrationUseManual;
    }

    /**
      Is Capture calibration frames at the specified exposures. Immutable
    */
    static
    bool isCaptureCalibrationUseManualImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureCalibrationUseManual" ) );
    }

    /**
      Set Capture calibration frames using ADU threshold.
    */
    static
    void setCaptureCalibrationUseADU( bool v )
    {
      if (v != self()->mCaptureCalibrationUseADU && !self()->isCaptureCalibrationUseADUImmutable()) {
        self()->mCaptureCalibrationUseADU = v;
        Q_EMIT self()->CaptureCalibrationUseADUChanged();
      }
    }

    Q_PROPERTY(bool captureCalibrationUseADU READ captureCalibrationUseADU WRITE setCaptureCalibrationUseADU NOTIFY CaptureCalibrationUseADUChanged)
    Q_PROPERTY(bool isCaptureCalibrationUseADUImmutable READ isCaptureCalibrationUseADUImmutable CONSTANT)
    /**
      Get Capture calibration frames using ADU threshold.
    */
    static
    bool captureCalibrationUseADU()
    {
      return self()->mCaptureCalibrationUseADU;
    }

    /**
      Is Capture calibration frames using ADU threshold. Immutable
    */
    static
    bool isCaptureCalibrationUseADUImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureCalibrationUseADU" ) );
    }

    /**
      Set Desired flat frame ADU value.
    */
    static
    void setCaptureCalibrationADUValue( double v )
    {
      if (v != self()->mCaptureCalibrationADUValue && !self()->isCaptureCalibrationADUValueImmutable()) {
        self()->mCaptureCalibrationADUValue = v;
        Q_EMIT self()->CaptureCalibrationADUValueChanged();
      }
    }

    Q_PROPERTY(double captureCalibrationADUValue READ captureCalibrationADUValue WRITE setCaptureCalibrationADUValue NOTIFY CaptureCalibrationADUValueChanged)
    Q_PROPERTY(bool isCaptureCalibrationADUValueImmutable READ isCaptureCalibrationADUValueImmutable CONSTANT)
    /**
      Get Desired flat frame ADU value.
    */
    static
    double captureCalibrationADUValue()
    {
      return self()->mCaptureCalibrationADUValue;
    }

    /**
      Is Desired flat frame ADU value. Immutable
    */
    static
    bool isCaptureCalibrationADUValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureCalibrationADUValue" ) );
    }

    /**
      Set Desired flat frame ADU tolerance.
    */
    static
    void setCaptureCalibrationADUTolerance( double v )
    {
      if (v != self()->mCaptureCalibrationADUTolerance && !self()->isCaptureCalibrationADUToleranceImmutable()) {
        self()->mCaptureCalibrationADUTolerance = v;
        Q_EMIT self()->CaptureCalibrationADUToleranceChanged();
      }
    }

    Q_PROPERTY(double captureCalibrationADUTolerance READ captureCalibrationADUTolerance WRITE setCaptureCalibrationADUTolerance NOTIFY CaptureCalibrationADUToleranceChanged)
    Q_PROPERTY(bool isCaptureCalibrationADUToleranceImmutable READ isCaptureCalibrationADUToleranceImmutable CONSTANT)
    /**
      Get Desired flat frame ADU tolerance.
    */
    static
    double captureCalibrationADUTolerance()
    {
      return self()->mCaptureCalibrationADUTolerance;
    }

    /**
      Is Desired flat frame ADU tolerance. Immutable
    */
    static
    bool isCaptureCalibrationADUToleranceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureCalibrationADUTolerance" ) );
    }

    /**
      Set Capture calibration frames using Sky Flats.
    */
    static
    void setCaptureCalibrationSkyFlats( bool v )
    {
      if (v != self()->mCaptureCalibrationSkyFlats && !self()->isCaptureCalibrationSkyFlatsImmutable()) {
        self()->mCaptureCalibrationSkyFlats = v;
        Q_EMIT self()->CaptureCalibrationSkyFlatsChanged();
      }
    }

    Q_PROPERTY(bool captureCalibrationSkyFlats READ captureCalibrationSkyFlats WRITE setCaptureCalibrationSkyFlats NOTIFY CaptureCalibrationSkyFlatsChanged)
    Q_PROPERTY(bool isCaptureCalibrationSkyFlatsImmutable READ isCaptureCalibrationSkyFlatsImmutable CONSTANT)
    /**
      Get Capture calibration frames using Sky Flats.
    */
    static
    bool captureCalibrationSkyFlats()
    {
      return self()->mCaptureCalibrationSkyFlats;
    }

    /**
      Is Capture calibration frames using Sky Flats. Immutable
    */
    static
    bool isCaptureCalibrationSkyFlatsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CaptureCalibrationSkyFlats" ) );
    }

    /**
      Set AbsTicksSpin
    */
    static
    void setAbsTicksSpin( uint v )
    {
      if (v != self()->mAbsTicksSpin && !self()->isAbsTicksSpinImmutable()) {
        self()->mAbsTicksSpin = v;
        Q_EMIT self()->AbsTicksSpinChanged();
      }
    }

    Q_PROPERTY(uint absTicksSpin READ absTicksSpin WRITE setAbsTicksSpin NOTIFY AbsTicksSpinChanged)
    Q_PROPERTY(bool isAbsTicksSpinImmutable READ isAbsTicksSpinImmutable CONSTANT)
    /**
      Get AbsTicksSpin
    */
    static
    uint absTicksSpin()
    {
      return self()->mAbsTicksSpin;
    }

    /**
      Is AbsTicksSpin Immutable
    */
    static
    bool isAbsTicksSpinImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AbsTicksSpin" ) );
    }

    /**
      Set Exposure to use during focus
    */
    static
    void setFocusExposure( double v )
    {
      if (v != self()->mFocusExposure && !self()->isFocusExposureImmutable()) {
        self()->mFocusExposure = v;
        Q_EMIT self()->FocusExposureChanged();
      }
    }

    Q_PROPERTY(double focusExposure READ focusExposure WRITE setFocusExposure NOTIFY FocusExposureChanged)
    Q_PROPERTY(bool isFocusExposureImmutable READ isFocusExposureImmutable CONSTANT)
    /**
      Get Exposure to use during focus
    */
    static
    double focusExposure()
    {
      return self()->mFocusExposure;
    }

    /**
      Is Exposure to use during focus Immutable
    */
    static
    bool isFocusExposureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusExposure" ) );
    }

    /**
      Set Default Camera binning
    */
    static
    void setFocusBinning( const QString & v )
    {
      if (v != self()->mFocusBinning && !self()->isFocusBinningImmutable()) {
        self()->mFocusBinning = v;
        Q_EMIT self()->FocusBinningChanged();
      }
    }

    Q_PROPERTY(QString focusBinning READ focusBinning WRITE setFocusBinning NOTIFY FocusBinningChanged)
    Q_PROPERTY(bool isFocusBinningImmutable READ isFocusBinningImmutable CONSTANT)
    /**
      Get Default Camera binning
    */
    static
    QString focusBinning()
    {
      return self()->mFocusBinning;
    }

    /**
      Is Default Camera binning Immutable
    */
    static
    bool isFocusBinningImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusBinning" ) );
    }

    /**
      Set Default Focuser gain value
    */
    static
    void setFocusGain( double v )
    {
      if (v != self()->mFocusGain && !self()->isFocusGainImmutable()) {
        self()->mFocusGain = v;
        Q_EMIT self()->FocusGainChanged();
      }
    }

    Q_PROPERTY(double focusGain READ focusGain WRITE setFocusGain NOTIFY FocusGainChanged)
    Q_PROPERTY(bool isFocusGainImmutable READ isFocusGainImmutable CONSTANT)
    /**
      Get Default Focuser gain value
    */
    static
    double focusGain()
    {
      return self()->mFocusGain;
    }

    /**
      Is Default Focuser gain value Immutable
    */
    static
    bool isFocusGainImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusGain" ) );
    }

    /**
      Set Default Focuser Camera ISO value
    */
    static
    void setFocusISO( const QString & v )
    {
      if (v != self()->mFocusISO && !self()->isFocusISOImmutable()) {
        self()->mFocusISO = v;
        Q_EMIT self()->FocusISOChanged();
      }
    }

    Q_PROPERTY(QString focusISO READ focusISO WRITE setFocusISO NOTIFY FocusISOChanged)
    Q_PROPERTY(bool isFocusISOImmutable READ isFocusISOImmutable CONSTANT)
    /**
      Get Default Focuser Camera ISO value
    */
    static
    QString focusISO()
    {
      return self()->mFocusISO;
    }

    /**
      Is Default Focuser Camera ISO value Immutable
    */
    static
    bool isFocusISOImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusISO" ) );
    }

    /**
      Set Default focus module temperature source.
    */
    static
    void setDefaultFocusTemperatureSource( const QString & v )
    {
      if (v != self()->mDefaultFocusTemperatureSource && !self()->isDefaultFocusTemperatureSourceImmutable()) {
        self()->mDefaultFocusTemperatureSource = v;
        Q_EMIT self()->DefaultFocusTemperatureSourceChanged();
      }
    }

    Q_PROPERTY(QString defaultFocusTemperatureSource READ defaultFocusTemperatureSource WRITE setDefaultFocusTemperatureSource NOTIFY DefaultFocusTemperatureSourceChanged)
    Q_PROPERTY(bool isDefaultFocusTemperatureSourceImmutable READ isDefaultFocusTemperatureSourceImmutable CONSTANT)
    /**
      Get Default focus module temperature source.
    */
    static
    QString defaultFocusTemperatureSource()
    {
      return self()->mDefaultFocusTemperatureSource;
    }

    /**
      Is Default focus module temperature source. Immutable
    */
    static
    bool isDefaultFocusTemperatureSourceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DefaultFocusTemperatureSource" ) );
    }

    /**
      Set Default Filter Wheel filter
    */
    static
    void setFocusFilter( const QString & v )
    {
      if (v != self()->mFocusFilter && !self()->isFocusFilterImmutable()) {
        self()->mFocusFilter = v;
        Q_EMIT self()->FocusFilterChanged();
      }
    }

    Q_PROPERTY(QString focusFilter READ focusFilter WRITE setFocusFilter NOTIFY FocusFilterChanged)
    Q_PROPERTY(bool isFocusFilterImmutable READ isFocusFilterImmutable CONSTANT)
    /**
      Get Default Filter Wheel filter
    */
    static
    QString focusFilter()
    {
      return self()->mFocusFilter;
    }

    /**
      Is Default Filter Wheel filter Immutable
    */
    static
    bool isFocusFilterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusFilter" ) );
    }

    /**
      Set Take a dark frame and subtract it before running autofocus operation.
    */
    static
    void setUseFocusDarkFrame( bool v )
    {
      if (v != self()->mUseFocusDarkFrame && !self()->isUseFocusDarkFrameImmutable()) {
        self()->mUseFocusDarkFrame = v;
        Q_EMIT self()->UseFocusDarkFrameChanged();
      }
    }

    Q_PROPERTY(bool useFocusDarkFrame READ useFocusDarkFrame WRITE setUseFocusDarkFrame NOTIFY UseFocusDarkFrameChanged)
    Q_PROPERTY(bool isUseFocusDarkFrameImmutable READ isUseFocusDarkFrameImmutable CONSTANT)
    /**
      Get Take a dark frame and subtract it before running autofocus operation.
    */
    static
    bool useFocusDarkFrame()
    {
      return self()->mUseFocusDarkFrame;
    }

    /**
      Is Take a dark frame and subtract it before running autofocus operation. Immutable
    */
    static
    bool isUseFocusDarkFrameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseFocusDarkFrame" ) );
    }

    /**
      Set Subframe the focus star during the autofocus procedure.
    */
    static
    void setFocusSubFrame( bool v )
    {
      if (v != self()->mFocusSubFrame && !self()->isFocusSubFrameImmutable()) {
        self()->mFocusSubFrame = v;
        Q_EMIT self()->FocusSubFrameChanged();
      }
    }

    Q_PROPERTY(bool focusSubFrame READ focusSubFrame WRITE setFocusSubFrame NOTIFY FocusSubFrameChanged)
    Q_PROPERTY(bool isFocusSubFrameImmutable READ isFocusSubFrameImmutable CONSTANT)
    /**
      Get Subframe the focus star during the autofocus procedure.
    */
    static
    bool focusSubFrame()
    {
      return self()->mFocusSubFrame;
    }

    /**
      Is Subframe the focus star during the autofocus procedure. Immutable
    */
    static
    bool isFocusSubFrameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusSubFrame" ) );
    }

    /**
      Set Default Focuser star selection box size
    */
    static
    void setFocusBoxSize( uint v )
    {
      if (v != self()->mFocusBoxSize && !self()->isFocusBoxSizeImmutable()) {
        self()->mFocusBoxSize = v;
        Q_EMIT self()->FocusBoxSizeChanged();
      }
    }

    Q_PROPERTY(uint focusBoxSize READ focusBoxSize WRITE setFocusBoxSize NOTIFY FocusBoxSizeChanged)
    Q_PROPERTY(bool isFocusBoxSizeImmutable READ isFocusBoxSizeImmutable CONSTANT)
    /**
      Get Default Focuser star selection box size
    */
    static
    uint focusBoxSize()
    {
      return self()->mFocusBoxSize;
    }

    /**
      Is Default Focuser star selection box size Immutable
    */
    static
    bool isFocusBoxSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusBoxSize" ) );
    }

    /**
      Set Measure average HFR from all stars combined in a full frame. This method defaults to the Centroid detection, but can use SEP detection too. Its performance decreases as the number of stars increases.
    */
    static
    void setFocusUseFullField( bool v )
    {
      if (v != self()->mFocusUseFullField && !self()->isFocusUseFullFieldImmutable()) {
        self()->mFocusUseFullField = v;
        Q_EMIT self()->FocusUseFullFieldChanged();
      }
    }

    Q_PROPERTY(bool focusUseFullField READ focusUseFullField WRITE setFocusUseFullField NOTIFY FocusUseFullFieldChanged)
    Q_PROPERTY(bool isFocusUseFullFieldImmutable READ isFocusUseFullFieldImmutable CONSTANT)
    /**
      Get Measure average HFR from all stars combined in a full frame. This method defaults to the Centroid detection, but can use SEP detection too. Its performance decreases as the number of stars increases.
    */
    static
    bool focusUseFullField()
    {
      return self()->mFocusUseFullField;
    }

    /**
      Is Measure average HFR from all stars combined in a full frame. This method defaults to the Centroid detection, but can use SEP detection too. Its performance decreases as the number of stars increases. Immutable
    */
    static
    bool isFocusUseFullFieldImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusUseFullField" ) );
    }

    /**
      Set No mask is applied.
    */
    static
    void setFocusNoMaskRB( bool v )
    {
      if (v != self()->mFocusNoMaskRB && !self()->isFocusNoMaskRBImmutable()) {
        self()->mFocusNoMaskRB = v;
        Q_EMIT self()->FocusNoMaskRBChanged();
      }
    }

    Q_PROPERTY(bool focusNoMaskRB READ focusNoMaskRB WRITE setFocusNoMaskRB NOTIFY FocusNoMaskRBChanged)
    Q_PROPERTY(bool isFocusNoMaskRBImmutable READ isFocusNoMaskRBImmutable CONSTANT)
    /**
      Get No mask is applied.
    */
    static
    bool focusNoMaskRB()
    {
      return self()->mFocusNoMaskRB;
    }

    /**
      Is No mask is applied. Immutable
    */
    static
    bool isFocusNoMaskRBImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusNoMaskRB" ) );
    }

    /**
      Set A ring mask is applied.
    */
    static
    void setFocusRingMaskRB( bool v )
    {
      if (v != self()->mFocusRingMaskRB && !self()->isFocusRingMaskRBImmutable()) {
        self()->mFocusRingMaskRB = v;
        Q_EMIT self()->focusRingMaskRBChanged();
      }
    }

    Q_PROPERTY(bool focusRingMaskRB READ focusRingMaskRB WRITE setFocusRingMaskRB NOTIFY focusRingMaskRBChanged)
    Q_PROPERTY(bool isFocusRingMaskRBImmutable READ isFocusRingMaskRBImmutable CONSTANT)
    /**
      Get A ring mask is applied.
    */
    static
    bool focusRingMaskRB()
    {
      return self()->mFocusRingMaskRB;
    }

    /**
      Is A ring mask is applied. Immutable
    */
    static
    bool isFocusRingMaskRBImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusRingMaskRB" ) );
    }

    /**
      Set A mosaic mask is applied.
    */
    static
    void setFocusMosaicMaskRB( bool v )
    {
      if (v != self()->mFocusMosaicMaskRB && !self()->isFocusMosaicMaskRBImmutable()) {
        self()->mFocusMosaicMaskRB = v;
        Q_EMIT self()->focusMosaicMaskRBChanged();
      }
    }

    Q_PROPERTY(bool focusMosaicMaskRB READ focusMosaicMaskRB WRITE setFocusMosaicMaskRB NOTIFY focusMosaicMaskRBChanged)
    Q_PROPERTY(bool isFocusMosaicMaskRBImmutable READ isFocusMosaicMaskRBImmutable CONSTANT)
    /**
      Get A mosaic mask is applied.
    */
    static
    bool focusMosaicMaskRB()
    {
      return self()->mFocusMosaicMaskRB;
    }

    /**
      Is A mosaic mask is applied. Immutable
    */
    static
    bool isFocusMosaicMaskRBImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusMosaicMaskRB" ) );
    }

    /**
      Set Full field inner radius.
    */
    static
    void setFocusFullFieldInnerRadius( double v )
    {
      if (v != self()->mFocusFullFieldInnerRadius && !self()->isFocusFullFieldInnerRadiusImmutable()) {
        self()->mFocusFullFieldInnerRadius = v;
        Q_EMIT self()->FocusFullFieldInnerRadiusChanged();
      }
    }

    Q_PROPERTY(double focusFullFieldInnerRadius READ focusFullFieldInnerRadius WRITE setFocusFullFieldInnerRadius NOTIFY FocusFullFieldInnerRadiusChanged)
    Q_PROPERTY(bool isFocusFullFieldInnerRadiusImmutable READ isFocusFullFieldInnerRadiusImmutable CONSTANT)
    /**
      Get Full field inner radius.
    */
    static
    double focusFullFieldInnerRadius()
    {
      return self()->mFocusFullFieldInnerRadius;
    }

    /**
      Is Full field inner radius. Immutable
    */
    static
    bool isFocusFullFieldInnerRadiusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusFullFieldInnerRadius" ) );
    }

    /**
      Set Full field outer radius.
    */
    static
    void setFocusFullFieldOuterRadius( double v )
    {
      if (v != self()->mFocusFullFieldOuterRadius && !self()->isFocusFullFieldOuterRadiusImmutable()) {
        self()->mFocusFullFieldOuterRadius = v;
        Q_EMIT self()->FocusFullFieldOuterRadiusChanged();
      }
    }

    Q_PROPERTY(double focusFullFieldOuterRadius READ focusFullFieldOuterRadius WRITE setFocusFullFieldOuterRadius NOTIFY FocusFullFieldOuterRadiusChanged)
    Q_PROPERTY(bool isFocusFullFieldOuterRadiusImmutable READ isFocusFullFieldOuterRadiusImmutable CONSTANT)
    /**
      Get Full field outer radius.
    */
    static
    double focusFullFieldOuterRadius()
    {
      return self()->mFocusFullFieldOuterRadius;
    }

    /**
      Is Full field outer radius. Immutable
    */
    static
    bool isFocusFullFieldOuterRadiusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusFullFieldOuterRadius" ) );
    }

    /**
      Set Mosaic filter tile width in percent of the frame width.
    */
    static
    void setFocusMosaicTileWidth( double v )
    {
      if (v != self()->mFocusMosaicTileWidth && !self()->isFocusMosaicTileWidthImmutable()) {
        self()->mFocusMosaicTileWidth = v;
        Q_EMIT self()->FocusMosaicTileWidthChanged();
      }
    }

    Q_PROPERTY(double focusMosaicTileWidth READ focusMosaicTileWidth WRITE setFocusMosaicTileWidth NOTIFY FocusMosaicTileWidthChanged)
    Q_PROPERTY(bool isFocusMosaicTileWidthImmutable READ isFocusMosaicTileWidthImmutable CONSTANT)
    /**
      Get Mosaic filter tile width in percent of the frame width.
    */
    static
    double focusMosaicTileWidth()
    {
      return self()->mFocusMosaicTileWidth;
    }

    /**
      Is Mosaic filter tile width in percent of the frame width. Immutable
    */
    static
    bool isFocusMosaicTileWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusMosaicTileWidth" ) );
    }

    /**
      Set Space between the mosaic elements for the mosaic filter.
    */
    static
    void setFocusMosaicSpace( uint v )
    {
      if (v != self()->mFocusMosaicSpace && !self()->isFocusMosaicSpaceImmutable()) {
        self()->mFocusMosaicSpace = v;
        Q_EMIT self()->focusMosaicSpaceChanged();
      }
    }

    Q_PROPERTY(uint focusMosaicSpace READ focusMosaicSpace WRITE setFocusMosaicSpace NOTIFY focusMosaicSpaceChanged)
    Q_PROPERTY(bool isFocusMosaicSpaceImmutable READ isFocusMosaicSpaceImmutable CONSTANT)
    /**
      Get Space between the mosaic elements for the mosaic filter.
    */
    static
    uint focusMosaicSpace()
    {
      return self()->mFocusMosaicSpace;
    }

    /**
      Is Space between the mosaic elements for the mosaic filter. Immutable
    */
    static
    bool isFocusMosaicSpaceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusMosaicSpace" ) );
    }

    /**
      Set Automatically select a star to focus.
    */
    static
    void setFocusAutoStarEnabled( bool v )
    {
      if (v != self()->mFocusAutoStarEnabled && !self()->isFocusAutoStarEnabledImmutable()) {
        self()->mFocusAutoStarEnabled = v;
        Q_EMIT self()->FocusAutoStarEnabledChanged();
      }
    }

    Q_PROPERTY(bool focusAutoStarEnabled READ focusAutoStarEnabled WRITE setFocusAutoStarEnabled NOTIFY FocusAutoStarEnabledChanged)
    Q_PROPERTY(bool isFocusAutoStarEnabledImmutable READ isFocusAutoStarEnabledImmutable CONSTANT)
    /**
      Get Automatically select a star to focus.
    */
    static
    bool focusAutoStarEnabled()
    {
      return self()->mFocusAutoStarEnabled;
    }

    /**
      Is Automatically select a star to focus. Immutable
    */
    static
    bool isFocusAutoStarEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusAutoStarEnabled" ) );
    }

    /**
      Set Suspend guiding while autofocus in progress.
    */
    static
    void setFocusSuspendGuiding( bool v )
    {
      if (v != self()->mFocusSuspendGuiding && !self()->isFocusSuspendGuidingImmutable()) {
        self()->mFocusSuspendGuiding = v;
        Q_EMIT self()->FocusSuspendGuidingChanged();
      }
    }

    Q_PROPERTY(bool focusSuspendGuiding READ focusSuspendGuiding WRITE setFocusSuspendGuiding NOTIFY FocusSuspendGuidingChanged)
    Q_PROPERTY(bool isFocusSuspendGuidingImmutable READ isFocusSuspendGuidingImmutable CONSTANT)
    /**
      Get Suspend guiding while autofocus in progress.
    */
    static
    bool focusSuspendGuiding()
    {
      return self()->mFocusSuspendGuiding;
    }

    /**
      Is Suspend guiding while autofocus in progress. Immutable
    */
    static
    bool isFocusSuspendGuidingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusSuspendGuiding" ) );
    }

    /**
      Set FocusGuideSettleTime
    */
    static
    void setFocusGuideSettleTime( double v )
    {
      if (v != self()->mFocusGuideSettleTime && !self()->isFocusGuideSettleTimeImmutable()) {
        self()->mFocusGuideSettleTime = v;
        Q_EMIT self()->FocusGuideSettleTimeChanged();
      }
    }

    Q_PROPERTY(double focusGuideSettleTime READ focusGuideSettleTime WRITE setFocusGuideSettleTime NOTIFY FocusGuideSettleTimeChanged)
    Q_PROPERTY(bool isFocusGuideSettleTimeImmutable READ isFocusGuideSettleTimeImmutable CONSTANT)
    /**
      Get FocusGuideSettleTime
    */
    static
    double focusGuideSettleTime()
    {
      return self()->mFocusGuideSettleTime;
    }

    /**
      Is FocusGuideSettleTime Immutable
    */
    static
    bool isFocusGuideSettleTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusGuideSettleTime" ) );
    }

    /**
      Set FocusUnits
    */
    static
    void setFocusUnits( const QString & v )
    {
      if (v != self()->mFocusUnits && !self()->isFocusUnitsImmutable()) {
        self()->mFocusUnits = v;
        Q_EMIT self()->FocusUnitsChanged();
      }
    }

    Q_PROPERTY(QString focusUnits READ focusUnits WRITE setFocusUnits NOTIFY FocusUnitsChanged)
    Q_PROPERTY(bool isFocusUnitsImmutable READ isFocusUnitsImmutable CONSTANT)
    /**
      Get FocusUnits
    */
    static
    QString focusUnits()
    {
      return self()->mFocusUnits;
    }

    /**
      Is FocusUnits Immutable
    */
    static
    bool isFocusUnitsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusUnits" ) );
    }

    /**
      Set FocusAdaptive
    */
    static
    void setFocusAdaptive( bool v )
    {
      if (v != self()->mFocusAdaptive && !self()->isFocusAdaptiveImmutable()) {
        self()->mFocusAdaptive = v;
        Q_EMIT self()->FocusAdaptiveChanged();
      }
    }

    Q_PROPERTY(bool focusAdaptive READ focusAdaptive WRITE setFocusAdaptive NOTIFY FocusAdaptiveChanged)
    Q_PROPERTY(bool isFocusAdaptiveImmutable READ isFocusAdaptiveImmutable CONSTANT)
    /**
      Get FocusAdaptive
    */
    static
    bool focusAdaptive()
    {
      return self()->mFocusAdaptive;
    }

    /**
      Is FocusAdaptive Immutable
    */
    static
    bool isFocusAdaptiveImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusAdaptive" ) );
    }

    /**
      Set focusAdaptiveMinMove
    */
    static
    void setFocusAdaptiveMinMove( uint v )
    {
      if (v != self()->mFocusAdaptiveMinMove && !self()->isFocusAdaptiveMinMoveImmutable()) {
        self()->mFocusAdaptiveMinMove = v;
        Q_EMIT self()->focusAdaptiveMinMoveChanged();
      }
    }

    Q_PROPERTY(uint focusAdaptiveMinMove READ focusAdaptiveMinMove WRITE setFocusAdaptiveMinMove NOTIFY focusAdaptiveMinMoveChanged)
    Q_PROPERTY(bool isFocusAdaptiveMinMoveImmutable READ isFocusAdaptiveMinMoveImmutable CONSTANT)
    /**
      Get focusAdaptiveMinMove
    */
    static
    uint focusAdaptiveMinMove()
    {
      return self()->mFocusAdaptiveMinMove;
    }

    /**
      Is focusAdaptiveMinMove Immutable
    */
    static
    bool isFocusAdaptiveMinMoveImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusAdaptiveMinMove" ) );
    }

    /**
      Set FocusAdaptStart
    */
    static
    void setFocusAdaptStart( bool v )
    {
      if (v != self()->mFocusAdaptStart && !self()->isFocusAdaptStartImmutable()) {
        self()->mFocusAdaptStart = v;
        Q_EMIT self()->FocusAdaptStartChanged();
      }
    }

    Q_PROPERTY(bool focusAdaptStart READ focusAdaptStart WRITE setFocusAdaptStart NOTIFY FocusAdaptStartChanged)
    Q_PROPERTY(bool isFocusAdaptStartImmutable READ isFocusAdaptStartImmutable CONSTANT)
    /**
      Get FocusAdaptStart
    */
    static
    bool focusAdaptStart()
    {
      return self()->mFocusAdaptStart;
    }

    /**
      Is FocusAdaptStart Immutable
    */
    static
    bool isFocusAdaptStartImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusAdaptStart" ) );
    }

    /**
      Set focusAdaptiveMaxMove
    */
    static
    void setFocusAdaptiveMaxMove( uint v )
    {
      if (v != self()->mFocusAdaptiveMaxMove && !self()->isFocusAdaptiveMaxMoveImmutable()) {
        self()->mFocusAdaptiveMaxMove = v;
        Q_EMIT self()->focusAdaptiveMaxMoveChanged();
      }
    }

    Q_PROPERTY(uint focusAdaptiveMaxMove READ focusAdaptiveMaxMove WRITE setFocusAdaptiveMaxMove NOTIFY focusAdaptiveMaxMoveChanged)
    Q_PROPERTY(bool isFocusAdaptiveMaxMoveImmutable READ isFocusAdaptiveMaxMoveImmutable CONSTANT)
    /**
      Get focusAdaptiveMaxMove
    */
    static
    uint focusAdaptiveMaxMove()
    {
      return self()->mFocusAdaptiveMaxMove;
    }

    /**
      Is focusAdaptiveMaxMove Immutable
    */
    static
    bool isFocusAdaptiveMaxMoveImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusAdaptiveMaxMove" ) );
    }

    /**
      Set Star detection algorithm
    */
    static
    void setFocusDetection( const QString & v )
    {
      if (v != self()->mFocusDetection && !self()->isFocusDetectionImmutable()) {
        self()->mFocusDetection = v;
        Q_EMIT self()->FocusDetectionChanged();
      }
    }

    Q_PROPERTY(QString focusDetection READ focusDetection WRITE setFocusDetection NOTIFY FocusDetectionChanged)
    Q_PROPERTY(bool isFocusDetectionImmutable READ isFocusDetectionImmutable CONSTANT)
    /**
      Get Star detection algorithm
    */
    static
    QString focusDetection()
    {
      return self()->mFocusDetection;
    }

    /**
      Is Star detection algorithm Immutable
    */
    static
    bool isFocusDetectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusDetection" ) );
    }

    /**
      Set Focus source extraction profile
    */
    static
    void setFocusSEPProfile( const QString & v )
    {
      if (v != self()->mFocusSEPProfile && !self()->isFocusSEPProfileImmutable()) {
        self()->mFocusSEPProfile = v;
        Q_EMIT self()->FocusSEPProfileChanged();
      }
    }

    Q_PROPERTY(QString focusSEPProfile READ focusSEPProfile WRITE setFocusSEPProfile NOTIFY FocusSEPProfileChanged)
    Q_PROPERTY(bool isFocusSEPProfileImmutable READ isFocusSEPProfileImmutable CONSTANT)
    /**
      Get Focus source extraction profile
    */
    static
    QString focusSEPProfile()
    {
      return self()->mFocusSEPProfile;
    }

    /**
      Is Focus source extraction profile Immutable
    */
    static
    bool isFocusSEPProfileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusSEPProfile" ) );
    }

    /**
      Set Focus process algorithm
    */
    static
    void setFocusAlgorithm( const QString & v )
    {
      if (v != self()->mFocusAlgorithm && !self()->isFocusAlgorithmImmutable()) {
        self()->mFocusAlgorithm = v;
        Q_EMIT self()->FocusAlgorithmChanged();
      }
    }

    Q_PROPERTY(QString focusAlgorithm READ focusAlgorithm WRITE setFocusAlgorithm NOTIFY FocusAlgorithmChanged)
    Q_PROPERTY(bool isFocusAlgorithmImmutable READ isFocusAlgorithmImmutable CONSTANT)
    /**
      Get Focus process algorithm
    */
    static
    QString focusAlgorithm()
    {
      return self()->mFocusAlgorithm;
    }

    /**
      Is Focus process algorithm Immutable
    */
    static
    bool isFocusAlgorithmImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusAlgorithm" ) );
    }

    /**
      Set FocusCurveFit
    */
    static
    void setFocusCurveFit( const QString & v )
    {
      if (v != self()->mFocusCurveFit && !self()->isFocusCurveFitImmutable()) {
        self()->mFocusCurveFit = v;
        Q_EMIT self()->FocusCurveFitChanged();
      }
    }

    Q_PROPERTY(QString focusCurveFit READ focusCurveFit WRITE setFocusCurveFit NOTIFY FocusCurveFitChanged)
    Q_PROPERTY(bool isFocusCurveFitImmutable READ isFocusCurveFitImmutable CONSTANT)
    /**
      Get FocusCurveFit
    */
    static
    QString focusCurveFit()
    {
      return self()->mFocusCurveFit;
    }

    /**
      Is FocusCurveFit Immutable
    */
    static
    bool isFocusCurveFitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusCurveFit" ) );
    }

    /**
      Set FocusStarMeasure
    */
    static
    void setFocusStarMeasure( const QString & v )
    {
      if (v != self()->mFocusStarMeasure && !self()->isFocusStarMeasureImmutable()) {
        self()->mFocusStarMeasure = v;
        Q_EMIT self()->FocusStarMeasureChanged();
      }
    }

    Q_PROPERTY(QString focusStarMeasure READ focusStarMeasure WRITE setFocusStarMeasure NOTIFY FocusStarMeasureChanged)
    Q_PROPERTY(bool isFocusStarMeasureImmutable READ isFocusStarMeasureImmutable CONSTANT)
    /**
      Get FocusStarMeasure
    */
    static
    QString focusStarMeasure()
    {
      return self()->mFocusStarMeasure;
    }

    /**
      Is FocusStarMeasure Immutable
    */
    static
    bool isFocusStarMeasureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusStarMeasure" ) );
    }

    /**
      Set FocusStarPSF
    */
    static
    void setFocusStarPSF( const QString & v )
    {
      if (v != self()->mFocusStarPSF && !self()->isFocusStarPSFImmutable()) {
        self()->mFocusStarPSF = v;
        Q_EMIT self()->FocusStarPSFChanged();
      }
    }

    Q_PROPERTY(QString focusStarPSF READ focusStarPSF WRITE setFocusStarPSF NOTIFY FocusStarPSFChanged)
    Q_PROPERTY(bool isFocusStarPSFImmutable READ isFocusStarPSFImmutable CONSTANT)
    /**
      Get FocusStarPSF
    */
    static
    QString focusStarPSF()
    {
      return self()->mFocusStarPSF;
    }

    /**
      Is FocusStarPSF Immutable
    */
    static
    bool isFocusStarPSFImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusStarPSF" ) );
    }

    /**
      Set FocusUseWeights
    */
    static
    void setFocusUseWeights( bool v )
    {
      if (v != self()->mFocusUseWeights && !self()->isFocusUseWeightsImmutable()) {
        self()->mFocusUseWeights = v;
        Q_EMIT self()->FocusUseWeightsChanged();
      }
    }

    Q_PROPERTY(bool focusUseWeights READ focusUseWeights WRITE setFocusUseWeights NOTIFY FocusUseWeightsChanged)
    Q_PROPERTY(bool isFocusUseWeightsImmutable READ isFocusUseWeightsImmutable CONSTANT)
    /**
      Get FocusUseWeights
    */
    static
    bool focusUseWeights()
    {
      return self()->mFocusUseWeights;
    }

    /**
      Is FocusUseWeights Immutable
    */
    static
    bool isFocusUseWeightsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusUseWeights" ) );
    }

    /**
      Set FocusR2Limit
    */
    static
    void setFocusR2Limit( double v )
    {
      if (v != self()->mFocusR2Limit && !self()->isFocusR2LimitImmutable()) {
        self()->mFocusR2Limit = v;
        Q_EMIT self()->FocusR2LimitChanged();
      }
    }

    Q_PROPERTY(double focusR2Limit READ focusR2Limit WRITE setFocusR2Limit NOTIFY FocusR2LimitChanged)
    Q_PROPERTY(bool isFocusR2LimitImmutable READ isFocusR2LimitImmutable CONSTANT)
    /**
      Get FocusR2Limit
    */
    static
    double focusR2Limit()
    {
      return self()->mFocusR2Limit;
    }

    /**
      Is FocusR2Limit Immutable
    */
    static
    bool isFocusR2LimitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusR2Limit" ) );
    }

    /**
      Set FocusRefineCurveFit
    */
    static
    void setFocusRefineCurveFit( bool v )
    {
      if (v != self()->mFocusRefineCurveFit && !self()->isFocusRefineCurveFitImmutable()) {
        self()->mFocusRefineCurveFit = v;
        Q_EMIT self()->FocusRefineCurveFitChanged();
      }
    }

    Q_PROPERTY(bool focusRefineCurveFit READ focusRefineCurveFit WRITE setFocusRefineCurveFit NOTIFY FocusRefineCurveFitChanged)
    Q_PROPERTY(bool isFocusRefineCurveFitImmutable READ isFocusRefineCurveFitImmutable CONSTANT)
    /**
      Get FocusRefineCurveFit
    */
    static
    bool focusRefineCurveFit()
    {
      return self()->mFocusRefineCurveFit;
    }

    /**
      Is FocusRefineCurveFit Immutable
    */
    static
    bool isFocusRefineCurveFitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusRefineCurveFit" ) );
    }

    /**
      Set focusFramesCount
    */
    static
    void setFocusFramesCount( uint v )
    {
      if (v != self()->mFocusFramesCount && !self()->isFocusFramesCountImmutable()) {
        self()->mFocusFramesCount = v;
        Q_EMIT self()->focusFramesCountChanged();
      }
    }

    Q_PROPERTY(uint focusFramesCount READ focusFramesCount WRITE setFocusFramesCount NOTIFY focusFramesCountChanged)
    Q_PROPERTY(bool isFocusFramesCountImmutable READ isFocusFramesCountImmutable CONSTANT)
    /**
      Get focusFramesCount
    */
    static
    uint focusFramesCount()
    {
      return self()->mFocusFramesCount;
    }

    /**
      Is focusFramesCount Immutable
    */
    static
    bool isFocusFramesCountImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusFramesCount" ) );
    }

    /**
      Set focusHFRFramesCount
    */
    static
    void setFocusHFRFramesCount( uint v )
    {
      if (v != self()->mFocusHFRFramesCount && !self()->isFocusHFRFramesCountImmutable()) {
        self()->mFocusHFRFramesCount = v;
        Q_EMIT self()->focusHFRFramesCountChanged();
      }
    }

    Q_PROPERTY(uint focusHFRFramesCount READ focusHFRFramesCount WRITE setFocusHFRFramesCount NOTIFY focusHFRFramesCountChanged)
    Q_PROPERTY(bool isFocusHFRFramesCountImmutable READ isFocusHFRFramesCountImmutable CONSTANT)
    /**
      Get focusHFRFramesCount
    */
    static
    uint focusHFRFramesCount()
    {
      return self()->mFocusHFRFramesCount;
    }

    /**
      Is focusHFRFramesCount Immutable
    */
    static
    bool isFocusHFRFramesCountImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusHFRFramesCount" ) );
    }

    /**
      Set Number of rows to combine in the Bahtinov average calculation.
    */
    static
    void setFocusMultiRowAverage( int v )
    {
      if (v != self()->mFocusMultiRowAverage && !self()->isFocusMultiRowAverageImmutable()) {
        self()->mFocusMultiRowAverage = v;
        Q_EMIT self()->FocusMultiRowAverageChanged();
      }
    }

    Q_PROPERTY(int focusMultiRowAverage READ focusMultiRowAverage WRITE setFocusMultiRowAverage NOTIFY FocusMultiRowAverageChanged)
    Q_PROPERTY(bool isFocusMultiRowAverageImmutable READ isFocusMultiRowAverageImmutable CONSTANT)
    /**
      Get Number of rows to combine in the Bahtinov average calculation.
    */
    static
    int focusMultiRowAverage()
    {
      return self()->mFocusMultiRowAverage;
    }

    /**
      Is Number of rows to combine in the Bahtinov average calculation. Immutable
    */
    static
    bool isFocusMultiRowAverageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusMultiRowAverage" ) );
    }

    /**
      Set Gaussian blur sigma value.
    */
    static
    void setFocusGaussianSigma( double v )
    {
      if (v != self()->mFocusGaussianSigma && !self()->isFocusGaussianSigmaImmutable()) {
        self()->mFocusGaussianSigma = v;
        Q_EMIT self()->FocusGaussianSigmaChanged();
      }
    }

    Q_PROPERTY(double focusGaussianSigma READ focusGaussianSigma WRITE setFocusGaussianSigma NOTIFY FocusGaussianSigmaChanged)
    Q_PROPERTY(bool isFocusGaussianSigmaImmutable READ isFocusGaussianSigmaImmutable CONSTANT)
    /**
      Get Gaussian blur sigma value.
    */
    static
    double focusGaussianSigma()
    {
      return self()->mFocusGaussianSigma;
    }

    /**
      Is Gaussian blur sigma value. Immutable
    */
    static
    bool isFocusGaussianSigmaImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusGaussianSigma" ) );
    }

    /**
      Set Relative percentage strength of centroid edge pixel strength to average pixel value.
    */
    static
    void setFocusThreshold( double v )
    {
      if (v != self()->mFocusThreshold && !self()->isFocusThresholdImmutable()) {
        self()->mFocusThreshold = v;
        Q_EMIT self()->FocusThresholdChanged();
      }
    }

    Q_PROPERTY(double focusThreshold READ focusThreshold WRITE setFocusThreshold NOTIFY FocusThresholdChanged)
    Q_PROPERTY(bool isFocusThresholdImmutable READ isFocusThresholdImmutable CONSTANT)
    /**
      Get Relative percentage strength of centroid edge pixel strength to average pixel value.
    */
    static
    double focusThreshold()
    {
      return self()->mFocusThreshold;
    }

    /**
      Is Relative percentage strength of centroid edge pixel strength to average pixel value. Immutable
    */
    static
    bool isFocusThresholdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusThreshold" ) );
    }

    /**
      Set FocusDenoise
    */
    static
    void setFocusDenoise( bool v )
    {
      if (v != self()->mFocusDenoise && !self()->isFocusDenoiseImmutable()) {
        self()->mFocusDenoise = v;
        Q_EMIT self()->FocusDenoiseChanged();
      }
    }

    Q_PROPERTY(bool focusDenoise READ focusDenoise WRITE setFocusDenoise NOTIFY FocusDenoiseChanged)
    Q_PROPERTY(bool isFocusDenoiseImmutable READ isFocusDenoiseImmutable CONSTANT)
    /**
      Get FocusDenoise
    */
    static
    bool focusDenoise()
    {
      return self()->mFocusDenoise;
    }

    /**
      Is FocusDenoise Immutable
    */
    static
    bool isFocusDenoiseImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusDenoise" ) );
    }

    /**
      Set FocusDonut
    */
    static
    void setFocusDonut( bool v )
    {
      if (v != self()->mFocusDonut && !self()->isFocusDonutImmutable()) {
        self()->mFocusDonut = v;
        Q_EMIT self()->FocusDonutChanged();
      }
    }

    Q_PROPERTY(bool focusDonut READ focusDonut WRITE setFocusDonut NOTIFY FocusDonutChanged)
    Q_PROPERTY(bool isFocusDonutImmutable READ isFocusDonutImmutable CONSTANT)
    /**
      Get FocusDonut
    */
    static
    bool focusDonut()
    {
      return self()->mFocusDonut;
    }

    /**
      Is FocusDonut Immutable
    */
    static
    bool isFocusDonutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusDonut" ) );
    }

    /**
      Set Factor to multiply focus exposure by for out of focus frames when using Donut Buster.
    */
    static
    void setFocusTimeDilation( double v )
    {
      if (v != self()->mFocusTimeDilation && !self()->isFocusTimeDilationImmutable()) {
        self()->mFocusTimeDilation = v;
        Q_EMIT self()->FocusTimeDilationChanged();
      }
    }

    Q_PROPERTY(double focusTimeDilation READ focusTimeDilation WRITE setFocusTimeDilation NOTIFY FocusTimeDilationChanged)
    Q_PROPERTY(bool isFocusTimeDilationImmutable READ isFocusTimeDilationImmutable CONSTANT)
    /**
      Get Factor to multiply focus exposure by for out of focus frames when using Donut Buster.
    */
    static
    double focusTimeDilation()
    {
      return self()->mFocusTimeDilation;
    }

    /**
      Is Factor to multiply focus exposure by for out of focus frames when using Donut Buster. Immutable
    */
    static
    bool isFocusTimeDilationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusTimeDilation" ) );
    }

    /**
      Set Aggressiveness factor to apply to outlier rejection when using Donut Buster.
    */
    static
    void setFocusOutlierRejection( double v )
    {
      if (v != self()->mFocusOutlierRejection && !self()->isFocusOutlierRejectionImmutable()) {
        self()->mFocusOutlierRejection = v;
        Q_EMIT self()->focusOutlierRejectionChanged();
      }
    }

    Q_PROPERTY(double focusOutlierRejection READ focusOutlierRejection WRITE setFocusOutlierRejection NOTIFY focusOutlierRejectionChanged)
    Q_PROPERTY(bool isFocusOutlierRejectionImmutable READ isFocusOutlierRejectionImmutable CONSTANT)
    /**
      Get Aggressiveness factor to apply to outlier rejection when using Donut Buster.
    */
    static
    double focusOutlierRejection()
    {
      return self()->mFocusOutlierRejection;
    }

    /**
      Is Aggressiveness factor to apply to outlier rejection when using Donut Buster. Immutable
    */
    static
    bool isFocusOutlierRejectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusOutlierRejection" ) );
    }

    /**
      Set focusScanStartPos
    */
    static
    void setFocusScanStartPos( bool v )
    {
      if (v != self()->mFocusScanStartPos && !self()->isFocusScanStartPosImmutable()) {
        self()->mFocusScanStartPos = v;
        Q_EMIT self()->focusScanStartPosChanged();
      }
    }

    Q_PROPERTY(bool focusScanStartPos READ focusScanStartPos WRITE setFocusScanStartPos NOTIFY focusScanStartPosChanged)
    Q_PROPERTY(bool isFocusScanStartPosImmutable READ isFocusScanStartPosImmutable CONSTANT)
    /**
      Get focusScanStartPos
    */
    static
    bool focusScanStartPos()
    {
      return self()->mFocusScanStartPos;
    }

    /**
      Is focusScanStartPos Immutable
    */
    static
    bool isFocusScanStartPosImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusScanStartPos" ) );
    }

    /**
      Set focusScanAlwaysOn
    */
    static
    void setFocusScanAlwaysOn( bool v )
    {
      if (v != self()->mFocusScanAlwaysOn && !self()->isFocusScanAlwaysOnImmutable()) {
        self()->mFocusScanAlwaysOn = v;
        Q_EMIT self()->focusScanAlwaysOnChanged();
      }
    }

    Q_PROPERTY(bool focusScanAlwaysOn READ focusScanAlwaysOn WRITE setFocusScanAlwaysOn NOTIFY focusScanAlwaysOnChanged)
    Q_PROPERTY(bool isFocusScanAlwaysOnImmutable READ isFocusScanAlwaysOnImmutable CONSTANT)
    /**
      Get focusScanAlwaysOn
    */
    static
    bool focusScanAlwaysOn()
    {
      return self()->mFocusScanAlwaysOn;
    }

    /**
      Is focusScanAlwaysOn Immutable
    */
    static
    bool isFocusScanAlwaysOnImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusScanAlwaysOn" ) );
    }

    /**
      Set focusScanDatapoints
    */
    static
    void setFocusScanDatapoints( uint v )
    {
      if (v != self()->mFocusScanDatapoints && !self()->isFocusScanDatapointsImmutable()) {
        self()->mFocusScanDatapoints = v;
        Q_EMIT self()->focusScanDatapointsChanged();
      }
    }

    Q_PROPERTY(uint focusScanDatapoints READ focusScanDatapoints WRITE setFocusScanDatapoints NOTIFY focusScanDatapointsChanged)
    Q_PROPERTY(bool isFocusScanDatapointsImmutable READ isFocusScanDatapointsImmutable CONSTANT)
    /**
      Get focusScanDatapoints
    */
    static
    uint focusScanDatapoints()
    {
      return self()->mFocusScanDatapoints;
    }

    /**
      Is focusScanDatapoints Immutable
    */
    static
    bool isFocusScanDatapointsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusScanDatapoints" ) );
    }

    /**
      Set Factor to apply to Initial Step Size during scan when focusScanStartPos is checked.
    */
    static
    void setFocusScanStepSizeFactor( double v )
    {
      if (v != self()->mFocusScanStepSizeFactor && !self()->isFocusScanStepSizeFactorImmutable()) {
        self()->mFocusScanStepSizeFactor = v;
        Q_EMIT self()->focusScanStepSizeFactorChanged();
      }
    }

    Q_PROPERTY(double focusScanStepSizeFactor READ focusScanStepSizeFactor WRITE setFocusScanStepSizeFactor NOTIFY focusScanStepSizeFactorChanged)
    Q_PROPERTY(bool isFocusScanStepSizeFactorImmutable READ isFocusScanStepSizeFactorImmutable CONSTANT)
    /**
      Get Factor to apply to Initial Step Size during scan when focusScanStartPos is checked.
    */
    static
    double focusScanStepSizeFactor()
    {
      return self()->mFocusScanStepSizeFactor;
    }

    /**
      Is Factor to apply to Initial Step Size during scan when focusScanStartPos is checked. Immutable
    */
    static
    bool isFocusScanStepSizeFactorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusScanStepSizeFactor" ) );
    }

    /**
      Set Gaussian blur kernel size.
    */
    static
    void setFocusGaussianKernelSize( int v )
    {
      if (v != self()->mFocusGaussianKernelSize && !self()->isFocusGaussianKernelSizeImmutable()) {
        self()->mFocusGaussianKernelSize = v;
        Q_EMIT self()->FocusGaussianKernelSizeChanged();
      }
    }

    Q_PROPERTY(int focusGaussianKernelSize READ focusGaussianKernelSize WRITE setFocusGaussianKernelSize NOTIFY FocusGaussianKernelSizeChanged)
    Q_PROPERTY(bool isFocusGaussianKernelSizeImmutable READ isFocusGaussianKernelSizeImmutable CONSTANT)
    /**
      Get Gaussian blur kernel size.
    */
    static
    int focusGaussianKernelSize()
    {
      return self()->mFocusGaussianKernelSize;
    }

    /**
      Is Gaussian blur kernel size. Immutable
    */
    static
    bool isFocusGaussianKernelSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusGaussianKernelSize" ) );
    }

    /**
      Set Default Focuser tolerance value
    */
    static
    void setFocusTolerance( double v )
    {
      if (v != self()->mFocusTolerance && !self()->isFocusToleranceImmutable()) {
        self()->mFocusTolerance = v;
        Q_EMIT self()->FocusToleranceChanged();
      }
    }

    Q_PROPERTY(double focusTolerance READ focusTolerance WRITE setFocusTolerance NOTIFY FocusToleranceChanged)
    Q_PROPERTY(bool isFocusToleranceImmutable READ isFocusToleranceImmutable CONSTANT)
    /**
      Get Default Focuser tolerance value
    */
    static
    double focusTolerance()
    {
      return self()->mFocusTolerance;
    }

    /**
      Is Default Focuser tolerance value Immutable
    */
    static
    bool isFocusToleranceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusTolerance" ) );
    }

    /**
      Set FocusWalk
    */
    static
    void setFocusWalk( const QString & v )
    {
      if (v != self()->mFocusWalk && !self()->isFocusWalkImmutable()) {
        self()->mFocusWalk = v;
        Q_EMIT self()->FocusWalkChanged();
      }
    }

    Q_PROPERTY(QString focusWalk READ focusWalk WRITE setFocusWalk NOTIFY FocusWalkChanged)
    Q_PROPERTY(bool isFocusWalkImmutable READ isFocusWalkImmutable CONSTANT)
    /**
      Get FocusWalk
    */
    static
    QString focusWalk()
    {
      return self()->mFocusWalk;
    }

    /**
      Is FocusWalk Immutable
    */
    static
    bool isFocusWalkImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusWalk" ) );
    }

    /**
      Set FocusSettleTime
    */
    static
    void setFocusSettleTime( double v )
    {
      if (v != self()->mFocusSettleTime && !self()->isFocusSettleTimeImmutable()) {
        self()->mFocusSettleTime = v;
        Q_EMIT self()->FocusSettleTimeChanged();
      }
    }

    Q_PROPERTY(double focusSettleTime READ focusSettleTime WRITE setFocusSettleTime NOTIFY FocusSettleTimeChanged)
    Q_PROPERTY(bool isFocusSettleTimeImmutable READ isFocusSettleTimeImmutable CONSTANT)
    /**
      Get FocusSettleTime
    */
    static
    double focusSettleTime()
    {
      return self()->mFocusSettleTime;
    }

    /**
      Is FocusSettleTime Immutable
    */
    static
    bool isFocusSettleTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusSettleTime" ) );
    }

    /**
      Set Default Focuser step ticks
    */
    static
    void setFocusTicks( uint v )
    {
      if (v != self()->mFocusTicks && !self()->isFocusTicksImmutable()) {
        self()->mFocusTicks = v;
        Q_EMIT self()->FocusTicksChanged();
      }
    }

    Q_PROPERTY(uint focusTicks READ focusTicks WRITE setFocusTicks NOTIFY FocusTicksChanged)
    Q_PROPERTY(bool isFocusTicksImmutable READ isFocusTicksImmutable CONSTANT)
    /**
      Get Default Focuser step ticks
    */
    static
    uint focusTicks()
    {
      return self()->mFocusTicks;
    }

    /**
      Is Default Focuser step ticks Immutable
    */
    static
    bool isFocusTicksImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusTicks" ) );
    }

    /**
      Set FocusOutSteps
    */
    static
    void setFocusOutSteps( double v )
    {
      if (v != self()->mFocusOutSteps && !self()->isFocusOutStepsImmutable()) {
        self()->mFocusOutSteps = v;
        Q_EMIT self()->FocusOutStepsChanged();
      }
    }

    Q_PROPERTY(double focusOutSteps READ focusOutSteps WRITE setFocusOutSteps NOTIFY FocusOutStepsChanged)
    Q_PROPERTY(bool isFocusOutStepsImmutable READ isFocusOutStepsImmutable CONSTANT)
    /**
      Get FocusOutSteps
    */
    static
    double focusOutSteps()
    {
      return self()->mFocusOutSteps;
    }

    /**
      Is FocusOutSteps Immutable
    */
    static
    bool isFocusOutStepsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusOutSteps" ) );
    }

    /**
      Set focusNumSteps
    */
    static
    void setFocusNumSteps( uint v )
    {
      if (v != self()->mFocusNumSteps && !self()->isFocusNumStepsImmutable()) {
        self()->mFocusNumSteps = v;
        Q_EMIT self()->focusNumStepsChanged();
      }
    }

    Q_PROPERTY(uint focusNumSteps READ focusNumSteps WRITE setFocusNumSteps NOTIFY focusNumStepsChanged)
    Q_PROPERTY(bool isFocusNumStepsImmutable READ isFocusNumStepsImmutable CONSTANT)
    /**
      Get focusNumSteps
    */
    static
    uint focusNumSteps()
    {
      return self()->mFocusNumSteps;
    }

    /**
      Is focusNumSteps Immutable
    */
    static
    bool isFocusNumStepsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusNumSteps" ) );
    }

    /**
      Set Maximum Focus Travel Distance
    */
    static
    void setFocusMaxTravel( uint v )
    {
      if (v != self()->mFocusMaxTravel && !self()->isFocusMaxTravelImmutable()) {
        self()->mFocusMaxTravel = v;
        Q_EMIT self()->FocusMaxTravelChanged();
      }
    }

    Q_PROPERTY(uint focusMaxTravel READ focusMaxTravel WRITE setFocusMaxTravel NOTIFY FocusMaxTravelChanged)
    Q_PROPERTY(bool isFocusMaxTravelImmutable READ isFocusMaxTravelImmutable CONSTANT)
    /**
      Get Maximum Focus Travel Distance
    */
    static
    uint focusMaxTravel()
    {
      return self()->mFocusMaxTravel;
    }

    /**
      Is Maximum Focus Travel Distance Immutable
    */
    static
    bool isFocusMaxTravelImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusMaxTravel" ) );
    }

    /**
      Set FocusMaxSingleStep
    */
    static
    void setFocusMaxSingleStep( uint v )
    {
      if (v != self()->mFocusMaxSingleStep && !self()->isFocusMaxSingleStepImmutable()) {
        self()->mFocusMaxSingleStep = v;
        Q_EMIT self()->FocusMaxSingleStepChanged();
      }
    }

    Q_PROPERTY(uint focusMaxSingleStep READ focusMaxSingleStep WRITE setFocusMaxSingleStep NOTIFY FocusMaxSingleStepChanged)
    Q_PROPERTY(bool isFocusMaxSingleStepImmutable READ isFocusMaxSingleStepImmutable CONSTANT)
    /**
      Get FocusMaxSingleStep
    */
    static
    uint focusMaxSingleStep()
    {
      return self()->mFocusMaxSingleStep;
    }

    /**
      Is FocusMaxSingleStep Immutable
    */
    static
    bool isFocusMaxSingleStepImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusMaxSingleStep" ) );
    }

    /**
      Set FocusBacklash
    */
    static
    void setFocusBacklash( uint v )
    {
      if (v != self()->mFocusBacklash && !self()->isFocusBacklashImmutable()) {
        self()->mFocusBacklash = v;
        Q_EMIT self()->FocusBacklashChanged();
      }
    }

    Q_PROPERTY(uint focusBacklash READ focusBacklash WRITE setFocusBacklash NOTIFY FocusBacklashChanged)
    Q_PROPERTY(bool isFocusBacklashImmutable READ isFocusBacklashImmutable CONSTANT)
    /**
      Get FocusBacklash
    */
    static
    uint focusBacklash()
    {
      return self()->mFocusBacklash;
    }

    /**
      Is FocusBacklash Immutable
    */
    static
    bool isFocusBacklashImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusBacklash" ) );
    }

    /**
      Set FocusAFOverscan
    */
    static
    void setFocusAFOverscan( uint v )
    {
      if (v != self()->mFocusAFOverscan && !self()->isFocusAFOverscanImmutable()) {
        self()->mFocusAFOverscan = v;
        Q_EMIT self()->FocusAFOverscanChanged();
      }
    }

    Q_PROPERTY(uint focusAFOverscan READ focusAFOverscan WRITE setFocusAFOverscan NOTIFY FocusAFOverscanChanged)
    Q_PROPERTY(bool isFocusAFOverscanImmutable READ isFocusAFOverscanImmutable CONSTANT)
    /**
      Get FocusAFOverscan
    */
    static
    uint focusAFOverscan()
    {
      return self()->mFocusAFOverscan;
    }

    /**
      Is FocusAFOverscan Immutable
    */
    static
    bool isFocusAFOverscanImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusAFOverscan" ) );
    }

    /**
      Set FocusOverscanDelay
    */
    static
    void setFocusOverscanDelay( double v )
    {
      if (v != self()->mFocusOverscanDelay && !self()->isFocusOverscanDelayImmutable()) {
        self()->mFocusOverscanDelay = v;
        Q_EMIT self()->FocusOverscanDelayChanged();
      }
    }

    Q_PROPERTY(double focusOverscanDelay READ focusOverscanDelay WRITE setFocusOverscanDelay NOTIFY FocusOverscanDelayChanged)
    Q_PROPERTY(bool isFocusOverscanDelayImmutable READ isFocusOverscanDelayImmutable CONSTANT)
    /**
      Get FocusOverscanDelay
    */
    static
    double focusOverscanDelay()
    {
      return self()->mFocusOverscanDelay;
    }

    /**
      Is FocusOverscanDelay Immutable
    */
    static
    bool isFocusOverscanDelayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusOverscanDelay" ) );
    }

    /**
      Set FocusCaptureTimeout
    */
    static
    void setFocusCaptureTimeout( uint v )
    {
      if (v != self()->mFocusCaptureTimeout && !self()->isFocusCaptureTimeoutImmutable()) {
        self()->mFocusCaptureTimeout = v;
        Q_EMIT self()->FocusCaptureTimeoutChanged();
      }
    }

    Q_PROPERTY(uint focusCaptureTimeout READ focusCaptureTimeout WRITE setFocusCaptureTimeout NOTIFY FocusCaptureTimeoutChanged)
    Q_PROPERTY(bool isFocusCaptureTimeoutImmutable READ isFocusCaptureTimeoutImmutable CONSTANT)
    /**
      Get FocusCaptureTimeout
    */
    static
    uint focusCaptureTimeout()
    {
      return self()->mFocusCaptureTimeout;
    }

    /**
      Is FocusCaptureTimeout Immutable
    */
    static
    bool isFocusCaptureTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusCaptureTimeout" ) );
    }

    /**
      Set FocusMotionTimeout
    */
    static
    void setFocusMotionTimeout( uint v )
    {
      if (v != self()->mFocusMotionTimeout && !self()->isFocusMotionTimeoutImmutable()) {
        self()->mFocusMotionTimeout = v;
        Q_EMIT self()->FocusMotionTimeoutChanged();
      }
    }

    Q_PROPERTY(uint focusMotionTimeout READ focusMotionTimeout WRITE setFocusMotionTimeout NOTIFY FocusMotionTimeoutChanged)
    Q_PROPERTY(bool isFocusMotionTimeoutImmutable READ isFocusMotionTimeoutImmutable CONSTANT)
    /**
      Get FocusMotionTimeout
    */
    static
    uint focusMotionTimeout()
    {
      return self()->mFocusMotionTimeout;
    }

    /**
      Is FocusMotionTimeout Immutable
    */
    static
    bool isFocusMotionTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusMotionTimeout" ) );
    }

    /**
      Set focusCFZAlgorithm
    */
    static
    void setFocusCFZAlgorithm( const QString & v )
    {
      if (v != self()->mFocusCFZAlgorithm && !self()->isFocusCFZAlgorithmImmutable()) {
        self()->mFocusCFZAlgorithm = v;
        Q_EMIT self()->focusCFZAlgorithmChanged();
      }
    }

    Q_PROPERTY(QString focusCFZAlgorithm READ focusCFZAlgorithm WRITE setFocusCFZAlgorithm NOTIFY focusCFZAlgorithmChanged)
    Q_PROPERTY(bool isFocusCFZAlgorithmImmutable READ isFocusCFZAlgorithmImmutable CONSTANT)
    /**
      Get focusCFZAlgorithm
    */
    static
    QString focusCFZAlgorithm()
    {
      return self()->mFocusCFZAlgorithm;
    }

    /**
      Is focusCFZAlgorithm Immutable
    */
    static
    bool isFocusCFZAlgorithmImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusCFZAlgorithm" ) );
    }

    /**
      Set focusCFZTolerance
    */
    static
    void setFocusCFZTolerance( double v )
    {
      if (v != self()->mFocusCFZTolerance && !self()->isFocusCFZToleranceImmutable()) {
        self()->mFocusCFZTolerance = v;
        Q_EMIT self()->focusCFZToleranceChanged();
      }
    }

    Q_PROPERTY(double focusCFZTolerance READ focusCFZTolerance WRITE setFocusCFZTolerance NOTIFY focusCFZToleranceChanged)
    Q_PROPERTY(bool isFocusCFZToleranceImmutable READ isFocusCFZToleranceImmutable CONSTANT)
    /**
      Get focusCFZTolerance
    */
    static
    double focusCFZTolerance()
    {
      return self()->mFocusCFZTolerance;
    }

    /**
      Is focusCFZTolerance Immutable
    */
    static
    bool isFocusCFZToleranceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusCFZTolerance" ) );
    }

    /**
      Set focusCFZTau
    */
    static
    void setFocusCFZTau( double v )
    {
      if (v != self()->mFocusCFZTau && !self()->isFocusCFZTauImmutable()) {
        self()->mFocusCFZTau = v;
        Q_EMIT self()->focusCFZTauChanged();
      }
    }

    Q_PROPERTY(double focusCFZTau READ focusCFZTau WRITE setFocusCFZTau NOTIFY focusCFZTauChanged)
    Q_PROPERTY(bool isFocusCFZTauImmutable READ isFocusCFZTauImmutable CONSTANT)
    /**
      Get focusCFZTau
    */
    static
    double focusCFZTau()
    {
      return self()->mFocusCFZTau;
    }

    /**
      Is focusCFZTau Immutable
    */
    static
    bool isFocusCFZTauImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusCFZTau" ) );
    }

    /**
      Set focusCFZDisplayVCurve
    */
    static
    void setFocusCFZDisplayVCurve( bool v )
    {
      if (v != self()->mFocusCFZDisplayVCurve && !self()->isFocusCFZDisplayVCurveImmutable()) {
        self()->mFocusCFZDisplayVCurve = v;
        Q_EMIT self()->focusCFZDisplayVCurveChanged();
      }
    }

    Q_PROPERTY(bool focusCFZDisplayVCurve READ focusCFZDisplayVCurve WRITE setFocusCFZDisplayVCurve NOTIFY focusCFZDisplayVCurveChanged)
    Q_PROPERTY(bool isFocusCFZDisplayVCurveImmutable READ isFocusCFZDisplayVCurveImmutable CONSTANT)
    /**
      Get focusCFZDisplayVCurve
    */
    static
    bool focusCFZDisplayVCurve()
    {
      return self()->mFocusCFZDisplayVCurve;
    }

    /**
      Is focusCFZDisplayVCurve Immutable
    */
    static
    bool isFocusCFZDisplayVCurveImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusCFZDisplayVCurve" ) );
    }

    /**
      Set focusCFZWavelength
    */
    static
    void setFocusCFZWavelength( double v )
    {
      if (v != self()->mFocusCFZWavelength && !self()->isFocusCFZWavelengthImmutable()) {
        self()->mFocusCFZWavelength = v;
        Q_EMIT self()->focusCFZWavelengthChanged();
      }
    }

    Q_PROPERTY(double focusCFZWavelength READ focusCFZWavelength WRITE setFocusCFZWavelength NOTIFY focusCFZWavelengthChanged)
    Q_PROPERTY(bool isFocusCFZWavelengthImmutable READ isFocusCFZWavelengthImmutable CONSTANT)
    /**
      Get focusCFZWavelength
    */
    static
    double focusCFZWavelength()
    {
      return self()->mFocusCFZWavelength;
    }

    /**
      Is focusCFZWavelength Immutable
    */
    static
    bool isFocusCFZWavelengthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusCFZWavelength" ) );
    }

    /**
      Set focusCFZAperture
    */
    static
    void setFocusCFZAperture( uint v )
    {
      if (v != self()->mFocusCFZAperture && !self()->isFocusCFZApertureImmutable()) {
        self()->mFocusCFZAperture = v;
        Q_EMIT self()->focusCFZApertureChanged();
      }
    }

    Q_PROPERTY(uint focusCFZAperture READ focusCFZAperture WRITE setFocusCFZAperture NOTIFY focusCFZApertureChanged)
    Q_PROPERTY(bool isFocusCFZApertureImmutable READ isFocusCFZApertureImmutable CONSTANT)
    /**
      Get focusCFZAperture
    */
    static
    uint focusCFZAperture()
    {
      return self()->mFocusCFZAperture;
    }

    /**
      Is focusCFZAperture Immutable
    */
    static
    bool isFocusCFZApertureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusCFZAperture" ) );
    }

    /**
      Set focusCFZFNumber
    */
    static
    void setFocusCFZFNumber( double v )
    {
      if (v != self()->mFocusCFZFNumber && !self()->isFocusCFZFNumberImmutable()) {
        self()->mFocusCFZFNumber = v;
        Q_EMIT self()->focusCFZFNumberChanged();
      }
    }

    Q_PROPERTY(double focusCFZFNumber READ focusCFZFNumber WRITE setFocusCFZFNumber NOTIFY focusCFZFNumberChanged)
    Q_PROPERTY(bool isFocusCFZFNumberImmutable READ isFocusCFZFNumberImmutable CONSTANT)
    /**
      Get focusCFZFNumber
    */
    static
    double focusCFZFNumber()
    {
      return self()->mFocusCFZFNumber;
    }

    /**
      Is focusCFZFNumber Immutable
    */
    static
    bool isFocusCFZFNumberImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusCFZFNumber" ) );
    }

    /**
      Set focusCFZSeeing
    */
    static
    void setFocusCFZSeeing( double v )
    {
      if (v != self()->mFocusCFZSeeing && !self()->isFocusCFZSeeingImmutable()) {
        self()->mFocusCFZSeeing = v;
        Q_EMIT self()->focusCFZSeeingChanged();
      }
    }

    Q_PROPERTY(double focusCFZSeeing READ focusCFZSeeing WRITE setFocusCFZSeeing NOTIFY focusCFZSeeingChanged)
    Q_PROPERTY(bool isFocusCFZSeeingImmutable READ isFocusCFZSeeingImmutable CONSTANT)
    /**
      Get focusCFZSeeing
    */
    static
    double focusCFZSeeing()
    {
      return self()->mFocusCFZSeeing;
    }

    /**
      Is focusCFZSeeing Immutable
    */
    static
    bool isFocusCFZSeeingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusCFZSeeing" ) );
    }

    /**
      Set focusCFZStepSize
    */
    static
    void setFocusCFZStepSize( double v )
    {
      if (v != self()->mFocusCFZStepSize && !self()->isFocusCFZStepSizeImmutable()) {
        self()->mFocusCFZStepSize = v;
        Q_EMIT self()->focusCFZStepSizeChanged();
      }
    }

    Q_PROPERTY(double focusCFZStepSize READ focusCFZStepSize WRITE setFocusCFZStepSize NOTIFY focusCFZStepSizeChanged)
    Q_PROPERTY(bool isFocusCFZStepSizeImmutable READ isFocusCFZStepSizeImmutable CONSTANT)
    /**
      Get focusCFZStepSize
    */
    static
    double focusCFZStepSize()
    {
      return self()->mFocusCFZStepSize;
    }

    /**
      Is focusCFZStepSize Immutable
    */
    static
    bool isFocusCFZStepSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusCFZStepSize" ) );
    }

    /**
      Set focusAdvHelpOnlyChanges
    */
    static
    void setFocusAdvHelpOnlyChanges( bool v )
    {
      if (v != self()->mFocusAdvHelpOnlyChanges && !self()->isFocusAdvHelpOnlyChangesImmutable()) {
        self()->mFocusAdvHelpOnlyChanges = v;
        Q_EMIT self()->focusAdvHelpOnlyChangesChanged();
      }
    }

    Q_PROPERTY(bool focusAdvHelpOnlyChanges READ focusAdvHelpOnlyChanges WRITE setFocusAdvHelpOnlyChanges NOTIFY focusAdvHelpOnlyChangesChanged)
    Q_PROPERTY(bool isFocusAdvHelpOnlyChangesImmutable READ isFocusAdvHelpOnlyChangesImmutable CONSTANT)
    /**
      Get focusAdvHelpOnlyChanges
    */
    static
    bool focusAdvHelpOnlyChanges()
    {
      return self()->mFocusAdvHelpOnlyChanges;
    }

    /**
      Is focusAdvHelpOnlyChanges Immutable
    */
    static
    bool isFocusAdvHelpOnlyChangesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusAdvHelpOnlyChanges" ) );
    }

    /**
      Set focusAdvUpdateParams
    */
    static
    void setFocusAdvUpdateParams( bool v )
    {
      if (v != self()->mFocusAdvUpdateParams && !self()->isFocusAdvUpdateParamsImmutable()) {
        self()->mFocusAdvUpdateParams = v;
        Q_EMIT self()->focusAdvUpdateParamsChanged();
      }
    }

    Q_PROPERTY(bool focusAdvUpdateParams READ focusAdvUpdateParams WRITE setFocusAdvUpdateParams NOTIFY focusAdvUpdateParamsChanged)
    Q_PROPERTY(bool isFocusAdvUpdateParamsImmutable READ isFocusAdvUpdateParamsImmutable CONSTANT)
    /**
      Get focusAdvUpdateParams
    */
    static
    bool focusAdvUpdateParams()
    {
      return self()->mFocusAdvUpdateParams;
    }

    /**
      Is focusAdvUpdateParams Immutable
    */
    static
    bool isFocusAdvUpdateParamsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusAdvUpdateParams" ) );
    }

    /**
      Set focusAdvFindStars
    */
    static
    void setFocusAdvFindStars( bool v )
    {
      if (v != self()->mFocusAdvFindStars && !self()->isFocusAdvFindStarsImmutable()) {
        self()->mFocusAdvFindStars = v;
        Q_EMIT self()->focusAdvFindStarsChanged();
      }
    }

    Q_PROPERTY(bool focusAdvFindStars READ focusAdvFindStars WRITE setFocusAdvFindStars NOTIFY focusAdvFindStarsChanged)
    Q_PROPERTY(bool isFocusAdvFindStarsImmutable READ isFocusAdvFindStarsImmutable CONSTANT)
    /**
      Get focusAdvFindStars
    */
    static
    bool focusAdvFindStars()
    {
      return self()->mFocusAdvFindStars;
    }

    /**
      Is focusAdvFindStars Immutable
    */
    static
    bool isFocusAdvFindStarsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusAdvFindStars" ) );
    }

    /**
      Set focusAdvCourseAdj
    */
    static
    void setFocusAdvCourseAdj( bool v )
    {
      if (v != self()->mFocusAdvCourseAdj && !self()->isFocusAdvCourseAdjImmutable()) {
        self()->mFocusAdvCourseAdj = v;
        Q_EMIT self()->focusAdvCourseAdjChanged();
      }
    }

    Q_PROPERTY(bool focusAdvCourseAdj READ focusAdvCourseAdj WRITE setFocusAdvCourseAdj NOTIFY focusAdvCourseAdjChanged)
    Q_PROPERTY(bool isFocusAdvCourseAdjImmutable READ isFocusAdvCourseAdjImmutable CONSTANT)
    /**
      Get focusAdvCourseAdj
    */
    static
    bool focusAdvCourseAdj()
    {
      return self()->mFocusAdvCourseAdj;
    }

    /**
      Is focusAdvCourseAdj Immutable
    */
    static
    bool isFocusAdvCourseAdjImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusAdvCourseAdj" ) );
    }

    /**
      Set focusAdvFineAdj
    */
    static
    void setFocusAdvFineAdj( bool v )
    {
      if (v != self()->mFocusAdvFineAdj && !self()->isFocusAdvFineAdjImmutable()) {
        self()->mFocusAdvFineAdj = v;
        Q_EMIT self()->focusAdvFineAdjChanged();
      }
    }

    Q_PROPERTY(bool focusAdvFineAdj READ focusAdvFineAdj WRITE setFocusAdvFineAdj NOTIFY focusAdvFineAdjChanged)
    Q_PROPERTY(bool isFocusAdvFineAdjImmutable READ isFocusAdvFineAdjImmutable CONSTANT)
    /**
      Get focusAdvFineAdj
    */
    static
    bool focusAdvFineAdj()
    {
      return self()->mFocusAdvFineAdj;
    }

    /**
      Is focusAdvFineAdj Immutable
    */
    static
    bool isFocusAdvFineAdjImmutable()
    {
      return self()->isImmutable( QStringLiteral( "focusAdvFineAdj" ) );
    }

    /**
      Set Position of FocusSplitter.
    */
    static
    void setFocusSplitter( const QString & v )
    {
      if (v != self()->mFocusSplitter && !self()->isFocusSplitterImmutable()) {
        self()->mFocusSplitter = v;
        Q_EMIT self()->FocusSplitterChanged();
      }
    }

    Q_PROPERTY(QString focusSplitter READ focusSplitter WRITE setFocusSplitter NOTIFY FocusSplitterChanged)
    Q_PROPERTY(bool isFocusSplitterImmutable READ isFocusSplitterImmutable CONSTANT)
    /**
      Get Position of FocusSplitter.
    */
    static
    QString focusSplitter()
    {
      return self()->mFocusSplitter;
    }

    /**
      Is Position of FocusSplitter. Immutable
    */
    static
    bool isFocusSplitterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusSplitter" ) );
    }

    /**
      Set Position of rightLayout.
    */
    static
    void setRightLayout( const QString & v )
    {
      if (v != self()->mRightLayout && !self()->isRightLayoutImmutable()) {
        self()->mRightLayout = v;
        Q_EMIT self()->rightLayoutChanged();
      }
    }

    Q_PROPERTY(QString rightLayout READ rightLayout WRITE setRightLayout NOTIFY rightLayoutChanged)
    Q_PROPERTY(bool isRightLayoutImmutable READ isRightLayoutImmutable CONSTANT)
    /**
      Get Position of rightLayout.
    */
    static
    QString rightLayout()
    {
      return self()->mRightLayout;
    }

    /**
      Is Position of rightLayout. Immutable
    */
    static
    bool isRightLayoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "rightLayout" ) );
    }

    /**
      Set adaptFocusBFO
    */
    static
    void setAdaptFocusBFO( bool v )
    {
      if (v != self()->mAdaptFocusBFO && !self()->isAdaptFocusBFOImmutable()) {
        self()->mAdaptFocusBFO = v;
        Q_EMIT self()->adaptFocusBFOChanged();
      }
    }

    Q_PROPERTY(bool adaptFocusBFO READ adaptFocusBFO WRITE setAdaptFocusBFO NOTIFY adaptFocusBFOChanged)
    Q_PROPERTY(bool isAdaptFocusBFOImmutable READ isAdaptFocusBFOImmutable CONSTANT)
    /**
      Get adaptFocusBFO
    */
    static
    bool adaptFocusBFO()
    {
      return self()->mAdaptFocusBFO;
    }

    /**
      Is adaptFocusBFO Immutable
    */
    static
    bool isAdaptFocusBFOImmutable()
    {
      return self()->isImmutable( QStringLiteral( "adaptFocusBFO" ) );
    }

    /**
      Set abInsTileSelection
    */
    static
    void setAbInsTileSelection( const QString & v )
    {
      if (v != self()->mAbInsTileSelection && !self()->isAbInsTileSelectionImmutable()) {
        self()->mAbInsTileSelection = v;
        Q_EMIT self()->abInsTileSelectionChanged();
      }
    }

    Q_PROPERTY(QString abInsTileSelection READ abInsTileSelection WRITE setAbInsTileSelection NOTIFY abInsTileSelectionChanged)
    Q_PROPERTY(bool isAbInsTileSelectionImmutable READ isAbInsTileSelectionImmutable CONSTANT)
    /**
      Get abInsTileSelection
    */
    static
    QString abInsTileSelection()
    {
      return self()->mAbInsTileSelection;
    }

    /**
      Is abInsTileSelection Immutable
    */
    static
    bool isAbInsTileSelectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsTileSelection" ) );
    }

    /**
      Set Show Max Min labels on Aberration Inspector graph.
    */
    static
    void setAbInsShowLabels( bool v )
    {
      if (v != self()->mAbInsShowLabels && !self()->isAbInsShowLabelsImmutable()) {
        self()->mAbInsShowLabels = v;
        Q_EMIT self()->abInsShowLabelsChanged();
      }
    }

    Q_PROPERTY(bool abInsShowLabels READ abInsShowLabels WRITE setAbInsShowLabels NOTIFY abInsShowLabelsChanged)
    Q_PROPERTY(bool isAbInsShowLabelsImmutable READ isAbInsShowLabelsImmutable CONSTANT)
    /**
      Get Show Max Min labels on Aberration Inspector graph.
    */
    static
    bool abInsShowLabels()
    {
      return self()->mAbInsShowLabels;
    }

    /**
      Is Show Max Min labels on Aberration Inspector graph. Immutable
    */
    static
    bool isAbInsShowLabelsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsShowLabels" ) );
    }

    /**
      Set Show Critical Focus Zone on Aberration Inspector graph.
    */
    static
    void setAbInsShowCFZ( bool v )
    {
      if (v != self()->mAbInsShowCFZ && !self()->isAbInsShowCFZImmutable()) {
        self()->mAbInsShowCFZ = v;
        Q_EMIT self()->abInsShowCFZChanged();
      }
    }

    Q_PROPERTY(bool abInsShowCFZ READ abInsShowCFZ WRITE setAbInsShowCFZ NOTIFY abInsShowCFZChanged)
    Q_PROPERTY(bool isAbInsShowCFZImmutable READ isAbInsShowCFZImmutable CONSTANT)
    /**
      Get Show Critical Focus Zone on Aberration Inspector graph.
    */
    static
    bool abInsShowCFZ()
    {
      return self()->mAbInsShowCFZ;
    }

    /**
      Is Show Critical Focus Zone on Aberration Inspector graph. Immutable
    */
    static
    bool isAbInsShowCFZImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsShowCFZ" ) );
    }

    /**
      Set Whether to optimise tile centres used in Aberration Inspector calcs.
    */
    static
    void setAbInsOptCentres( bool v )
    {
      if (v != self()->mAbInsOptCentres && !self()->isAbInsOptCentresImmutable()) {
        self()->mAbInsOptCentres = v;
        Q_EMIT self()->abInsOptCentresChanged();
      }
    }

    Q_PROPERTY(bool abInsOptCentres READ abInsOptCentres WRITE setAbInsOptCentres NOTIFY abInsOptCentresChanged)
    Q_PROPERTY(bool isAbInsOptCentresImmutable READ isAbInsOptCentresImmutable CONSTANT)
    /**
      Get Whether to optimise tile centres used in Aberration Inspector calcs.
    */
    static
    bool abInsOptCentres()
    {
      return self()->mAbInsOptCentres;
    }

    /**
      Is Whether to optimise tile centres used in Aberration Inspector calcs. Immutable
    */
    static
    bool isAbInsOptCentresImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsOptCentres" ) );
    }

    /**
      Set Position of HSplitter in Aberration Inspector.
    */
    static
    void setAbInsHSplitter( const QString & v )
    {
      if (v != self()->mAbInsHSplitter && !self()->isAbInsHSplitterImmutable()) {
        self()->mAbInsHSplitter = v;
        Q_EMIT self()->abInsHSplitterChanged();
      }
    }

    Q_PROPERTY(QString abInsHSplitter READ abInsHSplitter WRITE setAbInsHSplitter NOTIFY abInsHSplitterChanged)
    Q_PROPERTY(bool isAbInsHSplitterImmutable READ isAbInsHSplitterImmutable CONSTANT)
    /**
      Get Position of HSplitter in Aberration Inspector.
    */
    static
    QString abInsHSplitter()
    {
      return self()->mAbInsHSplitter;
    }

    /**
      Is Position of HSplitter in Aberration Inspector. Immutable
    */
    static
    bool isAbInsHSplitterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsHSplitter" ) );
    }

    /**
      Set Position of VSplitter in Aberration Inspector.
    */
    static
    void setAbInsVSplitter( const QString & v )
    {
      if (v != self()->mAbInsVSplitter && !self()->isAbInsVSplitterImmutable()) {
        self()->mAbInsVSplitter = v;
        Q_EMIT self()->abInsVSplitterChanged();
      }
    }

    Q_PROPERTY(QString abInsVSplitter READ abInsVSplitter WRITE setAbInsVSplitter NOTIFY abInsVSplitterChanged)
    Q_PROPERTY(bool isAbInsVSplitterImmutable READ isAbInsVSplitterImmutable CONSTANT)
    /**
      Get Position of VSplitter in Aberration Inspector.
    */
    static
    QString abInsVSplitter()
    {
      return self()->mAbInsVSplitter;
    }

    /**
      Is Position of VSplitter in Aberration Inspector. Immutable
    */
    static
    bool isAbInsVSplitterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsVSplitter" ) );
    }

    /**
      Set abInsSelection
    */
    static
    void setAbInsSelection( const QString & v )
    {
      if (v != self()->mAbInsSelection && !self()->isAbInsSelectionImmutable()) {
        self()->mAbInsSelection = v;
        Q_EMIT self()->abInsSelectionChanged();
      }
    }

    Q_PROPERTY(QString abInsSelection READ abInsSelection WRITE setAbInsSelection NOTIFY abInsSelectionChanged)
    Q_PROPERTY(bool isAbInsSelectionImmutable READ isAbInsSelectionImmutable CONSTANT)
    /**
      Get abInsSelection
    */
    static
    QString abInsSelection()
    {
      return self()->mAbInsSelection;
    }

    /**
      Is abInsSelection Immutable
    */
    static
    bool isAbInsSelectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsSelection" ) );
    }

    /**
      Set abInsTheme
    */
    static
    void setAbInsTheme( const QString & v )
    {
      if (v != self()->mAbInsTheme && !self()->isAbInsThemeImmutable()) {
        self()->mAbInsTheme = v;
        Q_EMIT self()->abInsThemeChanged();
      }
    }

    Q_PROPERTY(QString abInsTheme READ abInsTheme WRITE setAbInsTheme NOTIFY abInsThemeChanged)
    Q_PROPERTY(bool isAbInsThemeImmutable READ isAbInsThemeImmutable CONSTANT)
    /**
      Get abInsTheme
    */
    static
    QString abInsTheme()
    {
      return self()->mAbInsTheme;
    }

    /**
      Is abInsTheme Immutable
    */
    static
    bool isAbInsThemeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsTheme" ) );
    }

    /**
      Set Aberration Inspector 3D graphic show labels.
    */
    static
    void setAbInsLabels( bool v )
    {
      if (v != self()->mAbInsLabels && !self()->isAbInsLabelsImmutable()) {
        self()->mAbInsLabels = v;
        Q_EMIT self()->abInsLabelsChanged();
      }
    }

    Q_PROPERTY(bool abInsLabels READ abInsLabels WRITE setAbInsLabels NOTIFY abInsLabelsChanged)
    Q_PROPERTY(bool isAbInsLabelsImmutable READ isAbInsLabelsImmutable CONSTANT)
    /**
      Get Aberration Inspector 3D graphic show labels.
    */
    static
    bool abInsLabels()
    {
      return self()->mAbInsLabels;
    }

    /**
      Is Aberration Inspector 3D graphic show labels. Immutable
    */
    static
    bool isAbInsLabelsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsLabels" ) );
    }

    /**
      Set Aberration Inspector 3D graphic show sensor.
    */
    static
    void setAbInsSensor( bool v )
    {
      if (v != self()->mAbInsSensor && !self()->isAbInsSensorImmutable()) {
        self()->mAbInsSensor = v;
        Q_EMIT self()->abInsSensorChanged();
      }
    }

    Q_PROPERTY(bool abInsSensor READ abInsSensor WRITE setAbInsSensor NOTIFY abInsSensorChanged)
    Q_PROPERTY(bool isAbInsSensorImmutable READ isAbInsSensorImmutable CONSTANT)
    /**
      Get Aberration Inspector 3D graphic show sensor.
    */
    static
    bool abInsSensor()
    {
      return self()->mAbInsSensor;
    }

    /**
      Is Aberration Inspector 3D graphic show sensor. Immutable
    */
    static
    bool isAbInsSensorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsSensor" ) );
    }

    /**
      Set Aberration Inspector 3D graphic show Petzval wire.
    */
    static
    void setAbInsPetzvalWire( bool v )
    {
      if (v != self()->mAbInsPetzvalWire && !self()->isAbInsPetzvalWireImmutable()) {
        self()->mAbInsPetzvalWire = v;
        Q_EMIT self()->abInsPetzvalWireChanged();
      }
    }

    Q_PROPERTY(bool abInsPetzvalWire READ abInsPetzvalWire WRITE setAbInsPetzvalWire NOTIFY abInsPetzvalWireChanged)
    Q_PROPERTY(bool isAbInsPetzvalWireImmutable READ isAbInsPetzvalWireImmutable CONSTANT)
    /**
      Get Aberration Inspector 3D graphic show Petzval wire.
    */
    static
    bool abInsPetzvalWire()
    {
      return self()->mAbInsPetzvalWire;
    }

    /**
      Is Aberration Inspector 3D graphic show Petzval wire. Immutable
    */
    static
    bool isAbInsPetzvalWireImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsPetzvalWire" ) );
    }

    /**
      Set Aberration Inspector 3D graphic show Petzval surface.
    */
    static
    void setAbInsPetzvalSurface( bool v )
    {
      if (v != self()->mAbInsPetzvalSurface && !self()->isAbInsPetzvalSurfaceImmutable()) {
        self()->mAbInsPetzvalSurface = v;
        Q_EMIT self()->abInsPetzvalSurfaceChanged();
      }
    }

    Q_PROPERTY(bool abInsPetzvalSurface READ abInsPetzvalSurface WRITE setAbInsPetzvalSurface NOTIFY abInsPetzvalSurfaceChanged)
    Q_PROPERTY(bool isAbInsPetzvalSurfaceImmutable READ isAbInsPetzvalSurfaceImmutable CONSTANT)
    /**
      Get Aberration Inspector 3D graphic show Petzval surface.
    */
    static
    bool abInsPetzvalSurface()
    {
      return self()->mAbInsPetzvalSurface;
    }

    /**
      Is Aberration Inspector 3D graphic show Petzval surface. Immutable
    */
    static
    bool isAbInsPetzvalSurfaceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abInsPetzvalSurface" ) );
    }

    /**
      Set Tilt Correction Advisory plate type (0=3-point, 1=4-point).
    */
    static
    void setTiltPlateType( uint v )
    {
      if (v != self()->mTiltPlateType && !self()->isTiltPlateTypeImmutable()) {
        self()->mTiltPlateType = v;
        Q_EMIT self()->tiltPlateTypeChanged();
      }
    }

    Q_PROPERTY(uint tiltPlateType READ tiltPlateType WRITE setTiltPlateType NOTIFY tiltPlateTypeChanged)
    Q_PROPERTY(bool isTiltPlateTypeImmutable READ isTiltPlateTypeImmutable CONSTANT)
    /**
      Get Tilt Correction Advisory plate type (0=3-point, 1=4-point).
    */
    static
    uint tiltPlateType()
    {
      return self()->mTiltPlateType;
    }

    /**
      Is Tilt Correction Advisory plate type (0=3-point, 1=4-point). Immutable
    */
    static
    bool isTiltPlateTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "tiltPlateType" ) );
    }

    /**
      Set Tilt plate bolt circle radius in mm.
    */
    static
    void setTiltRadius( double v )
    {
      if (v != self()->mTiltRadius && !self()->isTiltRadiusImmutable()) {
        self()->mTiltRadius = v;
        Q_EMIT self()->tiltRadiusChanged();
      }
    }

    Q_PROPERTY(double tiltRadius READ tiltRadius WRITE setTiltRadius NOTIFY tiltRadiusChanged)
    Q_PROPERTY(bool isTiltRadiusImmutable READ isTiltRadiusImmutable CONSTANT)
    /**
      Get Tilt plate bolt circle radius in mm.
    */
    static
    double tiltRadius()
    {
      return self()->mTiltRadius;
    }

    /**
      Is Tilt plate bolt circle radius in mm. Immutable
    */
    static
    bool isTiltRadiusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "tiltRadius" ) );
    }

    /**
      Set Tilt Correction Advisory thread preset index.
    */
    static
    void setTiltThreadIndex( uint v )
    {
      if (v != self()->mTiltThreadIndex && !self()->isTiltThreadIndexImmutable()) {
        self()->mTiltThreadIndex = v;
        Q_EMIT self()->tiltThreadIndexChanged();
      }
    }

    Q_PROPERTY(uint tiltThreadIndex READ tiltThreadIndex WRITE setTiltThreadIndex NOTIFY tiltThreadIndexChanged)
    Q_PROPERTY(bool isTiltThreadIndexImmutable READ isTiltThreadIndexImmutable CONSTANT)
    /**
      Get Tilt Correction Advisory thread preset index.
    */
    static
    uint tiltThreadIndex()
    {
      return self()->mTiltThreadIndex;
    }

    /**
      Is Tilt Correction Advisory thread preset index. Immutable
    */
    static
    bool isTiltThreadIndexImmutable()
    {
      return self()->isImmutable( QStringLiteral( "tiltThreadIndex" ) );
    }

    /**
      Set Tilt plate screw pitch in mm per turn.
    */
    static
    void setTiltScrewPitch( double v )
    {
      if (v != self()->mTiltScrewPitch && !self()->isTiltScrewPitchImmutable()) {
        self()->mTiltScrewPitch = v;
        Q_EMIT self()->tiltScrewPitchChanged();
      }
    }

    Q_PROPERTY(double tiltScrewPitch READ tiltScrewPitch WRITE setTiltScrewPitch NOTIFY tiltScrewPitchChanged)
    Q_PROPERTY(bool isTiltScrewPitchImmutable READ isTiltScrewPitchImmutable CONSTANT)
    /**
      Get Tilt plate screw pitch in mm per turn.
    */
    static
    double tiltScrewPitch()
    {
      return self()->mTiltScrewPitch;
    }

    /**
      Is Tilt plate screw pitch in mm per turn. Immutable
    */
    static
    bool isTiltScrewPitchImmutable()
    {
      return self()->isImmutable( QStringLiteral( "tiltScrewPitch" ) );
    }

    /**
      Set Camera rotation for tilt correction diagram in degrees.
    */
    static
    void setTiltRotation( double v )
    {
      if (v != self()->mTiltRotation && !self()->isTiltRotationImmutable()) {
        self()->mTiltRotation = v;
        Q_EMIT self()->tiltRotationChanged();
      }
    }

    Q_PROPERTY(double tiltRotation READ tiltRotation WRITE setTiltRotation NOTIFY tiltRotationChanged)
    Q_PROPERTY(bool isTiltRotationImmutable READ isTiltRotationImmutable CONSTANT)
    /**
      Get Camera rotation for tilt correction diagram in degrees.
    */
    static
    double tiltRotation()
    {
      return self()->mTiltRotation;
    }

    /**
      Is Camera rotation for tilt correction diagram in degrees. Immutable
    */
    static
    bool isTiltRotationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "tiltRotation" ) );
    }

    /**
      Set Tilt Correction Advisory mode (0=relative, 1=push-only).
    */
    static
    void setTiltMode( uint v )
    {
      if (v != self()->mTiltMode && !self()->isTiltModeImmutable()) {
        self()->mTiltMode = v;
        Q_EMIT self()->tiltModeChanged();
      }
    }

    Q_PROPERTY(uint tiltMode READ tiltMode WRITE setTiltMode NOTIFY tiltModeChanged)
    Q_PROPERTY(bool isTiltModeImmutable READ isTiltModeImmutable CONSTANT)
    /**
      Get Tilt Correction Advisory mode (0=relative, 1=push-only).
    */
    static
    uint tiltMode()
    {
      return self()->mTiltMode;
    }

    /**
      Is Tilt Correction Advisory mode (0=relative, 1=push-only). Immutable
    */
    static
    bool isTiltModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "tiltMode" ) );
    }

    /**
      Set Whether a tilt adjustment plate is present in the imaging train.
    */
    static
    void setTiltPlatePresent( bool v )
    {
      if (v != self()->mTiltPlatePresent && !self()->isTiltPlatePresentImmutable()) {
        self()->mTiltPlatePresent = v;
        Q_EMIT self()->tiltPlatePresentChanged();
      }
    }

    Q_PROPERTY(bool tiltPlatePresent READ tiltPlatePresent WRITE setTiltPlatePresent NOTIFY tiltPlatePresentChanged)
    Q_PROPERTY(bool isTiltPlatePresentImmutable READ isTiltPlatePresentImmutable CONSTANT)
    /**
      Get Whether a tilt adjustment plate is present in the imaging train.
    */
    static
    bool tiltPlatePresent()
    {
      return self()->mTiltPlatePresent;
    }

    /**
      Is Whether a tilt adjustment plate is present in the imaging train. Immutable
    */
    static
    bool isTiltPlatePresentImmutable()
    {
      return self()->isImmutable( QStringLiteral( "tiltPlatePresent" ) );
    }

    /**
      Set Internal or External Sextractor for Focusing.
    */
    static
    void setFocusSextractorType( uint v )
    {
      if (v != self()->mFocusSextractorType && !self()->isFocusSextractorTypeImmutable()) {
        self()->mFocusSextractorType = v;
        Q_EMIT self()->FocusSextractorTypeChanged();
      }
    }

    Q_PROPERTY(uint focusSextractorType READ focusSextractorType WRITE setFocusSextractorType NOTIFY FocusSextractorTypeChanged)
    Q_PROPERTY(bool isFocusSextractorTypeImmutable READ isFocusSextractorTypeImmutable CONSTANT)
    /**
      Get Internal or External Sextractor for Focusing.
    */
    static
    uint focusSextractorType()
    {
      return self()->mFocusSextractorType;
    }

    /**
      Is Internal or External Sextractor for Focusing. Immutable
    */
    static
    bool isFocusSextractorTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusSextractorType" ) );
    }

    /**
      Set Options Profile for Sextraction when Focusing.
    */
    static
    void setFocusOptionsProfile( uint v )
    {
      if (v != self()->mFocusOptionsProfile && !self()->isFocusOptionsProfileImmutable()) {
        self()->mFocusOptionsProfile = v;
        Q_EMIT self()->FocusOptionsProfileChanged();
      }
    }

    Q_PROPERTY(uint focusOptionsProfile READ focusOptionsProfile WRITE setFocusOptionsProfile NOTIFY FocusOptionsProfileChanged)
    Q_PROPERTY(bool isFocusOptionsProfileImmutable READ isFocusOptionsProfileImmutable CONSTANT)
    /**
      Get Options Profile for Sextraction when Focusing.
    */
    static
    uint focusOptionsProfile()
    {
      return self()->mFocusOptionsProfile;
    }

    /**
      Is Options Profile for Sextraction when Focusing. Immutable
    */
    static
    bool isFocusOptionsProfileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusOptionsProfile" ) );
    }

    /**
      Set Internal or External Sextractor to compute subs HFR.
    */
    static
    void setHFRSextractorType( uint v )
    {
      if (v != self()->mHFRSextractorType && !self()->isHFRSextractorTypeImmutable()) {
        self()->mHFRSextractorType = v;
        Q_EMIT self()->HFRSextractorTypeChanged();
      }
    }

    Q_PROPERTY(uint hFRSextractorType READ hFRSextractorType WRITE setHFRSextractorType NOTIFY HFRSextractorTypeChanged)
    Q_PROPERTY(bool isHFRSextractorTypeImmutable READ isHFRSextractorTypeImmutable CONSTANT)
    /**
      Get Internal or External Sextractor to compute subs HFR.
    */
    static
    uint hFRSextractorType()
    {
      return self()->mHFRSextractorType;
    }

    /**
      Is Internal or External Sextractor to compute subs HFR. Immutable
    */
    static
    bool isHFRSextractorTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HFRSextractorType" ) );
    }

    /**
      Set Options Profile for Sextraction to compute subs HFR
    */
    static
    void setHFROptionsProfile( uint v )
    {
      if (v != self()->mHFROptionsProfile && !self()->isHFROptionsProfileImmutable()) {
        self()->mHFROptionsProfile = v;
        Q_EMIT self()->HFROptionsProfileChanged();
      }
    }

    Q_PROPERTY(uint hFROptionsProfile READ hFROptionsProfile WRITE setHFROptionsProfile NOTIFY HFROptionsProfileChanged)
    Q_PROPERTY(bool isHFROptionsProfileImmutable READ isHFROptionsProfileImmutable CONSTANT)
    /**
      Get Options Profile for Sextraction to compute subs HFR
    */
    static
    uint hFROptionsProfile()
    {
      return self()->mHFROptionsProfile;
    }

    /**
      Is Options Profile for Sextraction to compute subs HFR Immutable
    */
    static
    bool isHFROptionsProfileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HFROptionsProfile" ) );
    }

    /**
      Set Internal or External Sextractor for Guiding.
    */
    static
    void setGuideSextractorType( uint v )
    {
      if (v != self()->mGuideSextractorType && !self()->isGuideSextractorTypeImmutable()) {
        self()->mGuideSextractorType = v;
        Q_EMIT self()->GuideSextractorTypeChanged();
      }
    }

    Q_PROPERTY(uint guideSextractorType READ guideSextractorType WRITE setGuideSextractorType NOTIFY GuideSextractorTypeChanged)
    Q_PROPERTY(bool isGuideSextractorTypeImmutable READ isGuideSextractorTypeImmutable CONSTANT)
    /**
      Get Internal or External Sextractor for Guiding.
    */
    static
    uint guideSextractorType()
    {
      return self()->mGuideSextractorType;
    }

    /**
      Is Internal or External Sextractor for Guiding. Immutable
    */
    static
    bool isGuideSextractorTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideSextractorType" ) );
    }

    /**
      Set Options Profile for Sextraction when Guiding.
    */
    static
    void setGuideOptionsProfile( uint v )
    {
      if (v != self()->mGuideOptionsProfile && !self()->isGuideOptionsProfileImmutable()) {
        self()->mGuideOptionsProfile = v;
        Q_EMIT self()->GuideOptionsProfileChanged();
      }
    }

    Q_PROPERTY(uint guideOptionsProfile READ guideOptionsProfile WRITE setGuideOptionsProfile NOTIFY GuideOptionsProfileChanged)
    Q_PROPERTY(bool isGuideOptionsProfileImmutable READ isGuideOptionsProfileImmutable CONSTANT)
    /**
      Get Options Profile for Sextraction when Guiding.
    */
    static
    uint guideOptionsProfile()
    {
      return self()->mGuideOptionsProfile;
    }

    /**
      Is Options Profile for Sextraction when Guiding. Immutable
    */
    static
    bool isGuideOptionsProfileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideOptionsProfile" ) );
    }

    /**
      Set Internal, External, or BuiltIn Sextractor for Solving.
    */
    static
    void setSolveSextractorType( uint v )
    {
      if (v != self()->mSolveSextractorType && !self()->isSolveSextractorTypeImmutable()) {
        self()->mSolveSextractorType = v;
        Q_EMIT self()->SolveSextractorTypeChanged();
      }
    }

    Q_PROPERTY(uint solveSextractorType READ solveSextractorType WRITE setSolveSextractorType NOTIFY SolveSextractorTypeChanged)
    Q_PROPERTY(bool isSolveSextractorTypeImmutable READ isSolveSextractorTypeImmutable CONSTANT)
    /**
      Get Internal, External, or BuiltIn Sextractor for Solving.
    */
    static
    uint solveSextractorType()
    {
      return self()->mSolveSextractorType;
    }

    /**
      Is Internal, External, or BuiltIn Sextractor for Solving. Immutable
    */
    static
    bool isSolveSextractorTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SolveSextractorType" ) );
    }

    /**
      Set Local (0) or Remote (1) solver.
    */
    static
    void setSolverMode( uint v )
    {
      if (v != self()->mSolverMode && !self()->isSolverModeImmutable()) {
        self()->mSolverMode = v;
        Q_EMIT self()->SolverModeChanged();
      }
    }

    Q_PROPERTY(uint solverMode READ solverMode WRITE setSolverMode NOTIFY SolverModeChanged)
    Q_PROPERTY(bool isSolverModeImmutable READ isSolverModeImmutable CONSTANT)
    /**
      Get Local (0) or Remote (1) solver.
    */
    static
    uint solverMode()
    {
      return self()->mSolverMode;
    }

    /**
      Is Local (0) or Remote (1) solver. Immutable
    */
    static
    bool isSolverModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SolverMode" ) );
    }

    /**
      Set Local solving method. 0 for Internal Solver. 1 for Local Astrometry. 2 for Local ASTAP. 3 for Online Astrometry.
    */
    static
    void setSolverType( uint v )
    {
      if (v != self()->mSolverType && !self()->isSolverTypeImmutable()) {
        self()->mSolverType = v;
        Q_EMIT self()->SolverTypeChanged();
      }
    }

    Q_PROPERTY(uint solverType READ solverType WRITE setSolverType NOTIFY SolverTypeChanged)
    Q_PROPERTY(bool isSolverTypeImmutable READ isSolverTypeImmutable CONSTANT)
    /**
      Get Local solving method. 0 for Internal Solver. 1 for Local Astrometry. 2 for Local ASTAP. 3 for Online Astrometry.
    */
    static
    uint solverType()
    {
      return self()->mSolverType;
    }

    /**
      Is Local solving method. 0 for Internal Solver. 1 for Local Astrometry. 2 for Local ASTAP. 3 for Online Astrometry. Immutable
    */
    static
    bool isSolverTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SolverType" ) );
    }

    /**
      Set Options Profile for Solving.
    */
    static
    void setSolveOptionsProfile( uint v )
    {
      if (v != self()->mSolveOptionsProfile && !self()->isSolveOptionsProfileImmutable()) {
        self()->mSolveOptionsProfile = v;
        Q_EMIT self()->SolveOptionsProfileChanged();
      }
    }

    Q_PROPERTY(uint solveOptionsProfile READ solveOptionsProfile WRITE setSolveOptionsProfile NOTIFY SolveOptionsProfileChanged)
    Q_PROPERTY(bool isSolveOptionsProfileImmutable READ isSolveOptionsProfileImmutable CONSTANT)
    /**
      Get Options Profile for Solving.
    */
    static
    uint solveOptionsProfile()
    {
      return self()->mSolveOptionsProfile;
    }

    /**
      Is Options Profile for Solving. Immutable
    */
    static
    bool isSolveOptionsProfileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SolveOptionsProfile" ) );
    }

    /**
      Set Level of verbosity in the log.
    */
    static
    void setLoggerLevel( uint v )
    {
      if (v != self()->mLoggerLevel && !self()->isLoggerLevelImmutable()) {
        self()->mLoggerLevel = v;
        Q_EMIT self()->LoggerLevelChanged();
      }
    }

    Q_PROPERTY(uint loggerLevel READ loggerLevel WRITE setLoggerLevel NOTIFY LoggerLevelChanged)
    Q_PROPERTY(bool isLoggerLevelImmutable READ isLoggerLevelImmutable CONSTANT)
    /**
      Get Level of verbosity in the log.
    */
    static
    uint loggerLevel()
    {
      return self()->mLoggerLevel;
    }

    /**
      Is Level of verbosity in the log. Immutable
    */
    static
    bool isLoggerLevelImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LoggerLevel" ) );
    }

    /**
      Set Whether to log to a file instead.
    */
    static
    void setAstrometryLogToFile( bool v )
    {
      if (v != self()->mAstrometryLogToFile && !self()->isAstrometryLogToFileImmutable()) {
        self()->mAstrometryLogToFile = v;
        Q_EMIT self()->AstrometryLogToFileChanged();
      }
    }

    Q_PROPERTY(bool astrometryLogToFile READ astrometryLogToFile WRITE setAstrometryLogToFile NOTIFY AstrometryLogToFileChanged)
    Q_PROPERTY(bool isAstrometryLogToFileImmutable READ isAstrometryLogToFileImmutable CONSTANT)
    /**
      Get Whether to log to a file instead.
    */
    static
    bool astrometryLogToFile()
    {
      return self()->mAstrometryLogToFile;
    }

    /**
      Is Whether to log to a file instead. Immutable
    */
    static
    bool isAstrometryLogToFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryLogToFile" ) );
    }

    /**
      Set Path of the log file to save astrometry logging to.
    */
    static
    void setAstrometryLogFilepath( const QString & v )
    {
      if (v != self()->mAstrometryLogFilepath && !self()->isAstrometryLogFilepathImmutable()) {
        self()->mAstrometryLogFilepath = v;
        Q_EMIT self()->AstrometryLogFilepathChanged();
      }
    }

    Q_PROPERTY(QString astrometryLogFilepath READ astrometryLogFilepath WRITE setAstrometryLogFilepath NOTIFY AstrometryLogFilepathChanged)
    Q_PROPERTY(bool isAstrometryLogFilepathImmutable READ isAstrometryLogFilepathImmutable CONSTANT)
    /**
      Get Path of the log file to save astrometry logging to.
    */
    static
    QString astrometryLogFilepath()
    {
      return self()->mAstrometryLogFilepath;
    }

    /**
      Is Path of the log file to save astrometry logging to. Immutable
    */
    static
    bool isAstrometryLogFilepathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryLogFilepath" ) );
    }

    /**
      Set List of index folder paths.
    */
    static
    void setAstrometryIndexFolderList( const QStringList & v )
    {
      if (v != self()->mAstrometryIndexFolderList && !self()->isAstrometryIndexFolderListImmutable()) {
        self()->mAstrometryIndexFolderList = v;
        Q_EMIT self()->AstrometryIndexFolderListChanged();
      }
    }

    Q_PROPERTY(QStringList astrometryIndexFolderList READ astrometryIndexFolderList WRITE setAstrometryIndexFolderList NOTIFY AstrometryIndexFolderListChanged)
    Q_PROPERTY(bool isAstrometryIndexFolderListImmutable READ isAstrometryIndexFolderListImmutable CONSTANT)
    /**
      Get List of index folder paths.
    */
    static
    QStringList astrometryIndexFolderList()
    {
      return self()->mAstrometryIndexFolderList;
    }

    /**
      Is List of index folder paths. Immutable
    */
    static
    bool isAstrometryIndexFolderListImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryIndexFolderList" ) );
    }

    /**
      Set Default alignment exposure value
    */
    static
    void setAlignExposure( double v )
    {
      if (v != self()->mAlignExposure && !self()->isAlignExposureImmutable()) {
        self()->mAlignExposure = v;
        Q_EMIT self()->AlignExposureChanged();
      }
    }

    Q_PROPERTY(double alignExposure READ alignExposure WRITE setAlignExposure NOTIFY AlignExposureChanged)
    Q_PROPERTY(bool isAlignExposureImmutable READ isAlignExposureImmutable CONSTANT)
    /**
      Get Default alignment exposure value
    */
    static
    double alignExposure()
    {
      return self()->mAlignExposure;
    }

    /**
      Is Default alignment exposure value Immutable
    */
    static
    bool isAlignExposureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignExposure" ) );
    }

    /**
      Set Default camera binning in alignment mode
    */
    static
    void setAlignBinning( const QString & v )
    {
      if (v != self()->mAlignBinning && !self()->isAlignBinningImmutable()) {
        self()->mAlignBinning = v;
        Q_EMIT self()->AlignBinningChanged();
      }
    }

    Q_PROPERTY(QString alignBinning READ alignBinning WRITE setAlignBinning NOTIFY AlignBinningChanged)
    Q_PROPERTY(bool isAlignBinningImmutable READ isAlignBinningImmutable CONSTANT)
    /**
      Get Default camera binning in alignment mode
    */
    static
    QString alignBinning()
    {
      return self()->mAlignBinning;
    }

    /**
      Is Default camera binning in alignment mode Immutable
    */
    static
    bool isAlignBinningImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignBinning" ) );
    }

    /**
      Set Default camera gain in alignment mode
    */
    static
    void setAlignGain( double v )
    {
      if (v != self()->mAlignGain && !self()->isAlignGainImmutable()) {
        self()->mAlignGain = v;
        Q_EMIT self()->AlignGainChanged();
      }
    }

    Q_PROPERTY(double alignGain READ alignGain WRITE setAlignGain NOTIFY AlignGainChanged)
    Q_PROPERTY(bool isAlignGainImmutable READ isAlignGainImmutable CONSTANT)
    /**
      Get Default camera gain in alignment mode
    */
    static
    double alignGain()
    {
      return self()->mAlignGain;
    }

    /**
      Is Default camera gain in alignment mode Immutable
    */
    static
    bool isAlignGainImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignGain" ) );
    }

    /**
      Set Default camera ISO in alignment mode
    */
    static
    void setAlignISO( double v )
    {
      if (v != self()->mAlignISO && !self()->isAlignISOImmutable()) {
        self()->mAlignISO = v;
        Q_EMIT self()->AlignISOChanged();
      }
    }

    Q_PROPERTY(double alignISO READ alignISO WRITE setAlignISO NOTIFY AlignISOChanged)
    Q_PROPERTY(bool isAlignISOImmutable READ isAlignISOImmutable CONSTANT)
    /**
      Get Default camera ISO in alignment mode
    */
    static
    double alignISO()
    {
      return self()->mAlignISO;
    }

    /**
      Is Default camera ISO in alignment mode Immutable
    */
    static
    bool isAlignISOImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignISO" ) );
    }

    /**
      Set Take a dark frame and subtract it before running astrometry operation.
    */
    static
    void setAlignDarkFrame( bool v )
    {
      if (v != self()->mAlignDarkFrame && !self()->isAlignDarkFrameImmutable()) {
        self()->mAlignDarkFrame = v;
        Q_EMIT self()->AlignDarkFrameChanged();
      }
    }

    Q_PROPERTY(bool alignDarkFrame READ alignDarkFrame WRITE setAlignDarkFrame NOTIFY AlignDarkFrameChanged)
    Q_PROPERTY(bool isAlignDarkFrameImmutable READ isAlignDarkFrameImmutable CONSTANT)
    /**
      Get Take a dark frame and subtract it before running astrometry operation.
    */
    static
    bool alignDarkFrame()
    {
      return self()->mAlignDarkFrame;
    }

    /**
      Is Take a dark frame and subtract it before running astrometry operation. Immutable
    */
    static
    bool isAlignDarkFrameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignDarkFrame" ) );
    }

    /**
      Set Default filter wheel filter in alignment mode
    */
    static
    void setAlignFilter( const QString & v )
    {
      if (v != self()->mAlignFilter && !self()->isAlignFilterImmutable()) {
        self()->mAlignFilter = v;
        Q_EMIT self()->AlignFilterChanged();
      }
    }

    Q_PROPERTY(QString alignFilter READ alignFilter WRITE setAlignFilter NOTIFY AlignFilterChanged)
    Q_PROPERTY(bool isAlignFilterImmutable READ isAlignFilterImmutable CONSTANT)
    /**
      Get Default filter wheel filter in alignment mode
    */
    static
    QString alignFilter()
    {
      return self()->mAlignFilter;
    }

    /**
      Is Default filter wheel filter in alignment mode Immutable
    */
    static
    bool isAlignFilterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignFilter" ) );
    }

    /**
      Set Use currently selected filter in alignment mode.
    */
    static
    void setAlignUseCurrentFilter( bool v )
    {
      if (v != self()->mAlignUseCurrentFilter && !self()->isAlignUseCurrentFilterImmutable()) {
        self()->mAlignUseCurrentFilter = v;
        Q_EMIT self()->AlignUseCurrentFilterChanged();
      }
    }

    Q_PROPERTY(bool alignUseCurrentFilter READ alignUseCurrentFilter WRITE setAlignUseCurrentFilter NOTIFY AlignUseCurrentFilterChanged)
    Q_PROPERTY(bool isAlignUseCurrentFilterImmutable READ isAlignUseCurrentFilterImmutable CONSTANT)
    /**
      Get Use currently selected filter in alignment mode.
    */
    static
    bool alignUseCurrentFilter()
    {
      return self()->mAlignUseCurrentFilter;
    }

    /**
      Is Use currently selected filter in alignment mode. Immutable
    */
    static
    bool isAlignUseCurrentFilterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignUseCurrentFilter" ) );
    }

    /**
      Set AstrometryUseRotator
    */
    static
    void setAstrometryUseRotator( bool v )
    {
      if (v != self()->mAstrometryUseRotator && !self()->isAstrometryUseRotatorImmutable()) {
        self()->mAstrometryUseRotator = v;
        Q_EMIT self()->AstrometryUseRotatorChanged();
      }
    }

    Q_PROPERTY(bool astrometryUseRotator READ astrometryUseRotator WRITE setAstrometryUseRotator NOTIFY AstrometryUseRotatorChanged)
    Q_PROPERTY(bool isAstrometryUseRotatorImmutable READ isAstrometryUseRotatorImmutable CONSTANT)
    /**
      Get AstrometryUseRotator
    */
    static
    bool astrometryUseRotator()
    {
      return self()->mAstrometryUseRotator;
    }

    /**
      Is AstrometryUseRotator Immutable
    */
    static
    bool isAstrometryUseRotatorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryUseRotator" ) );
    }

    /**
      Set AstrometryRotatorThreshold
    */
    static
    void setAstrometryRotatorThreshold( double v )
    {
      if (v != self()->mAstrometryRotatorThreshold && !self()->isAstrometryRotatorThresholdImmutable()) {
        self()->mAstrometryRotatorThreshold = v;
        Q_EMIT self()->AstrometryRotatorThresholdChanged();
      }
    }

    Q_PROPERTY(double astrometryRotatorThreshold READ astrometryRotatorThreshold WRITE setAstrometryRotatorThreshold NOTIFY AstrometryRotatorThresholdChanged)
    Q_PROPERTY(bool isAstrometryRotatorThresholdImmutable READ isAstrometryRotatorThresholdImmutable CONSTANT)
    /**
      Get AstrometryRotatorThreshold
    */
    static
    double astrometryRotatorThreshold()
    {
      return self()->mAstrometryRotatorThreshold;
    }

    /**
      Is AstrometryRotatorThreshold Immutable
    */
    static
    bool isAstrometryRotatorThresholdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryRotatorThreshold" ) );
    }

    /**
      Set AstrometryFlipRotationAllowed
    */
    static
    void setAstrometryFlipRotationAllowed( bool v )
    {
      if (v != self()->mAstrometryFlipRotationAllowed && !self()->isAstrometryFlipRotationAllowedImmutable()) {
        self()->mAstrometryFlipRotationAllowed = v;
        Q_EMIT self()->AstrometryFlipRotationAllowedChanged();
      }
    }

    Q_PROPERTY(bool astrometryFlipRotationAllowed READ astrometryFlipRotationAllowed WRITE setAstrometryFlipRotationAllowed NOTIFY AstrometryFlipRotationAllowedChanged)
    Q_PROPERTY(bool isAstrometryFlipRotationAllowedImmutable READ isAstrometryFlipRotationAllowedImmutable CONSTANT)
    /**
      Get AstrometryFlipRotationAllowed
    */
    static
    bool astrometryFlipRotationAllowed()
    {
      return self()->mAstrometryFlipRotationAllowed;
    }

    /**
      Is AstrometryFlipRotationAllowed Immutable
    */
    static
    bool isAstrometryFlipRotationAllowedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryFlipRotationAllowed" ) );
    }

    /**
      Set RotatorParityReversed
    */
    static
    void setRotatorParityReversed( bool v )
    {
      if (v != self()->mRotatorParityReversed && !self()->isRotatorParityReversedImmutable()) {
        self()->mRotatorParityReversed = v;
        Q_EMIT self()->RotatorParityReversedChanged();
      }
    }

    Q_PROPERTY(bool rotatorParityReversed READ rotatorParityReversed WRITE setRotatorParityReversed NOTIFY RotatorParityReversedChanged)
    Q_PROPERTY(bool isRotatorParityReversedImmutable READ isRotatorParityReversedImmutable CONSTANT)
    /**
      Get RotatorParityReversed
    */
    static
    bool rotatorParityReversed()
    {
      return self()->mRotatorParityReversed;
    }

    /**
      Is RotatorParityReversed Immutable
    */
    static
    bool isRotatorParityReversedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RotatorParityReversed" ) );
    }

    /**
      Set World Coordinate System (WCS). WCS is used to encode RA/DEC coordinates in captured CCD images.
    */
    static
    void setAstrometrySolverWCS( bool v )
    {
      if (v != self()->mAstrometrySolverWCS && !self()->isAstrometrySolverWCSImmutable()) {
        self()->mAstrometrySolverWCS = v;
        Q_EMIT self()->AstrometrySolverWCSChanged();
      }
    }

    Q_PROPERTY(bool astrometrySolverWCS READ astrometrySolverWCS WRITE setAstrometrySolverWCS NOTIFY AstrometrySolverWCSChanged)
    Q_PROPERTY(bool isAstrometrySolverWCSImmutable READ isAstrometrySolverWCSImmutable CONSTANT)
    /**
      Get World Coordinate System (WCS). WCS is used to encode RA/DEC coordinates in captured CCD images.
    */
    static
    bool astrometrySolverWCS()
    {
      return self()->mAstrometrySolverWCS;
    }

    /**
      Is World Coordinate System (WCS). WCS is used to encode RA/DEC coordinates in captured CCD images. Immutable
    */
    static
    bool isAstrometrySolverWCSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometrySolverWCS" ) );
    }

    /**
      Set Display received FITS images unto solver FOV rectangle in the sky map.
    */
    static
    void setAstrometrySolverOverlay( bool v )
    {
      if (v != self()->mAstrometrySolverOverlay && !self()->isAstrometrySolverOverlayImmutable()) {
        self()->mAstrometrySolverOverlay = v;
        Q_EMIT self()->AstrometrySolverOverlayChanged();
      }
    }

    Q_PROPERTY(bool astrometrySolverOverlay READ astrometrySolverOverlay WRITE setAstrometrySolverOverlay NOTIFY AstrometrySolverOverlayChanged)
    Q_PROPERTY(bool isAstrometrySolverOverlayImmutable READ isAstrometrySolverOverlayImmutable CONSTANT)
    /**
      Get Display received FITS images unto solver FOV rectangle in the sky map.
    */
    static
    bool astrometrySolverOverlay()
    {
      return self()->mAstrometrySolverOverlay;
    }

    /**
      Is Display received FITS images unto solver FOV rectangle in the sky map. Immutable
    */
    static
    bool isAstrometrySolverOverlayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometrySolverOverlay" ) );
    }

    /**
      Set Do not use Sync when Slew to Target is selected. Use differential slewing to correct for discrepancies.
    */
    static
    void setAstrometryDifferentialSlewing( bool v )
    {
      if (v != self()->mAstrometryDifferentialSlewing && !self()->isAstrometryDifferentialSlewingImmutable()) {
        self()->mAstrometryDifferentialSlewing = v;
        Q_EMIT self()->AstrometryDifferentialSlewingChanged();
      }
    }

    Q_PROPERTY(bool astrometryDifferentialSlewing READ astrometryDifferentialSlewing WRITE setAstrometryDifferentialSlewing NOTIFY AstrometryDifferentialSlewingChanged)
    Q_PROPERTY(bool isAstrometryDifferentialSlewingImmutable READ isAstrometryDifferentialSlewingImmutable CONSTANT)
    /**
      Get Do not use Sync when Slew to Target is selected. Use differential slewing to correct for discrepancies.
    */
    static
    bool astrometryDifferentialSlewing()
    {
      return self()->mAstrometryDifferentialSlewing;
    }

    /**
      Is Do not use Sync when Slew to Target is selected. Use differential slewing to correct for discrepancies. Immutable
    */
    static
    bool isAstrometryDifferentialSlewingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryDifferentialSlewing" ) );
    }

    /**
      Set Accuracy threshold in arcseconds between solution and target coordinates.
    */
    static
    void setAlignAccuracyThreshold( uint v )
    {
      if (v != self()->mAlignAccuracyThreshold && !self()->isAlignAccuracyThresholdImmutable()) {
        self()->mAlignAccuracyThreshold = v;
        Q_EMIT self()->AlignAccuracyThresholdChanged();
      }
    }

    Q_PROPERTY(uint alignAccuracyThreshold READ alignAccuracyThreshold WRITE setAlignAccuracyThreshold NOTIFY AlignAccuracyThresholdChanged)
    Q_PROPERTY(bool isAlignAccuracyThresholdImmutable READ isAlignAccuracyThresholdImmutable CONSTANT)
    /**
      Get Accuracy threshold in arcseconds between solution and target coordinates.
    */
    static
    uint alignAccuracyThreshold()
    {
      return self()->mAlignAccuracyThreshold;
    }

    /**
      Is Accuracy threshold in arcseconds between solution and target coordinates. Immutable
    */
    static
    bool isAlignAccuracyThresholdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignAccuracyThreshold" ) );
    }

    /**
      Set Time to wait in milliseconds after telescope slewing is complete before starting the next capture.
    */
    static
    void setAlignSettlingTime( uint v )
    {
      if (v != self()->mAlignSettlingTime && !self()->isAlignSettlingTimeImmutable()) {
        self()->mAlignSettlingTime = v;
        Q_EMIT self()->AlignSettlingTimeChanged();
      }
    }

    Q_PROPERTY(uint alignSettlingTime READ alignSettlingTime WRITE setAlignSettlingTime NOTIFY AlignSettlingTimeChanged)
    Q_PROPERTY(bool isAlignSettlingTimeImmutable READ isAlignSettlingTimeImmutable CONSTANT)
    /**
      Get Time to wait in milliseconds after telescope slewing is complete before starting the next capture.
    */
    static
    uint alignSettlingTime()
    {
      return self()->mAlignSettlingTime;
    }

    /**
      Is Time to wait in milliseconds after telescope slewing is complete before starting the next capture. Immutable
    */
    static
    bool isAlignSettlingTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignSettlingTime" ) );
    }

    /**
      Set Do not sanitize FITS. This option should only be checked if astrometry.net version is 0.67 or earlier. Uncheck for any versions greater than 0.67.
    */
    static
    void setAstrometryUseNoFITS2FITS( bool v )
    {
      if (v != self()->mAstrometryUseNoFITS2FITS && !self()->isAstrometryUseNoFITS2FITSImmutable()) {
        self()->mAstrometryUseNoFITS2FITS = v;
        Q_EMIT self()->AstrometryUseNoFITS2FITSChanged();
      }
    }

    Q_PROPERTY(bool astrometryUseNoFITS2FITS READ astrometryUseNoFITS2FITS WRITE setAstrometryUseNoFITS2FITS NOTIFY AstrometryUseNoFITS2FITSChanged)
    Q_PROPERTY(bool isAstrometryUseNoFITS2FITSImmutable READ isAstrometryUseNoFITS2FITSImmutable CONSTANT)
    /**
      Get Do not sanitize FITS. This option should only be checked if astrometry.net version is 0.67 or earlier. Uncheck for any versions greater than 0.67.
    */
    static
    bool astrometryUseNoFITS2FITS()
    {
      return self()->mAstrometryUseNoFITS2FITS;
    }

    /**
      Is Do not sanitize FITS. This option should only be checked if astrometry.net version is 0.67 or earlier. Uncheck for any versions greater than 0.67. Immutable
    */
    static
    bool isAstrometryUseNoFITS2FITSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryUseNoFITS2FITS" ) );
    }

    /**
      Set Check this option if your image does not have much nebulosity. If it does have strong nebulosity, uncheck it.
    */
    static
    void setAstrometryUseResort( bool v )
    {
      if (v != self()->mAstrometryUseResort && !self()->isAstrometryUseResortImmutable()) {
        self()->mAstrometryUseResort = v;
        Q_EMIT self()->AstrometryUseResortChanged();
      }
    }

    Q_PROPERTY(bool astrometryUseResort READ astrometryUseResort WRITE setAstrometryUseResort NOTIFY AstrometryUseResortChanged)
    Q_PROPERTY(bool isAstrometryUseResortImmutable READ isAstrometryUseResortImmutable CONSTANT)
    /**
      Get Check this option if your image does not have much nebulosity. If it does have strong nebulosity, uncheck it.
    */
    static
    bool astrometryUseResort()
    {
      return self()->mAstrometryUseResort;
    }

    /**
      Is Check this option if your image does not have much nebulosity. If it does have strong nebulosity, uncheck it. Immutable
    */
    static
    bool isAstrometryUseResortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryUseResort" ) );
    }

    /**
      Set This will prevent the solver from looking at an already existing WCS Header before blindly trying to solve the image. It is recommended to keep it checked.
    */
    static
    void setAstrometryUseNoVerify( bool v )
    {
      if (v != self()->mAstrometryUseNoVerify && !self()->isAstrometryUseNoVerifyImmutable()) {
        self()->mAstrometryUseNoVerify = v;
        Q_EMIT self()->AstrometryUseNoVerifyChanged();
      }
    }

    Q_PROPERTY(bool astrometryUseNoVerify READ astrometryUseNoVerify WRITE setAstrometryUseNoVerify NOTIFY AstrometryUseNoVerifyChanged)
    Q_PROPERTY(bool isAstrometryUseNoVerifyImmutable READ isAstrometryUseNoVerifyImmutable CONSTANT)
    /**
      Get This will prevent the solver from looking at an already existing WCS Header before blindly trying to solve the image. It is recommended to keep it checked.
    */
    static
    bool astrometryUseNoVerify()
    {
      return self()->mAstrometryUseNoVerify;
    }

    /**
      Is This will prevent the solver from looking at an already existing WCS Header before blindly trying to solve the image. It is recommended to keep it checked. Immutable
    */
    static
    bool isAstrometryUseNoVerifyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryUseNoVerify" ) );
    }

    /**
      Set Set image scale to speed up solver as it does not have to search index files of different image scales.
    */
    static
    void setAstrometryUseImageScale( bool v )
    {
      if (v != self()->mAstrometryUseImageScale && !self()->isAstrometryUseImageScaleImmutable()) {
        self()->mAstrometryUseImageScale = v;
        Q_EMIT self()->AstrometryUseImageScaleChanged();
      }
    }

    Q_PROPERTY(bool astrometryUseImageScale READ astrometryUseImageScale WRITE setAstrometryUseImageScale NOTIFY AstrometryUseImageScaleChanged)
    Q_PROPERTY(bool isAstrometryUseImageScaleImmutable READ isAstrometryUseImageScaleImmutable CONSTANT)
    /**
      Get Set image scale to speed up solver as it does not have to search index files of different image scales.
    */
    static
    bool astrometryUseImageScale()
    {
      return self()->mAstrometryUseImageScale;
    }

    /**
      Is Set image scale to speed up solver as it does not have to search index files of different image scales. Immutable
    */
    static
    bool isAstrometryUseImageScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryUseImageScale" ) );
    }

    /**
      Set Lower image scale.
    */
    static
    void setAstrometryImageScaleLow( double v )
    {
      if (v != self()->mAstrometryImageScaleLow && !self()->isAstrometryImageScaleLowImmutable()) {
        self()->mAstrometryImageScaleLow = v;
        Q_EMIT self()->AstrometryImageScaleLowChanged();
      }
    }

    Q_PROPERTY(double astrometryImageScaleLow READ astrometryImageScaleLow WRITE setAstrometryImageScaleLow NOTIFY AstrometryImageScaleLowChanged)
    Q_PROPERTY(bool isAstrometryImageScaleLowImmutable READ isAstrometryImageScaleLowImmutable CONSTANT)
    /**
      Get Lower image scale.
    */
    static
    double astrometryImageScaleLow()
    {
      return self()->mAstrometryImageScaleLow;
    }

    /**
      Is Lower image scale. Immutable
    */
    static
    bool isAstrometryImageScaleLowImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryImageScaleLow" ) );
    }

    /**
      Set Upper image scale.
    */
    static
    void setAstrometryImageScaleHigh( double v )
    {
      if (v != self()->mAstrometryImageScaleHigh && !self()->isAstrometryImageScaleHighImmutable()) {
        self()->mAstrometryImageScaleHigh = v;
        Q_EMIT self()->AstrometryImageScaleHighChanged();
      }
    }

    Q_PROPERTY(double astrometryImageScaleHigh READ astrometryImageScaleHigh WRITE setAstrometryImageScaleHigh NOTIFY AstrometryImageScaleHighChanged)
    Q_PROPERTY(bool isAstrometryImageScaleHighImmutable READ isAstrometryImageScaleHighImmutable CONSTANT)
    /**
      Get Upper image scale.
    */
    static
    double astrometryImageScaleHigh()
    {
      return self()->mAstrometryImageScaleHigh;
    }

    /**
      Is Upper image scale. Immutable
    */
    static
    bool isAstrometryImageScaleHighImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryImageScaleHigh" ) );
    }

    /**
      Set Automatically update image scale when CCD or Mount parameters are updated.
    */
    static
    void setAstrometryAutoUpdateImageScale( bool v )
    {
      if (v != self()->mAstrometryAutoUpdateImageScale && !self()->isAstrometryAutoUpdateImageScaleImmutable()) {
        self()->mAstrometryAutoUpdateImageScale = v;
        Q_EMIT self()->AstrometryAutoUpdateImageScaleChanged();
      }
    }

    Q_PROPERTY(bool astrometryAutoUpdateImageScale READ astrometryAutoUpdateImageScale WRITE setAstrometryAutoUpdateImageScale NOTIFY AstrometryAutoUpdateImageScaleChanged)
    Q_PROPERTY(bool isAstrometryAutoUpdateImageScaleImmutable READ isAstrometryAutoUpdateImageScaleImmutable CONSTANT)
    /**
      Get Automatically update image scale when CCD or Mount parameters are updated.
    */
    static
    bool astrometryAutoUpdateImageScale()
    {
      return self()->mAstrometryAutoUpdateImageScale;
    }

    /**
      Is Automatically update image scale when CCD or Mount parameters are updated. Immutable
    */
    static
    bool isAstrometryAutoUpdateImageScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryAutoUpdateImageScale" ) );
    }

    /**
      Set Image scale units in arcminutes (aw), degrees (dw), or arcsec per pixel (app)
    */
    static
    void setAstrometryImageScaleUnits( uint v )
    {
      if (v != self()->mAstrometryImageScaleUnits && !self()->isAstrometryImageScaleUnitsImmutable()) {
        self()->mAstrometryImageScaleUnits = v;
        Q_EMIT self()->AstrometryImageScaleUnitsChanged();
      }
    }

    Q_PROPERTY(uint astrometryImageScaleUnits READ astrometryImageScaleUnits WRITE setAstrometryImageScaleUnits NOTIFY AstrometryImageScaleUnitsChanged)
    Q_PROPERTY(bool isAstrometryImageScaleUnitsImmutable READ isAstrometryImageScaleUnitsImmutable CONSTANT)
    /**
      Get Image scale units in arcminutes (aw), degrees (dw), or arcsec per pixel (app)
    */
    static
    uint astrometryImageScaleUnits()
    {
      return self()->mAstrometryImageScaleUnits;
    }

    /**
      Is Image scale units in arcminutes (aw), degrees (dw), or arcsec per pixel (app) Immutable
    */
    static
    bool isAstrometryImageScaleUnitsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryImageScaleUnits" ) );
    }

    /**
      Set Downsample the image to shrink its size and speed up the solver.
    */
    static
    void setAstrometryUseDownsample( bool v )
    {
      if (v != self()->mAstrometryUseDownsample && !self()->isAstrometryUseDownsampleImmutable()) {
        self()->mAstrometryUseDownsample = v;
        Q_EMIT self()->AstrometryUseDownsampleChanged();
      }
    }

    Q_PROPERTY(bool astrometryUseDownsample READ astrometryUseDownsample WRITE setAstrometryUseDownsample NOTIFY AstrometryUseDownsampleChanged)
    Q_PROPERTY(bool isAstrometryUseDownsampleImmutable READ isAstrometryUseDownsampleImmutable CONSTANT)
    /**
      Get Downsample the image to shrink its size and speed up the solver.
    */
    static
    bool astrometryUseDownsample()
    {
      return self()->mAstrometryUseDownsample;
    }

    /**
      Is Downsample the image to shrink its size and speed up the solver. Immutable
    */
    static
    bool isAstrometryUseDownsampleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryUseDownsample" ) );
    }

    /**
      Set Downsample factor
    */
    static
    void setAstrometryDownsample( uint v )
    {
      if (v != self()->mAstrometryDownsample && !self()->isAstrometryDownsampleImmutable()) {
        self()->mAstrometryDownsample = v;
        Q_EMIT self()->AstrometryDownsampleChanged();
      }
    }

    Q_PROPERTY(uint astrometryDownsample READ astrometryDownsample WRITE setAstrometryDownsample NOTIFY AstrometryDownsampleChanged)
    Q_PROPERTY(bool isAstrometryDownsampleImmutable READ isAstrometryDownsampleImmutable CONSTANT)
    /**
      Get Downsample factor
    */
    static
    uint astrometryDownsample()
    {
      return self()->mAstrometryDownsample;
    }

    /**
      Is Downsample factor Immutable
    */
    static
    bool isAstrometryDownsampleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryDownsample" ) );
    }

    /**
      Set Automatically downsample based on image size.
    */
    static
    void setAstrometryAutoDownsample( bool v )
    {
      if (v != self()->mAstrometryAutoDownsample && !self()->isAstrometryAutoDownsampleImmutable()) {
        self()->mAstrometryAutoDownsample = v;
        Q_EMIT self()->AstrometryAutoDownsampleChanged();
      }
    }

    Q_PROPERTY(bool astrometryAutoDownsample READ astrometryAutoDownsample WRITE setAstrometryAutoDownsample NOTIFY AstrometryAutoDownsampleChanged)
    Q_PROPERTY(bool isAstrometryAutoDownsampleImmutable READ isAstrometryAutoDownsampleImmutable CONSTANT)
    /**
      Get Automatically downsample based on image size.
    */
    static
    bool astrometryAutoDownsample()
    {
      return self()->mAstrometryAutoDownsample;
    }

    /**
      Is Automatically downsample based on image size. Immutable
    */
    static
    bool isAstrometryAutoDownsampleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryAutoDownsample" ) );
    }

    /**
      Set Adjust StellarSolver threshold dynamically based on source extractor detected stars to expedite solving.
    */
    static
    void setAstrometryDynamicThreshold( bool v )
    {
      if (v != self()->mAstrometryDynamicThreshold && !self()->isAstrometryDynamicThresholdImmutable()) {
        self()->mAstrometryDynamicThreshold = v;
        Q_EMIT self()->AstrometryDynamicThresholdChanged();
      }
    }

    Q_PROPERTY(bool astrometryDynamicThreshold READ astrometryDynamicThreshold WRITE setAstrometryDynamicThreshold NOTIFY AstrometryDynamicThresholdChanged)
    Q_PROPERTY(bool isAstrometryDynamicThresholdImmutable READ isAstrometryDynamicThresholdImmutable CONSTANT)
    /**
      Get Adjust StellarSolver threshold dynamically based on source extractor detected stars to expedite solving.
    */
    static
    bool astrometryDynamicThreshold()
    {
      return self()->mAstrometryDynamicThreshold;
    }

    /**
      Is Adjust StellarSolver threshold dynamically based on source extractor detected stars to expedite solving. Immutable
    */
    static
    bool isAstrometryDynamicThresholdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryDynamicThreshold" ) );
    }

    /**
      Set Set estimated position to speed up astrometry solver as it does not have to search in other areas of the sky.
    */
    static
    void setAstrometryUsePosition( bool v )
    {
      if (v != self()->mAstrometryUsePosition && !self()->isAstrometryUsePositionImmutable()) {
        self()->mAstrometryUsePosition = v;
        Q_EMIT self()->AstrometryUsePositionChanged();
      }
    }

    Q_PROPERTY(bool astrometryUsePosition READ astrometryUsePosition WRITE setAstrometryUsePosition NOTIFY AstrometryUsePositionChanged)
    Q_PROPERTY(bool isAstrometryUsePositionImmutable READ isAstrometryUsePositionImmutable CONSTANT)
    /**
      Get Set estimated position to speed up astrometry solver as it does not have to search in other areas of the sky.
    */
    static
    bool astrometryUsePosition()
    {
      return self()->mAstrometryUsePosition;
    }

    /**
      Is Set estimated position to speed up astrometry solver as it does not have to search in other areas of the sky. Immutable
    */
    static
    bool isAstrometryUsePositionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryUsePosition" ) );
    }

    /**
      Set User supplied Right Ascension value in degrees to be passed to the solver.
    */
    static
    void setAstrometryPositionRA( double v )
    {
      if (v != self()->mAstrometryPositionRA && !self()->isAstrometryPositionRAImmutable()) {
        self()->mAstrometryPositionRA = v;
        Q_EMIT self()->AstrometryPositionRAChanged();
      }
    }

    Q_PROPERTY(double astrometryPositionRA READ astrometryPositionRA WRITE setAstrometryPositionRA NOTIFY AstrometryPositionRAChanged)
    Q_PROPERTY(bool isAstrometryPositionRAImmutable READ isAstrometryPositionRAImmutable CONSTANT)
    /**
      Get User supplied Right Ascension value in degrees to be passed to the solver.
    */
    static
    double astrometryPositionRA()
    {
      return self()->mAstrometryPositionRA;
    }

    /**
      Is User supplied Right Ascension value in degrees to be passed to the solver. Immutable
    */
    static
    bool isAstrometryPositionRAImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryPositionRA" ) );
    }

    /**
      Set User supplied declination value in degrees to be passed to the solver.
    */
    static
    void setAstrometryPositionDE( double v )
    {
      if (v != self()->mAstrometryPositionDE && !self()->isAstrometryPositionDEImmutable()) {
        self()->mAstrometryPositionDE = v;
        Q_EMIT self()->AstrometryPositionDEChanged();
      }
    }

    Q_PROPERTY(double astrometryPositionDE READ astrometryPositionDE WRITE setAstrometryPositionDE NOTIFY AstrometryPositionDEChanged)
    Q_PROPERTY(bool isAstrometryPositionDEImmutable READ isAstrometryPositionDEImmutable CONSTANT)
    /**
      Get User supplied declination value in degrees to be passed to the solver.
    */
    static
    double astrometryPositionDE()
    {
      return self()->mAstrometryPositionDE;
    }

    /**
      Is User supplied declination value in degrees to be passed to the solver. Immutable
    */
    static
    bool isAstrometryPositionDEImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryPositionDE" ) );
    }

    /**
      Set Automatically update position coordinates when mounts completes slewing.
    */
    static
    void setAstrometryAutoUpdatePosition( bool v )
    {
      if (v != self()->mAstrometryAutoUpdatePosition && !self()->isAstrometryAutoUpdatePositionImmutable()) {
        self()->mAstrometryAutoUpdatePosition = v;
        Q_EMIT self()->AstrometryAutoUpdatePositionChanged();
      }
    }

    Q_PROPERTY(bool astrometryAutoUpdatePosition READ astrometryAutoUpdatePosition WRITE setAstrometryAutoUpdatePosition NOTIFY AstrometryAutoUpdatePositionChanged)
    Q_PROPERTY(bool isAstrometryAutoUpdatePositionImmutable READ isAstrometryAutoUpdatePositionImmutable CONSTANT)
    /**
      Get Automatically update position coordinates when mounts completes slewing.
    */
    static
    bool astrometryAutoUpdatePosition()
    {
      return self()->mAstrometryAutoUpdatePosition;
    }

    /**
      Is Automatically update position coordinates when mounts completes slewing. Immutable
    */
    static
    bool isAstrometryAutoUpdatePositionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryAutoUpdatePosition" ) );
    }

    /**
      Set The Search Radius for the Estimated Telescope/Image Field Position in degrees.
    */
    static
    void setAstrometryRadius( double v )
    {
      if (v != self()->mAstrometryRadius && !self()->isAstrometryRadiusImmutable()) {
        self()->mAstrometryRadius = v;
        Q_EMIT self()->AstrometryRadiusChanged();
      }
    }

    Q_PROPERTY(double astrometryRadius READ astrometryRadius WRITE setAstrometryRadius NOTIFY AstrometryRadiusChanged)
    Q_PROPERTY(bool isAstrometryRadiusImmutable READ isAstrometryRadiusImmutable CONSTANT)
    /**
      Get The Search Radius for the Estimated Telescope/Image Field Position in degrees.
    */
    static
    double astrometryRadius()
    {
      return self()->mAstrometryRadius;
    }

    /**
      Is The Search Radius for the Estimated Telescope/Image Field Position in degrees. Immutable
    */
    static
    bool isAstrometryRadiusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryRadius" ) );
    }

    /**
      Set Detect parity and reuse it to speed up solver.
    */
    static
    void setAstrometryDetectParity( bool v )
    {
      if (v != self()->mAstrometryDetectParity && !self()->isAstrometryDetectParityImmutable()) {
        self()->mAstrometryDetectParity = v;
        Q_EMIT self()->AstrometryDetectParityChanged();
      }
    }

    Q_PROPERTY(bool astrometryDetectParity READ astrometryDetectParity WRITE setAstrometryDetectParity NOTIFY AstrometryDetectParityChanged)
    Q_PROPERTY(bool isAstrometryDetectParityImmutable READ isAstrometryDetectParityImmutable CONSTANT)
    /**
      Get Detect parity and reuse it to speed up solver.
    */
    static
    bool astrometryDetectParity()
    {
      return self()->mAstrometryDetectParity;
    }

    /**
      Is Detect parity and reuse it to speed up solver. Immutable
    */
    static
    bool isAstrometryDetectParityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryDetectParity" ) );
    }

    /**
      Set Additional optional astrometry.net options
    */
    static
    void setAstrometryCustomOptions( const QString & v )
    {
      if (v != self()->mAstrometryCustomOptions && !self()->isAstrometryCustomOptionsImmutable()) {
        self()->mAstrometryCustomOptions = v;
        Q_EMIT self()->AstrometryCustomOptionsChanged();
      }
    }

    Q_PROPERTY(QString astrometryCustomOptions READ astrometryCustomOptions WRITE setAstrometryCustomOptions NOTIFY AstrometryCustomOptionsChanged)
    Q_PROPERTY(bool isAstrometryCustomOptionsImmutable READ isAstrometryCustomOptionsImmutable CONSTANT)
    /**
      Get Additional optional astrometry.net options
    */
    static
    QString astrometryCustomOptions()
    {
      return self()->mAstrometryCustomOptions;
    }

    /**
      Is Additional optional astrometry.net options Immutable
    */
    static
    bool isAstrometryCustomOptionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryCustomOptions" ) );
    }

    /**
      Set astrometry.net solve-field binary
    */
    static
    void setAstrometrySolverBinary( const QString & v )
    {
      if (v != self()->mAstrometrySolverBinary && !self()->isAstrometrySolverBinaryImmutable()) {
        self()->mAstrometrySolverBinary = v;
        Q_EMIT self()->AstrometrySolverBinaryChanged();
      }
    }

    Q_PROPERTY(QString astrometrySolverBinary READ astrometrySolverBinary WRITE setAstrometrySolverBinary NOTIFY AstrometrySolverBinaryChanged)
    Q_PROPERTY(bool isAstrometrySolverBinaryImmutable READ isAstrometrySolverBinaryImmutable CONSTANT)
    /**
      Get astrometry.net solve-field binary
    */
    static
    QString astrometrySolverBinary()
    {
      return self()->mAstrometrySolverBinary;
    }

    /**
      Is astrometry.net solve-field binary Immutable
    */
    static
    bool isAstrometrySolverBinaryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometrySolverBinary" ) );
    }

    /**
      Set astrometry.net wcsinfo binary
    */
    static
    void setAstrometryWCSInfo( const QString & v )
    {
      if (v != self()->mAstrometryWCSInfo && !self()->isAstrometryWCSInfoImmutable()) {
        self()->mAstrometryWCSInfo = v;
        Q_EMIT self()->AstrometryWCSInfoChanged();
      }
    }

    Q_PROPERTY(QString astrometryWCSInfo READ astrometryWCSInfo WRITE setAstrometryWCSInfo NOTIFY AstrometryWCSInfoChanged)
    Q_PROPERTY(bool isAstrometryWCSInfoImmutable READ isAstrometryWCSInfoImmutable CONSTANT)
    /**
      Get astrometry.net wcsinfo binary
    */
    static
    QString astrometryWCSInfo()
    {
      return self()->mAstrometryWCSInfo;
    }

    /**
      Is astrometry.net wcsinfo binary Immutable
    */
    static
    bool isAstrometryWCSInfoImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryWCSInfo" ) );
    }

    /**
      Set astrometry.net configuration file
    */
    static
    void setAstrometryConfFile( const QString & v )
    {
      if (v != self()->mAstrometryConfFile && !self()->isAstrometryConfFileImmutable()) {
        self()->mAstrometryConfFile = v;
        Q_EMIT self()->AstrometryConfFileChanged();
      }
    }

    Q_PROPERTY(QString astrometryConfFile READ astrometryConfFile WRITE setAstrometryConfFile NOTIFY AstrometryConfFileChanged)
    Q_PROPERTY(bool isAstrometryConfFileImmutable READ isAstrometryConfFileImmutable CONSTANT)
    /**
      Get astrometry.net configuration file
    */
    static
    QString astrometryConfFile()
    {
      return self()->mAstrometryConfFile;
    }

    /**
      Is astrometry.net configuration file Immutable
    */
    static
    bool isAstrometryConfFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryConfFile" ) );
    }

    /**
      Set SextractorBinary
    */
    static
    void setSextractorBinary( const QString & v )
    {
      if (v != self()->mSextractorBinary && !self()->isSextractorBinaryImmutable()) {
        self()->mSextractorBinary = v;
        Q_EMIT self()->SextractorBinaryChanged();
      }
    }

    Q_PROPERTY(QString sextractorBinary READ sextractorBinary WRITE setSextractorBinary NOTIFY SextractorBinaryChanged)
    Q_PROPERTY(bool isSextractorBinaryImmutable READ isSextractorBinaryImmutable CONSTANT)
    /**
      Get SextractorBinary
    */
    static
    QString sextractorBinary()
    {
      return self()->mSextractorBinary;
    }

    /**
      Is SextractorBinary Immutable
    */
    static
    bool isSextractorBinaryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SextractorBinary" ) );
    }

    /**
      Set WatneyBinary
    */
    static
    void setWatneyBinary( const QString & v )
    {
      if (v != self()->mWatneyBinary && !self()->isWatneyBinaryImmutable()) {
        self()->mWatneyBinary = v;
        Q_EMIT self()->WatneyBinaryChanged();
      }
    }

    Q_PROPERTY(QString watneyBinary READ watneyBinary WRITE setWatneyBinary NOTIFY WatneyBinaryChanged)
    Q_PROPERTY(bool isWatneyBinaryImmutable READ isWatneyBinaryImmutable CONSTANT)
    /**
      Get WatneyBinary
    */
    static
    QString watneyBinary()
    {
      return self()->mWatneyBinary;
    }

    /**
      Is WatneyBinary Immutable
    */
    static
    bool isWatneyBinaryImmutable()
    {
      return self()->isImmutable( QStringLiteral( "WatneyBinary" ) );
    }

    /**
      Set astrometry.net API Key
    */
    static
    void setAstrometryAPIKey( const QString & v )
    {
      if (v != self()->mAstrometryAPIKey && !self()->isAstrometryAPIKeyImmutable()) {
        self()->mAstrometryAPIKey = v;
        Q_EMIT self()->AstrometryAPIKeyChanged();
      }
    }

    Q_PROPERTY(QString astrometryAPIKey READ astrometryAPIKey WRITE setAstrometryAPIKey NOTIFY AstrometryAPIKeyChanged)
    Q_PROPERTY(bool isAstrometryAPIKeyImmutable READ isAstrometryAPIKeyImmutable CONSTANT)
    /**
      Get astrometry.net API Key
    */
    static
    QString astrometryAPIKey()
    {
      return self()->mAstrometryAPIKey;
    }

    /**
      Is astrometry.net API Key Immutable
    */
    static
    bool isAstrometryAPIKeyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryAPIKey" ) );
    }

    /**
      Set astrometry.net API URL
    */
    static
    void setAstrometryAPIURL( const QString & v )
    {
      if (v != self()->mAstrometryAPIURL && !self()->isAstrometryAPIURLImmutable()) {
        self()->mAstrometryAPIURL = v;
        Q_EMIT self()->AstrometryAPIURLChanged();
      }
    }

    Q_PROPERTY(QString astrometryAPIURL READ astrometryAPIURL WRITE setAstrometryAPIURL NOTIFY AstrometryAPIURLChanged)
    Q_PROPERTY(bool isAstrometryAPIURLImmutable READ isAstrometryAPIURLImmutable CONSTANT)
    /**
      Get astrometry.net API URL
    */
    static
    QString astrometryAPIURL()
    {
      return self()->mAstrometryAPIURL;
    }

    /**
      Is astrometry.net API URL Immutable
    */
    static
    bool isAstrometryAPIURLImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryAPIURL" ) );
    }

    /**
      Set Use JPEG format, instead of FITS, to upload images to the astrometry.net online service.
    */
    static
    void setAstrometryUseJPEG( bool v )
    {
      if (v != self()->mAstrometryUseJPEG && !self()->isAstrometryUseJPEGImmutable()) {
        self()->mAstrometryUseJPEG = v;
        Q_EMIT self()->AstrometryUseJPEGChanged();
      }
    }

    Q_PROPERTY(bool astrometryUseJPEG READ astrometryUseJPEG WRITE setAstrometryUseJPEG NOTIFY AstrometryUseJPEGChanged)
    Q_PROPERTY(bool isAstrometryUseJPEGImmutable READ isAstrometryUseJPEGImmutable CONSTANT)
    /**
      Get Use JPEG format, instead of FITS, to upload images to the astrometry.net online service.
    */
    static
    bool astrometryUseJPEG()
    {
      return self()->mAstrometryUseJPEG;
    }

    /**
      Is Use JPEG format, instead of FITS, to upload images to the astrometry.net online service. Immutable
    */
    static
    bool isAstrometryUseJPEGImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryUseJPEG" ) );
    }

    /**
      Set Timeout in seconds to wait for astrometry solver to complete.
    */
    static
    void setAstrometryTimeout( uint v )
    {
      if (v != self()->mAstrometryTimeout && !self()->isAstrometryTimeoutImmutable()) {
        self()->mAstrometryTimeout = v;
        Q_EMIT self()->AstrometryTimeoutChanged();
      }
    }

    Q_PROPERTY(uint astrometryTimeout READ astrometryTimeout WRITE setAstrometryTimeout NOTIFY AstrometryTimeoutChanged)
    Q_PROPERTY(bool isAstrometryTimeoutImmutable READ isAstrometryTimeoutImmutable CONSTANT)
    /**
      Get Timeout in seconds to wait for astrometry solver to complete.
    */
    static
    uint astrometryTimeout()
    {
      return self()->mAstrometryTimeout;
    }

    /**
      Is Timeout in seconds to wait for astrometry solver to complete. Immutable
    */
    static
    bool isAstrometryTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AstrometryTimeout" ) );
    }

    /**
      Set Speed to set mount in Polar Alignment Assistant Tool.
    */
    static
    void setPAHMountSpeed( const QString & v )
    {
      if (v != self()->mPAHMountSpeed && !self()->isPAHMountSpeedImmutable()) {
        self()->mPAHMountSpeed = v;
        Q_EMIT self()->PAHMountSpeedChanged();
      }
    }

    Q_PROPERTY(QString pAHMountSpeed READ pAHMountSpeed WRITE setPAHMountSpeed NOTIFY PAHMountSpeedChanged)
    Q_PROPERTY(bool isPAHMountSpeedImmutable READ isPAHMountSpeedImmutable CONSTANT)
    /**
      Get Speed to set mount in Polar Alignment Assistant Tool.
    */
    static
    QString pAHMountSpeed()
    {
      return self()->mPAHMountSpeed;
    }

    /**
      Is Speed to set mount in Polar Alignment Assistant Tool. Immutable
    */
    static
    bool isPAHMountSpeedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHMountSpeed" ) );
    }

    /**
      Set Rotate mount by this many degrees during polar alignment.
    */
    static
    void setPAHRotaion( double v )
    {
      if (v != self()->mPAHRotaion && !self()->isPAHRotaionImmutable()) {
        self()->mPAHRotaion = v;
        Q_EMIT self()->PAHRotaionChanged();
      }
    }

    Q_PROPERTY(double pAHRotaion READ pAHRotaion WRITE setPAHRotaion NOTIFY PAHRotaionChanged)
    Q_PROPERTY(bool isPAHRotaionImmutable READ isPAHRotaionImmutable CONSTANT)
    /**
      Get Rotate mount by this many degrees during polar alignment.
    */
    static
    double pAHRotaion()
    {
      return self()->mPAHRotaion;
    }

    /**
      Is Rotate mount by this many degrees during polar alignment. Immutable
    */
    static
    bool isPAHRotaionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHRotaion" ) );
    }

    /**
      Set The algorithm used for polar-align refresh.
    */
    static
    void setPAHRefreshAlgorithm( const QString & v )
    {
      if (v != self()->mPAHRefreshAlgorithm && !self()->isPAHRefreshAlgorithmImmutable()) {
        self()->mPAHRefreshAlgorithm = v;
        Q_EMIT self()->PAHRefreshAlgorithmChanged();
      }
    }

    Q_PROPERTY(QString pAHRefreshAlgorithm READ pAHRefreshAlgorithm WRITE setPAHRefreshAlgorithm NOTIFY PAHRefreshAlgorithmChanged)
    Q_PROPERTY(bool isPAHRefreshAlgorithmImmutable READ isPAHRefreshAlgorithmImmutable CONSTANT)
    /**
      Get The algorithm used for polar-align refresh.
    */
    static
    QString pAHRefreshAlgorithm()
    {
      return self()->mPAHRefreshAlgorithm;
    }

    /**
      Is The algorithm used for polar-align refresh. Immutable
    */
    static
    bool isPAHRefreshAlgorithmImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHRefreshAlgorithm" ) );
    }

    /**
      Set Mount rotation direction during polar alignment.
    */
    static
    void setPAHDirection( const QString & v )
    {
      if (v != self()->mPAHDirection && !self()->isPAHDirectionImmutable()) {
        self()->mPAHDirection = v;
        Q_EMIT self()->PAHDirectionChanged();
      }
    }

    Q_PROPERTY(QString pAHDirection READ pAHDirection WRITE setPAHDirection NOTIFY PAHDirectionChanged)
    Q_PROPERTY(bool isPAHDirectionImmutable READ isPAHDirectionImmutable CONSTANT)
    /**
      Get Mount rotation direction during polar alignment.
    */
    static
    QString pAHDirection()
    {
      return self()->mPAHDirection;
    }

    /**
      Is Mount rotation direction during polar alignment. Immutable
    */
    static
    bool isPAHDirectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHDirection" ) );
    }

    /**
      Set Automatically park the mount after Polar Alignment Assistant Tool is complete.
    */
    static
    void setPAHAutoPark( bool v )
    {
      if (v != self()->mPAHAutoPark && !self()->isPAHAutoParkImmutable()) {
        self()->mPAHAutoPark = v;
        Q_EMIT self()->PAHAutoParkChanged();
      }
    }

    Q_PROPERTY(bool pAHAutoPark READ pAHAutoPark WRITE setPAHAutoPark NOTIFY PAHAutoParkChanged)
    Q_PROPERTY(bool isPAHAutoParkImmutable READ isPAHAutoParkImmutable CONSTANT)
    /**
      Get Automatically park the mount after Polar Alignment Assistant Tool is complete.
    */
    static
    bool pAHAutoPark()
    {
      return self()->mPAHAutoPark;
    }

    /**
      Is Automatically park the mount after Polar Alignment Assistant Tool is complete. Immutable
    */
    static
    bool isPAHAutoParkImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHAutoPark" ) );
    }

    /**
      Set User should manually rotate the mount about its axis during polar alignment.
    */
    static
    void setPAHManualSlew( bool v )
    {
      if (v != self()->mPAHManualSlew && !self()->isPAHManualSlewImmutable()) {
        self()->mPAHManualSlew = v;
        Q_EMIT self()->PAHManualSlewChanged();
      }
    }

    Q_PROPERTY(bool pAHManualSlew READ pAHManualSlew WRITE setPAHManualSlew NOTIFY PAHManualSlewChanged)
    Q_PROPERTY(bool isPAHManualSlewImmutable READ isPAHManualSlewImmutable CONSTANT)
    /**
      Get User should manually rotate the mount about its axis during polar alignment.
    */
    static
    bool pAHManualSlew()
    {
      return self()->mPAHManualSlew;
    }

    /**
      Is User should manually rotate the mount about its axis during polar alignment. Immutable
    */
    static
    bool isPAHManualSlewImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHManualSlew" ) );
    }

    /**
      Set Polar Alignment Assistant exposure duration in seconds.
    */
    static
    void setPAHExposure( double v )
    {
      if (v != self()->mPAHExposure && !self()->isPAHExposureImmutable()) {
        self()->mPAHExposure = v;
        Q_EMIT self()->PAHExposureChanged();
      }
    }

    Q_PROPERTY(double pAHExposure READ pAHExposure WRITE setPAHExposure NOTIFY PAHExposureChanged)
    Q_PROPERTY(bool isPAHExposureImmutable READ isPAHExposureImmutable CONSTANT)
    /**
      Get Polar Alignment Assistant exposure duration in seconds.
    */
    static
    double pAHExposure()
    {
      return self()->mPAHExposure;
    }

    /**
      Is Polar Alignment Assistant exposure duration in seconds. Immutable
    */
    static
    bool isPAHExposureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHExposure" ) );
    }

    /**
      Set Enable automatic polar alignment correction using PAC device.
    */
    static
    void setPAHAutoPACCorrection( bool v )
    {
      if (v != self()->mPAHAutoPACCorrection && !self()->isPAHAutoPACCorrectionImmutable()) {
        self()->mPAHAutoPACCorrection = v;
        Q_EMIT self()->PAHAutoPACCorrectionChanged();
      }
    }

    Q_PROPERTY(bool pAHAutoPACCorrection READ pAHAutoPACCorrection WRITE setPAHAutoPACCorrection NOTIFY PAHAutoPACCorrectionChanged)
    Q_PROPERTY(bool isPAHAutoPACCorrectionImmutable READ isPAHAutoPACCorrectionImmutable CONSTANT)
    /**
      Get Enable automatic polar alignment correction using PAC device.
    */
    static
    bool pAHAutoPACCorrection()
    {
      return self()->mPAHAutoPACCorrection;
    }

    /**
      Is Enable automatic polar alignment correction using PAC device. Immutable
    */
    static
    bool isPAHAutoPACCorrectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHAutoPACCorrection" ) );
    }

    /**
      Set Automatically reverse the correction direction for an axis if its polar alignment error increases after the first PAC correction attempt.
    */
    static
    void setPAHAutoChangeDirection( bool v )
    {
      if (v != self()->mPAHAutoChangeDirection && !self()->isPAHAutoChangeDirectionImmutable()) {
        self()->mPAHAutoChangeDirection = v;
        Q_EMIT self()->PAHAutoChangeDirectionChanged();
      }
    }

    Q_PROPERTY(bool pAHAutoChangeDirection READ pAHAutoChangeDirection WRITE setPAHAutoChangeDirection NOTIFY PAHAutoChangeDirectionChanged)
    Q_PROPERTY(bool isPAHAutoChangeDirectionImmutable READ isPAHAutoChangeDirectionImmutable CONSTANT)
    /**
      Get Automatically reverse the correction direction for an axis if its polar alignment error increases after the first PAC correction attempt.
    */
    static
    bool pAHAutoChangeDirection()
    {
      return self()->mPAHAutoChangeDirection;
    }

    /**
      Is Automatically reverse the correction direction for an axis if its polar alignment error increases after the first PAC correction attempt. Immutable
    */
    static
    bool isPAHAutoChangeDirectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHAutoChangeDirection" ) );
    }

    /**
      Set Polar alignment success threshold in arcminutes. If total error is at or below this value, alignment is considered successful.
    */
    static
    void setPAHSuccessThreshold( double v )
    {
      if (v != self()->mPAHSuccessThreshold && !self()->isPAHSuccessThresholdImmutable()) {
        self()->mPAHSuccessThreshold = v;
        Q_EMIT self()->PAHSuccessThresholdChanged();
      }
    }

    Q_PROPERTY(double pAHSuccessThreshold READ pAHSuccessThreshold WRITE setPAHSuccessThreshold NOTIFY PAHSuccessThresholdChanged)
    Q_PROPERTY(bool isPAHSuccessThresholdImmutable READ isPAHSuccessThresholdImmutable CONSTANT)
    /**
      Get Polar alignment success threshold in arcminutes. If total error is at or below this value, alignment is considered successful.
    */
    static
    double pAHSuccessThreshold()
    {
      return self()->mPAHSuccessThreshold;
    }

    /**
      Is Polar alignment success threshold in arcminutes. If total error is at or below this value, alignment is considered successful. Immutable
    */
    static
    bool isPAHSuccessThresholdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHSuccessThreshold" ) );
    }

    /**
      Set Timeout in seconds for automatic polar alignment correction. If the system cannot reach the desired threshold within this period, it aborts.
    */
    static
    void setPAHCorrectionTimeout( uint v )
    {
      if (v != self()->mPAHCorrectionTimeout && !self()->isPAHCorrectionTimeoutImmutable()) {
        self()->mPAHCorrectionTimeout = v;
        Q_EMIT self()->PAHCorrectionTimeoutChanged();
      }
    }

    Q_PROPERTY(uint pAHCorrectionTimeout READ pAHCorrectionTimeout WRITE setPAHCorrectionTimeout NOTIFY PAHCorrectionTimeoutChanged)
    Q_PROPERTY(bool isPAHCorrectionTimeoutImmutable READ isPAHCorrectionTimeoutImmutable CONSTANT)
    /**
      Get Timeout in seconds for automatic polar alignment correction. If the system cannot reach the desired threshold within this period, it aborts.
    */
    static
    uint pAHCorrectionTimeout()
    {
      return self()->mPAHCorrectionTimeout;
    }

    /**
      Is Timeout in seconds for automatic polar alignment correction. If the system cannot reach the desired threshold within this period, it aborts. Immutable
    */
    static
    bool isPAHCorrectionTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PAHCorrectionTimeout" ) );
    }

    /**
      Set Guider exposure duration in seconds.
    */
    static
    void setGuideExposure( double v )
    {
      if (v != self()->mGuideExposure && !self()->isGuideExposureImmutable()) {
        self()->mGuideExposure = v;
        Q_EMIT self()->GuideExposureChanged();
      }
    }

    Q_PROPERTY(double guideExposure READ guideExposure WRITE setGuideExposure NOTIFY GuideExposureChanged)
    Q_PROPERTY(bool isGuideExposureImmutable READ isGuideExposureImmutable CONSTANT)
    /**
      Get Guider exposure duration in seconds.
    */
    static
    double guideExposure()
    {
      return self()->mGuideExposure;
    }

    /**
      Is Guider exposure duration in seconds. Immutable
    */
    static
    bool isGuideExposureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideExposure" ) );
    }

    /**
      Set Delay next exposure by this many seconds.
    */
    static
    void setGuideDelay( double v )
    {
      if (v != self()->mGuideDelay && !self()->isGuideDelayImmutable()) {
        self()->mGuideDelay = v;
        Q_EMIT self()->GuideDelayChanged();
      }
    }

    Q_PROPERTY(double guideDelay READ guideDelay WRITE setGuideDelay NOTIFY GuideDelayChanged)
    Q_PROPERTY(bool isGuideDelayImmutable READ isGuideDelayImmutable CONSTANT)
    /**
      Get Delay next exposure by this many seconds.
    */
    static
    double guideDelay()
    {
      return self()->mGuideDelay;
    }

    /**
      Is Delay next exposure by this many seconds. Immutable
    */
    static
    bool isGuideDelayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideDelay" ) );
    }

    /**
      Set Which guider process to utilize for guiding (0 Internal Guider, 1 PHD2, 2 lin_guider)
    */
    static
    void setGuiderType( uint v )
    {
      if (v != self()->mGuiderType && !self()->isGuiderTypeImmutable()) {
        self()->mGuiderType = v;
        Q_EMIT self()->GuiderTypeChanged();
      }
    }

    Q_PROPERTY(uint guiderType READ guiderType WRITE setGuiderType NOTIFY GuiderTypeChanged)
    Q_PROPERTY(bool isGuiderTypeImmutable READ isGuiderTypeImmutable CONSTANT)
    /**
      Get Which guider process to utilize for guiding (0 Internal Guider, 1 PHD2, 2 lin_guider)
    */
    static
    uint guiderType()
    {
      return self()->mGuiderType;
    }

    /**
      Is Which guider process to utilize for guiding (0 Internal Guider, 1 PHD2, 2 lin_guider) Immutable
    */
    static
    bool isGuiderTypeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuiderType" ) );
    }

    /**
      Set Which Algorithm to use track guide square (0 smart, 1 SEP, 2 fast, 3 threshold, 4 no threshold, 5 SEP multistar).
    */
    static
    void setGuideAlgorithm( uint v )
    {
      if (v != self()->mGuideAlgorithm && !self()->isGuideAlgorithmImmutable()) {
        self()->mGuideAlgorithm = v;
        Q_EMIT self()->GuideAlgorithmChanged();
      }
    }

    Q_PROPERTY(uint guideAlgorithm READ guideAlgorithm WRITE setGuideAlgorithm NOTIFY GuideAlgorithmChanged)
    Q_PROPERTY(bool isGuideAlgorithmImmutable READ isGuideAlgorithmImmutable CONSTANT)
    /**
      Get Which Algorithm to use track guide square (0 smart, 1 SEP, 2 fast, 3 threshold, 4 no threshold, 5 SEP multistar).
    */
    static
    uint guideAlgorithm()
    {
      return self()->mGuideAlgorithm;
    }

    /**
      Is Which Algorithm to use track guide square (0 smart, 1 SEP, 2 fast, 3 threshold, 4 no threshold, 5 SEP multistar). Immutable
    */
    static
    bool isGuideAlgorithmImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideAlgorithm" ) );
    }

    /**
      Set Which Algorithm to use to compute guiding pulses for RA (0 standard, 1 Hysteresis, 2 Linear, 3 GPG).
    */
    static
    void setRAGuidePulseAlgorithm( uint v )
    {
      if (v != self()->mRAGuidePulseAlgorithm && !self()->isRAGuidePulseAlgorithmImmutable()) {
        self()->mRAGuidePulseAlgorithm = v;
        Q_EMIT self()->RAGuidePulseAlgorithmChanged();
      }
    }

    Q_PROPERTY(uint rAGuidePulseAlgorithm READ rAGuidePulseAlgorithm WRITE setRAGuidePulseAlgorithm NOTIFY RAGuidePulseAlgorithmChanged)
    Q_PROPERTY(bool isRAGuidePulseAlgorithmImmutable READ isRAGuidePulseAlgorithmImmutable CONSTANT)
    /**
      Get Which Algorithm to use to compute guiding pulses for RA (0 standard, 1 Hysteresis, 2 Linear, 3 GPG).
    */
    static
    uint rAGuidePulseAlgorithm()
    {
      return self()->mRAGuidePulseAlgorithm;
    }

    /**
      Is Which Algorithm to use to compute guiding pulses for RA (0 standard, 1 Hysteresis, 2 Linear, 3 GPG). Immutable
    */
    static
    bool isRAGuidePulseAlgorithmImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RAGuidePulseAlgorithm" ) );
    }

    /**
      Set Which Algorithm to use to compute guiding pulses for DEC (0 standard, 1 Hysteresis, 2 Linear).
    */
    static
    void setDECGuidePulseAlgorithm( uint v )
    {
      if (v != self()->mDECGuidePulseAlgorithm && !self()->isDECGuidePulseAlgorithmImmutable()) {
        self()->mDECGuidePulseAlgorithm = v;
        Q_EMIT self()->DECGuidePulseAlgorithmChanged();
      }
    }

    Q_PROPERTY(uint dECGuidePulseAlgorithm READ dECGuidePulseAlgorithm WRITE setDECGuidePulseAlgorithm NOTIFY DECGuidePulseAlgorithmChanged)
    Q_PROPERTY(bool isDECGuidePulseAlgorithmImmutable READ isDECGuidePulseAlgorithmImmutable CONSTANT)
    /**
      Get Which Algorithm to use to compute guiding pulses for DEC (0 standard, 1 Hysteresis, 2 Linear).
    */
    static
    uint dECGuidePulseAlgorithm()
    {
      return self()->mDECGuidePulseAlgorithm;
    }

    /**
      Is Which Algorithm to use to compute guiding pulses for DEC (0 standard, 1 Hysteresis, 2 Linear). Immutable
    */
    static
    bool isDECGuidePulseAlgorithmImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DECGuidePulseAlgorithm" ) );
    }

    /**
      Set Path to the AI Guider Weights JSON file.
    */
    static
    void setAIGuiderWeightsFile( const QUrl & v )
    {
      if (v != self()->mAIGuiderWeightsFile && !self()->isAIGuiderWeightsFileImmutable()) {
        self()->mAIGuiderWeightsFile = v;
        Q_EMIT self()->AIGuiderWeightsFileChanged();
      }
    }

    Q_PROPERTY(QUrl aIGuiderWeightsFile READ aIGuiderWeightsFile WRITE setAIGuiderWeightsFile NOTIFY AIGuiderWeightsFileChanged)
    Q_PROPERTY(bool isAIGuiderWeightsFileImmutable READ isAIGuiderWeightsFileImmutable CONSTANT)
    /**
      Get Path to the AI Guider Weights JSON file.
    */
    static
    QUrl aIGuiderWeightsFile()
    {
      return self()->mAIGuiderWeightsFile;
    }

    /**
      Is Path to the AI Guider Weights JSON file. Immutable
    */
    static
    bool isAIGuiderWeightsFileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AIGuiderWeightsFile" ) );
    }

    /**
      Set AI feed-forward prediction gain (0.0–1.0). Blended with model confidence at runtime.
    */
    static
    void setAIPredictionGain( double v )
    {
      if (v < 0.0)
      {
        qDebug() << "setAIPredictionGain: value " << v << " is less than the minimum value of 0.0";
        v = 0.0;
      }

      if (v > 1.0)
      {
        qDebug() << "setAIPredictionGain: value " << v << " is greater than the maximum value of 1.0";
        v = 1.0;
      }

      if (v != self()->mAIPredictionGain && !self()->isAIPredictionGainImmutable()) {
        self()->mAIPredictionGain = v;
        Q_EMIT self()->AIPredictionGainChanged();
      }
    }

    Q_PROPERTY(double aIPredictionGain READ aIPredictionGain WRITE setAIPredictionGain NOTIFY AIPredictionGainChanged)
    Q_PROPERTY(bool isAIPredictionGainImmutable READ isAIPredictionGainImmutable CONSTANT)
    /**
      Get AI feed-forward prediction gain (0.0–1.0). Blended with model confidence at runtime.
    */
    static
    double aIPredictionGain()
    {
      return self()->mAIPredictionGain;
    }

    /**
      Is AI feed-forward prediction gain (0.0–1.0). Blended with model confidence at runtime. Immutable
    */
    static
    bool isAIPredictionGainImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AIPredictionGain" ) );
    }

    /**
      Set Dynamically scale down standard proportional gain when AI is highly confident.
    */
    static
    void setAIProportionalBackoff( bool v )
    {
      if (v != self()->mAIProportionalBackoff && !self()->isAIProportionalBackoffImmutable()) {
        self()->mAIProportionalBackoff = v;
        Q_EMIT self()->AIProportionalBackoffChanged();
      }
    }

    Q_PROPERTY(bool aIProportionalBackoff READ aIProportionalBackoff WRITE setAIProportionalBackoff NOTIFY AIProportionalBackoffChanged)
    Q_PROPERTY(bool isAIProportionalBackoffImmutable READ isAIProportionalBackoffImmutable CONSTANT)
    /**
      Get Dynamically scale down standard proportional gain when AI is highly confident.
    */
    static
    bool aIProportionalBackoff()
    {
      return self()->mAIProportionalBackoff;
    }

    /**
      Is Dynamically scale down standard proportional gain when AI is highly confident. Immutable
    */
    static
    bool isAIProportionalBackoffImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AIProportionalBackoff" ) );
    }

    /**
      Set Run PID Auto-Tune (step-response gain calibration) as part of the AI data collection protocol.
    */
    static
    void setAIPIDAutoTune( bool v )
    {
      if (v != self()->mAIPIDAutoTune && !self()->isAIPIDAutoTuneImmutable()) {
        self()->mAIPIDAutoTune = v;
        Q_EMIT self()->AIPIDAutoTuneChanged();
      }
    }

    Q_PROPERTY(bool aIPIDAutoTune READ aIPIDAutoTune WRITE setAIPIDAutoTune NOTIFY AIPIDAutoTuneChanged)
    Q_PROPERTY(bool isAIPIDAutoTuneImmutable READ isAIPIDAutoTuneImmutable CONSTANT)
    /**
      Get Run PID Auto-Tune (step-response gain calibration) as part of the AI data collection protocol.
    */
    static
    bool aIPIDAutoTune()
    {
      return self()->mAIPIDAutoTune;
    }

    /**
      Is Run PID Auto-Tune (step-response gain calibration) as part of the AI data collection protocol. Immutable
    */
    static
    bool isAIPIDAutoTuneImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AIPIDAutoTune" ) );
    }

    /**
      Set Run AI model alongside standard guiding, logging predictions without applying them.
    */
    static
    void setAIShadowMode( bool v )
    {
      if (v != self()->mAIShadowMode && !self()->isAIShadowModeImmutable()) {
        self()->mAIShadowMode = v;
        Q_EMIT self()->AIShadowModeChanged();
      }
    }

    Q_PROPERTY(bool aIShadowMode READ aIShadowMode WRITE setAIShadowMode NOTIFY AIShadowModeChanged)
    Q_PROPERTY(bool isAIShadowModeImmutable READ isAIShadowModeImmutable CONSTANT)
    /**
      Get Run AI model alongside standard guiding, logging predictions without applying them.
    */
    static
    bool aIShadowMode()
    {
      return self()->mAIShadowMode;
    }

    /**
      Is Run AI model alongside standard guiding, logging predictions without applying them. Immutable
    */
    static
    bool isAIShadowModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AIShadowMode" ) );
    }

    /**
      Set Host name of external PHD2 service
    */
    static
    void setPHD2Host( const QString & v )
    {
      if (v != self()->mPHD2Host && !self()->isPHD2HostImmutable()) {
        self()->mPHD2Host = v;
        Q_EMIT self()->PHD2HostChanged();
      }
    }

    Q_PROPERTY(QString pHD2Host READ pHD2Host WRITE setPHD2Host NOTIFY PHD2HostChanged)
    Q_PROPERTY(bool isPHD2HostImmutable READ isPHD2HostImmutable CONSTANT)
    /**
      Get Host name of external PHD2 service
    */
    static
    QString pHD2Host()
    {
      return self()->mPHD2Host;
    }

    /**
      Is Host name of external PHD2 service Immutable
    */
    static
    bool isPHD2HostImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PHD2Host" ) );
    }

    /**
      Set PHD2 Event Monitoring Port
    */
    static
    void setPHD2Port( uint v )
    {
      if (v != self()->mPHD2Port && !self()->isPHD2PortImmutable()) {
        self()->mPHD2Port = v;
        Q_EMIT self()->PHD2PortChanged();
      }
    }

    Q_PROPERTY(uint pHD2Port READ pHD2Port WRITE setPHD2Port NOTIFY PHD2PortChanged)
    Q_PROPERTY(bool isPHD2PortImmutable READ isPHD2PortImmutable CONSTANT)
    /**
      Get PHD2 Event Monitoring Port
    */
    static
    uint pHD2Port()
    {
      return self()->mPHD2Port;
    }

    /**
      Is PHD2 Event Monitoring Port Immutable
    */
    static
    bool isPHD2PortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PHD2Port" ) );
    }

    /**
      Set Host name of external lin_guider service
    */
    static
    void setLinGuiderHost( const QString & v )
    {
      if (v != self()->mLinGuiderHost && !self()->isLinGuiderHostImmutable()) {
        self()->mLinGuiderHost = v;
        Q_EMIT self()->LinGuiderHostChanged();
      }
    }

    Q_PROPERTY(QString linGuiderHost READ linGuiderHost WRITE setLinGuiderHost NOTIFY LinGuiderHostChanged)
    Q_PROPERTY(bool isLinGuiderHostImmutable READ isLinGuiderHostImmutable CONSTANT)
    /**
      Get Host name of external lin_guider service
    */
    static
    QString linGuiderHost()
    {
      return self()->mLinGuiderHost;
    }

    /**
      Is Host name of external lin_guider service Immutable
    */
    static
    bool isLinGuiderHostImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LinGuiderHost" ) );
    }

    /**
      Set Lin_guider Event Monitoring Port
    */
    static
    void setLinGuiderPort( uint v )
    {
      if (v != self()->mLinGuiderPort && !self()->isLinGuiderPortImmutable()) {
        self()->mLinGuiderPort = v;
        Q_EMIT self()->LinGuiderPortChanged();
      }
    }

    Q_PROPERTY(uint linGuiderPort READ linGuiderPort WRITE setLinGuiderPort NOTIFY LinGuiderPortChanged)
    Q_PROPERTY(bool isLinGuiderPortImmutable READ isLinGuiderPortImmutable CONSTANT)
    /**
      Get Lin_guider Event Monitoring Port
    */
    static
    uint linGuiderPort()
    {
      return self()->mLinGuiderPort;
    }

    /**
      Is Lin_guider Event Monitoring Port Immutable
    */
    static
    bool isLinGuiderPortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LinGuiderPort" ) );
    }

    /**
      Set Pulse duration in milliseconds used for guiding pulses during calibration stage.
    */
    static
    void setCalibrationPulseDuration( uint v )
    {
      if (v != self()->mCalibrationPulseDuration && !self()->isCalibrationPulseDurationImmutable()) {
        self()->mCalibrationPulseDuration = v;
        Q_EMIT self()->CalibrationPulseDurationChanged();
      }
    }

    Q_PROPERTY(uint calibrationPulseDuration READ calibrationPulseDuration WRITE setCalibrationPulseDuration NOTIFY CalibrationPulseDurationChanged)
    Q_PROPERTY(bool isCalibrationPulseDurationImmutable READ isCalibrationPulseDurationImmutable CONSTANT)
    /**
      Get Pulse duration in milliseconds used for guiding pulses during calibration stage.
    */
    static
    uint calibrationPulseDuration()
    {
      return self()->mCalibrationPulseDuration;
    }

    /**
      Is Pulse duration in milliseconds used for guiding pulses during calibration stage. Immutable
    */
    static
    bool isCalibrationPulseDurationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CalibrationPulseDuration" ) );
    }

    /**
      Set Maximum number of pixels the calibration should move (approximate).
    */
    static
    void setCalibrationMaxMove( uint v )
    {
      if (v != self()->mCalibrationMaxMove && !self()->isCalibrationMaxMoveImmutable()) {
        self()->mCalibrationMaxMove = v;
        Q_EMIT self()->CalibrationMaxMoveChanged();
      }
    }

    Q_PROPERTY(uint calibrationMaxMove READ calibrationMaxMove WRITE setCalibrationMaxMove NOTIFY CalibrationMaxMoveChanged)
    Q_PROPERTY(bool isCalibrationMaxMoveImmutable READ isCalibrationMaxMoveImmutable CONSTANT)
    /**
      Get Maximum number of pixels the calibration should move (approximate).
    */
    static
    uint calibrationMaxMove()
    {
      return self()->mCalibrationMaxMove;
    }

    /**
      Is Maximum number of pixels the calibration should move (approximate). Immutable
    */
    static
    bool isCalibrationMaxMoveImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CalibrationMaxMove" ) );
    }

    /**
      Set Guide square size selection in pixels.
    */
    static
    void setGuideSquareSize( const QString & v )
    {
      if (v != self()->mGuideSquareSize && !self()->isGuideSquareSizeImmutable()) {
        self()->mGuideSquareSize = v;
        Q_EMIT self()->GuideSquareSizeChanged();
      }
    }

    Q_PROPERTY(QString guideSquareSize READ guideSquareSize WRITE setGuideSquareSize NOTIFY GuideSquareSizeChanged)
    Q_PROPERTY(bool isGuideSquareSizeImmutable READ isGuideSquareSizeImmutable CONSTANT)
    /**
      Get Guide square size selection in pixels.
    */
    static
    QString guideSquareSize()
    {
      return self()->mGuideSquareSize;
    }

    /**
      Is Guide square size selection in pixels. Immutable
    */
    static
    bool isGuideSquareSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideSquareSize" ) );
    }

    /**
      Set Guide binning.
    */
    static
    void setGuideBinning( const QString & v )
    {
      if (v != self()->mGuideBinning && !self()->isGuideBinningImmutable()) {
        self()->mGuideBinning = v;
        Q_EMIT self()->GuideBinningChanged();
      }
    }

    Q_PROPERTY(QString guideBinning READ guideBinning WRITE setGuideBinning NOTIFY GuideBinningChanged)
    Q_PROPERTY(bool isGuideBinningImmutable READ isGuideBinningImmutable CONSTANT)
    /**
      Get Guide binning.
    */
    static
    QString guideBinning()
    {
      return self()->mGuideBinning;
    }

    /**
      Is Guide binning. Immutable
    */
    static
    bool isGuideBinningImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideBinning" ) );
    }

    /**
      Set Automatically select calibration star and perform calibration.
    */
    static
    void setGuideAutoStar( bool v )
    {
      if (v != self()->mGuideAutoStar && !self()->isGuideAutoStarImmutable()) {
        self()->mGuideAutoStar = v;
        Q_EMIT self()->GuideAutoStarChanged();
      }
    }

    Q_PROPERTY(bool guideAutoStar READ guideAutoStar WRITE setGuideAutoStar NOTIFY GuideAutoStarChanged)
    Q_PROPERTY(bool isGuideAutoStarImmutable READ isGuideAutoStarImmutable CONSTANT)
    /**
      Get Automatically select calibration star and perform calibration.
    */
    static
    bool guideAutoStar()
    {
      return self()->mGuideAutoStar;
    }

    /**
      Is Automatically select calibration star and perform calibration. Immutable
    */
    static
    bool isGuideAutoStarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideAutoStar" ) );
    }

    /**
      Set Display guiding frames.
    */
    static
    void setGuideShowFrame( bool v )
    {
      if (v != self()->mGuideShowFrame && !self()->isGuideShowFrameImmutable()) {
        self()->mGuideShowFrame = v;
        Q_EMIT self()->guideShowFrameChanged();
      }
    }

    Q_PROPERTY(bool guideShowFrame READ guideShowFrame WRITE setGuideShowFrame NOTIFY guideShowFrameChanged)
    Q_PROPERTY(bool isGuideShowFrameImmutable READ isGuideShowFrameImmutable CONSTANT)
    /**
      Get Display guiding frames.
    */
    static
    bool guideShowFrame()
    {
      return self()->mGuideShowFrame;
    }

    /**
      Is Display guiding frames. Immutable
    */
    static
    bool isGuideShowFrameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "guideShowFrame" ) );
    }

    /**
      Set Automatically select the square size based on the selected star width.
    */
    static
    void setGuideAutoSquareSizeEnabled( bool v )
    {
      if (v != self()->mGuideAutoSquareSizeEnabled && !self()->isGuideAutoSquareSizeEnabledImmutable()) {
        self()->mGuideAutoSquareSizeEnabled = v;
        Q_EMIT self()->GuideAutoSquareSizeEnabledChanged();
      }
    }

    Q_PROPERTY(bool guideAutoSquareSizeEnabled READ guideAutoSquareSizeEnabled WRITE setGuideAutoSquareSizeEnabled NOTIFY GuideAutoSquareSizeEnabledChanged)
    Q_PROPERTY(bool isGuideAutoSquareSizeEnabledImmutable READ isGuideAutoSquareSizeEnabledImmutable CONSTANT)
    /**
      Get Automatically select the square size based on the selected star width.
    */
    static
    bool guideAutoSquareSizeEnabled()
    {
      return self()->mGuideAutoSquareSizeEnabled;
    }

    /**
      Is Automatically select the square size based on the selected star width. Immutable
    */
    static
    bool isGuideAutoSquareSizeEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideAutoSquareSizeEnabled" ) );
    }

    /**
      Set Number of automode iterations for calibration process.
    */
    static
    void setAutoModeIterations( uint v )
    {
      if (v != self()->mAutoModeIterations && !self()->isAutoModeIterationsImmutable()) {
        self()->mAutoModeIterations = v;
        Q_EMIT self()->AutoModeIterationsChanged();
      }
    }

    Q_PROPERTY(uint autoModeIterations READ autoModeIterations WRITE setAutoModeIterations NOTIFY AutoModeIterationsChanged)
    Q_PROPERTY(bool isAutoModeIterationsImmutable READ isAutoModeIterationsImmutable CONSTANT)
    /**
      Get Number of automode iterations for calibration process.
    */
    static
    uint autoModeIterations()
    {
      return self()->mAutoModeIterations;
    }

    /**
      Is Number of automode iterations for calibration process. Immutable
    */
    static
    bool isAutoModeIterationsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutoModeIterations" ) );
    }

    /**
      Set When star tracking is lost, wait this many seconds before aborting.
    */
    static
    void setGuideLostStarTimeout( uint v )
    {
      if (v != self()->mGuideLostStarTimeout && !self()->isGuideLostStarTimeoutImmutable()) {
        self()->mGuideLostStarTimeout = v;
        Q_EMIT self()->GuideLostStarTimeoutChanged();
      }
    }

    Q_PROPERTY(uint guideLostStarTimeout READ guideLostStarTimeout WRITE setGuideLostStarTimeout NOTIFY GuideLostStarTimeoutChanged)
    Q_PROPERTY(bool isGuideLostStarTimeoutImmutable READ isGuideLostStarTimeoutImmutable CONSTANT)
    /**
      Get When star tracking is lost, wait this many seconds before aborting.
    */
    static
    uint guideLostStarTimeout()
    {
      return self()->mGuideLostStarTimeout;
    }

    /**
      Is When star tracking is lost, wait this many seconds before aborting. Immutable
    */
    static
    bool isGuideLostStarTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideLostStarTimeout" ) );
    }

    /**
      Set When calibration starts, wait this many seconds before aborting.
    */
    static
    void setGuideCalibrationTimeout( uint v )
    {
      if (v != self()->mGuideCalibrationTimeout && !self()->isGuideCalibrationTimeoutImmutable()) {
        self()->mGuideCalibrationTimeout = v;
        Q_EMIT self()->GuideCalibrationTimeoutChanged();
      }
    }

    Q_PROPERTY(uint guideCalibrationTimeout READ guideCalibrationTimeout WRITE setGuideCalibrationTimeout NOTIFY GuideCalibrationTimeoutChanged)
    Q_PROPERTY(bool isGuideCalibrationTimeoutImmutable READ isGuideCalibrationTimeoutImmutable CONSTANT)
    /**
      Get When calibration starts, wait this many seconds before aborting.
    */
    static
    uint guideCalibrationTimeout()
    {
      return self()->mGuideCalibrationTimeout;
    }

    /**
      Is When calibration starts, wait this many seconds before aborting. Immutable
    */
    static
    bool isGuideCalibrationTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideCalibrationTimeout" ) );
    }

    /**
      Set Maximum delta RMS permitted while guiding before aborting.
    */
    static
    void setGuideMaxDeltaRMS( double v )
    {
      if (v != self()->mGuideMaxDeltaRMS && !self()->isGuideMaxDeltaRMSImmutable()) {
        self()->mGuideMaxDeltaRMS = v;
        Q_EMIT self()->GuideMaxDeltaRMSChanged();
      }
    }

    Q_PROPERTY(double guideMaxDeltaRMS READ guideMaxDeltaRMS WRITE setGuideMaxDeltaRMS NOTIFY GuideMaxDeltaRMSChanged)
    Q_PROPERTY(bool isGuideMaxDeltaRMSImmutable READ isGuideMaxDeltaRMSImmutable CONSTANT)
    /**
      Get Maximum delta RMS permitted while guiding before aborting.
    */
    static
    double guideMaxDeltaRMS()
    {
      return self()->mGuideMaxDeltaRMS;
    }

    /**
      Is Maximum delta RMS permitted while guiding before aborting. Immutable
    */
    static
    bool isGuideMaxDeltaRMSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideMaxDeltaRMS" ) );
    }

    /**
      Set Maximum HFR permitted for SEP MultiStar guide star.
    */
    static
    void setGuideMaxHFR( double v )
    {
      if (v != self()->mGuideMaxHFR && !self()->isGuideMaxHFRImmutable()) {
        self()->mGuideMaxHFR = v;
        Q_EMIT self()->GuideMaxHFRChanged();
      }
    }

    Q_PROPERTY(double guideMaxHFR READ guideMaxHFR WRITE setGuideMaxHFR NOTIFY GuideMaxHFRChanged)
    Q_PROPERTY(bool isGuideMaxHFRImmutable READ isGuideMaxHFRImmutable CONSTANT)
    /**
      Get Maximum HFR permitted for SEP MultiStar guide star.
    */
    static
    double guideMaxHFR()
    {
      return self()->mGuideMaxHFR;
    }

    /**
      Is Maximum HFR permitted for SEP MultiStar guide star. Immutable
    */
    static
    bool isGuideMaxHFRImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideMaxHFR" ) );
    }

    /**
      Set Minimum number of stars detected for SEP MultiStar to initialize.
    */
    static
    void setMinDetectionsSEPMultistar( uint v )
    {
      if (v != self()->mMinDetectionsSEPMultistar && !self()->isMinDetectionsSEPMultistarImmutable()) {
        self()->mMinDetectionsSEPMultistar = v;
        Q_EMIT self()->MinDetectionsSEPMultistarChanged();
      }
    }

    Q_PROPERTY(uint minDetectionsSEPMultistar READ minDetectionsSEPMultistar WRITE setMinDetectionsSEPMultistar NOTIFY MinDetectionsSEPMultistarChanged)
    Q_PROPERTY(bool isMinDetectionsSEPMultistarImmutable READ isMinDetectionsSEPMultistarImmutable CONSTANT)
    /**
      Get Minimum number of stars detected for SEP MultiStar to initialize.
    */
    static
    uint minDetectionsSEPMultistar()
    {
      return self()->mMinDetectionsSEPMultistar;
    }

    /**
      Is Minimum number of stars detected for SEP MultiStar to initialize. Immutable
    */
    static
    bool isMinDetectionsSEPMultistarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MinDetectionsSEPMultistar" ) );
    }

    /**
      Set Maximum number of SEP MultiStar number of stars used as references.
    */
    static
    void setMaxMultistarReferenceStars( uint v )
    {
      if (v != self()->mMaxMultistarReferenceStars && !self()->isMaxMultistarReferenceStarsImmutable()) {
        self()->mMaxMultistarReferenceStars = v;
        Q_EMIT self()->MaxMultistarReferenceStarsChanged();
      }
    }

    Q_PROPERTY(uint maxMultistarReferenceStars READ maxMultistarReferenceStars WRITE setMaxMultistarReferenceStars NOTIFY MaxMultistarReferenceStarsChanged)
    Q_PROPERTY(bool isMaxMultistarReferenceStarsImmutable READ isMaxMultistarReferenceStarsImmutable CONSTANT)
    /**
      Get Maximum number of SEP MultiStar number of stars used as references.
    */
    static
    uint maxMultistarReferenceStars()
    {
      return self()->mMaxMultistarReferenceStars;
    }

    /**
      Is Maximum number of SEP MultiStar number of stars used as references. Immutable
    */
    static
    bool isMaxMultistarReferenceStarsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MaxMultistarReferenceStars" ) );
    }

    /**
      Set Invent a guide star position from the multi-star references.
    */
    static
    void setAlwaysInventGuideStar( bool v )
    {
      if (v != self()->mAlwaysInventGuideStar && !self()->isAlwaysInventGuideStarImmutable()) {
        self()->mAlwaysInventGuideStar = v;
        Q_EMIT self()->AlwaysInventGuideStarChanged();
      }
    }

    Q_PROPERTY(bool alwaysInventGuideStar READ alwaysInventGuideStar WRITE setAlwaysInventGuideStar NOTIFY AlwaysInventGuideStarChanged)
    Q_PROPERTY(bool isAlwaysInventGuideStarImmutable READ isAlwaysInventGuideStarImmutable CONSTANT)
    /**
      Get Invent a guide star position from the multi-star references.
    */
    static
    bool alwaysInventGuideStar()
    {
      return self()->mAlwaysInventGuideStar;
    }

    /**
      Is Invent a guide star position from the multi-star references. Immutable
    */
    static
    bool isAlwaysInventGuideStarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlwaysInventGuideStar" ) );
    }

    /**
      Set Use both axes to perform calibration.
    */
    static
    void setTwoAxisEnabled( bool v )
    {
      if (v != self()->mTwoAxisEnabled && !self()->isTwoAxisEnabledImmutable()) {
        self()->mTwoAxisEnabled = v;
        Q_EMIT self()->TwoAxisEnabledChanged();
      }
    }

    Q_PROPERTY(bool twoAxisEnabled READ twoAxisEnabled WRITE setTwoAxisEnabled NOTIFY TwoAxisEnabledChanged)
    Q_PROPERTY(bool isTwoAxisEnabledImmutable READ isTwoAxisEnabledImmutable CONSTANT)
    /**
      Get Use both axes to perform calibration.
    */
    static
    bool twoAxisEnabled()
    {
      return self()->mTwoAxisEnabled;
    }

    /**
      Is Use both axes to perform calibration. Immutable
    */
    static
    bool isTwoAxisEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TwoAxisEnabled" ) );
    }

    /**
      Set Use the guider chip for guiding from cameras that have a dedicated guider chip.
    */
    static
    void setUseGuideHead( bool v )
    {
      if (v != self()->mUseGuideHead && !self()->isUseGuideHeadImmutable()) {
        self()->mUseGuideHead = v;
        Q_EMIT self()->UseGuideHeadChanged();
      }
    }

    Q_PROPERTY(bool useGuideHead READ useGuideHead WRITE setUseGuideHead NOTIFY UseGuideHeadChanged)
    Q_PROPERTY(bool isUseGuideHeadImmutable READ isUseGuideHeadImmutable CONSTANT)
    /**
      Get Use the guider chip for guiding from cameras that have a dedicated guider chip.
    */
    static
    bool useGuideHead()
    {
      return self()->mUseGuideHead;
    }

    /**
      Is Use the guider chip for guiding from cameras that have a dedicated guider chip. Immutable
    */
    static
    bool isUseGuideHeadImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseGuideHead" ) );
    }

    /**
      Set Automatically save internal guider user logs.
    */
    static
    void setSaveGuideLog( bool v )
    {
      if (v != self()->mSaveGuideLog && !self()->isSaveGuideLogImmutable()) {
        self()->mSaveGuideLog = v;
        Q_EMIT self()->SaveGuideLogChanged();
      }
    }

    Q_PROPERTY(bool saveGuideLog READ saveGuideLog WRITE setSaveGuideLog NOTIFY SaveGuideLogChanged)
    Q_PROPERTY(bool isSaveGuideLogImmutable READ isSaveGuideLogImmutable CONSTANT)
    /**
      Get Automatically save internal guider user logs.
    */
    static
    bool saveGuideLog()
    {
      return self()->mSaveGuideLog;
    }

    /**
      Is Automatically save internal guider user logs. Immutable
    */
    static
    bool isSaveGuideLogImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SaveGuideLog" ) );
    }

    /**
      Set Take dark frame for autoguider images.
    */
    static
    void setGuideDarkFrame( bool v )
    {
      if (v != self()->mGuideDarkFrame && !self()->isGuideDarkFrameImmutable()) {
        self()->mGuideDarkFrame = v;
        Q_EMIT self()->GuideDarkFrameChanged();
      }
    }

    Q_PROPERTY(bool guideDarkFrame READ guideDarkFrame WRITE setGuideDarkFrame NOTIFY GuideDarkFrameChanged)
    Q_PROPERTY(bool isGuideDarkFrameImmutable READ isGuideDarkFrameImmutable CONSTANT)
    /**
      Get Take dark frame for autoguider images.
    */
    static
    bool guideDarkFrame()
    {
      return self()->mGuideDarkFrame;
    }

    /**
      Is Take dark frame for autoguider images. Immutable
    */
    static
    bool isGuideDarkFrameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideDarkFrame" ) );
    }

    /**
      Set Subframe guide image around selected region
    */
    static
    void setGuideSubframe( bool v )
    {
      if (v != self()->mGuideSubframe && !self()->isGuideSubframeImmutable()) {
        self()->mGuideSubframe = v;
        Q_EMIT self()->GuideSubframeChanged();
      }
    }

    Q_PROPERTY(bool guideSubframe READ guideSubframe WRITE setGuideSubframe NOTIFY GuideSubframeChanged)
    Q_PROPERTY(bool isGuideSubframeImmutable READ isGuideSubframeImmutable CONSTANT)
    /**
      Get Subframe guide image around selected region
    */
    static
    bool guideSubframe()
    {
      return self()->mGuideSubframe;
    }

    /**
      Is Subframe guide image around selected region Immutable
    */
    static
    bool isGuideSubframeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideSubframe" ) );
    }

    /**
      Set How many pixels to move between subsequent exposures under auto dithering mode.
    */
    static
    void setDitherPixels( double v )
    {
      if (v != self()->mDitherPixels && !self()->isDitherPixelsImmutable()) {
        self()->mDitherPixels = v;
        Q_EMIT self()->DitherPixelsChanged();
      }
    }

    Q_PROPERTY(double ditherPixels READ ditherPixels WRITE setDitherPixels NOTIFY DitherPixelsChanged)
    Q_PROPERTY(bool isDitherPixelsImmutable READ isDitherPixelsImmutable CONSTANT)
    /**
      Get How many pixels to move between subsequent exposures under auto dithering mode.
    */
    static
    double ditherPixels()
    {
      return self()->mDitherPixels;
    }

    /**
      Is How many pixels to move between subsequent exposures under auto dithering mode. Immutable
    */
    static
    bool isDitherPixelsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherPixels" ) );
    }

    /**
      Set Dither after this many frames.
    */
    static
    void setDitherFrames( uint v )
    {
      if (v != self()->mDitherFrames && !self()->isDitherFramesImmutable()) {
        self()->mDitherFrames = v;
        Q_EMIT self()->DitherFramesChanged();
      }
    }

    Q_PROPERTY(uint ditherFrames READ ditherFrames WRITE setDitherFrames NOTIFY DitherFramesChanged)
    Q_PROPERTY(bool isDitherFramesImmutable READ isDitherFramesImmutable CONSTANT)
    /**
      Get Dither after this many frames.
    */
    static
    uint ditherFrames()
    {
      return self()->mDitherFrames;
    }

    /**
      Is Dither after this many frames. Immutable
    */
    static
    bool isDitherFramesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherFrames" ) );
    }

    /**
      Set After dither is successful, wait for this many seconds before proceeding.
    */
    static
    void setDitherSettle( uint v )
    {
      if (v != self()->mDitherSettle && !self()->isDitherSettleImmutable()) {
        self()->mDitherSettle = v;
        Q_EMIT self()->DitherSettleChanged();
      }
    }

    Q_PROPERTY(uint ditherSettle READ ditherSettle WRITE setDitherSettle NOTIFY DitherSettleChanged)
    Q_PROPERTY(bool isDitherSettleImmutable READ isDitherSettleImmutable CONSTANT)
    /**
      Get After dither is successful, wait for this many seconds before proceeding.
    */
    static
    uint ditherSettle()
    {
      return self()->mDitherSettle;
    }

    /**
      Is After dither is successful, wait for this many seconds before proceeding. Immutable
    */
    static
    bool isDitherSettleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherSettle" ) );
    }

    /**
      Set Maximum distance (pixels) for guiding to be considered settled.
    */
    static
    void setDitherThreshold( double v )
    {
      if (v != self()->mDitherThreshold && !self()->isDitherThresholdImmutable()) {
        self()->mDitherThreshold = v;
        Q_EMIT self()->DitherThresholdChanged();
      }
    }

    Q_PROPERTY(double ditherThreshold READ ditherThreshold WRITE setDitherThreshold NOTIFY DitherThresholdChanged)
    Q_PROPERTY(bool isDitherThresholdImmutable READ isDitherThresholdImmutable CONSTANT)
    /**
      Get Maximum distance (pixels) for guiding to be considered settled.
    */
    static
    double ditherThreshold()
    {
      return self()->mDitherThreshold;
    }

    /**
      Is Maximum distance (pixels) for guiding to be considered settled. Immutable
    */
    static
    bool isDitherThresholdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherThreshold" ) );
    }

    /**
      Set Time limit (seconds) on dithering to settle down.
    */
    static
    void setDitherTimeout( uint v )
    {
      if (v != self()->mDitherTimeout && !self()->isDitherTimeoutImmutable()) {
        self()->mDitherTimeout = v;
        Q_EMIT self()->DitherTimeoutChanged();
      }
    }

    Q_PROPERTY(uint ditherTimeout READ ditherTimeout WRITE setDitherTimeout NOTIFY DitherTimeoutChanged)
    Q_PROPERTY(bool isDitherTimeoutImmutable READ isDitherTimeoutImmutable CONSTANT)
    /**
      Get Time limit (seconds) on dithering to settle down.
    */
    static
    uint ditherTimeout()
    {
      return self()->mDitherTimeout;
    }

    /**
      Is Time limit (seconds) on dithering to settle down. Immutable
    */
    static
    bool isDitherTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherTimeout" ) );
    }

    /**
      Set How many dithering attempts to undertake before giving up.
    */
    static
    void setDitherMaxIterations( uint v )
    {
      if (v != self()->mDitherMaxIterations && !self()->isDitherMaxIterationsImmutable()) {
        self()->mDitherMaxIterations = v;
        Q_EMIT self()->DitherMaxIterationsChanged();
      }
    }

    Q_PROPERTY(uint ditherMaxIterations READ ditherMaxIterations WRITE setDitherMaxIterations NOTIFY DitherMaxIterationsChanged)
    Q_PROPERTY(bool isDitherMaxIterationsImmutable READ isDitherMaxIterationsImmutable CONSTANT)
    /**
      Get How many dithering attempts to undertake before giving up.
    */
    static
    uint ditherMaxIterations()
    {
      return self()->mDitherMaxIterations;
    }

    /**
      Is How many dithering attempts to undertake before giving up. Immutable
    */
    static
    bool isDitherMaxIterationsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherMaxIterations" ) );
    }

    /**
      Set Pulse length in milliseconds used for non-guiding dither.
    */
    static
    void setDitherNoGuidingPulse( uint v )
    {
      if (v != self()->mDitherNoGuidingPulse && !self()->isDitherNoGuidingPulseImmutable()) {
        self()->mDitherNoGuidingPulse = v;
        Q_EMIT self()->DitherNoGuidingPulseChanged();
      }
    }

    Q_PROPERTY(uint ditherNoGuidingPulse READ ditherNoGuidingPulse WRITE setDitherNoGuidingPulse NOTIFY DitherNoGuidingPulseChanged)
    Q_PROPERTY(bool isDitherNoGuidingPulseImmutable READ isDitherNoGuidingPulseImmutable CONSTANT)
    /**
      Get Pulse length in milliseconds used for non-guiding dither.
    */
    static
    uint ditherNoGuidingPulse()
    {
      return self()->mDitherNoGuidingPulse;
    }

    /**
      Is Pulse length in milliseconds used for non-guiding dither. Immutable
    */
    static
    bool isDitherNoGuidingPulseImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherNoGuidingPulse" ) );
    }

    /**
      Set If dithering fails then abort autoguide.
    */
    static
    void setDitherFailAbortsAutoGuide( bool v )
    {
      if (v != self()->mDitherFailAbortsAutoGuide && !self()->isDitherFailAbortsAutoGuideImmutable()) {
        self()->mDitherFailAbortsAutoGuide = v;
        Q_EMIT self()->DitherFailAbortsAutoGuideChanged();
      }
    }

    Q_PROPERTY(bool ditherFailAbortsAutoGuide READ ditherFailAbortsAutoGuide WRITE setDitherFailAbortsAutoGuide NOTIFY DitherFailAbortsAutoGuideChanged)
    Q_PROPERTY(bool isDitherFailAbortsAutoGuideImmutable READ isDitherFailAbortsAutoGuideImmutable CONSTANT)
    /**
      Get If dithering fails then abort autoguide.
    */
    static
    bool ditherFailAbortsAutoGuide()
    {
      return self()->mDitherFailAbortsAutoGuide;
    }

    /**
      Is If dithering fails then abort autoguide. Immutable
    */
    static
    bool isDitherFailAbortsAutoGuideImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherFailAbortsAutoGuide" ) );
    }

    /**
      Set Dithering amount is randomly generated, pulses are sent, but the resultant pixel dithering amount is not enforced, so only the one dither pulse is sent. This is quicker, and recommended as dither amount is random anyway. It is necessary when 2-D dither is required but guiding is only done in one axis.
    */
    static
    void setDitherWithOnePulse( bool v )
    {
      if (v != self()->mDitherWithOnePulse && !self()->isDitherWithOnePulseImmutable()) {
        self()->mDitherWithOnePulse = v;
        Q_EMIT self()->DitherWithOnePulseChanged();
      }
    }

    Q_PROPERTY(bool ditherWithOnePulse READ ditherWithOnePulse WRITE setDitherWithOnePulse NOTIFY DitherWithOnePulseChanged)
    Q_PROPERTY(bool isDitherWithOnePulseImmutable READ isDitherWithOnePulseImmutable CONSTANT)
    /**
      Get Dithering amount is randomly generated, pulses are sent, but the resultant pixel dithering amount is not enforced, so only the one dither pulse is sent. This is quicker, and recommended as dither amount is random anyway. It is necessary when 2-D dither is required but guiding is only done in one axis.
    */
    static
    bool ditherWithOnePulse()
    {
      return self()->mDitherWithOnePulse;
    }

    /**
      Is Dithering amount is randomly generated, pulses are sent, but the resultant pixel dithering amount is not enforced, so only the one dither pulse is sent. This is quicker, and recommended as dither amount is random anyway. It is necessary when 2-D dither is required but guiding is only done in one axis. Immutable
    */
    static
    bool isDitherWithOnePulseImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherWithOnePulse" ) );
    }

    /**
      Set Use Auto Dithering when guiding.
    */
    static
    void setDitherEnabled( bool v )
    {
      if (v != self()->mDitherEnabled && !self()->isDitherEnabledImmutable()) {
        self()->mDitherEnabled = v;
        Q_EMIT self()->DitherEnabledChanged();
      }
    }

    Q_PROPERTY(bool ditherEnabled READ ditherEnabled WRITE setDitherEnabled NOTIFY DitherEnabledChanged)
    Q_PROPERTY(bool isDitherEnabledImmutable READ isDitherEnabledImmutable CONSTANT)
    /**
      Get Use Auto Dithering when guiding.
    */
    static
    bool ditherEnabled()
    {
      return self()->mDitherEnabled;
    }

    /**
      Is Use Auto Dithering when guiding. Immutable
    */
    static
    bool isDitherEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherEnabled" ) );
    }

    /**
      Set Perform dithering even when not guiding.
    */
    static
    void setDitherNoGuiding( bool v )
    {
      if (v != self()->mDitherNoGuiding && !self()->isDitherNoGuidingImmutable()) {
        self()->mDitherNoGuiding = v;
        Q_EMIT self()->DitherNoGuidingChanged();
      }
    }

    Q_PROPERTY(bool ditherNoGuiding READ ditherNoGuiding WRITE setDitherNoGuiding NOTIFY DitherNoGuidingChanged)
    Q_PROPERTY(bool isDitherNoGuidingImmutable READ isDitherNoGuidingImmutable CONSTANT)
    /**
      Get Perform dithering even when not guiding.
    */
    static
    bool ditherNoGuiding()
    {
      return self()->mDitherNoGuiding;
    }

    /**
      Is Perform dithering even when not guiding. Immutable
    */
    static
    bool isDitherNoGuidingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DitherNoGuiding" ) );
    }

    /**
      Set Enable autoguiding in the RA axis.
    */
    static
    void setRAGuideEnabled( bool v )
    {
      if (v != self()->mRAGuideEnabled && !self()->isRAGuideEnabledImmutable()) {
        self()->mRAGuideEnabled = v;
        Q_EMIT self()->RAGuideEnabledChanged();
      }
    }

    Q_PROPERTY(bool rAGuideEnabled READ rAGuideEnabled WRITE setRAGuideEnabled NOTIFY RAGuideEnabledChanged)
    Q_PROPERTY(bool isRAGuideEnabledImmutable READ isRAGuideEnabledImmutable CONSTANT)
    /**
      Get Enable autoguiding in the RA axis.
    */
    static
    bool rAGuideEnabled()
    {
      return self()->mRAGuideEnabled;
    }

    /**
      Is Enable autoguiding in the RA axis. Immutable
    */
    static
    bool isRAGuideEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RAGuideEnabled" ) );
    }

    /**
      Set Enable autoguiding in the DEC axis.
    */
    static
    void setDECGuideEnabled( bool v )
    {
      if (v != self()->mDECGuideEnabled && !self()->isDECGuideEnabledImmutable()) {
        self()->mDECGuideEnabled = v;
        Q_EMIT self()->DECGuideEnabledChanged();
      }
    }

    Q_PROPERTY(bool dECGuideEnabled READ dECGuideEnabled WRITE setDECGuideEnabled NOTIFY DECGuideEnabledChanged)
    Q_PROPERTY(bool isDECGuideEnabledImmutable READ isDECGuideEnabledImmutable CONSTANT)
    /**
      Get Enable autoguiding in the DEC axis.
    */
    static
    bool dECGuideEnabled()
    {
      return self()->mDECGuideEnabled;
    }

    /**
      Is Enable autoguiding in the DEC axis. Immutable
    */
    static
    bool isDECGuideEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DECGuideEnabled" ) );
    }

    /**
      Set Enable North autoguiding in the DEC axis.
    */
    static
    void setNorthDECGuideEnabled( bool v )
    {
      if (v != self()->mNorthDECGuideEnabled && !self()->isNorthDECGuideEnabledImmutable()) {
        self()->mNorthDECGuideEnabled = v;
        Q_EMIT self()->NorthDECGuideEnabledChanged();
      }
    }

    Q_PROPERTY(bool northDECGuideEnabled READ northDECGuideEnabled WRITE setNorthDECGuideEnabled NOTIFY NorthDECGuideEnabledChanged)
    Q_PROPERTY(bool isNorthDECGuideEnabledImmutable READ isNorthDECGuideEnabledImmutable CONSTANT)
    /**
      Get Enable North autoguiding in the DEC axis.
    */
    static
    bool northDECGuideEnabled()
    {
      return self()->mNorthDECGuideEnabled;
    }

    /**
      Is Enable North autoguiding in the DEC axis. Immutable
    */
    static
    bool isNorthDECGuideEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "NorthDECGuideEnabled" ) );
    }

    /**
      Set Enable South autoguiding in the DEC axis.
    */
    static
    void setSouthDECGuideEnabled( bool v )
    {
      if (v != self()->mSouthDECGuideEnabled && !self()->isSouthDECGuideEnabledImmutable()) {
        self()->mSouthDECGuideEnabled = v;
        Q_EMIT self()->SouthDECGuideEnabledChanged();
      }
    }

    Q_PROPERTY(bool southDECGuideEnabled READ southDECGuideEnabled WRITE setSouthDECGuideEnabled NOTIFY SouthDECGuideEnabledChanged)
    Q_PROPERTY(bool isSouthDECGuideEnabledImmutable READ isSouthDECGuideEnabledImmutable CONSTANT)
    /**
      Get Enable South autoguiding in the DEC axis.
    */
    static
    bool southDECGuideEnabled()
    {
      return self()->mSouthDECGuideEnabled;
    }

    /**
      Is Enable South autoguiding in the DEC axis. Immutable
    */
    static
    bool isSouthDECGuideEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SouthDECGuideEnabled" ) );
    }

    /**
      Set Enable East autoguiding in the RA axis.
    */
    static
    void setEastRAGuideEnabled( bool v )
    {
      if (v != self()->mEastRAGuideEnabled && !self()->isEastRAGuideEnabledImmutable()) {
        self()->mEastRAGuideEnabled = v;
        Q_EMIT self()->EastRAGuideEnabledChanged();
      }
    }

    Q_PROPERTY(bool eastRAGuideEnabled READ eastRAGuideEnabled WRITE setEastRAGuideEnabled NOTIFY EastRAGuideEnabledChanged)
    Q_PROPERTY(bool isEastRAGuideEnabledImmutable READ isEastRAGuideEnabledImmutable CONSTANT)
    /**
      Get Enable East autoguiding in the RA axis.
    */
    static
    bool eastRAGuideEnabled()
    {
      return self()->mEastRAGuideEnabled;
    }

    /**
      Is Enable East autoguiding in the RA axis. Immutable
    */
    static
    bool isEastRAGuideEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "EastRAGuideEnabled" ) );
    }

    /**
      Set Enable West autoguiding in the RA axis.
    */
    static
    void setWestRAGuideEnabled( bool v )
    {
      if (v != self()->mWestRAGuideEnabled && !self()->isWestRAGuideEnabledImmutable()) {
        self()->mWestRAGuideEnabled = v;
        Q_EMIT self()->WestRAGuideEnabledChanged();
      }
    }

    Q_PROPERTY(bool westRAGuideEnabled READ westRAGuideEnabled WRITE setWestRAGuideEnabled NOTIFY WestRAGuideEnabledChanged)
    Q_PROPERTY(bool isWestRAGuideEnabledImmutable READ isWestRAGuideEnabledImmutable CONSTANT)
    /**
      Get Enable West autoguiding in the RA axis.
    */
    static
    bool westRAGuideEnabled()
    {
      return self()->mWestRAGuideEnabled;
    }

    /**
      Is Enable West autoguiding in the RA axis. Immutable
    */
    static
    bool isWestRAGuideEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "WestRAGuideEnabled" ) );
    }

    /**
      Set RAProportionalGain
    */
    static
    void setRAProportionalGain( double v )
    {
      if (v != self()->mRAProportionalGain && !self()->isRAProportionalGainImmutable()) {
        self()->mRAProportionalGain = v;
        Q_EMIT self()->RAProportionalGainChanged();
      }
    }

    Q_PROPERTY(double rAProportionalGain READ rAProportionalGain WRITE setRAProportionalGain NOTIFY RAProportionalGainChanged)
    Q_PROPERTY(bool isRAProportionalGainImmutable READ isRAProportionalGainImmutable CONSTANT)
    /**
      Get RAProportionalGain
    */
    static
    double rAProportionalGain()
    {
      return self()->mRAProportionalGain;
    }

    /**
      Is RAProportionalGain Immutable
    */
    static
    bool isRAProportionalGainImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RAProportionalGain" ) );
    }

    /**
      Set DECProportionalGain
    */
    static
    void setDECProportionalGain( double v )
    {
      if (v != self()->mDECProportionalGain && !self()->isDECProportionalGainImmutable()) {
        self()->mDECProportionalGain = v;
        Q_EMIT self()->DECProportionalGainChanged();
      }
    }

    Q_PROPERTY(double dECProportionalGain READ dECProportionalGain WRITE setDECProportionalGain NOTIFY DECProportionalGainChanged)
    Q_PROPERTY(bool isDECProportionalGainImmutable READ isDECProportionalGainImmutable CONSTANT)
    /**
      Get DECProportionalGain
    */
    static
    double dECProportionalGain()
    {
      return self()->mDECProportionalGain;
    }

    /**
      Is DECProportionalGain Immutable
    */
    static
    bool isDECProportionalGainImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DECProportionalGain" ) );
    }

    /**
      Set RAIntegralGain
    */
    static
    void setRAIntegralGain( double v )
    {
      if (v != self()->mRAIntegralGain && !self()->isRAIntegralGainImmutable()) {
        self()->mRAIntegralGain = v;
        Q_EMIT self()->RAIntegralGainChanged();
      }
    }

    Q_PROPERTY(double rAIntegralGain READ rAIntegralGain WRITE setRAIntegralGain NOTIFY RAIntegralGainChanged)
    Q_PROPERTY(bool isRAIntegralGainImmutable READ isRAIntegralGainImmutable CONSTANT)
    /**
      Get RAIntegralGain
    */
    static
    double rAIntegralGain()
    {
      return self()->mRAIntegralGain;
    }

    /**
      Is RAIntegralGain Immutable
    */
    static
    bool isRAIntegralGainImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RAIntegralGain" ) );
    }

    /**
      Set DECIntegralGain
    */
    static
    void setDECIntegralGain( double v )
    {
      if (v != self()->mDECIntegralGain && !self()->isDECIntegralGainImmutable()) {
        self()->mDECIntegralGain = v;
        Q_EMIT self()->DECIntegralGainChanged();
      }
    }

    Q_PROPERTY(double dECIntegralGain READ dECIntegralGain WRITE setDECIntegralGain NOTIFY DECIntegralGainChanged)
    Q_PROPERTY(bool isDECIntegralGainImmutable READ isDECIntegralGainImmutable CONSTANT)
    /**
      Get DECIntegralGain
    */
    static
    double dECIntegralGain()
    {
      return self()->mDECIntegralGain;
    }

    /**
      Is DECIntegralGain Immutable
    */
    static
    bool isDECIntegralGainImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DECIntegralGain" ) );
    }

    /**
      Set RAMinimumPulseArcSec
    */
    static
    void setRAMinimumPulseArcSec( double v )
    {
      if (v != self()->mRAMinimumPulseArcSec && !self()->isRAMinimumPulseArcSecImmutable()) {
        self()->mRAMinimumPulseArcSec = v;
        Q_EMIT self()->RAMinimumPulseArcSecChanged();
      }
    }

    Q_PROPERTY(double rAMinimumPulseArcSec READ rAMinimumPulseArcSec WRITE setRAMinimumPulseArcSec NOTIFY RAMinimumPulseArcSecChanged)
    Q_PROPERTY(bool isRAMinimumPulseArcSecImmutable READ isRAMinimumPulseArcSecImmutable CONSTANT)
    /**
      Get RAMinimumPulseArcSec
    */
    static
    double rAMinimumPulseArcSec()
    {
      return self()->mRAMinimumPulseArcSec;
    }

    /**
      Is RAMinimumPulseArcSec Immutable
    */
    static
    bool isRAMinimumPulseArcSecImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RAMinimumPulseArcSec" ) );
    }

    /**
      Set DECMinimumPulseArcSec
    */
    static
    void setDECMinimumPulseArcSec( double v )
    {
      if (v != self()->mDECMinimumPulseArcSec && !self()->isDECMinimumPulseArcSecImmutable()) {
        self()->mDECMinimumPulseArcSec = v;
        Q_EMIT self()->DECMinimumPulseArcSecChanged();
      }
    }

    Q_PROPERTY(double dECMinimumPulseArcSec READ dECMinimumPulseArcSec WRITE setDECMinimumPulseArcSec NOTIFY DECMinimumPulseArcSecChanged)
    Q_PROPERTY(bool isDECMinimumPulseArcSecImmutable READ isDECMinimumPulseArcSecImmutable CONSTANT)
    /**
      Get DECMinimumPulseArcSec
    */
    static
    double dECMinimumPulseArcSec()
    {
      return self()->mDECMinimumPulseArcSec;
    }

    /**
      Is DECMinimumPulseArcSec Immutable
    */
    static
    bool isDECMinimumPulseArcSecImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DECMinimumPulseArcSec" ) );
    }

    /**
      Set RAMaximumPulseArcSec
    */
    static
    void setRAMaximumPulseArcSec( uint v )
    {
      if (v != self()->mRAMaximumPulseArcSec && !self()->isRAMaximumPulseArcSecImmutable()) {
        self()->mRAMaximumPulseArcSec = v;
        Q_EMIT self()->RAMaximumPulseArcSecChanged();
      }
    }

    Q_PROPERTY(uint rAMaximumPulseArcSec READ rAMaximumPulseArcSec WRITE setRAMaximumPulseArcSec NOTIFY RAMaximumPulseArcSecChanged)
    Q_PROPERTY(bool isRAMaximumPulseArcSecImmutable READ isRAMaximumPulseArcSecImmutable CONSTANT)
    /**
      Get RAMaximumPulseArcSec
    */
    static
    uint rAMaximumPulseArcSec()
    {
      return self()->mRAMaximumPulseArcSec;
    }

    /**
      Is RAMaximumPulseArcSec Immutable
    */
    static
    bool isRAMaximumPulseArcSecImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RAMaximumPulseArcSec" ) );
    }

    /**
      Set DECMaximumPulseArcSec
    */
    static
    void setDECMaximumPulseArcSec( uint v )
    {
      if (v != self()->mDECMaximumPulseArcSec && !self()->isDECMaximumPulseArcSecImmutable()) {
        self()->mDECMaximumPulseArcSec = v;
        Q_EMIT self()->DECMaximumPulseArcSecChanged();
      }
    }

    Q_PROPERTY(uint dECMaximumPulseArcSec READ dECMaximumPulseArcSec WRITE setDECMaximumPulseArcSec NOTIFY DECMaximumPulseArcSecChanged)
    Q_PROPERTY(bool isDECMaximumPulseArcSecImmutable READ isDECMaximumPulseArcSecImmutable CONSTANT)
    /**
      Get DECMaximumPulseArcSec
    */
    static
    uint dECMaximumPulseArcSec()
    {
      return self()->mDECMaximumPulseArcSec;
    }

    /**
      Is DECMaximumPulseArcSec Immutable
    */
    static
    bool isDECMaximumPulseArcSecImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DECMaximumPulseArcSec" ) );
    }

    /**
      Set GPGEnabled
    */
    static
    void setGPGEnabled( bool v )
    {
      if (v != self()->mGPGEnabled && !self()->isGPGEnabledImmutable()) {
        self()->mGPGEnabled = v;
        Q_EMIT self()->GPGEnabledChanged();
      }
    }

    Q_PROPERTY(bool gPGEnabled READ gPGEnabled WRITE setGPGEnabled NOTIFY GPGEnabledChanged)
    Q_PROPERTY(bool isGPGEnabledImmutable READ isGPGEnabledImmutable CONSTANT)
    /**
      Get GPGEnabled
    */
    static
    bool gPGEnabled()
    {
      return self()->mGPGEnabled;
    }

    /**
      Is GPGEnabled Immutable
    */
    static
    bool isGPGEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGEnabled" ) );
    }

    /**
      Set GPGDarkGuiding
    */
    static
    void setGPGDarkGuiding( bool v )
    {
      if (v != self()->mGPGDarkGuiding && !self()->isGPGDarkGuidingImmutable()) {
        self()->mGPGDarkGuiding = v;
        Q_EMIT self()->GPGDarkGuidingChanged();
      }
    }

    Q_PROPERTY(bool gPGDarkGuiding READ gPGDarkGuiding WRITE setGPGDarkGuiding NOTIFY GPGDarkGuidingChanged)
    Q_PROPERTY(bool isGPGDarkGuidingImmutable READ isGPGDarkGuidingImmutable CONSTANT)
    /**
      Get GPGDarkGuiding
    */
    static
    bool gPGDarkGuiding()
    {
      return self()->mGPGDarkGuiding;
    }

    /**
      Is GPGDarkGuiding Immutable
    */
    static
    bool isGPGDarkGuidingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGDarkGuiding" ) );
    }

    /**
      Set GPGDarkGuidingInterval
    */
    static
    void setGPGDarkGuidingInterval( double v )
    {
      if (v != self()->mGPGDarkGuidingInterval && !self()->isGPGDarkGuidingIntervalImmutable()) {
        self()->mGPGDarkGuidingInterval = v;
        Q_EMIT self()->GPGDarkGuidingIntervalChanged();
      }
    }

    Q_PROPERTY(double gPGDarkGuidingInterval READ gPGDarkGuidingInterval WRITE setGPGDarkGuidingInterval NOTIFY GPGDarkGuidingIntervalChanged)
    Q_PROPERTY(bool isGPGDarkGuidingIntervalImmutable READ isGPGDarkGuidingIntervalImmutable CONSTANT)
    /**
      Get GPGDarkGuidingInterval
    */
    static
    double gPGDarkGuidingInterval()
    {
      return self()->mGPGDarkGuidingInterval;
    }

    /**
      Is GPGDarkGuidingInterval Immutable
    */
    static
    bool isGPGDarkGuidingIntervalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGDarkGuidingInterval" ) );
    }

    /**
      Set AIDarkGuiding
    */
    static
    void setAIDarkGuiding( bool v )
    {
      if (v != self()->mAIDarkGuiding && !self()->isAIDarkGuidingImmutable()) {
        self()->mAIDarkGuiding = v;
        Q_EMIT self()->AIDarkGuidingChanged();
      }
    }

    Q_PROPERTY(bool aIDarkGuiding READ aIDarkGuiding WRITE setAIDarkGuiding NOTIFY AIDarkGuidingChanged)
    Q_PROPERTY(bool isAIDarkGuidingImmutable READ isAIDarkGuidingImmutable CONSTANT)
    /**
      Get AIDarkGuiding
    */
    static
    bool aIDarkGuiding()
    {
      return self()->mAIDarkGuiding;
    }

    /**
      Is AIDarkGuiding Immutable
    */
    static
    bool isAIDarkGuidingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AIDarkGuiding" ) );
    }

    /**
      Set AIDarkGuidingInterval
    */
    static
    void setAIDarkGuidingInterval( double v )
    {
      if (v != self()->mAIDarkGuidingInterval && !self()->isAIDarkGuidingIntervalImmutable()) {
        self()->mAIDarkGuidingInterval = v;
        Q_EMIT self()->AIDarkGuidingIntervalChanged();
      }
    }

    Q_PROPERTY(double aIDarkGuidingInterval READ aIDarkGuidingInterval WRITE setAIDarkGuidingInterval NOTIFY AIDarkGuidingIntervalChanged)
    Q_PROPERTY(bool isAIDarkGuidingIntervalImmutable READ isAIDarkGuidingIntervalImmutable CONSTANT)
    /**
      Get AIDarkGuidingInterval
    */
    static
    double aIDarkGuidingInterval()
    {
      return self()->mAIDarkGuidingInterval;
    }

    /**
      Is AIDarkGuidingInterval Immutable
    */
    static
    bool isAIDarkGuidingIntervalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AIDarkGuidingInterval" ) );
    }

    /**
      Set GPGcWeight
    */
    static
    void setGPGcWeight( double v )
    {
      if (v != self()->mGPGcWeight && !self()->isGPGcWeightImmutable()) {
        self()->mGPGcWeight = v;
        Q_EMIT self()->GPGcWeightChanged();
      }
    }

    Q_PROPERTY(double gPGcWeight READ gPGcWeight WRITE setGPGcWeight NOTIFY GPGcWeightChanged)
    Q_PROPERTY(bool isGPGcWeightImmutable READ isGPGcWeightImmutable CONSTANT)
    /**
      Get GPGcWeight
    */
    static
    double gPGcWeight()
    {
      return self()->mGPGcWeight;
    }

    /**
      Is GPGcWeight Immutable
    */
    static
    bool isGPGcWeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGcWeight" ) );
    }

    /**
      Set GPGMinPeriodsForInference
    */
    static
    void setGPGMinPeriodsForInference( uint v )
    {
      if (v != self()->mGPGMinPeriodsForInference && !self()->isGPGMinPeriodsForInferenceImmutable()) {
        self()->mGPGMinPeriodsForInference = v;
        Q_EMIT self()->GPGMinPeriodsForInferenceChanged();
      }
    }

    Q_PROPERTY(uint gPGMinPeriodsForInference READ gPGMinPeriodsForInference WRITE setGPGMinPeriodsForInference NOTIFY GPGMinPeriodsForInferenceChanged)
    Q_PROPERTY(bool isGPGMinPeriodsForInferenceImmutable READ isGPGMinPeriodsForInferenceImmutable CONSTANT)
    /**
      Get GPGMinPeriodsForInference
    */
    static
    uint gPGMinPeriodsForInference()
    {
      return self()->mGPGMinPeriodsForInference;
    }

    /**
      Is GPGMinPeriodsForInference Immutable
    */
    static
    bool isGPGMinPeriodsForInferenceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGMinPeriodsForInference" ) );
    }

    /**
      Set GPGMinMove
    */
    static
    void setGPGMinMove( double v )
    {
      if (v != self()->mGPGMinMove && !self()->isGPGMinMoveImmutable()) {
        self()->mGPGMinMove = v;
        Q_EMIT self()->GPGMinMoveChanged();
      }
    }

    Q_PROPERTY(double gPGMinMove READ gPGMinMove WRITE setGPGMinMove NOTIFY GPGMinMoveChanged)
    Q_PROPERTY(bool isGPGMinMoveImmutable READ isGPGMinMoveImmutable CONSTANT)
    /**
      Get GPGMinMove
    */
    static
    double gPGMinMove()
    {
      return self()->mGPGMinMove;
    }

    /**
      Is GPGMinMove Immutable
    */
    static
    bool isGPGMinMoveImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGMinMove" ) );
    }

    /**
      Set GPGSE0KLengthScale
    */
    static
    void setGPGSE0KLengthScale( uint v )
    {
      if (v != self()->mGPGSE0KLengthScale && !self()->isGPGSE0KLengthScaleImmutable()) {
        self()->mGPGSE0KLengthScale = v;
        Q_EMIT self()->GPGSE0KLengthScaleChanged();
      }
    }

    Q_PROPERTY(uint gPGSE0KLengthScale READ gPGSE0KLengthScale WRITE setGPGSE0KLengthScale NOTIFY GPGSE0KLengthScaleChanged)
    Q_PROPERTY(bool isGPGSE0KLengthScaleImmutable READ isGPGSE0KLengthScaleImmutable CONSTANT)
    /**
      Get GPGSE0KLengthScale
    */
    static
    uint gPGSE0KLengthScale()
    {
      return self()->mGPGSE0KLengthScale;
    }

    /**
      Is GPGSE0KLengthScale Immutable
    */
    static
    bool isGPGSE0KLengthScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGSE0KLengthScale" ) );
    }

    /**
      Set GPGSE0KSignalVariance
    */
    static
    void setGPGSE0KSignalVariance( double v )
    {
      if (v != self()->mGPGSE0KSignalVariance && !self()->isGPGSE0KSignalVarianceImmutable()) {
        self()->mGPGSE0KSignalVariance = v;
        Q_EMIT self()->GPGSE0KSignalVarianceChanged();
      }
    }

    Q_PROPERTY(double gPGSE0KSignalVariance READ gPGSE0KSignalVariance WRITE setGPGSE0KSignalVariance NOTIFY GPGSE0KSignalVarianceChanged)
    Q_PROPERTY(bool isGPGSE0KSignalVarianceImmutable READ isGPGSE0KSignalVarianceImmutable CONSTANT)
    /**
      Get GPGSE0KSignalVariance
    */
    static
    double gPGSE0KSignalVariance()
    {
      return self()->mGPGSE0KSignalVariance;
    }

    /**
      Is GPGSE0KSignalVariance Immutable
    */
    static
    bool isGPGSE0KSignalVarianceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGSE0KSignalVariance" ) );
    }

    /**
      Set GPGPKLengthScale
    */
    static
    void setGPGPKLengthScale( double v )
    {
      if (v != self()->mGPGPKLengthScale && !self()->isGPGPKLengthScaleImmutable()) {
        self()->mGPGPKLengthScale = v;
        Q_EMIT self()->GPGPKLengthScaleChanged();
      }
    }

    Q_PROPERTY(double gPGPKLengthScale READ gPGPKLengthScale WRITE setGPGPKLengthScale NOTIFY GPGPKLengthScaleChanged)
    Q_PROPERTY(bool isGPGPKLengthScaleImmutable READ isGPGPKLengthScaleImmutable CONSTANT)
    /**
      Get GPGPKLengthScale
    */
    static
    double gPGPKLengthScale()
    {
      return self()->mGPGPKLengthScale;
    }

    /**
      Is GPGPKLengthScale Immutable
    */
    static
    bool isGPGPKLengthScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGPKLengthScale" ) );
    }

    /**
      Set GPGPeriod
    */
    static
    void setGPGPeriod( double v )
    {
      if (v != self()->mGPGPeriod && !self()->isGPGPeriodImmutable()) {
        self()->mGPGPeriod = v;
        Q_EMIT self()->GPGPeriodChanged();
      }
    }

    Q_PROPERTY(double gPGPeriod READ gPGPeriod WRITE setGPGPeriod NOTIFY GPGPeriodChanged)
    Q_PROPERTY(bool isGPGPeriodImmutable READ isGPGPeriodImmutable CONSTANT)
    /**
      Get GPGPeriod
    */
    static
    double gPGPeriod()
    {
      return self()->mGPGPeriod;
    }

    /**
      Is GPGPeriod Immutable
    */
    static
    bool isGPGPeriodImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGPeriod" ) );
    }

    /**
      Set GPGPKSignalVariance
    */
    static
    void setGPGPKSignalVariance( double v )
    {
      if (v != self()->mGPGPKSignalVariance && !self()->isGPGPKSignalVarianceImmutable()) {
        self()->mGPGPKSignalVariance = v;
        Q_EMIT self()->GPGPKSignalVarianceChanged();
      }
    }

    Q_PROPERTY(double gPGPKSignalVariance READ gPGPKSignalVariance WRITE setGPGPKSignalVariance NOTIFY GPGPKSignalVarianceChanged)
    Q_PROPERTY(bool isGPGPKSignalVarianceImmutable READ isGPGPKSignalVarianceImmutable CONSTANT)
    /**
      Get GPGPKSignalVariance
    */
    static
    double gPGPKSignalVariance()
    {
      return self()->mGPGPKSignalVariance;
    }

    /**
      Is GPGPKSignalVariance Immutable
    */
    static
    bool isGPGPKSignalVarianceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGPKSignalVariance" ) );
    }

    /**
      Set GPGSE1KLengthScale
    */
    static
    void setGPGSE1KLengthScale( double v )
    {
      if (v != self()->mGPGSE1KLengthScale && !self()->isGPGSE1KLengthScaleImmutable()) {
        self()->mGPGSE1KLengthScale = v;
        Q_EMIT self()->GPGSE1KLengthScaleChanged();
      }
    }

    Q_PROPERTY(double gPGSE1KLengthScale READ gPGSE1KLengthScale WRITE setGPGSE1KLengthScale NOTIFY GPGSE1KLengthScaleChanged)
    Q_PROPERTY(bool isGPGSE1KLengthScaleImmutable READ isGPGSE1KLengthScaleImmutable CONSTANT)
    /**
      Get GPGSE1KLengthScale
    */
    static
    double gPGSE1KLengthScale()
    {
      return self()->mGPGSE1KLengthScale;
    }

    /**
      Is GPGSE1KLengthScale Immutable
    */
    static
    bool isGPGSE1KLengthScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGSE1KLengthScale" ) );
    }

    /**
      Set GPGSE1KSignalVariance
    */
    static
    void setGPGSE1KSignalVariance( double v )
    {
      if (v != self()->mGPGSE1KSignalVariance && !self()->isGPGSE1KSignalVarianceImmutable()) {
        self()->mGPGSE1KSignalVariance = v;
        Q_EMIT self()->GPGSE1KSignalVarianceChanged();
      }
    }

    Q_PROPERTY(double gPGSE1KSignalVariance READ gPGSE1KSignalVariance WRITE setGPGSE1KSignalVariance NOTIFY GPGSE1KSignalVarianceChanged)
    Q_PROPERTY(bool isGPGSE1KSignalVarianceImmutable READ isGPGSE1KSignalVarianceImmutable CONSTANT)
    /**
      Get GPGSE1KSignalVariance
    */
    static
    double gPGSE1KSignalVariance()
    {
      return self()->mGPGSE1KSignalVariance;
    }

    /**
      Is GPGSE1KSignalVariance Immutable
    */
    static
    bool isGPGSE1KSignalVarianceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGSE1KSignalVariance" ) );
    }

    /**
      Set GPGMinPeriodsForPeriodEstimate
    */
    static
    void setGPGMinPeriodsForPeriodEstimate( uint v )
    {
      if (v != self()->mGPGMinPeriodsForPeriodEstimate && !self()->isGPGMinPeriodsForPeriodEstimateImmutable()) {
        self()->mGPGMinPeriodsForPeriodEstimate = v;
        Q_EMIT self()->GPGMinPeriodsForPeriodEstimateChanged();
      }
    }

    Q_PROPERTY(uint gPGMinPeriodsForPeriodEstimate READ gPGMinPeriodsForPeriodEstimate WRITE setGPGMinPeriodsForPeriodEstimate NOTIFY GPGMinPeriodsForPeriodEstimateChanged)
    Q_PROPERTY(bool isGPGMinPeriodsForPeriodEstimateImmutable READ isGPGMinPeriodsForPeriodEstimateImmutable CONSTANT)
    /**
      Get GPGMinPeriodsForPeriodEstimate
    */
    static
    uint gPGMinPeriodsForPeriodEstimate()
    {
      return self()->mGPGMinPeriodsForPeriodEstimate;
    }

    /**
      Is GPGMinPeriodsForPeriodEstimate Immutable
    */
    static
    bool isGPGMinPeriodsForPeriodEstimateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGMinPeriodsForPeriodEstimate" ) );
    }

    /**
      Set GPGPointsForApproximation
    */
    static
    void setGPGPointsForApproximation( uint v )
    {
      if (v != self()->mGPGPointsForApproximation && !self()->isGPGPointsForApproximationImmutable()) {
        self()->mGPGPointsForApproximation = v;
        Q_EMIT self()->GPGPointsForApproximationChanged();
      }
    }

    Q_PROPERTY(uint gPGPointsForApproximation READ gPGPointsForApproximation WRITE setGPGPointsForApproximation NOTIFY GPGPointsForApproximationChanged)
    Q_PROPERTY(bool isGPGPointsForApproximationImmutable READ isGPGPointsForApproximationImmutable CONSTANT)
    /**
      Get GPGPointsForApproximation
    */
    static
    uint gPGPointsForApproximation()
    {
      return self()->mGPGPointsForApproximation;
    }

    /**
      Is GPGPointsForApproximation Immutable
    */
    static
    bool isGPGPointsForApproximationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGPointsForApproximation" ) );
    }

    /**
      Set GPGpWeight
    */
    static
    void setGPGpWeight( double v )
    {
      if (v != self()->mGPGpWeight && !self()->isGPGpWeightImmutable()) {
        self()->mGPGpWeight = v;
        Q_EMIT self()->GPGpWeightChanged();
      }
    }

    Q_PROPERTY(double gPGpWeight READ gPGpWeight WRITE setGPGpWeight NOTIFY GPGpWeightChanged)
    Q_PROPERTY(bool isGPGpWeightImmutable READ isGPGpWeightImmutable CONSTANT)
    /**
      Get GPGpWeight
    */
    static
    double gPGpWeight()
    {
      return self()->mGPGpWeight;
    }

    /**
      Is GPGpWeight Immutable
    */
    static
    bool isGPGpWeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGpWeight" ) );
    }

    /**
      Set GPGEstimatePeriod
    */
    static
    void setGPGEstimatePeriod( bool v )
    {
      if (v != self()->mGPGEstimatePeriod && !self()->isGPGEstimatePeriodImmutable()) {
        self()->mGPGEstimatePeriod = v;
        Q_EMIT self()->GPGEstimatePeriodChanged();
      }
    }

    Q_PROPERTY(bool gPGEstimatePeriod READ gPGEstimatePeriod WRITE setGPGEstimatePeriod NOTIFY GPGEstimatePeriodChanged)
    Q_PROPERTY(bool isGPGEstimatePeriodImmutable READ isGPGEstimatePeriodImmutable CONSTANT)
    /**
      Get GPGEstimatePeriod
    */
    static
    bool gPGEstimatePeriod()
    {
      return self()->mGPGEstimatePeriod;
    }

    /**
      Is GPGEstimatePeriod Immutable
    */
    static
    bool isGPGEstimatePeriodImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GPGEstimatePeriod" ) );
    }

    /**
      Set Accuracy threshold for the Guide Graphs.
    */
    static
    void setGuiderAccuracyThreshold( uint v )
    {
      if (v != self()->mGuiderAccuracyThreshold && !self()->isGuiderAccuracyThresholdImmutable()) {
        self()->mGuiderAccuracyThreshold = v;
        Q_EMIT self()->GuiderAccuracyThresholdChanged();
      }
    }

    Q_PROPERTY(uint guiderAccuracyThreshold READ guiderAccuracyThreshold WRITE setGuiderAccuracyThreshold NOTIFY GuiderAccuracyThresholdChanged)
    Q_PROPERTY(bool isGuiderAccuracyThresholdImmutable READ isGuiderAccuracyThresholdImmutable CONSTANT)
    /**
      Get Accuracy threshold for the Guide Graphs.
    */
    static
    uint guiderAccuracyThreshold()
    {
      return self()->mGuiderAccuracyThreshold;
    }

    /**
      Is Accuracy threshold for the Guide Graphs. Immutable
    */
    static
    bool isGuiderAccuracyThresholdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuiderAccuracyThreshold" ) );
    }

    /**
      Set Display the RA Plot on the Guide Drift Graphics.
    */
    static
    void setRADisplayedOnGuideGraph( bool v )
    {
      if (v != self()->mRADisplayedOnGuideGraph && !self()->isRADisplayedOnGuideGraphImmutable()) {
        self()->mRADisplayedOnGuideGraph = v;
        Q_EMIT self()->RADisplayedOnGuideGraphChanged();
      }
    }

    Q_PROPERTY(bool rADisplayedOnGuideGraph READ rADisplayedOnGuideGraph WRITE setRADisplayedOnGuideGraph NOTIFY RADisplayedOnGuideGraphChanged)
    Q_PROPERTY(bool isRADisplayedOnGuideGraphImmutable READ isRADisplayedOnGuideGraphImmutable CONSTANT)
    /**
      Get Display the RA Plot on the Guide Drift Graphics.
    */
    static
    bool rADisplayedOnGuideGraph()
    {
      return self()->mRADisplayedOnGuideGraph;
    }

    /**
      Is Display the RA Plot on the Guide Drift Graphics. Immutable
    */
    static
    bool isRADisplayedOnGuideGraphImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RADisplayedOnGuideGraph" ) );
    }

    /**
      Set Display the DEC Plot on the Guide Drift Graphics.
    */
    static
    void setDEDisplayedOnGuideGraph( bool v )
    {
      if (v != self()->mDEDisplayedOnGuideGraph && !self()->isDEDisplayedOnGuideGraphImmutable()) {
        self()->mDEDisplayedOnGuideGraph = v;
        Q_EMIT self()->DEDisplayedOnGuideGraphChanged();
      }
    }

    Q_PROPERTY(bool dEDisplayedOnGuideGraph READ dEDisplayedOnGuideGraph WRITE setDEDisplayedOnGuideGraph NOTIFY DEDisplayedOnGuideGraphChanged)
    Q_PROPERTY(bool isDEDisplayedOnGuideGraphImmutable READ isDEDisplayedOnGuideGraphImmutable CONSTANT)
    /**
      Get Display the DEC Plot on the Guide Drift Graphics.
    */
    static
    bool dEDisplayedOnGuideGraph()
    {
      return self()->mDEDisplayedOnGuideGraph;
    }

    /**
      Is Display the DEC Plot on the Guide Drift Graphics. Immutable
    */
    static
    bool isDEDisplayedOnGuideGraphImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DEDisplayedOnGuideGraph" ) );
    }

    /**
      Set Display the RA Corrections Plot on the Guide Drift Graphics.
    */
    static
    void setRACorrDisplayedOnGuideGraph( bool v )
    {
      if (v != self()->mRACorrDisplayedOnGuideGraph && !self()->isRACorrDisplayedOnGuideGraphImmutable()) {
        self()->mRACorrDisplayedOnGuideGraph = v;
        Q_EMIT self()->RACorrDisplayedOnGuideGraphChanged();
      }
    }

    Q_PROPERTY(bool rACorrDisplayedOnGuideGraph READ rACorrDisplayedOnGuideGraph WRITE setRACorrDisplayedOnGuideGraph NOTIFY RACorrDisplayedOnGuideGraphChanged)
    Q_PROPERTY(bool isRACorrDisplayedOnGuideGraphImmutable READ isRACorrDisplayedOnGuideGraphImmutable CONSTANT)
    /**
      Get Display the RA Corrections Plot on the Guide Drift Graphics.
    */
    static
    bool rACorrDisplayedOnGuideGraph()
    {
      return self()->mRACorrDisplayedOnGuideGraph;
    }

    /**
      Is Display the RA Corrections Plot on the Guide Drift Graphics. Immutable
    */
    static
    bool isRACorrDisplayedOnGuideGraphImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RACorrDisplayedOnGuideGraph" ) );
    }

    /**
      Set Display the DEC Corrections Plot on the Guide Drift Graphics.
    */
    static
    void setDECorrDisplayedOnGuideGraph( bool v )
    {
      if (v != self()->mDECorrDisplayedOnGuideGraph && !self()->isDECorrDisplayedOnGuideGraphImmutable()) {
        self()->mDECorrDisplayedOnGuideGraph = v;
        Q_EMIT self()->DECorrDisplayedOnGuideGraphChanged();
      }
    }

    Q_PROPERTY(bool dECorrDisplayedOnGuideGraph READ dECorrDisplayedOnGuideGraph WRITE setDECorrDisplayedOnGuideGraph NOTIFY DECorrDisplayedOnGuideGraphChanged)
    Q_PROPERTY(bool isDECorrDisplayedOnGuideGraphImmutable READ isDECorrDisplayedOnGuideGraphImmutable CONSTANT)
    /**
      Get Display the DEC Corrections Plot on the Guide Drift Graphics.
    */
    static
    bool dECorrDisplayedOnGuideGraph()
    {
      return self()->mDECorrDisplayedOnGuideGraph;
    }

    /**
      Is Display the DEC Corrections Plot on the Guide Drift Graphics. Immutable
    */
    static
    bool isDECorrDisplayedOnGuideGraphImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DECorrDisplayedOnGuideGraph" ) );
    }

    /**
      Set Display the SNR Plot on the Guide Drift Graphics.
    */
    static
    void setSNRDisplayedOnGuideGraph( bool v )
    {
      if (v != self()->mSNRDisplayedOnGuideGraph && !self()->isSNRDisplayedOnGuideGraphImmutable()) {
        self()->mSNRDisplayedOnGuideGraph = v;
        Q_EMIT self()->SNRDisplayedOnGuideGraphChanged();
      }
    }

    Q_PROPERTY(bool sNRDisplayedOnGuideGraph READ sNRDisplayedOnGuideGraph WRITE setSNRDisplayedOnGuideGraph NOTIFY SNRDisplayedOnGuideGraphChanged)
    Q_PROPERTY(bool isSNRDisplayedOnGuideGraphImmutable READ isSNRDisplayedOnGuideGraphImmutable CONSTANT)
    /**
      Get Display the SNR Plot on the Guide Drift Graphics.
    */
    static
    bool sNRDisplayedOnGuideGraph()
    {
      return self()->mSNRDisplayedOnGuideGraph;
    }

    /**
      Is Display the SNR Plot on the Guide Drift Graphics. Immutable
    */
    static
    bool isSNRDisplayedOnGuideGraphImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SNRDisplayedOnGuideGraph" ) );
    }

    /**
      Set Display the RMS Error Plot on the Guide Drift Graphics.
    */
    static
    void setRMSDisplayedOnGuideGraph( bool v )
    {
      if (v != self()->mRMSDisplayedOnGuideGraph && !self()->isRMSDisplayedOnGuideGraphImmutable()) {
        self()->mRMSDisplayedOnGuideGraph = v;
        Q_EMIT self()->RMSDisplayedOnGuideGraphChanged();
      }
    }

    Q_PROPERTY(bool rMSDisplayedOnGuideGraph READ rMSDisplayedOnGuideGraph WRITE setRMSDisplayedOnGuideGraph NOTIFY RMSDisplayedOnGuideGraphChanged)
    Q_PROPERTY(bool isRMSDisplayedOnGuideGraphImmutable READ isRMSDisplayedOnGuideGraphImmutable CONSTANT)
    /**
      Get Display the RMS Error Plot on the Guide Drift Graphics.
    */
    static
    bool rMSDisplayedOnGuideGraph()
    {
      return self()->mRMSDisplayedOnGuideGraph;
    }

    /**
      Is Display the RMS Error Plot on the Guide Drift Graphics. Immutable
    */
    static
    bool isRMSDisplayedOnGuideGraphImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RMSDisplayedOnGuideGraph" ) );
    }

    /**
      Set If > 0, use the hysteresis guider for RA internal guiding with that value.
    */
    static
    void setRAHysteresis( double v )
    {
      if (v != self()->mRAHysteresis && !self()->isRAHysteresisImmutable()) {
        self()->mRAHysteresis = v;
        Q_EMIT self()->RAHysteresisChanged();
      }
    }

    Q_PROPERTY(double rAHysteresis READ rAHysteresis WRITE setRAHysteresis NOTIFY RAHysteresisChanged)
    Q_PROPERTY(bool isRAHysteresisImmutable READ isRAHysteresisImmutable CONSTANT)
    /**
      Get If > 0, use the hysteresis guider for RA internal guiding with that value.
    */
    static
    double rAHysteresis()
    {
      return self()->mRAHysteresis;
    }

    /**
      Is If > 0, use the hysteresis guider for RA internal guiding with that value. Immutable
    */
    static
    bool isRAHysteresisImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RAHysteresis" ) );
    }

    /**
      Set If > 0, use the hysteresis guider for DEC internal guiding with that value.
    */
    static
    void setDECHysteresis( double v )
    {
      if (v != self()->mDECHysteresis && !self()->isDECHysteresisImmutable()) {
        self()->mDECHysteresis = v;
        Q_EMIT self()->DECHysteresisChanged();
      }
    }

    Q_PROPERTY(double dECHysteresis READ dECHysteresis WRITE setDECHysteresis NOTIFY DECHysteresisChanged)
    Q_PROPERTY(bool isDECHysteresisImmutable READ isDECHysteresisImmutable CONSTANT)
    /**
      Get If > 0, use the hysteresis guider for DEC internal guiding with that value.
    */
    static
    double dECHysteresis()
    {
      return self()->mDECHysteresis;
    }

    /**
      Is If > 0, use the hysteresis guider for DEC internal guiding with that value. Immutable
    */
    static
    bool isDECHysteresisImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DECHysteresis" ) );
    }

    /**
      Set Scheduler algorithm
    */
    static
    void setSchedulerAlgorithm( uint v )
    {
      if (v != self()->mSchedulerAlgorithm && !self()->isSchedulerAlgorithmImmutable()) {
        self()->mSchedulerAlgorithm = v;
        Q_EMIT self()->SchedulerAlgorithmChanged();
      }
    }

    Q_PROPERTY(uint schedulerAlgorithm READ schedulerAlgorithm WRITE setSchedulerAlgorithm NOTIFY SchedulerAlgorithmChanged)
    Q_PROPERTY(bool isSchedulerAlgorithmImmutable READ isSchedulerAlgorithmImmutable CONSTANT)
    /**
      Get Scheduler algorithm
    */
    static
    uint schedulerAlgorithm()
    {
      return self()->mSchedulerAlgorithm;
    }

    /**
      Is Scheduler algorithm Immutable
    */
    static
    bool isSchedulerAlgorithmImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerAlgorithm" ) );
    }

    /**
      Set SchedulerLogging
    */
    static
    void setSchedulerLogging( bool v )
    {
      if (v != self()->mSchedulerLogging && !self()->isSchedulerLoggingImmutable()) {
        self()->mSchedulerLogging = v;
        Q_EMIT self()->SchedulerLoggingChanged();
      }
    }

    Q_PROPERTY(bool schedulerLogging READ schedulerLogging WRITE setSchedulerLogging NOTIFY SchedulerLoggingChanged)
    Q_PROPERTY(bool isSchedulerLoggingImmutable READ isSchedulerLoggingImmutable CONSTANT)
    /**
      Get SchedulerLogging
    */
    static
    bool schedulerLogging()
    {
      return self()->mSchedulerLogging;
    }

    /**
      Is SchedulerLogging Immutable
    */
    static
    bool isSchedulerLoggingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerLogging" ) );
    }

    /**
      Set After shutdown procedure is successfully executed, shutdown INDI and Ekos.
    */
    static
    void setStopEkosAfterShutdown( bool v )
    {
      if (v != self()->mStopEkosAfterShutdown && !self()->isStopEkosAfterShutdownImmutable()) {
        self()->mStopEkosAfterShutdown = v;
        Q_EMIT self()->StopEkosAfterShutdownChanged();
      }
    }

    Q_PROPERTY(bool stopEkosAfterShutdown READ stopEkosAfterShutdown WRITE setStopEkosAfterShutdown NOTIFY StopEkosAfterShutdownChanged)
    Q_PROPERTY(bool isStopEkosAfterShutdownImmutable READ isStopEkosAfterShutdownImmutable CONSTANT)
    /**
      Get After shutdown procedure is successfully executed, shutdown INDI and Ekos.
    */
    static
    bool stopEkosAfterShutdown()
    {
      return self()->mStopEkosAfterShutdown;
    }

    /**
      Is After shutdown procedure is successfully executed, shutdown INDI and Ekos. Immutable
    */
    static
    bool isStopEkosAfterShutdownImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StopEkosAfterShutdown" ) );
    }

    /**
      Set Whether shutdown script, if exists, terminates INDI server in the process.
    */
    static
    void setShutdownScriptTerminatesINDI( bool v )
    {
      if (v != self()->mShutdownScriptTerminatesINDI && !self()->isShutdownScriptTerminatesINDIImmutable()) {
        self()->mShutdownScriptTerminatesINDI = v;
        Q_EMIT self()->ShutdownScriptTerminatesINDIChanged();
      }
    }

    Q_PROPERTY(bool shutdownScriptTerminatesINDI READ shutdownScriptTerminatesINDI WRITE setShutdownScriptTerminatesINDI NOTIFY ShutdownScriptTerminatesINDIChanged)
    Q_PROPERTY(bool isShutdownScriptTerminatesINDIImmutable READ isShutdownScriptTerminatesINDIImmutable CONSTANT)
    /**
      Get Whether shutdown script, if exists, terminates INDI server in the process.
    */
    static
    bool shutdownScriptTerminatesINDI()
    {
      return self()->mShutdownScriptTerminatesINDI;
    }

    /**
      Is Whether shutdown script, if exists, terminates INDI server in the process. Immutable
    */
    static
    bool isShutdownScriptTerminatesINDIImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShutdownScriptTerminatesINDI" ) );
    }

    /**
      Set Warm up the camera sensor before the shutdown sequence.
    */
    static
    void setCameraWarmupEnabled( bool v )
    {
      if (v != self()->mCameraWarmupEnabled && !self()->isCameraWarmupEnabledImmutable()) {
        self()->mCameraWarmupEnabled = v;
        Q_EMIT self()->CameraWarmupEnabledChanged();
      }
    }

    Q_PROPERTY(bool cameraWarmupEnabled READ cameraWarmupEnabled WRITE setCameraWarmupEnabled NOTIFY CameraWarmupEnabledChanged)
    Q_PROPERTY(bool isCameraWarmupEnabledImmutable READ isCameraWarmupEnabledImmutable CONSTANT)
    /**
      Get Warm up the camera sensor before the shutdown sequence.
    */
    static
    bool cameraWarmupEnabled()
    {
      return self()->mCameraWarmupEnabled;
    }

    /**
      Is Warm up the camera sensor before the shutdown sequence. Immutable
    */
    static
    bool isCameraWarmupEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CameraWarmupEnabled" ) );
    }

    /**
      Set Camera warmup ramp rate in °C per minute.
    */
    static
    void setCameraWarmupRamp( uint v )
    {
      if (v < 1)
      {
        qDebug() << "setCameraWarmupRamp: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 30)
      {
        qDebug() << "setCameraWarmupRamp: value " << v << " is greater than the maximum value of 30";
        v = 30;
      }

      if (v != self()->mCameraWarmupRamp && !self()->isCameraWarmupRampImmutable()) {
        self()->mCameraWarmupRamp = v;
        Q_EMIT self()->CameraWarmupRampChanged();
      }
    }

    Q_PROPERTY(uint cameraWarmupRamp READ cameraWarmupRamp WRITE setCameraWarmupRamp NOTIFY CameraWarmupRampChanged)
    Q_PROPERTY(bool isCameraWarmupRampImmutable READ isCameraWarmupRampImmutable CONSTANT)
    /**
      Get Camera warmup ramp rate in °C per minute.
    */
    static
    uint cameraWarmupRamp()
    {
      return self()->mCameraWarmupRamp;
    }

    /**
      Is Camera warmup ramp rate in °C per minute. Immutable
    */
    static
    bool isCameraWarmupRampImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CameraWarmupRamp" ) );
    }

    /**
      Set Perform pre-emptive shutdown if no jobs are due for a number of hours.
    */
    static
    void setPreemptiveShutdown( bool v )
    {
      if (v != self()->mPreemptiveShutdown && !self()->isPreemptiveShutdownImmutable()) {
        self()->mPreemptiveShutdown = v;
        Q_EMIT self()->PreemptiveShutdownChanged();
      }
    }

    Q_PROPERTY(bool preemptiveShutdown READ preemptiveShutdown WRITE setPreemptiveShutdown NOTIFY PreemptiveShutdownChanged)
    Q_PROPERTY(bool isPreemptiveShutdownImmutable READ isPreemptiveShutdownImmutable CONSTANT)
    /**
      Get Perform pre-emptive shutdown if no jobs are due for a number of hours.
    */
    static
    bool preemptiveShutdown()
    {
      return self()->mPreemptiveShutdown;
    }

    /**
      Is Perform pre-emptive shutdown if no jobs are due for a number of hours. Immutable
    */
    static
    bool isPreemptiveShutdownImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreemptiveShutdown" ) );
    }

    /**
      Set Reset mount model in case of alignment failure.
    */
    static
    void setResetMountModelOnAlignFail( bool v )
    {
      if (v != self()->mResetMountModelOnAlignFail && !self()->isResetMountModelOnAlignFailImmutable()) {
        self()->mResetMountModelOnAlignFail = v;
        Q_EMIT self()->ResetMountModelOnAlignFailChanged();
      }
    }

    Q_PROPERTY(bool resetMountModelOnAlignFail READ resetMountModelOnAlignFail WRITE setResetMountModelOnAlignFail NOTIFY ResetMountModelOnAlignFailChanged)
    Q_PROPERTY(bool isResetMountModelOnAlignFailImmutable READ isResetMountModelOnAlignFailImmutable CONSTANT)
    /**
      Get Reset mount model in case of alignment failure.
    */
    static
    bool resetMountModelOnAlignFail()
    {
      return self()->mResetMountModelOnAlignFail;
    }

    /**
      Is Reset mount model in case of alignment failure. Immutable
    */
    static
    bool isResetMountModelOnAlignFailImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ResetMountModelOnAlignFail" ) );
    }

    /**
      Set Reset mount model before starting each job.
    */
    static
    void setResetMountModelBeforeJob( bool v )
    {
      if (v != self()->mResetMountModelBeforeJob && !self()->isResetMountModelBeforeJobImmutable()) {
        self()->mResetMountModelBeforeJob = v;
        Q_EMIT self()->ResetMountModelBeforeJobChanged();
      }
    }

    Q_PROPERTY(bool resetMountModelBeforeJob READ resetMountModelBeforeJob WRITE setResetMountModelBeforeJob NOTIFY ResetMountModelBeforeJobChanged)
    Q_PROPERTY(bool isResetMountModelBeforeJobImmutable READ isResetMountModelBeforeJobImmutable CONSTANT)
    /**
      Get Reset mount model before starting each job.
    */
    static
    bool resetMountModelBeforeJob()
    {
      return self()->mResetMountModelBeforeJob;
    }

    /**
      Is Reset mount model before starting each job. Immutable
    */
    static
    bool isResetMountModelBeforeJobImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ResetMountModelBeforeJob" ) );
    }

    /**
      Set Always Reset guiding calibration before starting each job.
    */
    static
    void setResetGuideCalibration( bool v )
    {
      if (v != self()->mResetGuideCalibration && !self()->isResetGuideCalibrationImmutable()) {
        self()->mResetGuideCalibration = v;
        Q_EMIT self()->ResetGuideCalibrationChanged();
      }
    }

    Q_PROPERTY(bool resetGuideCalibration READ resetGuideCalibration WRITE setResetGuideCalibration NOTIFY ResetGuideCalibrationChanged)
    Q_PROPERTY(bool isResetGuideCalibrationImmutable READ isResetGuideCalibrationImmutable CONSTANT)
    /**
      Get Always Reset guiding calibration before starting each job.
    */
    static
    bool resetGuideCalibration()
    {
      return self()->mResetGuideCalibration;
    }

    /**
      Is Always Reset guiding calibration before starting each job. Immutable
    */
    static
    bool isResetGuideCalibrationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ResetGuideCalibration" ) );
    }

    /**
      Set Force alignment before starting or restarting each job.
    */
    static
    void setForceAlignmentBeforeJob( bool v )
    {
      if (v != self()->mForceAlignmentBeforeJob && !self()->isForceAlignmentBeforeJobImmutable()) {
        self()->mForceAlignmentBeforeJob = v;
        Q_EMIT self()->ForceAlignmentBeforeJobChanged();
      }
    }

    Q_PROPERTY(bool forceAlignmentBeforeJob READ forceAlignmentBeforeJob WRITE setForceAlignmentBeforeJob NOTIFY ForceAlignmentBeforeJobChanged)
    Q_PROPERTY(bool isForceAlignmentBeforeJobImmutable READ isForceAlignmentBeforeJobImmutable CONSTANT)
    /**
      Get Force alignment before starting or restarting each job.
    */
    static
    bool forceAlignmentBeforeJob()
    {
      return self()->mForceAlignmentBeforeJob;
    }

    /**
      Is Force alignment before starting or restarting each job. Immutable
    */
    static
    bool isForceAlignmentBeforeJobImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ForceAlignmentBeforeJob" ) );
    }

    /**
      Set Guider may re-use guiding calibration if one is available.
    */
    static
    void setReuseGuideCalibration( bool v )
    {
      if (v != self()->mReuseGuideCalibration && !self()->isReuseGuideCalibrationImmutable()) {
        self()->mReuseGuideCalibration = v;
        Q_EMIT self()->ReuseGuideCalibrationChanged();
      }
    }

    Q_PROPERTY(bool reuseGuideCalibration READ reuseGuideCalibration WRITE setReuseGuideCalibration NOTIFY ReuseGuideCalibrationChanged)
    Q_PROPERTY(bool isReuseGuideCalibrationImmutable READ isReuseGuideCalibrationImmutable CONSTANT)
    /**
      Get Guider may re-use guiding calibration if one is available.
    */
    static
    bool reuseGuideCalibration()
    {
      return self()->mReuseGuideCalibration;
    }

    /**
      Is Guider may re-use guiding calibration if one is available. Immutable
    */
    static
    bool isReuseGuideCalibrationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReuseGuideCalibration" ) );
    }

    /**
      Set Reverse DEC on pier-side change when reusing calibration.
    */
    static
    void setReverseDecOnPierSideChange( bool v )
    {
      if (v != self()->mReverseDecOnPierSideChange && !self()->isReverseDecOnPierSideChangeImmutable()) {
        self()->mReverseDecOnPierSideChange = v;
        Q_EMIT self()->ReverseDecOnPierSideChangeChanged();
      }
    }

    Q_PROPERTY(bool reverseDecOnPierSideChange READ reverseDecOnPierSideChange WRITE setReverseDecOnPierSideChange NOTIFY ReverseDecOnPierSideChangeChanged)
    Q_PROPERTY(bool isReverseDecOnPierSideChangeImmutable READ isReverseDecOnPierSideChangeImmutable CONSTANT)
    /**
      Get Reverse DEC on pier-side change when reusing calibration.
    */
    static
    bool reverseDecOnPierSideChange()
    {
      return self()->mReverseDecOnPierSideChange;
    }

    /**
      Is Reverse DEC on pier-side change when reusing calibration. Immutable
    */
    static
    bool isReverseDecOnPierSideChangeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReverseDecOnPierSideChange" ) );
    }

    /**
      Set Remove DEC backlash when calibrating guider.
    */
    static
    void setGuideCalibrationBacklash( bool v )
    {
      if (v != self()->mGuideCalibrationBacklash && !self()->isGuideCalibrationBacklashImmutable()) {
        self()->mGuideCalibrationBacklash = v;
        Q_EMIT self()->GuideCalibrationBacklashChanged();
      }
    }

    Q_PROPERTY(bool guideCalibrationBacklash READ guideCalibrationBacklash WRITE setGuideCalibrationBacklash NOTIFY GuideCalibrationBacklashChanged)
    Q_PROPERTY(bool isGuideCalibrationBacklashImmutable READ isGuideCalibrationBacklashImmutable CONSTANT)
    /**
      Get Remove DEC backlash when calibrating guider.
    */
    static
    bool guideCalibrationBacklash()
    {
      return self()->mGuideCalibrationBacklash;
    }

    /**
      Is Remove DEC backlash when calibrating guider. Immutable
    */
    static
    bool isGuideCalibrationBacklashImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GuideCalibrationBacklash" ) );
    }

    /**
      Set Assume DEC is orthogonal to RA during calibration instead of measuring the DEC angle independently.
    */
    static
    void setAssumeDecOrthogonal( bool v )
    {
      if (v != self()->mAssumeDecOrthogonal && !self()->isAssumeDecOrthogonalImmutable()) {
        self()->mAssumeDecOrthogonal = v;
        Q_EMIT self()->AssumeDecOrthogonalChanged();
      }
    }

    Q_PROPERTY(bool assumeDecOrthogonal READ assumeDecOrthogonal WRITE setAssumeDecOrthogonal NOTIFY AssumeDecOrthogonalChanged)
    Q_PROPERTY(bool isAssumeDecOrthogonalImmutable READ isAssumeDecOrthogonalImmutable CONSTANT)
    /**
      Get Assume DEC is orthogonal to RA during calibration instead of measuring the DEC angle independently.
    */
    static
    bool assumeDecOrthogonal()
    {
      return self()->mAssumeDecOrthogonal;
    }

    /**
      Is Assume DEC is orthogonal to RA during calibration instead of measuring the DEC angle independently. Immutable
    */
    static
    bool isAssumeDecOrthogonalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AssumeDecOrthogonal" ) );
    }

    /**
      Set Last Calibration serialized.
    */
    static
    void setSerializedCalibration( const QString & v )
    {
      if (v != self()->mSerializedCalibration && !self()->isSerializedCalibrationImmutable()) {
        self()->mSerializedCalibration = v;
        Q_EMIT self()->SerializedCalibrationChanged();
      }
    }

    Q_PROPERTY(QString serializedCalibration READ serializedCalibration WRITE setSerializedCalibration NOTIFY SerializedCalibrationChanged)
    Q_PROPERTY(bool isSerializedCalibrationImmutable READ isSerializedCalibrationImmutable CONSTANT)
    /**
      Get Last Calibration serialized.
    */
    static
    QString serializedCalibration()
    {
      return self()->mSerializedCalibration;
    }

    /**
      Is Last Calibration serialized. Immutable
    */
    static
    bool isSerializedCalibrationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SerializedCalibration" ) );
    }

    /**
      Set If guiding calibration fails, run alignment process again before proceeding to recalibration.
    */
    static
    void setRealignAfterCalibrationFailure( bool v )
    {
      if (v != self()->mRealignAfterCalibrationFailure && !self()->isRealignAfterCalibrationFailureImmutable()) {
        self()->mRealignAfterCalibrationFailure = v;
        Q_EMIT self()->RealignAfterCalibrationFailureChanged();
      }
    }

    Q_PROPERTY(bool realignAfterCalibrationFailure READ realignAfterCalibrationFailure WRITE setRealignAfterCalibrationFailure NOTIFY RealignAfterCalibrationFailureChanged)
    Q_PROPERTY(bool isRealignAfterCalibrationFailureImmutable READ isRealignAfterCalibrationFailureImmutable CONSTANT)
    /**
      Get If guiding calibration fails, run alignment process again before proceeding to recalibration.
    */
    static
    bool realignAfterCalibrationFailure()
    {
      return self()->mRealignAfterCalibrationFailure;
    }

    /**
      Is If guiding calibration fails, run alignment process again before proceeding to recalibration. Immutable
    */
    static
    bool isRealignAfterCalibrationFailureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RealignAfterCalibrationFailure" ) );
    }

    /**
      Set Maximum number of hours before the next job is due to trigger a pre-emptive shutdown.
    */
    static
    void setPreemptiveShutdownTime( double v )
    {
      if (v != self()->mPreemptiveShutdownTime && !self()->isPreemptiveShutdownTimeImmutable()) {
        self()->mPreemptiveShutdownTime = v;
        Q_EMIT self()->PreemptiveShutdownTimeChanged();
      }
    }

    Q_PROPERTY(double preemptiveShutdownTime READ preemptiveShutdownTime WRITE setPreemptiveShutdownTime NOTIFY PreemptiveShutdownTimeChanged)
    Q_PROPERTY(bool isPreemptiveShutdownTimeImmutable READ isPreemptiveShutdownTimeImmutable CONSTANT)
    /**
      Get Maximum number of hours before the next job is due to trigger a pre-emptive shutdown.
    */
    static
    double preemptiveShutdownTime()
    {
      return self()->mPreemptiveShutdownTime;
    }

    /**
      Is Maximum number of hours before the next job is due to trigger a pre-emptive shutdown. Immutable
    */
    static
    bool isPreemptiveShutdownTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreemptiveShutdownTime" ) );
    }

    /**
      Set When processing a scheduled job, resume the sequence starting from the last image present in storage.
    */
    static
    void setRememberJobProgress( bool v )
    {
      if (v != self()->mRememberJobProgress && !self()->isRememberJobProgressImmutable()) {
        self()->mRememberJobProgress = v;
        Q_EMIT self()->RememberJobProgressChanged();
      }
    }

    Q_PROPERTY(bool rememberJobProgress READ rememberJobProgress WRITE setRememberJobProgress NOTIFY RememberJobProgressChanged)
    Q_PROPERTY(bool isRememberJobProgressImmutable READ isRememberJobProgressImmutable CONSTANT)
    /**
      Get When processing a scheduled job, resume the sequence starting from the last image present in storage.
    */
    static
    bool rememberJobProgress()
    {
      return self()->mRememberJobProgress;
    }

    /**
      Is When processing a scheduled job, resume the sequence starting from the last image present in storage. Immutable
    */
    static
    bool isRememberJobProgressImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RememberJobProgress" ) );
    }

    /**
      Set When true, the scheduler tries to run lower priority jobs when no higher priority job can run. Recommended.
    */
    static
    void setGreedyScheduling( bool v )
    {
      if (v != self()->mGreedyScheduling && !self()->isGreedySchedulingImmutable()) {
        self()->mGreedyScheduling = v;
        Q_EMIT self()->GreedySchedulingChanged();
      }
    }

    Q_PROPERTY(bool greedyScheduling READ greedyScheduling WRITE setGreedyScheduling NOTIFY GreedySchedulingChanged)
    Q_PROPERTY(bool isGreedySchedulingImmutable READ isGreedySchedulingImmutable CONSTANT)
    /**
      Get When true, the scheduler tries to run lower priority jobs when no higher priority job can run. Recommended.
    */
    static
    bool greedyScheduling()
    {
      return self()->mGreedyScheduling;
    }

    /**
      Is When true, the scheduler tries to run lower priority jobs when no higher priority job can run. Recommended. Immutable
    */
    static
    bool isGreedySchedulingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "GreedyScheduling" ) );
    }

    /**
      Set Minimum time between jobs in minutes.
    */
    static
    void setLeadTime( double v )
    {
      if (v != self()->mLeadTime && !self()->isLeadTimeImmutable()) {
        self()->mLeadTime = v;
        Q_EMIT self()->LeadTimeChanged();
      }
    }

    Q_PROPERTY(double leadTime READ leadTime WRITE setLeadTime NOTIFY LeadTimeChanged)
    Q_PROPERTY(bool isLeadTimeImmutable READ isLeadTimeImmutable CONSTANT)
    /**
      Get Minimum time between jobs in minutes.
    */
    static
    double leadTime()
    {
      return self()->mLeadTime;
    }

    /**
      Is Minimum time between jobs in minutes. Immutable
    */
    static
    bool isLeadTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LeadTime" ) );
    }

    /**
      Set Do not permit jobs to be scheduled or executed past this many minutes before dawn.
    */
    static
    void setPreDawnTime( double v )
    {
      if (v != self()->mPreDawnTime && !self()->isPreDawnTimeImmutable()) {
        self()->mPreDawnTime = v;
        Q_EMIT self()->PreDawnTimeChanged();
      }
    }

    Q_PROPERTY(double preDawnTime READ preDawnTime WRITE setPreDawnTime NOTIFY PreDawnTimeChanged)
    Q_PROPERTY(bool isPreDawnTimeImmutable READ isPreDawnTimeImmutable CONSTANT)
    /**
      Get Do not permit jobs to be scheduled or executed past this many minutes before dawn.
    */
    static
    double preDawnTime()
    {
      return self()->mPreDawnTime;
    }

    /**
      Is Do not permit jobs to be scheduled or executed past this many minutes before dawn. Immutable
    */
    static
    bool isPreDawnTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreDawnTime" ) );
    }

    /**
      Set Offset astronomical dawn by this many hours to relax twilight restriction when using narrowband filters.
    */
    static
    void setDawnOffset( double v )
    {
      if (v != self()->mDawnOffset && !self()->isDawnOffsetImmutable()) {
        self()->mDawnOffset = v;
        Q_EMIT self()->DawnOffsetChanged();
      }
    }

    Q_PROPERTY(double dawnOffset READ dawnOffset WRITE setDawnOffset NOTIFY DawnOffsetChanged)
    Q_PROPERTY(bool isDawnOffsetImmutable READ isDawnOffsetImmutable CONSTANT)
    /**
      Get Offset astronomical dawn by this many hours to relax twilight restriction when using narrowband filters.
    */
    static
    double dawnOffset()
    {
      return self()->mDawnOffset;
    }

    /**
      Is Offset astronomical dawn by this many hours to relax twilight restriction when using narrowband filters. Immutable
    */
    static
    bool isDawnOffsetImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DawnOffset" ) );
    }

    /**
      Set Offset astronomical dusk by this many hours to relax twilight restriction when using narrowband filters.
    */
    static
    void setDuskOffset( double v )
    {
      if (v != self()->mDuskOffset && !self()->isDuskOffsetImmutable()) {
        self()->mDuskOffset = v;
        Q_EMIT self()->DuskOffsetChanged();
      }
    }

    Q_PROPERTY(double duskOffset READ duskOffset WRITE setDuskOffset NOTIFY DuskOffsetChanged)
    Q_PROPERTY(bool isDuskOffsetImmutable READ isDuskOffsetImmutable CONSTANT)
    /**
      Get Offset astronomical dusk by this many hours to relax twilight restriction when using narrowband filters.
    */
    static
    double duskOffset()
    {
      return self()->mDuskOffset;
    }

    /**
      Is Offset astronomical dusk by this many hours to relax twilight restriction when using narrowband filters. Immutable
    */
    static
    bool isDuskOffsetImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DuskOffset" ) );
    }

    /**
      Set Telescope focal length in millimeters.
    */
    static
    void setTelescopeFocalLength( double v )
    {
      if (v != self()->mTelescopeFocalLength && !self()->isTelescopeFocalLengthImmutable()) {
        self()->mTelescopeFocalLength = v;
        Q_EMIT self()->TelescopeFocalLengthChanged();
      }
    }

    Q_PROPERTY(double telescopeFocalLength READ telescopeFocalLength WRITE setTelescopeFocalLength NOTIFY TelescopeFocalLengthChanged)
    Q_PROPERTY(bool isTelescopeFocalLengthImmutable READ isTelescopeFocalLengthImmutable CONSTANT)
    /**
      Get Telescope focal length in millimeters.
    */
    static
    double telescopeFocalLength()
    {
      return self()->mTelescopeFocalLength;
    }

    /**
      Is Telescope focal length in millimeters. Immutable
    */
    static
    bool isTelescopeFocalLengthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TelescopeFocalLength" ) );
    }

    /**
      Set Focal Reducer ratio
    */
    static
    void setTelescopeFocalReducer( double v )
    {
      if (v != self()->mTelescopeFocalReducer && !self()->isTelescopeFocalReducerImmutable()) {
        self()->mTelescopeFocalReducer = v;
        Q_EMIT self()->TelescopeFocalReducerChanged();
      }
    }

    Q_PROPERTY(double telescopeFocalReducer READ telescopeFocalReducer WRITE setTelescopeFocalReducer NOTIFY TelescopeFocalReducerChanged)
    Q_PROPERTY(bool isTelescopeFocalReducerImmutable READ isTelescopeFocalReducerImmutable CONSTANT)
    /**
      Get Focal Reducer ratio
    */
    static
    double telescopeFocalReducer()
    {
      return self()->mTelescopeFocalReducer;
    }

    /**
      Is Focal Reducer ratio Immutable
    */
    static
    bool isTelescopeFocalReducerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TelescopeFocalReducer" ) );
    }

    /**
      Set Camera pixel size width in micrometers.
    */
    static
    void setCameraPixelWidth( double v )
    {
      if (v != self()->mCameraPixelWidth && !self()->isCameraPixelWidthImmutable()) {
        self()->mCameraPixelWidth = v;
        Q_EMIT self()->CameraPixelWidthChanged();
      }
    }

    Q_PROPERTY(double cameraPixelWidth READ cameraPixelWidth WRITE setCameraPixelWidth NOTIFY CameraPixelWidthChanged)
    Q_PROPERTY(bool isCameraPixelWidthImmutable READ isCameraPixelWidthImmutable CONSTANT)
    /**
      Get Camera pixel size width in micrometers.
    */
    static
    double cameraPixelWidth()
    {
      return self()->mCameraPixelWidth;
    }

    /**
      Is Camera pixel size width in micrometers. Immutable
    */
    static
    bool isCameraPixelWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CameraPixelWidth" ) );
    }

    /**
      Set Camera pixel size height in micrometers.
    */
    static
    void setCameraPixelHeight( double v )
    {
      if (v != self()->mCameraPixelHeight && !self()->isCameraPixelHeightImmutable()) {
        self()->mCameraPixelHeight = v;
        Q_EMIT self()->CameraPixelHeightChanged();
      }
    }

    Q_PROPERTY(double cameraPixelHeight READ cameraPixelHeight WRITE setCameraPixelHeight NOTIFY CameraPixelHeightChanged)
    Q_PROPERTY(bool isCameraPixelHeightImmutable READ isCameraPixelHeightImmutable CONSTANT)
    /**
      Get Camera pixel size height in micrometers.
    */
    static
    double cameraPixelHeight()
    {
      return self()->mCameraPixelHeight;
    }

    /**
      Is Camera pixel size height in micrometers. Immutable
    */
    static
    bool isCameraPixelHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CameraPixelHeight" ) );
    }

    /**
      Set Camera Width in pixels.
    */
    static
    void setCameraWidth( uint v )
    {
      if (v != self()->mCameraWidth && !self()->isCameraWidthImmutable()) {
        self()->mCameraWidth = v;
        Q_EMIT self()->CameraWidthChanged();
      }
    }

    Q_PROPERTY(uint cameraWidth READ cameraWidth WRITE setCameraWidth NOTIFY CameraWidthChanged)
    Q_PROPERTY(bool isCameraWidthImmutable READ isCameraWidthImmutable CONSTANT)
    /**
      Get Camera Width in pixels.
    */
    static
    uint cameraWidth()
    {
      return self()->mCameraWidth;
    }

    /**
      Is Camera Width in pixels. Immutable
    */
    static
    bool isCameraWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CameraWidth" ) );
    }

    /**
      Set Camera Height in pixels.
    */
    static
    void setCameraHeight( uint v )
    {
      if (v != self()->mCameraHeight && !self()->isCameraHeightImmutable()) {
        self()->mCameraHeight = v;
        Q_EMIT self()->CameraHeightChanged();
      }
    }

    Q_PROPERTY(uint cameraHeight READ cameraHeight WRITE setCameraHeight NOTIFY CameraHeightChanged)
    Q_PROPERTY(bool isCameraHeightImmutable READ isCameraHeightImmutable CONSTANT)
    /**
      Get Camera Height in pixels.
    */
    static
    uint cameraHeight()
    {
      return self()->mCameraHeight;
    }

    /**
      Is Camera Height in pixels. Immutable
    */
    static
    bool isCameraHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CameraHeight" ) );
    }

    /**
      Set Position angle of the camera with respect to north.
    */
    static
    void setCameraRotation( double v )
    {
      if (v != self()->mCameraRotation && !self()->isCameraRotationImmutable()) {
        self()->mCameraRotation = v;
        Q_EMIT self()->CameraRotationChanged();
      }
    }

    Q_PROPERTY(double cameraRotation READ cameraRotation WRITE setCameraRotation NOTIFY CameraRotationChanged)
    Q_PROPERTY(bool isCameraRotationImmutable READ isCameraRotationImmutable CONSTANT)
    /**
      Get Position angle of the camera with respect to north.
    */
    static
    double cameraRotation()
    {
      return self()->mCameraRotation;
    }

    /**
      Is Position angle of the camera with respect to north. Immutable
    */
    static
    bool isCameraRotationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CameraRotation" ) );
    }

    /**
      Set Strategy how to react, when a job aborts or steps into an error.
    */
    static
    void setErrorHandlingStrategy( uint v )
    {
      if (v != self()->mErrorHandlingStrategy && !self()->isErrorHandlingStrategyImmutable()) {
        self()->mErrorHandlingStrategy = v;
        Q_EMIT self()->ErrorHandlingStrategyChanged();
      }
    }

    Q_PROPERTY(uint errorHandlingStrategy READ errorHandlingStrategy WRITE setErrorHandlingStrategy NOTIFY ErrorHandlingStrategyChanged)
    Q_PROPERTY(bool isErrorHandlingStrategyImmutable READ isErrorHandlingStrategyImmutable CONSTANT)
    /**
      Get Strategy how to react, when a job aborts or steps into an error.
    */
    static
    uint errorHandlingStrategy()
    {
      return self()->mErrorHandlingStrategy;
    }

    /**
      Is Strategy how to react, when a job aborts or steps into an error. Immutable
    */
    static
    bool isErrorHandlingStrategyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ErrorHandlingStrategy" ) );
    }

    /**
      Set Delay in minutes how long the scheduler should pause before restarting an aborted job or a job that ran into an error.
    */
    static
    void setErrorHandlingStrategyDelay( uint v )
    {
      if (v != self()->mErrorHandlingStrategyDelay && !self()->isErrorHandlingStrategyDelayImmutable()) {
        self()->mErrorHandlingStrategyDelay = v;
        Q_EMIT self()->ErrorHandlingStrategyDelayChanged();
      }
    }

    Q_PROPERTY(uint errorHandlingStrategyDelay READ errorHandlingStrategyDelay WRITE setErrorHandlingStrategyDelay NOTIFY ErrorHandlingStrategyDelayChanged)
    Q_PROPERTY(bool isErrorHandlingStrategyDelayImmutable READ isErrorHandlingStrategyDelayImmutable CONSTANT)
    /**
      Get Delay in minutes how long the scheduler should pause before restarting an aborted job or a job that ran into an error.
    */
    static
    uint errorHandlingStrategyDelay()
    {
      return self()->mErrorHandlingStrategyDelay;
    }

    /**
      Is Delay in minutes how long the scheduler should pause before restarting an aborted job or a job that ran into an error. Immutable
    */
    static
    bool isErrorHandlingStrategyDelayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ErrorHandlingStrategyDelay" ) );
    }

    /**
      Set Re-schedule jobs that ran into errors.
    */
    static
    void setRescheduleErrors( bool v )
    {
      if (v != self()->mRescheduleErrors && !self()->isRescheduleErrorsImmutable()) {
        self()->mRescheduleErrors = v;
        Q_EMIT self()->RescheduleErrorsChanged();
      }
    }

    Q_PROPERTY(bool rescheduleErrors READ rescheduleErrors WRITE setRescheduleErrors NOTIFY RescheduleErrorsChanged)
    Q_PROPERTY(bool isRescheduleErrorsImmutable READ isRescheduleErrorsImmutable CONSTANT)
    /**
      Get Re-schedule jobs that ran into errors.
    */
    static
    bool rescheduleErrors()
    {
      return self()->mRescheduleErrors;
    }

    /**
      Is Re-schedule jobs that ran into errors. Immutable
    */
    static
    bool isRescheduleErrorsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RescheduleErrors" ) );
    }

    /**
      Set When calculating position after captures, compute it every Nth capture. Set to 0 to disable.
    */
    static
    void setAlignCheckFrequency( uint v )
    {
      if (v != self()->mAlignCheckFrequency && !self()->isAlignCheckFrequencyImmutable()) {
        self()->mAlignCheckFrequency = v;
        Q_EMIT self()->AlignCheckFrequencyChanged();
      }
    }

    Q_PROPERTY(uint alignCheckFrequency READ alignCheckFrequency WRITE setAlignCheckFrequency NOTIFY AlignCheckFrequencyChanged)
    Q_PROPERTY(bool isAlignCheckFrequencyImmutable READ isAlignCheckFrequencyImmutable CONSTANT)
    /**
      Get When calculating position after captures, compute it every Nth capture. Set to 0 to disable.
    */
    static
    uint alignCheckFrequency()
    {
      return self()->mAlignCheckFrequency;
    }

    /**
      Is When calculating position after captures, compute it every Nth capture. Set to 0 to disable. Immutable
    */
    static
    bool isAlignCheckFrequencyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignCheckFrequency" ) );
    }

    /**
      Set If captured position exceeds target position by more this many arcminutes, abort capture and reschedule the pipeline.
    */
    static
    void setAlignCheckThreshold( double v )
    {
      if (v != self()->mAlignCheckThreshold && !self()->isAlignCheckThresholdImmutable()) {
        self()->mAlignCheckThreshold = v;
        Q_EMIT self()->AlignCheckThresholdChanged();
      }
    }

    Q_PROPERTY(double alignCheckThreshold READ alignCheckThreshold WRITE setAlignCheckThreshold NOTIFY AlignCheckThresholdChanged)
    Q_PROPERTY(bool isAlignCheckThresholdImmutable READ isAlignCheckThresholdImmutable CONSTANT)
    /**
      Get If captured position exceeds target position by more this many arcminutes, abort capture and reschedule the pipeline.
    */
    static
    double alignCheckThreshold()
    {
      return self()->mAlignCheckThreshold;
    }

    /**
      Is If captured position exceeds target position by more this many arcminutes, abort capture and reschedule the pipeline. Immutable
    */
    static
    bool isAlignCheckThresholdImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AlignCheckThreshold" ) );
    }

    /**
      Set Default scheduler checkbox for starting mount tracking on job startup.
    */
    static
    void setSchedulerTrackStep( bool v )
    {
      if (v != self()->mSchedulerTrackStep && !self()->isSchedulerTrackStepImmutable()) {
        self()->mSchedulerTrackStep = v;
        Q_EMIT self()->SchedulerTrackStepChanged();
      }
    }

    Q_PROPERTY(bool schedulerTrackStep READ schedulerTrackStep WRITE setSchedulerTrackStep NOTIFY SchedulerTrackStepChanged)
    Q_PROPERTY(bool isSchedulerTrackStepImmutable READ isSchedulerTrackStepImmutable CONSTANT)
    /**
      Get Default scheduler checkbox for starting mount tracking on job startup.
    */
    static
    bool schedulerTrackStep()
    {
      return self()->mSchedulerTrackStep;
    }

    /**
      Is Default scheduler checkbox for starting mount tracking on job startup. Immutable
    */
    static
    bool isSchedulerTrackStepImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerTrackStep" ) );
    }

    /**
      Set Enable startup queue execution
    */
    static
    void setSchedulerStartupEnabled( bool v )
    {
      if (v != self()->mSchedulerStartupEnabled && !self()->isSchedulerStartupEnabledImmutable()) {
        self()->mSchedulerStartupEnabled = v;
        Q_EMIT self()->SchedulerStartupEnabledChanged();
      }
    }

    Q_PROPERTY(bool schedulerStartupEnabled READ schedulerStartupEnabled WRITE setSchedulerStartupEnabled NOTIFY SchedulerStartupEnabledChanged)
    Q_PROPERTY(bool isSchedulerStartupEnabledImmutable READ isSchedulerStartupEnabledImmutable CONSTANT)
    /**
      Get Enable startup queue execution
    */
    static
    bool schedulerStartupEnabled()
    {
      return self()->mSchedulerStartupEnabled;
    }

    /**
      Is Enable startup queue execution Immutable
    */
    static
    bool isSchedulerStartupEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerStartupEnabled" ) );
    }

    /**
      Set Path to startup queue file or script.
    */
    static
    void setSchedulerPreStartupScript( const QString & v )
    {
      if (v != self()->mSchedulerPreStartupScript && !self()->isSchedulerPreStartupScriptImmutable()) {
        self()->mSchedulerPreStartupScript = v;
        Q_EMIT self()->SchedulerPreStartupScriptChanged();
      }
    }

    Q_PROPERTY(QString schedulerPreStartupScript READ schedulerPreStartupScript WRITE setSchedulerPreStartupScript NOTIFY SchedulerPreStartupScriptChanged)
    Q_PROPERTY(bool isSchedulerPreStartupScriptImmutable READ isSchedulerPreStartupScriptImmutable CONSTANT)
    /**
      Get Path to startup queue file or script.
    */
    static
    QString schedulerPreStartupScript()
    {
      return self()->mSchedulerPreStartupScript;
    }

    /**
      Is Path to startup queue file or script. Immutable
    */
    static
    bool isSchedulerPreStartupScriptImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerPreStartupScript" ) );
    }

    /**
      Set Path to post-startup queue file or script.
    */
    static
    void setSchedulerPostStartupScript( const QString & v )
    {
      if (v != self()->mSchedulerPostStartupScript && !self()->isSchedulerPostStartupScriptImmutable()) {
        self()->mSchedulerPostStartupScript = v;
        Q_EMIT self()->SchedulerPostStartupScriptChanged();
      }
    }

    Q_PROPERTY(QString schedulerPostStartupScript READ schedulerPostStartupScript WRITE setSchedulerPostStartupScript NOTIFY SchedulerPostStartupScriptChanged)
    Q_PROPERTY(bool isSchedulerPostStartupScriptImmutable READ isSchedulerPostStartupScriptImmutable CONSTANT)
    /**
      Get Path to post-startup queue file or script.
    */
    static
    QString schedulerPostStartupScript()
    {
      return self()->mSchedulerPostStartupScript;
    }

    /**
      Is Path to post-startup queue file or script. Immutable
    */
    static
    bool isSchedulerPostStartupScriptImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerPostStartupScript" ) );
    }

    /**
      Set Enable shutdown queue execution
    */
    static
    void setSchedulerShutdownEnabled( bool v )
    {
      if (v != self()->mSchedulerShutdownEnabled && !self()->isSchedulerShutdownEnabledImmutable()) {
        self()->mSchedulerShutdownEnabled = v;
        Q_EMIT self()->SchedulerShutdownEnabledChanged();
      }
    }

    Q_PROPERTY(bool schedulerShutdownEnabled READ schedulerShutdownEnabled WRITE setSchedulerShutdownEnabled NOTIFY SchedulerShutdownEnabledChanged)
    Q_PROPERTY(bool isSchedulerShutdownEnabledImmutable READ isSchedulerShutdownEnabledImmutable CONSTANT)
    /**
      Get Enable shutdown queue execution
    */
    static
    bool schedulerShutdownEnabled()
    {
      return self()->mSchedulerShutdownEnabled;
    }

    /**
      Is Enable shutdown queue execution Immutable
    */
    static
    bool isSchedulerShutdownEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerShutdownEnabled" ) );
    }

    /**
      Set Path to shutdown queue file or script.
    */
    static
    void setSchedulerPreShutdownScript( const QString & v )
    {
      if (v != self()->mSchedulerPreShutdownScript && !self()->isSchedulerPreShutdownScriptImmutable()) {
        self()->mSchedulerPreShutdownScript = v;
        Q_EMIT self()->SchedulerPreShutdownScriptChanged();
      }
    }

    Q_PROPERTY(QString schedulerPreShutdownScript READ schedulerPreShutdownScript WRITE setSchedulerPreShutdownScript NOTIFY SchedulerPreShutdownScriptChanged)
    Q_PROPERTY(bool isSchedulerPreShutdownScriptImmutable READ isSchedulerPreShutdownScriptImmutable CONSTANT)
    /**
      Get Path to shutdown queue file or script.
    */
    static
    QString schedulerPreShutdownScript()
    {
      return self()->mSchedulerPreShutdownScript;
    }

    /**
      Is Path to shutdown queue file or script. Immutable
    */
    static
    bool isSchedulerPreShutdownScriptImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerPreShutdownScript" ) );
    }

    /**
      Set Path to post-shutdown queue file or script.
    */
    static
    void setSchedulerPostShutdownScript( const QString & v )
    {
      if (v != self()->mSchedulerPostShutdownScript && !self()->isSchedulerPostShutdownScriptImmutable()) {
        self()->mSchedulerPostShutdownScript = v;
        Q_EMIT self()->SchedulerPostShutdownScriptChanged();
      }
    }

    Q_PROPERTY(QString schedulerPostShutdownScript READ schedulerPostShutdownScript WRITE setSchedulerPostShutdownScript NOTIFY SchedulerPostShutdownScriptChanged)
    Q_PROPERTY(bool isSchedulerPostShutdownScriptImmutable READ isSchedulerPostShutdownScriptImmutable CONSTANT)
    /**
      Get Path to post-shutdown queue file or script.
    */
    static
    QString schedulerPostShutdownScript()
    {
      return self()->mSchedulerPostShutdownScript;
    }

    /**
      Is Path to post-shutdown queue file or script. Immutable
    */
    static
    bool isSchedulerPostShutdownScriptImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerPostShutdownScript" ) );
    }

    /**
      Set Default scheduler checkbox for running autofocus on job startup.
    */
    static
    void setSchedulerFocusStep( bool v )
    {
      if (v != self()->mSchedulerFocusStep && !self()->isSchedulerFocusStepImmutable()) {
        self()->mSchedulerFocusStep = v;
        Q_EMIT self()->SchedulerFocusStepChanged();
      }
    }

    Q_PROPERTY(bool schedulerFocusStep READ schedulerFocusStep WRITE setSchedulerFocusStep NOTIFY SchedulerFocusStepChanged)
    Q_PROPERTY(bool isSchedulerFocusStepImmutable READ isSchedulerFocusStepImmutable CONSTANT)
    /**
      Get Default scheduler checkbox for running autofocus on job startup.
    */
    static
    bool schedulerFocusStep()
    {
      return self()->mSchedulerFocusStep;
    }

    /**
      Is Default scheduler checkbox for running autofocus on job startup. Immutable
    */
    static
    bool isSchedulerFocusStepImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerFocusStep" ) );
    }

    /**
      Set Default scheduler checkbox for starting guiding on job startup.
    */
    static
    void setSchedulerGuideStep( bool v )
    {
      if (v != self()->mSchedulerGuideStep && !self()->isSchedulerGuideStepImmutable()) {
        self()->mSchedulerGuideStep = v;
        Q_EMIT self()->SchedulerGuideStepChanged();
      }
    }

    Q_PROPERTY(bool schedulerGuideStep READ schedulerGuideStep WRITE setSchedulerGuideStep NOTIFY SchedulerGuideStepChanged)
    Q_PROPERTY(bool isSchedulerGuideStepImmutable READ isSchedulerGuideStepImmutable CONSTANT)
    /**
      Get Default scheduler checkbox for starting guiding on job startup.
    */
    static
    bool schedulerGuideStep()
    {
      return self()->mSchedulerGuideStep;
    }

    /**
      Is Default scheduler checkbox for starting guiding on job startup. Immutable
    */
    static
    bool isSchedulerGuideStepImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerGuideStep" ) );
    }

    /**
      Set Default scheduler checkbox for aligning on job startup.
    */
    static
    void setSchedulerAlignStep( bool v )
    {
      if (v != self()->mSchedulerAlignStep && !self()->isSchedulerAlignStepImmutable()) {
        self()->mSchedulerAlignStep = v;
        Q_EMIT self()->SchedulerAlignStepChanged();
      }
    }

    Q_PROPERTY(bool schedulerAlignStep READ schedulerAlignStep WRITE setSchedulerAlignStep NOTIFY SchedulerAlignStepChanged)
    Q_PROPERTY(bool isSchedulerAlignStepImmutable READ isSchedulerAlignStepImmutable CONSTANT)
    /**
      Get Default scheduler checkbox for aligning on job startup.
    */
    static
    bool schedulerAlignStep()
    {
      return self()->mSchedulerAlignStep;
    }

    /**
      Is Default scheduler checkbox for aligning on job startup. Immutable
    */
    static
    bool isSchedulerAlignStepImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerAlignStep" ) );
    }

    /**
      Set Default scheduler checkbox for job altitude constraints.
    */
    static
    void setSchedulerAltitude( bool v )
    {
      if (v != self()->mSchedulerAltitude && !self()->isSchedulerAltitudeImmutable()) {
        self()->mSchedulerAltitude = v;
        Q_EMIT self()->SchedulerAltitudeChanged();
      }
    }

    Q_PROPERTY(bool schedulerAltitude READ schedulerAltitude WRITE setSchedulerAltitude NOTIFY SchedulerAltitudeChanged)
    Q_PROPERTY(bool isSchedulerAltitudeImmutable READ isSchedulerAltitudeImmutable CONSTANT)
    /**
      Get Default scheduler checkbox for job altitude constraints.
    */
    static
    bool schedulerAltitude()
    {
      return self()->mSchedulerAltitude;
    }

    /**
      Is Default scheduler checkbox for job altitude constraints. Immutable
    */
    static
    bool isSchedulerAltitudeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerAltitude" ) );
    }

    /**
      Set Default scheduler job altitude constraint.
    */
    static
    void setSchedulerAltitudeValue( double v )
    {
      if (v != self()->mSchedulerAltitudeValue && !self()->isSchedulerAltitudeValueImmutable()) {
        self()->mSchedulerAltitudeValue = v;
        Q_EMIT self()->SchedulerAltitudeValueChanged();
      }
    }

    Q_PROPERTY(double schedulerAltitudeValue READ schedulerAltitudeValue WRITE setSchedulerAltitudeValue NOTIFY SchedulerAltitudeValueChanged)
    Q_PROPERTY(bool isSchedulerAltitudeValueImmutable READ isSchedulerAltitudeValueImmutable CONSTANT)
    /**
      Get Default scheduler job altitude constraint.
    */
    static
    double schedulerAltitudeValue()
    {
      return self()->mSchedulerAltitudeValue;
    }

    /**
      Is Default scheduler job altitude constraint. Immutable
    */
    static
    bool isSchedulerAltitudeValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerAltitudeValue" ) );
    }

    /**
      Set Default scheduler checkbox for job artificial horizon constraints.
    */
    static
    void setSchedulerHorizon( bool v )
    {
      if (v != self()->mSchedulerHorizon && !self()->isSchedulerHorizonImmutable()) {
        self()->mSchedulerHorizon = v;
        Q_EMIT self()->SchedulerHorizonChanged();
      }
    }

    Q_PROPERTY(bool schedulerHorizon READ schedulerHorizon WRITE setSchedulerHorizon NOTIFY SchedulerHorizonChanged)
    Q_PROPERTY(bool isSchedulerHorizonImmutable READ isSchedulerHorizonImmutable CONSTANT)
    /**
      Get Default scheduler checkbox for job artificial horizon constraints.
    */
    static
    bool schedulerHorizon()
    {
      return self()->mSchedulerHorizon;
    }

    /**
      Is Default scheduler checkbox for job artificial horizon constraints. Immutable
    */
    static
    bool isSchedulerHorizonImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerHorizon" ) );
    }

    /**
      Set Default scheduler checkbox for job moon separation constraint.
    */
    static
    void setSchedulerMoonSeparation( bool v )
    {
      if (v != self()->mSchedulerMoonSeparation && !self()->isSchedulerMoonSeparationImmutable()) {
        self()->mSchedulerMoonSeparation = v;
        Q_EMIT self()->SchedulerMoonSeparationChanged();
      }
    }

    Q_PROPERTY(bool schedulerMoonSeparation READ schedulerMoonSeparation WRITE setSchedulerMoonSeparation NOTIFY SchedulerMoonSeparationChanged)
    Q_PROPERTY(bool isSchedulerMoonSeparationImmutable READ isSchedulerMoonSeparationImmutable CONSTANT)
    /**
      Get Default scheduler checkbox for job moon separation constraint.
    */
    static
    bool schedulerMoonSeparation()
    {
      return self()->mSchedulerMoonSeparation;
    }

    /**
      Is Default scheduler checkbox for job moon separation constraint. Immutable
    */
    static
    bool isSchedulerMoonSeparationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerMoonSeparation" ) );
    }

    /**
      Set Default scheduler job moon separation constraint.
    */
    static
    void setSchedulerMoonSeparationValue( double v )
    {
      if (v != self()->mSchedulerMoonSeparationValue && !self()->isSchedulerMoonSeparationValueImmutable()) {
        self()->mSchedulerMoonSeparationValue = v;
        Q_EMIT self()->SchedulerMoonSeparationValueChanged();
      }
    }

    Q_PROPERTY(double schedulerMoonSeparationValue READ schedulerMoonSeparationValue WRITE setSchedulerMoonSeparationValue NOTIFY SchedulerMoonSeparationValueChanged)
    Q_PROPERTY(bool isSchedulerMoonSeparationValueImmutable READ isSchedulerMoonSeparationValueImmutable CONSTANT)
    /**
      Get Default scheduler job moon separation constraint.
    */
    static
    double schedulerMoonSeparationValue()
    {
      return self()->mSchedulerMoonSeparationValue;
    }

    /**
      Is Default scheduler job moon separation constraint. Immutable
    */
    static
    bool isSchedulerMoonSeparationValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerMoonSeparationValue" ) );
    }

    /**
      Set Default scheduler checkbox for job moon altitude constraint.
    */
    static
    void setSchedulerMoonAltitude( bool v )
    {
      if (v != self()->mSchedulerMoonAltitude && !self()->isSchedulerMoonAltitudeImmutable()) {
        self()->mSchedulerMoonAltitude = v;
        Q_EMIT self()->SchedulerMoonAltitudeChanged();
      }
    }

    Q_PROPERTY(bool schedulerMoonAltitude READ schedulerMoonAltitude WRITE setSchedulerMoonAltitude NOTIFY SchedulerMoonAltitudeChanged)
    Q_PROPERTY(bool isSchedulerMoonAltitudeImmutable READ isSchedulerMoonAltitudeImmutable CONSTANT)
    /**
      Get Default scheduler checkbox for job moon altitude constraint.
    */
    static
    bool schedulerMoonAltitude()
    {
      return self()->mSchedulerMoonAltitude;
    }

    /**
      Is Default scheduler checkbox for job moon altitude constraint. Immutable
    */
    static
    bool isSchedulerMoonAltitudeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerMoonAltitude" ) );
    }

    /**
      Set Default scheduler job moon altitude constraint.
    */
    static
    void setSchedulerMoonAltitudeMaxValue( double v )
    {
      if (v != self()->mSchedulerMoonAltitudeMaxValue && !self()->isSchedulerMoonAltitudeMaxValueImmutable()) {
        self()->mSchedulerMoonAltitudeMaxValue = v;
        Q_EMIT self()->SchedulerMoonAltitudeMaxValueChanged();
      }
    }

    Q_PROPERTY(double schedulerMoonAltitudeMaxValue READ schedulerMoonAltitudeMaxValue WRITE setSchedulerMoonAltitudeMaxValue NOTIFY SchedulerMoonAltitudeMaxValueChanged)
    Q_PROPERTY(bool isSchedulerMoonAltitudeMaxValueImmutable READ isSchedulerMoonAltitudeMaxValueImmutable CONSTANT)
    /**
      Get Default scheduler job moon altitude constraint.
    */
    static
    double schedulerMoonAltitudeMaxValue()
    {
      return self()->mSchedulerMoonAltitudeMaxValue;
    }

    /**
      Is Default scheduler job moon altitude constraint. Immutable
    */
    static
    bool isSchedulerMoonAltitudeMaxValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerMoonAltitudeMaxValue" ) );
    }

    /**
      Set Default scheduler checkbox for weather constraints.
    */
    static
    void setSchedulerWeather( bool v )
    {
      if (v != self()->mSchedulerWeather && !self()->isSchedulerWeatherImmutable()) {
        self()->mSchedulerWeather = v;
        Q_EMIT self()->SchedulerWeatherChanged();
      }
    }

    Q_PROPERTY(bool schedulerWeather READ schedulerWeather WRITE setSchedulerWeather NOTIFY SchedulerWeatherChanged)
    Q_PROPERTY(bool isSchedulerWeatherImmutable READ isSchedulerWeatherImmutable CONSTANT)
    /**
      Get Default scheduler checkbox for weather constraints.
    */
    static
    bool schedulerWeather()
    {
      return self()->mSchedulerWeather;
    }

    /**
      Is Default scheduler checkbox for weather constraints. Immutable
    */
    static
    bool isSchedulerWeatherImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerWeather" ) );
    }

    /**
      Set Wait this many minutes for the weather to improve before giving up. Set to 0 to wait indefinitely (scheduler keeps monitoring until weather improves).
    */
    static
    void setSchedulerWeatherGracePeriod( uint v )
    {
      if (v != self()->mSchedulerWeatherGracePeriod && !self()->isSchedulerWeatherGracePeriodImmutable()) {
        self()->mSchedulerWeatherGracePeriod = v;
        Q_EMIT self()->SchedulerWeatherGracePeriodChanged();
      }
    }

    Q_PROPERTY(uint schedulerWeatherGracePeriod READ schedulerWeatherGracePeriod WRITE setSchedulerWeatherGracePeriod NOTIFY SchedulerWeatherGracePeriodChanged)
    Q_PROPERTY(bool isSchedulerWeatherGracePeriodImmutable READ isSchedulerWeatherGracePeriodImmutable CONSTANT)
    /**
      Get Wait this many minutes for the weather to improve before giving up. Set to 0 to wait indefinitely (scheduler keeps monitoring until weather improves).
    */
    static
    uint schedulerWeatherGracePeriod()
    {
      return self()->mSchedulerWeatherGracePeriod;
    }

    /**
      Is Wait this many minutes for the weather to improve before giving up. Set to 0 to wait indefinitely (scheduler keeps monitoring until weather improves). Immutable
    */
    static
    bool isSchedulerWeatherGracePeriodImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerWeatherGracePeriod" ) );
    }

    /**
      Set Wait this many seconds when detecting weather alert before starting observatory shutdown.
    */
    static
    void setSchedulerWeatherShutdownDelay( uint v )
    {
      if (v != self()->mSchedulerWeatherShutdownDelay && !self()->isSchedulerWeatherShutdownDelayImmutable()) {
        self()->mSchedulerWeatherShutdownDelay = v;
        Q_EMIT self()->SchedulerWeatherShutdownDelayChanged();
      }
    }

    Q_PROPERTY(uint schedulerWeatherShutdownDelay READ schedulerWeatherShutdownDelay WRITE setSchedulerWeatherShutdownDelay NOTIFY SchedulerWeatherShutdownDelayChanged)
    Q_PROPERTY(bool isSchedulerWeatherShutdownDelayImmutable READ isSchedulerWeatherShutdownDelayImmutable CONSTANT)
    /**
      Get Wait this many seconds when detecting weather alert before starting observatory shutdown.
    */
    static
    uint schedulerWeatherShutdownDelay()
    {
      return self()->mSchedulerWeatherShutdownDelay;
    }

    /**
      Is Wait this many seconds when detecting weather alert before starting observatory shutdown. Immutable
    */
    static
    bool isSchedulerWeatherShutdownDelayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerWeatherShutdownDelay" ) );
    }

    /**
      Set Connection string for the INDI Safety Monitor driver. The scheduler uses this to continuously monitor safety conditions and evaluate whether it is safe to operate the observatory.
    */
    static
    void setSchedulerSafetyMonitorConnectionString( const QString & v )
    {
      if (v != self()->mSchedulerSafetyMonitorConnectionString && !self()->isSchedulerSafetyMonitorConnectionStringImmutable()) {
        self()->mSchedulerSafetyMonitorConnectionString = v;
        Q_EMIT self()->SchedulerSafetyMonitorConnectionStringChanged();
      }
    }

    Q_PROPERTY(QString schedulerSafetyMonitorConnectionString READ schedulerSafetyMonitorConnectionString WRITE setSchedulerSafetyMonitorConnectionString NOTIFY SchedulerSafetyMonitorConnectionStringChanged)
    Q_PROPERTY(bool isSchedulerSafetyMonitorConnectionStringImmutable READ isSchedulerSafetyMonitorConnectionStringImmutable CONSTANT)
    /**
      Get Connection string for the INDI Safety Monitor driver. The scheduler uses this to continuously monitor safety conditions and evaluate whether it is safe to operate the observatory.
    */
    static
    QString schedulerSafetyMonitorConnectionString()
    {
      return self()->mSchedulerSafetyMonitorConnectionString;
    }

    /**
      Is Connection string for the INDI Safety Monitor driver. The scheduler uses this to continuously monitor safety conditions and evaluate whether it is safe to operate the observatory. Immutable
    */
    static
    bool isSchedulerSafetyMonitorConnectionStringImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerSafetyMonitorConnectionString" ) );
    }

    /**
      Set Default scheduler checkbox for job twilight constraints.
    */
    static
    void setSchedulerTwilight( bool v )
    {
      if (v != self()->mSchedulerTwilight && !self()->isSchedulerTwilightImmutable()) {
        self()->mSchedulerTwilight = v;
        Q_EMIT self()->SchedulerTwilightChanged();
      }
    }

    Q_PROPERTY(bool schedulerTwilight READ schedulerTwilight WRITE setSchedulerTwilight NOTIFY SchedulerTwilightChanged)
    Q_PROPERTY(bool isSchedulerTwilightImmutable READ isSchedulerTwilightImmutable CONSTANT)
    /**
      Get Default scheduler checkbox for job twilight constraints.
    */
    static
    bool schedulerTwilight()
    {
      return self()->mSchedulerTwilight;
    }

    /**
      Is Default scheduler checkbox for job twilight constraints. Immutable
    */
    static
    bool isSchedulerTwilightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerTwilight" ) );
    }

    /**
      Set Scheduler is complete once all sequences are complete.
    */
    static
    void setSchedulerCompleteSequences( bool v )
    {
      if (v != self()->mSchedulerCompleteSequences && !self()->isSchedulerCompleteSequencesImmutable()) {
        self()->mSchedulerCompleteSequences = v;
        Q_EMIT self()->SchedulerCompleteSequencesChanged();
      }
    }

    Q_PROPERTY(bool schedulerCompleteSequences READ schedulerCompleteSequences WRITE setSchedulerCompleteSequences NOTIFY SchedulerCompleteSequencesChanged)
    Q_PROPERTY(bool isSchedulerCompleteSequencesImmutable READ isSchedulerCompleteSequencesImmutable CONSTANT)
    /**
      Get Scheduler is complete once all sequences are complete.
    */
    static
    bool schedulerCompleteSequences()
    {
      return self()->mSchedulerCompleteSequences;
    }

    /**
      Is Scheduler is complete once all sequences are complete. Immutable
    */
    static
    bool isSchedulerCompleteSequencesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerCompleteSequences" ) );
    }

    /**
      Set Restart all scheduler jobs when all scheduler jobs have completed.
    */
    static
    void setSchedulerRepeatEverything( bool v )
    {
      if (v != self()->mSchedulerRepeatEverything && !self()->isSchedulerRepeatEverythingImmutable()) {
        self()->mSchedulerRepeatEverything = v;
        Q_EMIT self()->SchedulerRepeatEverythingChanged();
      }
    }

    Q_PROPERTY(bool schedulerRepeatEverything READ schedulerRepeatEverything WRITE setSchedulerRepeatEverything NOTIFY SchedulerRepeatEverythingChanged)
    Q_PROPERTY(bool isSchedulerRepeatEverythingImmutable READ isSchedulerRepeatEverythingImmutable CONSTANT)
    /**
      Get Restart all scheduler jobs when all scheduler jobs have completed.
    */
    static
    bool schedulerRepeatEverything()
    {
      return self()->mSchedulerRepeatEverything;
    }

    /**
      Is Restart all scheduler jobs when all scheduler jobs have completed. Immutable
    */
    static
    bool isSchedulerRepeatEverythingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerRepeatEverything" ) );
    }

    /**
      Set Restart sequences as soon as all sequences have been completed.
    */
    static
    void setSchedulerRepeatSequences( bool v )
    {
      if (v != self()->mSchedulerRepeatSequences && !self()->isSchedulerRepeatSequencesImmutable()) {
        self()->mSchedulerRepeatSequences = v;
        Q_EMIT self()->SchedulerRepeatSequencesChanged();
      }
    }

    Q_PROPERTY(bool schedulerRepeatSequences READ schedulerRepeatSequences WRITE setSchedulerRepeatSequences NOTIFY SchedulerRepeatSequencesChanged)
    Q_PROPERTY(bool isSchedulerRepeatSequencesImmutable READ isSchedulerRepeatSequencesImmutable CONSTANT)
    /**
      Get Restart sequences as soon as all sequences have been completed.
    */
    static
    bool schedulerRepeatSequences()
    {
      return self()->mSchedulerRepeatSequences;
    }

    /**
      Is Restart sequences as soon as all sequences have been completed. Immutable
    */
    static
    bool isSchedulerRepeatSequencesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerRepeatSequences" ) );
    }

    /**
      Set Restart sequences until manually terminated.
    */
    static
    void setSchedulerUntilTerminated( bool v )
    {
      if (v != self()->mSchedulerUntilTerminated && !self()->isSchedulerUntilTerminatedImmutable()) {
        self()->mSchedulerUntilTerminated = v;
        Q_EMIT self()->SchedulerUntilTerminatedChanged();
      }
    }

    Q_PROPERTY(bool schedulerUntilTerminated READ schedulerUntilTerminated WRITE setSchedulerUntilTerminated NOTIFY SchedulerUntilTerminatedChanged)
    Q_PROPERTY(bool isSchedulerUntilTerminatedImmutable READ isSchedulerUntilTerminatedImmutable CONSTANT)
    /**
      Get Restart sequences until manually terminated.
    */
    static
    bool schedulerUntilTerminated()
    {
      return self()->mSchedulerUntilTerminated;
    }

    /**
      Is Restart sequences until manually terminated. Immutable
    */
    static
    bool isSchedulerUntilTerminatedImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerUntilTerminated" ) );
    }

    /**
      Set Loop sequences until specific time is up.
    */
    static
    void setSchedulerUntil( bool v )
    {
      if (v != self()->mSchedulerUntil && !self()->isSchedulerUntilImmutable()) {
        self()->mSchedulerUntil = v;
        Q_EMIT self()->SchedulerUntilChanged();
      }
    }

    Q_PROPERTY(bool schedulerUntil READ schedulerUntil WRITE setSchedulerUntil NOTIFY SchedulerUntilChanged)
    Q_PROPERTY(bool isSchedulerUntilImmutable READ isSchedulerUntilImmutable CONSTANT)
    /**
      Get Loop sequences until specific time is up.
    */
    static
    bool schedulerUntil()
    {
      return self()->mSchedulerUntil;
    }

    /**
      Is Loop sequences until specific time is up. Immutable
    */
    static
    bool isSchedulerUntilImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerUntil" ) );
    }

    /**
      Set Time when scheduler should stop repeating sequences.
    */
    static
    void setSchedulerUntilValue( const QString & v )
    {
      if (v != self()->mSchedulerUntilValue && !self()->isSchedulerUntilValueImmutable()) {
        self()->mSchedulerUntilValue = v;
        Q_EMIT self()->SchedulerUntilValueChanged();
      }
    }

    Q_PROPERTY(QString schedulerUntilValue READ schedulerUntilValue WRITE setSchedulerUntilValue NOTIFY SchedulerUntilValueChanged)
    Q_PROPERTY(bool isSchedulerUntilValueImmutable READ isSchedulerUntilValueImmutable CONSTANT)
    /**
      Get Time when scheduler should stop repeating sequences.
    */
    static
    QString schedulerUntilValue()
    {
      return self()->mSchedulerUntilValue;
    }

    /**
      Is Time when scheduler should stop repeating sequences. Immutable
    */
    static
    bool isSchedulerUntilValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerUntilValue" ) );
    }

    /**
      Set Limit how many times the scheduler should execute all sequences.
    */
    static
    void setSchedulerExecutionSequencesLimit( uint v )
    {
      if (v != self()->mSchedulerExecutionSequencesLimit && !self()->isSchedulerExecutionSequencesLimitImmutable()) {
        self()->mSchedulerExecutionSequencesLimit = v;
        Q_EMIT self()->SchedulerExecutionSequencesLimitChanged();
      }
    }

    Q_PROPERTY(uint schedulerExecutionSequencesLimit READ schedulerExecutionSequencesLimit WRITE setSchedulerExecutionSequencesLimit NOTIFY SchedulerExecutionSequencesLimitChanged)
    Q_PROPERTY(bool isSchedulerExecutionSequencesLimitImmutable READ isSchedulerExecutionSequencesLimitImmutable CONSTANT)
    /**
      Get Limit how many times the scheduler should execute all sequences.
    */
    static
    uint schedulerExecutionSequencesLimit()
    {
      return self()->mSchedulerExecutionSequencesLimit;
    }

    /**
      Is Limit how many times the scheduler should execute all sequences. Immutable
    */
    static
    bool isSchedulerExecutionSequencesLimitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SchedulerExecutionSequencesLimit" ) );
    }

    /**
      Set If Analyze is running and Ekos is disconnected then reconnected, a new .analyze file will be created and written to, and the graphs in Analyze will only show the new session.
    */
    static
    void setAnalyzeRestartWithEkos( bool v )
    {
      if (v != self()->mAnalyzeRestartWithEkos && !self()->isAnalyzeRestartWithEkosImmutable()) {
        self()->mAnalyzeRestartWithEkos = v;
        Q_EMIT self()->AnalyzeRestartWithEkosChanged();
      }
    }

    Q_PROPERTY(bool analyzeRestartWithEkos READ analyzeRestartWithEkos WRITE setAnalyzeRestartWithEkos NOTIFY AnalyzeRestartWithEkosChanged)
    Q_PROPERTY(bool isAnalyzeRestartWithEkosImmutable READ isAnalyzeRestartWithEkosImmutable CONSTANT)
    /**
      Get If Analyze is running and Ekos is disconnected then reconnected, a new .analyze file will be created and written to, and the graphs in Analyze will only show the new session.
    */
    static
    bool analyzeRestartWithEkos()
    {
      return self()->mAnalyzeRestartWithEkos;
    }

    /**
      Is If Analyze is running and Ekos is disconnected then reconnected, a new .analyze file will be created and written to, and the graphs in Analyze will only show the new session. Immutable
    */
    static
    bool isAnalyzeRestartWithEkosImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeRestartWithEkos" ) );
    }

    /**
      Set Alternative directory to use for searching for analyze image files.
    */
    static
    void setAnalyzeAlternativeDirectoryName( const QString & v )
    {
      if (v != self()->mAnalyzeAlternativeDirectoryName && !self()->isAnalyzeAlternativeDirectoryNameImmutable()) {
        self()->mAnalyzeAlternativeDirectoryName = v;
        Q_EMIT self()->AnalyzeAlternativeDirectoryNameChanged();
      }
    }

    Q_PROPERTY(QString analyzeAlternativeDirectoryName READ analyzeAlternativeDirectoryName WRITE setAnalyzeAlternativeDirectoryName NOTIFY AnalyzeAlternativeDirectoryNameChanged)
    Q_PROPERTY(bool isAnalyzeAlternativeDirectoryNameImmutable READ isAnalyzeAlternativeDirectoryNameImmutable CONSTANT)
    /**
      Get Alternative directory to use for searching for analyze image files.
    */
    static
    QString analyzeAlternativeDirectoryName()
    {
      return self()->mAnalyzeAlternativeDirectoryName;
    }

    /**
      Is Alternative directory to use for searching for analyze image files. Immutable
    */
    static
    bool isAnalyzeAlternativeDirectoryNameImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeAlternativeDirectoryName" ) );
    }

    /**
      Set AnalyzeHFR
    */
    static
    void setAnalyzeHFR( bool v )
    {
      if (v != self()->mAnalyzeHFR && !self()->isAnalyzeHFRImmutable()) {
        self()->mAnalyzeHFR = v;
        Q_EMIT self()->AnalyzeHFRChanged();
      }
    }

    Q_PROPERTY(bool analyzeHFR READ analyzeHFR WRITE setAnalyzeHFR NOTIFY AnalyzeHFRChanged)
    Q_PROPERTY(bool isAnalyzeHFRImmutable READ isAnalyzeHFRImmutable CONSTANT)
    /**
      Get AnalyzeHFR
    */
    static
    bool analyzeHFR()
    {
      return self()->mAnalyzeHFR;
    }

    /**
      Is AnalyzeHFR Immutable
    */
    static
    bool isAnalyzeHFRImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeHFR" ) );
    }

    /**
      Set AnalyzeNumCaptureStars
    */
    static
    void setAnalyzeNumCaptureStars( bool v )
    {
      if (v != self()->mAnalyzeNumCaptureStars && !self()->isAnalyzeNumCaptureStarsImmutable()) {
        self()->mAnalyzeNumCaptureStars = v;
        Q_EMIT self()->AnalyzeNumCaptureStarsChanged();
      }
    }

    Q_PROPERTY(bool analyzeNumCaptureStars READ analyzeNumCaptureStars WRITE setAnalyzeNumCaptureStars NOTIFY AnalyzeNumCaptureStarsChanged)
    Q_PROPERTY(bool isAnalyzeNumCaptureStarsImmutable READ isAnalyzeNumCaptureStarsImmutable CONSTANT)
    /**
      Get AnalyzeNumCaptureStars
    */
    static
    bool analyzeNumCaptureStars()
    {
      return self()->mAnalyzeNumCaptureStars;
    }

    /**
      Is AnalyzeNumCaptureStars Immutable
    */
    static
    bool isAnalyzeNumCaptureStarsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeNumCaptureStars" ) );
    }

    /**
      Set AnalyzeMedian
    */
    static
    void setAnalyzeMedian( bool v )
    {
      if (v != self()->mAnalyzeMedian && !self()->isAnalyzeMedianImmutable()) {
        self()->mAnalyzeMedian = v;
        Q_EMIT self()->AnalyzeMedianChanged();
      }
    }

    Q_PROPERTY(bool analyzeMedian READ analyzeMedian WRITE setAnalyzeMedian NOTIFY AnalyzeMedianChanged)
    Q_PROPERTY(bool isAnalyzeMedianImmutable READ isAnalyzeMedianImmutable CONSTANT)
    /**
      Get AnalyzeMedian
    */
    static
    bool analyzeMedian()
    {
      return self()->mAnalyzeMedian;
    }

    /**
      Is AnalyzeMedian Immutable
    */
    static
    bool isAnalyzeMedianImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeMedian" ) );
    }

    /**
      Set AnalyzeEccentricity
    */
    static
    void setAnalyzeEccentricity( bool v )
    {
      if (v != self()->mAnalyzeEccentricity && !self()->isAnalyzeEccentricityImmutable()) {
        self()->mAnalyzeEccentricity = v;
        Q_EMIT self()->AnalyzeEccentricityChanged();
      }
    }

    Q_PROPERTY(bool analyzeEccentricity READ analyzeEccentricity WRITE setAnalyzeEccentricity NOTIFY AnalyzeEccentricityChanged)
    Q_PROPERTY(bool isAnalyzeEccentricityImmutable READ isAnalyzeEccentricityImmutable CONSTANT)
    /**
      Get AnalyzeEccentricity
    */
    static
    bool analyzeEccentricity()
    {
      return self()->mAnalyzeEccentricity;
    }

    /**
      Is AnalyzeEccentricity Immutable
    */
    static
    bool isAnalyzeEccentricityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeEccentricity" ) );
    }

    /**
      Set AnalyzeTemperature
    */
    static
    void setAnalyzeTemperature( bool v )
    {
      if (v != self()->mAnalyzeTemperature && !self()->isAnalyzeTemperatureImmutable()) {
        self()->mAnalyzeTemperature = v;
        Q_EMIT self()->AnalyzeTemperatureChanged();
      }
    }

    Q_PROPERTY(bool analyzeTemperature READ analyzeTemperature WRITE setAnalyzeTemperature NOTIFY AnalyzeTemperatureChanged)
    Q_PROPERTY(bool isAnalyzeTemperatureImmutable READ isAnalyzeTemperatureImmutable CONSTANT)
    /**
      Get AnalyzeTemperature
    */
    static
    bool analyzeTemperature()
    {
      return self()->mAnalyzeTemperature;
    }

    /**
      Is AnalyzeTemperature Immutable
    */
    static
    bool isAnalyzeTemperatureImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeTemperature" ) );
    }

    /**
      Set FocusPosition
    */
    static
    void setFocusPosition( bool v )
    {
      if (v != self()->mFocusPosition && !self()->isFocusPositionImmutable()) {
        self()->mFocusPosition = v;
        Q_EMIT self()->FocusPositionChanged();
      }
    }

    Q_PROPERTY(bool focusPosition READ focusPosition WRITE setFocusPosition NOTIFY FocusPositionChanged)
    Q_PROPERTY(bool isFocusPositionImmutable READ isFocusPositionImmutable CONSTANT)
    /**
      Get FocusPosition
    */
    static
    bool focusPosition()
    {
      return self()->mFocusPosition;
    }

    /**
      Is FocusPosition Immutable
    */
    static
    bool isFocusPositionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusPosition" ) );
    }

    /**
      Set AnalyzeNumStars
    */
    static
    void setAnalyzeNumStars( bool v )
    {
      if (v != self()->mAnalyzeNumStars && !self()->isAnalyzeNumStarsImmutable()) {
        self()->mAnalyzeNumStars = v;
        Q_EMIT self()->AnalyzeNumStarsChanged();
      }
    }

    Q_PROPERTY(bool analyzeNumStars READ analyzeNumStars WRITE setAnalyzeNumStars NOTIFY AnalyzeNumStarsChanged)
    Q_PROPERTY(bool isAnalyzeNumStarsImmutable READ isAnalyzeNumStarsImmutable CONSTANT)
    /**
      Get AnalyzeNumStars
    */
    static
    bool analyzeNumStars()
    {
      return self()->mAnalyzeNumStars;
    }

    /**
      Is AnalyzeNumStars Immutable
    */
    static
    bool isAnalyzeNumStarsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeNumStars" ) );
    }

    /**
      Set AnalyzeSkyBg
    */
    static
    void setAnalyzeSkyBg( bool v )
    {
      if (v != self()->mAnalyzeSkyBg && !self()->isAnalyzeSkyBgImmutable()) {
        self()->mAnalyzeSkyBg = v;
        Q_EMIT self()->AnalyzeSkyBgChanged();
      }
    }

    Q_PROPERTY(bool analyzeSkyBg READ analyzeSkyBg WRITE setAnalyzeSkyBg NOTIFY AnalyzeSkyBgChanged)
    Q_PROPERTY(bool isAnalyzeSkyBgImmutable READ isAnalyzeSkyBgImmutable CONSTANT)
    /**
      Get AnalyzeSkyBg
    */
    static
    bool analyzeSkyBg()
    {
      return self()->mAnalyzeSkyBg;
    }

    /**
      Is AnalyzeSkyBg Immutable
    */
    static
    bool isAnalyzeSkyBgImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeSkyBg" ) );
    }

    /**
      Set AnalyzeSNR
    */
    static
    void setAnalyzeSNR( bool v )
    {
      if (v != self()->mAnalyzeSNR && !self()->isAnalyzeSNRImmutable()) {
        self()->mAnalyzeSNR = v;
        Q_EMIT self()->AnalyzeSNRChanged();
      }
    }

    Q_PROPERTY(bool analyzeSNR READ analyzeSNR WRITE setAnalyzeSNR NOTIFY AnalyzeSNRChanged)
    Q_PROPERTY(bool isAnalyzeSNRImmutable READ isAnalyzeSNRImmutable CONSTANT)
    /**
      Get AnalyzeSNR
    */
    static
    bool analyzeSNR()
    {
      return self()->mAnalyzeSNR;
    }

    /**
      Is AnalyzeSNR Immutable
    */
    static
    bool isAnalyzeSNRImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeSNR" ) );
    }

    /**
      Set AnalyzeRA
    */
    static
    void setAnalyzeRA( bool v )
    {
      if (v != self()->mAnalyzeRA && !self()->isAnalyzeRAImmutable()) {
        self()->mAnalyzeRA = v;
        Q_EMIT self()->AnalyzeRAChanged();
      }
    }

    Q_PROPERTY(bool analyzeRA READ analyzeRA WRITE setAnalyzeRA NOTIFY AnalyzeRAChanged)
    Q_PROPERTY(bool isAnalyzeRAImmutable READ isAnalyzeRAImmutable CONSTANT)
    /**
      Get AnalyzeRA
    */
    static
    bool analyzeRA()
    {
      return self()->mAnalyzeRA;
    }

    /**
      Is AnalyzeRA Immutable
    */
    static
    bool isAnalyzeRAImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeRA" ) );
    }

    /**
      Set AnalyzeDEC
    */
    static
    void setAnalyzeDEC( bool v )
    {
      if (v != self()->mAnalyzeDEC && !self()->isAnalyzeDECImmutable()) {
        self()->mAnalyzeDEC = v;
        Q_EMIT self()->AnalyzeDECChanged();
      }
    }

    Q_PROPERTY(bool analyzeDEC READ analyzeDEC WRITE setAnalyzeDEC NOTIFY AnalyzeDECChanged)
    Q_PROPERTY(bool isAnalyzeDECImmutable READ isAnalyzeDECImmutable CONSTANT)
    /**
      Get AnalyzeDEC
    */
    static
    bool analyzeDEC()
    {
      return self()->mAnalyzeDEC;
    }

    /**
      Is AnalyzeDEC Immutable
    */
    static
    bool isAnalyzeDECImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeDEC" ) );
    }

    /**
      Set AnalyzeRAp
    */
    static
    void setAnalyzeRAp( bool v )
    {
      if (v != self()->mAnalyzeRAp && !self()->isAnalyzeRApImmutable()) {
        self()->mAnalyzeRAp = v;
        Q_EMIT self()->AnalyzeRApChanged();
      }
    }

    Q_PROPERTY(bool analyzeRAp READ analyzeRAp WRITE setAnalyzeRAp NOTIFY AnalyzeRApChanged)
    Q_PROPERTY(bool isAnalyzeRApImmutable READ isAnalyzeRApImmutable CONSTANT)
    /**
      Get AnalyzeRAp
    */
    static
    bool analyzeRAp()
    {
      return self()->mAnalyzeRAp;
    }

    /**
      Is AnalyzeRAp Immutable
    */
    static
    bool isAnalyzeRApImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeRAp" ) );
    }

    /**
      Set AnalyzeDECp
    */
    static
    void setAnalyzeDECp( bool v )
    {
      if (v != self()->mAnalyzeDECp && !self()->isAnalyzeDECpImmutable()) {
        self()->mAnalyzeDECp = v;
        Q_EMIT self()->AnalyzeDECpChanged();
      }
    }

    Q_PROPERTY(bool analyzeDECp READ analyzeDECp WRITE setAnalyzeDECp NOTIFY AnalyzeDECpChanged)
    Q_PROPERTY(bool isAnalyzeDECpImmutable READ isAnalyzeDECpImmutable CONSTANT)
    /**
      Get AnalyzeDECp
    */
    static
    bool analyzeDECp()
    {
      return self()->mAnalyzeDECp;
    }

    /**
      Is AnalyzeDECp Immutable
    */
    static
    bool isAnalyzeDECpImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeDECp" ) );
    }

    /**
      Set AnalyzeDrift
    */
    static
    void setAnalyzeDrift( bool v )
    {
      if (v != self()->mAnalyzeDrift && !self()->isAnalyzeDriftImmutable()) {
        self()->mAnalyzeDrift = v;
        Q_EMIT self()->AnalyzeDriftChanged();
      }
    }

    Q_PROPERTY(bool analyzeDrift READ analyzeDrift WRITE setAnalyzeDrift NOTIFY AnalyzeDriftChanged)
    Q_PROPERTY(bool isAnalyzeDriftImmutable READ isAnalyzeDriftImmutable CONSTANT)
    /**
      Get AnalyzeDrift
    */
    static
    bool analyzeDrift()
    {
      return self()->mAnalyzeDrift;
    }

    /**
      Is AnalyzeDrift Immutable
    */
    static
    bool isAnalyzeDriftImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeDrift" ) );
    }

    /**
      Set AnalyzeRMS
    */
    static
    void setAnalyzeRMS( bool v )
    {
      if (v != self()->mAnalyzeRMS && !self()->isAnalyzeRMSImmutable()) {
        self()->mAnalyzeRMS = v;
        Q_EMIT self()->AnalyzeRMSChanged();
      }
    }

    Q_PROPERTY(bool analyzeRMS READ analyzeRMS WRITE setAnalyzeRMS NOTIFY AnalyzeRMSChanged)
    Q_PROPERTY(bool isAnalyzeRMSImmutable READ isAnalyzeRMSImmutable CONSTANT)
    /**
      Get AnalyzeRMS
    */
    static
    bool analyzeRMS()
    {
      return self()->mAnalyzeRMS;
    }

    /**
      Is AnalyzeRMS Immutable
    */
    static
    bool isAnalyzeRMSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeRMS" ) );
    }

    /**
      Set AnalyzeTargetDistance
    */
    static
    void setAnalyzeTargetDistance( bool v )
    {
      if (v != self()->mAnalyzeTargetDistance && !self()->isAnalyzeTargetDistanceImmutable()) {
        self()->mAnalyzeTargetDistance = v;
        Q_EMIT self()->AnalyzeTargetDistanceChanged();
      }
    }

    Q_PROPERTY(bool analyzeTargetDistance READ analyzeTargetDistance WRITE setAnalyzeTargetDistance NOTIFY AnalyzeTargetDistanceChanged)
    Q_PROPERTY(bool isAnalyzeTargetDistanceImmutable READ isAnalyzeTargetDistanceImmutable CONSTANT)
    /**
      Get AnalyzeTargetDistance
    */
    static
    bool analyzeTargetDistance()
    {
      return self()->mAnalyzeTargetDistance;
    }

    /**
      Is AnalyzeTargetDistance Immutable
    */
    static
    bool isAnalyzeTargetDistanceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeTargetDistance" ) );
    }

    /**
      Set AnalyzeRMSC
    */
    static
    void setAnalyzeRMSC( bool v )
    {
      if (v != self()->mAnalyzeRMSC && !self()->isAnalyzeRMSCImmutable()) {
        self()->mAnalyzeRMSC = v;
        Q_EMIT self()->AnalyzeRMSCChanged();
      }
    }

    Q_PROPERTY(bool analyzeRMSC READ analyzeRMSC WRITE setAnalyzeRMSC NOTIFY AnalyzeRMSCChanged)
    Q_PROPERTY(bool isAnalyzeRMSCImmutable READ isAnalyzeRMSCImmutable CONSTANT)
    /**
      Get AnalyzeRMSC
    */
    static
    bool analyzeRMSC()
    {
      return self()->mAnalyzeRMSC;
    }

    /**
      Is AnalyzeRMSC Immutable
    */
    static
    bool isAnalyzeRMSCImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeRMSC" ) );
    }

    /**
      Set AnalyzeMountRA
    */
    static
    void setAnalyzeMountRA( bool v )
    {
      if (v != self()->mAnalyzeMountRA && !self()->isAnalyzeMountRAImmutable()) {
        self()->mAnalyzeMountRA = v;
        Q_EMIT self()->AnalyzeMountRAChanged();
      }
    }

    Q_PROPERTY(bool analyzeMountRA READ analyzeMountRA WRITE setAnalyzeMountRA NOTIFY AnalyzeMountRAChanged)
    Q_PROPERTY(bool isAnalyzeMountRAImmutable READ isAnalyzeMountRAImmutable CONSTANT)
    /**
      Get AnalyzeMountRA
    */
    static
    bool analyzeMountRA()
    {
      return self()->mAnalyzeMountRA;
    }

    /**
      Is AnalyzeMountRA Immutable
    */
    static
    bool isAnalyzeMountRAImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeMountRA" ) );
    }

    /**
      Set AnalyzeMountDEC
    */
    static
    void setAnalyzeMountDEC( bool v )
    {
      if (v != self()->mAnalyzeMountDEC && !self()->isAnalyzeMountDECImmutable()) {
        self()->mAnalyzeMountDEC = v;
        Q_EMIT self()->AnalyzeMountDECChanged();
      }
    }

    Q_PROPERTY(bool analyzeMountDEC READ analyzeMountDEC WRITE setAnalyzeMountDEC NOTIFY AnalyzeMountDECChanged)
    Q_PROPERTY(bool isAnalyzeMountDECImmutable READ isAnalyzeMountDECImmutable CONSTANT)
    /**
      Get AnalyzeMountDEC
    */
    static
    bool analyzeMountDEC()
    {
      return self()->mAnalyzeMountDEC;
    }

    /**
      Is AnalyzeMountDEC Immutable
    */
    static
    bool isAnalyzeMountDECImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeMountDEC" ) );
    }

    /**
      Set AnalyzeMountHA
    */
    static
    void setAnalyzeMountHA( bool v )
    {
      if (v != self()->mAnalyzeMountHA && !self()->isAnalyzeMountHAImmutable()) {
        self()->mAnalyzeMountHA = v;
        Q_EMIT self()->AnalyzeMountHAChanged();
      }
    }

    Q_PROPERTY(bool analyzeMountHA READ analyzeMountHA WRITE setAnalyzeMountHA NOTIFY AnalyzeMountHAChanged)
    Q_PROPERTY(bool isAnalyzeMountHAImmutable READ isAnalyzeMountHAImmutable CONSTANT)
    /**
      Get AnalyzeMountHA
    */
    static
    bool analyzeMountHA()
    {
      return self()->mAnalyzeMountHA;
    }

    /**
      Is AnalyzeMountHA Immutable
    */
    static
    bool isAnalyzeMountHAImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeMountHA" ) );
    }

    /**
      Set AnalyzeAz
    */
    static
    void setAnalyzeAz( bool v )
    {
      if (v != self()->mAnalyzeAz && !self()->isAnalyzeAzImmutable()) {
        self()->mAnalyzeAz = v;
        Q_EMIT self()->AnalyzeAzChanged();
      }
    }

    Q_PROPERTY(bool analyzeAz READ analyzeAz WRITE setAnalyzeAz NOTIFY AnalyzeAzChanged)
    Q_PROPERTY(bool isAnalyzeAzImmutable READ isAnalyzeAzImmutable CONSTANT)
    /**
      Get AnalyzeAz
    */
    static
    bool analyzeAz()
    {
      return self()->mAnalyzeAz;
    }

    /**
      Is AnalyzeAz Immutable
    */
    static
    bool isAnalyzeAzImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeAz" ) );
    }

    /**
      Set AnalyzeAlt
    */
    static
    void setAnalyzeAlt( bool v )
    {
      if (v != self()->mAnalyzeAlt && !self()->isAnalyzeAltImmutable()) {
        self()->mAnalyzeAlt = v;
        Q_EMIT self()->AnalyzeAltChanged();
      }
    }

    Q_PROPERTY(bool analyzeAlt READ analyzeAlt WRITE setAnalyzeAlt NOTIFY AnalyzeAltChanged)
    Q_PROPERTY(bool isAnalyzeAltImmutable READ isAnalyzeAltImmutable CONSTANT)
    /**
      Get AnalyzeAlt
    */
    static
    bool analyzeAlt()
    {
      return self()->mAnalyzeAlt;
    }

    /**
      Is AnalyzeAlt Immutable
    */
    static
    bool isAnalyzeAltImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeAlt" ) );
    }

    /**
      Set AnalyzePierSide
    */
    static
    void setAnalyzePierSide( bool v )
    {
      if (v != self()->mAnalyzePierSide && !self()->isAnalyzePierSideImmutable()) {
        self()->mAnalyzePierSide = v;
        Q_EMIT self()->AnalyzePierSideChanged();
      }
    }

    Q_PROPERTY(bool analyzePierSide READ analyzePierSide WRITE setAnalyzePierSide NOTIFY AnalyzePierSideChanged)
    Q_PROPERTY(bool isAnalyzePierSideImmutable READ isAnalyzePierSideImmutable CONSTANT)
    /**
      Get AnalyzePierSide
    */
    static
    bool analyzePierSide()
    {
      return self()->mAnalyzePierSide;
    }

    /**
      Is AnalyzePierSide Immutable
    */
    static
    bool isAnalyzePierSideImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzePierSide" ) );
    }

    /**
      Set Stored Y-axis upper and lower limits for the Analyze Stats Plot.
    */
    static
    void setAnalyzeStatsYAxis( const QString & v )
    {
      if (v != self()->mAnalyzeStatsYAxis && !self()->isAnalyzeStatsYAxisImmutable()) {
        self()->mAnalyzeStatsYAxis = v;
        Q_EMIT self()->AnalyzeStatsYAxisChanged();
      }
    }

    Q_PROPERTY(QString analyzeStatsYAxis READ analyzeStatsYAxis WRITE setAnalyzeStatsYAxis NOTIFY AnalyzeStatsYAxisChanged)
    Q_PROPERTY(bool isAnalyzeStatsYAxisImmutable READ isAnalyzeStatsYAxisImmutable CONSTANT)
    /**
      Get Stored Y-axis upper and lower limits for the Analyze Stats Plot.
    */
    static
    QString analyzeStatsYAxis()
    {
      return self()->mAnalyzeStatsYAxis;
    }

    /**
      Is Stored Y-axis upper and lower limits for the Analyze Stats Plot. Immutable
    */
    static
    bool isAnalyzeStatsYAxisImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AnalyzeStatsYAxis" ) );
    }

    /**
      Set The address of last used server
    */
    static
    void setLastServer( const QString & v )
    {
      if (v != self()->mLastServer && !self()->isLastServerImmutable()) {
        self()->mLastServer = v;
        Q_EMIT self()->LastServerChanged();
      }
    }

    Q_PROPERTY(QString lastServer READ lastServer WRITE setLastServer NOTIFY LastServerChanged)
    Q_PROPERTY(bool isLastServerImmutable READ isLastServerImmutable CONSTANT)
    /**
      Get The address of last used server
    */
    static
    QString lastServer()
    {
      return self()->mLastServer;
    }

    /**
      Is The address of last used server Immutable
    */
    static
    bool isLastServerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LastServer" ) );
    }

    /**
      Set The port of last used server
    */
    static
    void setLastServerPort( uint v )
    {
      if (v != self()->mLastServerPort && !self()->isLastServerPortImmutable()) {
        self()->mLastServerPort = v;
        Q_EMIT self()->LastServerPortChanged();
      }
    }

    Q_PROPERTY(uint lastServerPort READ lastServerPort WRITE setLastServerPort NOTIFY LastServerPortChanged)
    Q_PROPERTY(bool isLastServerPortImmutable READ isLastServerPortImmutable CONSTANT)
    /**
      Get The port of last used server
    */
    static
    uint lastServerPort()
    {
      return self()->mLastServerPort;
    }

    /**
      Is The port of last used server Immutable
    */
    static
    bool isLastServerPortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LastServerPort" ) );
    }

    /**
      Set The port of last used Web Manager
    */
    static
    void setLastWebManagerPort( uint v )
    {
      if (v != self()->mLastWebManagerPort && !self()->isLastWebManagerPortImmutable()) {
        self()->mLastWebManagerPort = v;
        Q_EMIT self()->LastWebManagerPortChanged();
      }
    }

    Q_PROPERTY(uint lastWebManagerPort READ lastWebManagerPort WRITE setLastWebManagerPort NOTIFY LastWebManagerPortChanged)
    Q_PROPERTY(bool isLastWebManagerPortImmutable READ isLastWebManagerPortImmutable CONSTANT)
    /**
      Get The port of last used Web Manager
    */
    static
    uint lastWebManagerPort()
    {
      return self()->mLastWebManagerPort;
    }

    /**
      Is The port of last used Web Manager Immutable
    */
    static
    bool isLastWebManagerPortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LastWebManagerPort" ) );
    }

    /**
      Set RAM cache size in MB used to store cached HIPS images.
    */
    static
    void setHIPSMemoryCache( uint v )
    {
      if (v != self()->mHIPSMemoryCache && !self()->isHIPSMemoryCacheImmutable()) {
        self()->mHIPSMemoryCache = v;
        Q_EMIT self()->HIPSMemoryCacheChanged();
      }
    }

    Q_PROPERTY(uint hIPSMemoryCache READ hIPSMemoryCache WRITE setHIPSMemoryCache NOTIFY HIPSMemoryCacheChanged)
    Q_PROPERTY(bool isHIPSMemoryCacheImmutable READ isHIPSMemoryCacheImmutable CONSTANT)
    /**
      Get RAM cache size in MB used to store cached HIPS images.
    */
    static
    uint hIPSMemoryCache()
    {
      return self()->mHIPSMemoryCache;
    }

    /**
      Is RAM cache size in MB used to store cached HIPS images. Immutable
    */
    static
    bool isHIPSMemoryCacheImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSMemoryCache" ) );
    }

    /**
      Set Hard disk cache size in MB used to store cached HIPS images.
    */
    static
    void setHIPSNetCache( uint v )
    {
      if (v != self()->mHIPSNetCache && !self()->isHIPSNetCacheImmutable()) {
        self()->mHIPSNetCache = v;
        Q_EMIT self()->HIPSNetCacheChanged();
      }
    }

    Q_PROPERTY(uint hIPSNetCache READ hIPSNetCache WRITE setHIPSNetCache NOTIFY HIPSNetCacheChanged)
    Q_PROPERTY(bool isHIPSNetCacheImmutable READ isHIPSNetCacheImmutable CONSTANT)
    /**
      Get Hard disk cache size in MB used to store cached HIPS images.
    */
    static
    uint hIPSNetCache()
    {
      return self()->mHIPSNetCache;
    }

    /**
      Is Hard disk cache size in MB used to store cached HIPS images. Immutable
    */
    static
    bool isHIPSNetCacheImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSNetCache" ) );
    }

    /**
      Set HIPS source catalog title.
    */
    static
    void setHIPSSource( const QString & v )
    {
      if (v != self()->mHIPSSource && !self()->isHIPSSourceImmutable()) {
        self()->mHIPSSource = v;
        Q_EMIT self()->HIPSSourceChanged();
      }
    }

    Q_PROPERTY(QString hIPSSource READ hIPSSource WRITE setHIPSSource NOTIFY HIPSSourceChanged)
    Q_PROPERTY(bool isHIPSSourceImmutable READ isHIPSSourceImmutable CONSTANT)
    /**
      Get HIPS source catalog title.
    */
    static
    QString hIPSSource()
    {
      return self()->mHIPSSource;
    }

    /**
      Is HIPS source catalog title. Immutable
    */
    static
    bool isHIPSSourceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSSource" ) );
    }

    /**
      Set Use Bilinear interpolation when rendering HiPS images?
    */
    static
    void setHIPSBiLinearInterpolation( bool v )
    {
      if (v != self()->mHIPSBiLinearInterpolation && !self()->isHIPSBiLinearInterpolationImmutable()) {
        self()->mHIPSBiLinearInterpolation = v;
        Q_EMIT self()->HIPSBiLinearInterpolationChanged();
      }
    }

    Q_PROPERTY(bool hIPSBiLinearInterpolation READ hIPSBiLinearInterpolation WRITE setHIPSBiLinearInterpolation NOTIFY HIPSBiLinearInterpolationChanged)
    Q_PROPERTY(bool isHIPSBiLinearInterpolationImmutable READ isHIPSBiLinearInterpolationImmutable CONSTANT)
    /**
      Get Use Bilinear interpolation when rendering HiPS images?
    */
    static
    bool hIPSBiLinearInterpolation()
    {
      return self()->mHIPSBiLinearInterpolation;
    }

    /**
      Is Use Bilinear interpolation when rendering HiPS images? Immutable
    */
    static
    bool isHIPSBiLinearInterpolationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSBiLinearInterpolation" ) );
    }

    /**
      Set Show HiPS grid on the sky map.
    */
    static
    void setHIPSShowGrid( bool v )
    {
      if (v != self()->mHIPSShowGrid && !self()->isHIPSShowGridImmutable()) {
        self()->mHIPSShowGrid = v;
        Q_EMIT self()->HIPSShowGridChanged();
      }
    }

    Q_PROPERTY(bool hIPSShowGrid READ hIPSShowGrid WRITE setHIPSShowGrid NOTIFY HIPSShowGridChanged)
    Q_PROPERTY(bool isHIPSShowGridImmutable READ isHIPSShowGridImmutable CONSTANT)
    /**
      Get Show HiPS grid on the sky map.
    */
    static
    bool hIPSShowGrid()
    {
      return self()->mHIPSShowGrid;
    }

    /**
      Is Show HiPS grid on the sky map. Immutable
    */
    static
    bool isHIPSShowGridImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSShowGrid" ) );
    }

    /**
      Set Redraw HiPS while panning.
    */
    static
    void setHIPSPanning( bool v )
    {
      if (v != self()->mHIPSPanning && !self()->isHIPSPanningImmutable()) {
        self()->mHIPSPanning = v;
        Q_EMIT self()->HIPSPanningChanged();
      }
    }

    Q_PROPERTY(bool hIPSPanning READ hIPSPanning WRITE setHIPSPanning NOTIFY HIPSPanningChanged)
    Q_PROPERTY(bool isHIPSPanningImmutable READ isHIPSPanningImmutable CONSTANT)
    /**
      Get Redraw HiPS while panning.
    */
    static
    bool hIPSPanning()
    {
      return self()->mHIPSPanning;
    }

    /**
      Is Redraw HiPS while panning. Immutable
    */
    static
    bool isHIPSPanningImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSPanning" ) );
    }

    /**
      Set Draw HiPS sources in the sky map?
    */
    static
    void setShowHIPS( bool v )
    {
      if (v != self()->mShowHIPS && !self()->isShowHIPSImmutable()) {
        self()->mShowHIPS = v;
        Q_EMIT self()->ShowHIPSChanged();
      }
    }

    Q_PROPERTY(bool showHIPS READ showHIPS WRITE setShowHIPS NOTIFY ShowHIPSChanged)
    Q_PROPERTY(bool isShowHIPSImmutable READ isShowHIPSImmutable CONSTANT)
    /**
      Get Draw HiPS sources in the sky map?
    */
    static
    bool showHIPS()
    {
      return self()->mShowHIPS;
    }

    /**
      Is Draw HiPS sources in the sky map? Immutable
    */
    static
    bool isShowHIPSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowHIPS" ) );
    }

    /**
      Set Use offline storage to load HiPS?
    */
    static
    void setHIPSUseOfflineSource( bool v )
    {
      if (v != self()->mHIPSUseOfflineSource && !self()->isHIPSUseOfflineSourceImmutable()) {
        self()->mHIPSUseOfflineSource = v;
        Q_EMIT self()->HIPSUseOfflineSourceChanged();
      }
    }

    Q_PROPERTY(bool hIPSUseOfflineSource READ hIPSUseOfflineSource WRITE setHIPSUseOfflineSource NOTIFY HIPSUseOfflineSourceChanged)
    Q_PROPERTY(bool isHIPSUseOfflineSourceImmutable READ isHIPSUseOfflineSourceImmutable CONSTANT)
    /**
      Get Use offline storage to load HiPS?
    */
    static
    bool hIPSUseOfflineSource()
    {
      return self()->mHIPSUseOfflineSource;
    }

    /**
      Is Use offline storage to load HiPS? Immutable
    */
    static
    bool isHIPSUseOfflineSourceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSUseOfflineSource" ) );
    }

    /**
      Set HIPS offline full path.
    */
    static
    void setHIPSOfflinePath( const QString & v )
    {
      if (v != self()->mHIPSOfflinePath && !self()->isHIPSOfflinePathImmutable()) {
        self()->mHIPSOfflinePath = v;
        Q_EMIT self()->HIPSOfflinePathChanged();
      }
    }

    Q_PROPERTY(QString hIPSOfflinePath READ hIPSOfflinePath WRITE setHIPSOfflinePath NOTIFY HIPSOfflinePathChanged)
    Q_PROPERTY(bool isHIPSOfflinePathImmutable READ isHIPSOfflinePathImmutable CONSTANT)
    /**
      Get HIPS offline full path.
    */
    static
    QString hIPSOfflinePath()
    {
      return self()->mHIPSOfflinePath;
    }

    /**
      Is HIPS offline full path. Immutable
    */
    static
    bool isHIPSOfflinePathImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HIPSOfflinePath" ) );
    }

    /**
      Set Terrain Filename.
    */
    static
    void setTerrainSource( const QString & v )
    {
      if (v != self()->mTerrainSource && !self()->isTerrainSourceImmutable()) {
        self()->mTerrainSource = v;
        Q_EMIT self()->TerrainSourceChanged();
      }
    }

    Q_PROPERTY(QString terrainSource READ terrainSource WRITE setTerrainSource NOTIFY TerrainSourceChanged)
    Q_PROPERTY(bool isTerrainSourceImmutable READ isTerrainSourceImmutable CONSTANT)
    /**
      Get Terrain Filename.
    */
    static
    QString terrainSource()
    {
      return self()->mTerrainSource;
    }

    /**
      Is Terrain Filename. Immutable
    */
    static
    bool isTerrainSourceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerrainSource" ) );
    }

    /**
      Set Terrain Azimuth Correction.
    */
    static
    void setTerrainSourceCorrectAz( int v )
    {
      if (v != self()->mTerrainSourceCorrectAz && !self()->isTerrainSourceCorrectAzImmutable()) {
        self()->mTerrainSourceCorrectAz = v;
        Q_EMIT self()->TerrainSourceCorrectAzChanged();
      }
    }

    Q_PROPERTY(int terrainSourceCorrectAz READ terrainSourceCorrectAz WRITE setTerrainSourceCorrectAz NOTIFY TerrainSourceCorrectAzChanged)
    Q_PROPERTY(bool isTerrainSourceCorrectAzImmutable READ isTerrainSourceCorrectAzImmutable CONSTANT)
    /**
      Get Terrain Azimuth Correction.
    */
    static
    int terrainSourceCorrectAz()
    {
      return self()->mTerrainSourceCorrectAz;
    }

    /**
      Is Terrain Azimuth Correction. Immutable
    */
    static
    bool isTerrainSourceCorrectAzImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerrainSourceCorrectAz" ) );
    }

    /**
      Set Terrain Altitude Correction.
    */
    static
    void setTerrainSourceCorrectAlt( int v )
    {
      if (v != self()->mTerrainSourceCorrectAlt && !self()->isTerrainSourceCorrectAltImmutable()) {
        self()->mTerrainSourceCorrectAlt = v;
        Q_EMIT self()->TerrainSourceCorrectAltChanged();
      }
    }

    Q_PROPERTY(int terrainSourceCorrectAlt READ terrainSourceCorrectAlt WRITE setTerrainSourceCorrectAlt NOTIFY TerrainSourceCorrectAltChanged)
    Q_PROPERTY(bool isTerrainSourceCorrectAltImmutable READ isTerrainSourceCorrectAltImmutable CONSTANT)
    /**
      Get Terrain Altitude Correction.
    */
    static
    int terrainSourceCorrectAlt()
    {
      return self()->mTerrainSourceCorrectAlt;
    }

    /**
      Is Terrain Altitude Correction. Immutable
    */
    static
    bool isTerrainSourceCorrectAltImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerrainSourceCorrectAlt" ) );
    }

    /**
      Set Terrain Downsampling
    */
    static
    void setTerrainDownsampling( int v )
    {
      if (v != self()->mTerrainDownsampling && !self()->isTerrainDownsamplingImmutable()) {
        self()->mTerrainDownsampling = v;
        Q_EMIT self()->TerrainDownsamplingChanged();
      }
    }

    Q_PROPERTY(int terrainDownsampling READ terrainDownsampling WRITE setTerrainDownsampling NOTIFY TerrainDownsamplingChanged)
    Q_PROPERTY(bool isTerrainDownsamplingImmutable READ isTerrainDownsamplingImmutable CONSTANT)
    /**
      Get Terrain Downsampling
    */
    static
    int terrainDownsampling()
    {
      return self()->mTerrainDownsampling;
    }

    /**
      Is Terrain Downsampling Immutable
    */
    static
    bool isTerrainDownsamplingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerrainDownsampling" ) );
    }

    /**
      Set Terrain While panning.
    */
    static
    void setTerrainPanning( bool v )
    {
      if (v != self()->mTerrainPanning && !self()->isTerrainPanningImmutable()) {
        self()->mTerrainPanning = v;
        Q_EMIT self()->TerrainPanningChanged();
      }
    }

    Q_PROPERTY(bool terrainPanning READ terrainPanning WRITE setTerrainPanning NOTIFY TerrainPanningChanged)
    Q_PROPERTY(bool isTerrainPanningImmutable READ isTerrainPanningImmutable CONSTANT)
    /**
      Get Terrain While panning.
    */
    static
    bool terrainPanning()
    {
      return self()->mTerrainPanning;
    }

    /**
      Is Terrain While panning. Immutable
    */
    static
    bool isTerrainPanningImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerrainPanning" ) );
    }

    /**
      Set Draw terrain
    */
    static
    void setShowTerrain( bool v )
    {
      if (v != self()->mShowTerrain && !self()->isShowTerrainImmutable()) {
        self()->mShowTerrain = v;
        Q_EMIT self()->ShowTerrainChanged();
      }
    }

    Q_PROPERTY(bool showTerrain READ showTerrain WRITE setShowTerrain NOTIFY ShowTerrainChanged)
    Q_PROPERTY(bool isShowTerrainImmutable READ isShowTerrainImmutable CONSTANT)
    /**
      Get Draw terrain
    */
    static
    bool showTerrain()
    {
      return self()->mShowTerrain;
    }

    /**
      Is Draw terrain Immutable
    */
    static
    bool isShowTerrainImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowTerrain" ) );
    }

    /**
      Set Terrain Skip Speedup
    */
    static
    void setTerrainSkipSpeedup( bool v )
    {
      if (v != self()->mTerrainSkipSpeedup && !self()->isTerrainSkipSpeedupImmutable()) {
        self()->mTerrainSkipSpeedup = v;
        Q_EMIT self()->TerrainSkipSpeedupChanged();
      }
    }

    Q_PROPERTY(bool terrainSkipSpeedup READ terrainSkipSpeedup WRITE setTerrainSkipSpeedup NOTIFY TerrainSkipSpeedupChanged)
    Q_PROPERTY(bool isTerrainSkipSpeedupImmutable READ isTerrainSkipSpeedupImmutable CONSTANT)
    /**
      Get Terrain Skip Speedup
    */
    static
    bool terrainSkipSpeedup()
    {
      return self()->mTerrainSkipSpeedup;
    }

    /**
      Is Terrain Skip Speedup Immutable
    */
    static
    bool isTerrainSkipSpeedupImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerrainSkipSpeedup" ) );
    }

    /**
      Set Terrain Transparency Speedup.
    */
    static
    void setTerrainTransparencySpeedup( bool v )
    {
      if (v != self()->mTerrainTransparencySpeedup && !self()->isTerrainTransparencySpeedupImmutable()) {
        self()->mTerrainTransparencySpeedup = v;
        Q_EMIT self()->TerrainTransparencySpeedupChanged();
      }
    }

    Q_PROPERTY(bool terrainTransparencySpeedup READ terrainTransparencySpeedup WRITE setTerrainTransparencySpeedup NOTIFY TerrainTransparencySpeedupChanged)
    Q_PROPERTY(bool isTerrainTransparencySpeedupImmutable READ isTerrainTransparencySpeedupImmutable CONSTANT)
    /**
      Get Terrain Transparency Speedup.
    */
    static
    bool terrainTransparencySpeedup()
    {
      return self()->mTerrainTransparencySpeedup;
    }

    /**
      Is Terrain Transparency Speedup. Immutable
    */
    static
    bool isTerrainTransparencySpeedupImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerrainTransparencySpeedup" ) );
    }

    /**
      Set Terrain Smooth Pixels.
    */
    static
    void setTerrainSmoothPixels( bool v )
    {
      if (v != self()->mTerrainSmoothPixels && !self()->isTerrainSmoothPixelsImmutable()) {
        self()->mTerrainSmoothPixels = v;
        Q_EMIT self()->TerrainSmoothPixelsChanged();
      }
    }

    Q_PROPERTY(bool terrainSmoothPixels READ terrainSmoothPixels WRITE setTerrainSmoothPixels NOTIFY TerrainSmoothPixelsChanged)
    Q_PROPERTY(bool isTerrainSmoothPixelsImmutable READ isTerrainSmoothPixelsImmutable CONSTANT)
    /**
      Get Terrain Smooth Pixels.
    */
    static
    bool terrainSmoothPixels()
    {
      return self()->mTerrainSmoothPixels;
    }

    /**
      Is Terrain Smooth Pixels. Immutable
    */
    static
    bool isTerrainSmoothPixelsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerrainSmoothPixels" ) );
    }

    /**
      Set Display Image Overlays.
    */
    static
    void setShowImageOverlays( bool v )
    {
      if (v != self()->mShowImageOverlays && !self()->isShowImageOverlaysImmutable()) {
        self()->mShowImageOverlays = v;
        Q_EMIT self()->ShowImageOverlaysChanged();
      }
    }

    Q_PROPERTY(bool showImageOverlays READ showImageOverlays WRITE setShowImageOverlays NOTIFY ShowImageOverlaysChanged)
    Q_PROPERTY(bool isShowImageOverlaysImmutable READ isShowImageOverlaysImmutable CONSTANT)
    /**
      Get Display Image Overlays.
    */
    static
    bool showImageOverlays()
    {
      return self()->mShowImageOverlays;
    }

    /**
      Is Display Image Overlays. Immutable
    */
    static
    bool isShowImageOverlaysImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowImageOverlays" ) );
    }

    /**
      Set Display Image Overlays below catalogs.
    */
    static
    void setShowImageOverlaysBelowCatalogs( bool v )
    {
      if (v != self()->mShowImageOverlaysBelowCatalogs && !self()->isShowImageOverlaysBelowCatalogsImmutable()) {
        self()->mShowImageOverlaysBelowCatalogs = v;
        Q_EMIT self()->ShowImageOverlaysBelowCatalogsChanged();
      }
    }

    Q_PROPERTY(bool showImageOverlaysBelowCatalogs READ showImageOverlaysBelowCatalogs WRITE setShowImageOverlaysBelowCatalogs NOTIFY ShowImageOverlaysBelowCatalogsChanged)
    Q_PROPERTY(bool isShowImageOverlaysBelowCatalogsImmutable READ isShowImageOverlaysBelowCatalogsImmutable CONSTANT)
    /**
      Get Display Image Overlays below catalogs.
    */
    static
    bool showImageOverlaysBelowCatalogs()
    {
      return self()->mShowImageOverlaysBelowCatalogs;
    }

    /**
      Is Display Image Overlays below catalogs. Immutable
    */
    static
    bool isShowImageOverlaysBelowCatalogsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowImageOverlaysBelowCatalogs" ) );
    }

    /**
      Set Center SkyMap over selected image overlay.
    */
    static
    void setShowSelectedImageOverlay( bool v )
    {
      if (v != self()->mShowSelectedImageOverlay && !self()->isShowSelectedImageOverlayImmutable()) {
        self()->mShowSelectedImageOverlay = v;
        Q_EMIT self()->ShowSelectedImageOverlayChanged();
      }
    }

    Q_PROPERTY(bool showSelectedImageOverlay READ showSelectedImageOverlay WRITE setShowSelectedImageOverlay NOTIFY ShowSelectedImageOverlayChanged)
    Q_PROPERTY(bool isShowSelectedImageOverlayImmutable READ isShowSelectedImageOverlayImmutable CONSTANT)
    /**
      Get Center SkyMap over selected image overlay.
    */
    static
    bool showSelectedImageOverlay()
    {
      return self()->mShowSelectedImageOverlay;
    }

    /**
      Is Center SkyMap over selected image overlay. Immutable
    */
    static
    bool isShowSelectedImageOverlayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSelectedImageOverlay" ) );
    }

    /**
      Set Image overlay max dimension
    */
    static
    void setImageOverlayMaxDimension( int v )
    {
      if (v != self()->mImageOverlayMaxDimension && !self()->isImageOverlayMaxDimensionImmutable()) {
        self()->mImageOverlayMaxDimension = v;
        Q_EMIT self()->ImageOverlayMaxDimensionChanged();
      }
    }

    Q_PROPERTY(int imageOverlayMaxDimension READ imageOverlayMaxDimension WRITE setImageOverlayMaxDimension NOTIFY ImageOverlayMaxDimensionChanged)
    Q_PROPERTY(bool isImageOverlayMaxDimensionImmutable READ isImageOverlayMaxDimensionImmutable CONSTANT)
    /**
      Get Image overlay max dimension
    */
    static
    int imageOverlayMaxDimension()
    {
      return self()->mImageOverlayMaxDimension;
    }

    /**
      Is Image overlay max dimension Immutable
    */
    static
    bool isImageOverlayMaxDimensionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImageOverlayMaxDimension" ) );
    }

    /**
      Set Image overlay plate-solving timeout.
    */
    static
    void setImageOverlayTimeout( int v )
    {
      if (v != self()->mImageOverlayTimeout && !self()->isImageOverlayTimeoutImmutable()) {
        self()->mImageOverlayTimeout = v;
        Q_EMIT self()->ImageOverlayTimeoutChanged();
      }
    }

    Q_PROPERTY(int imageOverlayTimeout READ imageOverlayTimeout WRITE setImageOverlayTimeout NOTIFY ImageOverlayTimeoutChanged)
    Q_PROPERTY(bool isImageOverlayTimeoutImmutable READ isImageOverlayTimeoutImmutable CONSTANT)
    /**
      Get Image overlay plate-solving timeout.
    */
    static
    int imageOverlayTimeout()
    {
      return self()->mImageOverlayTimeout;
    }

    /**
      Is Image overlay plate-solving timeout. Immutable
    */
    static
    bool isImageOverlayTimeoutImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImageOverlayTimeout" ) );
    }

    /**
      Set Image overlay default plate-solving scale.
    */
    static
    void setImageOverlayDefaultScale( double v )
    {
      if (v != self()->mImageOverlayDefaultScale && !self()->isImageOverlayDefaultScaleImmutable()) {
        self()->mImageOverlayDefaultScale = v;
        Q_EMIT self()->ImageOverlayDefaultScaleChanged();
      }
    }

    Q_PROPERTY(double imageOverlayDefaultScale READ imageOverlayDefaultScale WRITE setImageOverlayDefaultScale NOTIFY ImageOverlayDefaultScaleChanged)
    Q_PROPERTY(bool isImageOverlayDefaultScaleImmutable READ isImageOverlayDefaultScaleImmutable CONSTANT)
    /**
      Get Image overlay default plate-solving scale.
    */
    static
    double imageOverlayDefaultScale()
    {
      return self()->mImageOverlayDefaultScale;
    }

    /**
      Is Image overlay default plate-solving scale. Immutable
    */
    static
    bool isImageOverlayDefaultScaleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ImageOverlayDefaultScale" ) );
    }

    /**
      Set Default observatory module weather source.
    */
    static
    void setDefaultObservatoryWeatherSource( const QString & v )
    {
      if (v != self()->mDefaultObservatoryWeatherSource && !self()->isDefaultObservatoryWeatherSourceImmutable()) {
        self()->mDefaultObservatoryWeatherSource = v;
        Q_EMIT self()->DefaultObservatoryWeatherSourceChanged();
      }
    }

    Q_PROPERTY(QString defaultObservatoryWeatherSource READ defaultObservatoryWeatherSource WRITE setDefaultObservatoryWeatherSource NOTIFY DefaultObservatoryWeatherSourceChanged)
    Q_PROPERTY(bool isDefaultObservatoryWeatherSourceImmutable READ isDefaultObservatoryWeatherSourceImmutable CONSTANT)
    /**
      Get Default observatory module weather source.
    */
    static
    QString defaultObservatoryWeatherSource()
    {
      return self()->mDefaultObservatoryWeatherSource;
    }

    /**
      Is Default observatory module weather source. Immutable
    */
    static
    bool isDefaultObservatoryWeatherSourceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DefaultObservatoryWeatherSource" ) );
    }

    /**
      Set Will be reacted upon warnings?
    */
    static
    void setWarningActionsActive( bool v )
    {
      if (v != self()->mWarningActionsActive && !self()->isWarningActionsActiveImmutable()) {
        self()->mWarningActionsActive = v;
        Q_EMIT self()->warningActionsActiveChanged();
      }
    }

    Q_PROPERTY(bool warningActionsActive READ warningActionsActive WRITE setWarningActionsActive NOTIFY warningActionsActiveChanged)
    Q_PROPERTY(bool isWarningActionsActiveImmutable READ isWarningActionsActiveImmutable CONSTANT)
    /**
      Get Will be reacted upon warnings?
    */
    static
    bool warningActionsActive()
    {
      return self()->mWarningActionsActive;
    }

    /**
      Is Will be reacted upon warnings? Immutable
    */
    static
    bool isWarningActionsActiveImmutable()
    {
      return self()->isImmutable( QStringLiteral( "warningActionsActive" ) );
    }

    /**
      Set Will be reacted upon alerts?
    */
    static
    void setAlertActionsActive( bool v )
    {
      if (v != self()->mAlertActionsActive && !self()->isAlertActionsActiveImmutable()) {
        self()->mAlertActionsActive = v;
        Q_EMIT self()->alertActionsActiveChanged();
      }
    }

    Q_PROPERTY(bool alertActionsActive READ alertActionsActive WRITE setAlertActionsActive NOTIFY alertActionsActiveChanged)
    Q_PROPERTY(bool isAlertActionsActiveImmutable READ isAlertActionsActiveImmutable CONSTANT)
    /**
      Get Will be reacted upon alerts?
    */
    static
    bool alertActionsActive()
    {
      return self()->mAlertActionsActive;
    }

    /**
      Is Will be reacted upon alerts? Immutable
    */
    static
    bool isAlertActionsActiveImmutable()
    {
      return self()->isImmutable( QStringLiteral( "alertActionsActive" ) );
    }

    /**
      Set Shall the dome being closed when a weather warning occurs?
    */
    static
    void setWeatherWarningCloseDome( bool v )
    {
      if (v != self()->mWeatherWarningCloseDome && !self()->isWeatherWarningCloseDomeImmutable()) {
        self()->mWeatherWarningCloseDome = v;
        Q_EMIT self()->weatherWarningCloseDomeChanged();
      }
    }

    Q_PROPERTY(bool weatherWarningCloseDome READ weatherWarningCloseDome WRITE setWeatherWarningCloseDome NOTIFY weatherWarningCloseDomeChanged)
    Q_PROPERTY(bool isWeatherWarningCloseDomeImmutable READ isWeatherWarningCloseDomeImmutable CONSTANT)
    /**
      Get Shall the dome being closed when a weather warning occurs?
    */
    static
    bool weatherWarningCloseDome()
    {
      return self()->mWeatherWarningCloseDome;
    }

    /**
      Is Shall the dome being closed when a weather warning occurs? Immutable
    */
    static
    bool isWeatherWarningCloseDomeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "weatherWarningCloseDome" ) );
    }

    /**
      Set Shall the shutter being closed when a weather warning occurs?
    */
    static
    void setWeatherWarningCloseShutter( bool v )
    {
      if (v != self()->mWeatherWarningCloseShutter && !self()->isWeatherWarningCloseShutterImmutable()) {
        self()->mWeatherWarningCloseShutter = v;
        Q_EMIT self()->weatherWarningCloseShutterChanged();
      }
    }

    Q_PROPERTY(bool weatherWarningCloseShutter READ weatherWarningCloseShutter WRITE setWeatherWarningCloseShutter NOTIFY weatherWarningCloseShutterChanged)
    Q_PROPERTY(bool isWeatherWarningCloseShutterImmutable READ isWeatherWarningCloseShutterImmutable CONSTANT)
    /**
      Get Shall the shutter being closed when a weather warning occurs?
    */
    static
    bool weatherWarningCloseShutter()
    {
      return self()->mWeatherWarningCloseShutter;
    }

    /**
      Is Shall the shutter being closed when a weather warning occurs? Immutable
    */
    static
    bool isWeatherWarningCloseShutterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "weatherWarningCloseShutter" ) );
    }

    /**
      Set Shall the shutter being closed when a weather alert occurs?
    */
    static
    void setWeatherWarningStopScheduler( bool v )
    {
      if (v != self()->mWeatherWarningStopScheduler && !self()->isWeatherWarningStopSchedulerImmutable()) {
        self()->mWeatherWarningStopScheduler = v;
        Q_EMIT self()->weatherWarningStopSchedulerChanged();
      }
    }

    Q_PROPERTY(bool weatherWarningStopScheduler READ weatherWarningStopScheduler WRITE setWeatherWarningStopScheduler NOTIFY weatherWarningStopSchedulerChanged)
    Q_PROPERTY(bool isWeatherWarningStopSchedulerImmutable READ isWeatherWarningStopSchedulerImmutable CONSTANT)
    /**
      Get Shall the shutter being closed when a weather alert occurs?
    */
    static
    bool weatherWarningStopScheduler()
    {
      return self()->mWeatherWarningStopScheduler;
    }

    /**
      Is Shall the shutter being closed when a weather alert occurs? Immutable
    */
    static
    bool isWeatherWarningStopSchedulerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "weatherWarningStopScheduler" ) );
    }

    /**
      Set Delay for reacting upon a weather warning.
    */
    static
    void setWeatherWarningDelay( uint v )
    {
      if (v != self()->mWeatherWarningDelay && !self()->isWeatherWarningDelayImmutable()) {
        self()->mWeatherWarningDelay = v;
        Q_EMIT self()->weatherWarningDelayChanged();
      }
    }

    Q_PROPERTY(uint weatherWarningDelay READ weatherWarningDelay WRITE setWeatherWarningDelay NOTIFY weatherWarningDelayChanged)
    Q_PROPERTY(bool isWeatherWarningDelayImmutable READ isWeatherWarningDelayImmutable CONSTANT)
    /**
      Get Delay for reacting upon a weather warning.
    */
    static
    uint weatherWarningDelay()
    {
      return self()->mWeatherWarningDelay;
    }

    /**
      Is Delay for reacting upon a weather warning. Immutable
    */
    static
    bool isWeatherWarningDelayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "weatherWarningDelay" ) );
    }

    /**
      Set Shall the dome being closed when a weather alert occurs?
    */
    static
    void setWeatherAlertCloseDome( bool v )
    {
      if (v != self()->mWeatherAlertCloseDome && !self()->isWeatherAlertCloseDomeImmutable()) {
        self()->mWeatherAlertCloseDome = v;
        Q_EMIT self()->weatherAlertCloseDomeChanged();
      }
    }

    Q_PROPERTY(bool weatherAlertCloseDome READ weatherAlertCloseDome WRITE setWeatherAlertCloseDome NOTIFY weatherAlertCloseDomeChanged)
    Q_PROPERTY(bool isWeatherAlertCloseDomeImmutable READ isWeatherAlertCloseDomeImmutable CONSTANT)
    /**
      Get Shall the dome being closed when a weather alert occurs?
    */
    static
    bool weatherAlertCloseDome()
    {
      return self()->mWeatherAlertCloseDome;
    }

    /**
      Is Shall the dome being closed when a weather alert occurs? Immutable
    */
    static
    bool isWeatherAlertCloseDomeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "weatherAlertCloseDome" ) );
    }

    /**
      Set Shall the shutter being closed when a weather alert occurs?
    */
    static
    void setWeatherAlertCloseShutter( bool v )
    {
      if (v != self()->mWeatherAlertCloseShutter && !self()->isWeatherAlertCloseShutterImmutable()) {
        self()->mWeatherAlertCloseShutter = v;
        Q_EMIT self()->weatherAlertCloseShutterChanged();
      }
    }

    Q_PROPERTY(bool weatherAlertCloseShutter READ weatherAlertCloseShutter WRITE setWeatherAlertCloseShutter NOTIFY weatherAlertCloseShutterChanged)
    Q_PROPERTY(bool isWeatherAlertCloseShutterImmutable READ isWeatherAlertCloseShutterImmutable CONSTANT)
    /**
      Get Shall the shutter being closed when a weather alert occurs?
    */
    static
    bool weatherAlertCloseShutter()
    {
      return self()->mWeatherAlertCloseShutter;
    }

    /**
      Is Shall the shutter being closed when a weather alert occurs? Immutable
    */
    static
    bool isWeatherAlertCloseShutterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "weatherAlertCloseShutter" ) );
    }

    /**
      Set Shall the shutter being closed when a weather alert occurs?
    */
    static
    void setWeatherAlertStopScheduler( bool v )
    {
      if (v != self()->mWeatherAlertStopScheduler && !self()->isWeatherAlertStopSchedulerImmutable()) {
        self()->mWeatherAlertStopScheduler = v;
        Q_EMIT self()->weatherAlertStopSchedulerChanged();
      }
    }

    Q_PROPERTY(bool weatherAlertStopScheduler READ weatherAlertStopScheduler WRITE setWeatherAlertStopScheduler NOTIFY weatherAlertStopSchedulerChanged)
    Q_PROPERTY(bool isWeatherAlertStopSchedulerImmutable READ isWeatherAlertStopSchedulerImmutable CONSTANT)
    /**
      Get Shall the shutter being closed when a weather alert occurs?
    */
    static
    bool weatherAlertStopScheduler()
    {
      return self()->mWeatherAlertStopScheduler;
    }

    /**
      Is Shall the shutter being closed when a weather alert occurs? Immutable
    */
    static
    bool isWeatherAlertStopSchedulerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "weatherAlertStopScheduler" ) );
    }

    /**
      Set Delay for reacting upon a weather alert.
    */
    static
    void setWeatherAlertDelay( uint v )
    {
      if (v != self()->mWeatherAlertDelay && !self()->isWeatherAlertDelayImmutable()) {
        self()->mWeatherAlertDelay = v;
        Q_EMIT self()->weatherAlertDelayChanged();
      }
    }

    Q_PROPERTY(uint weatherAlertDelay READ weatherAlertDelay WRITE setWeatherAlertDelay NOTIFY weatherAlertDelayChanged)
    Q_PROPERTY(bool isWeatherAlertDelayImmutable READ isWeatherAlertDelayImmutable CONSTANT)
    /**
      Get Delay for reacting upon a weather alert.
    */
    static
    uint weatherAlertDelay()
    {
      return self()->mWeatherAlertDelay;
    }

    /**
      Is Delay for reacting upon a weather alert. Immutable
    */
    static
    bool isWeatherAlertDelayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "weatherAlertDelay" ) );
    }

    /**
      Set Dome status relevant for the Observatory status.
    */
    static
    void setObservatoryStatusUseDome( bool v )
    {
      if (v != self()->mObservatoryStatusUseDome && !self()->isObservatoryStatusUseDomeImmutable()) {
        self()->mObservatoryStatusUseDome = v;
        Q_EMIT self()->observatoryStatusUseDomeChanged();
      }
    }

    Q_PROPERTY(bool observatoryStatusUseDome READ observatoryStatusUseDome WRITE setObservatoryStatusUseDome NOTIFY observatoryStatusUseDomeChanged)
    Q_PROPERTY(bool isObservatoryStatusUseDomeImmutable READ isObservatoryStatusUseDomeImmutable CONSTANT)
    /**
      Get Dome status relevant for the Observatory status.
    */
    static
    bool observatoryStatusUseDome()
    {
      return self()->mObservatoryStatusUseDome;
    }

    /**
      Is Dome status relevant for the Observatory status. Immutable
    */
    static
    bool isObservatoryStatusUseDomeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "observatoryStatusUseDome" ) );
    }

    /**
      Set Shutter status relevant for the Observatory status.
    */
    static
    void setObservatoryStatusUseShutter( bool v )
    {
      if (v != self()->mObservatoryStatusUseShutter && !self()->isObservatoryStatusUseShutterImmutable()) {
        self()->mObservatoryStatusUseShutter = v;
        Q_EMIT self()->observatoryStatusUseShutterChanged();
      }
    }

    Q_PROPERTY(bool observatoryStatusUseShutter READ observatoryStatusUseShutter WRITE setObservatoryStatusUseShutter NOTIFY observatoryStatusUseShutterChanged)
    Q_PROPERTY(bool isObservatoryStatusUseShutterImmutable READ isObservatoryStatusUseShutterImmutable CONSTANT)
    /**
      Get Shutter status relevant for the Observatory status.
    */
    static
    bool observatoryStatusUseShutter()
    {
      return self()->mObservatoryStatusUseShutter;
    }

    /**
      Is Shutter status relevant for the Observatory status. Immutable
    */
    static
    bool isObservatoryStatusUseShutterImmutable()
    {
      return self()->isImmutable( QStringLiteral( "observatoryStatusUseShutter" ) );
    }

    /**
      Set Weather status relevant for the Observatory status.
    */
    static
    void setObservatoryStatusUseWeather( bool v )
    {
      if (v != self()->mObservatoryStatusUseWeather && !self()->isObservatoryStatusUseWeatherImmutable()) {
        self()->mObservatoryStatusUseWeather = v;
        Q_EMIT self()->observatoryStatusUseWeatherChanged();
      }
    }

    Q_PROPERTY(bool observatoryStatusUseWeather READ observatoryStatusUseWeather WRITE setObservatoryStatusUseWeather NOTIFY observatoryStatusUseWeatherChanged)
    Q_PROPERTY(bool isObservatoryStatusUseWeatherImmutable READ isObservatoryStatusUseWeatherImmutable CONSTANT)
    /**
      Get Weather status relevant for the Observatory status.
    */
    static
    bool observatoryStatusUseWeather()
    {
      return self()->mObservatoryStatusUseWeather;
    }

    /**
      Is Weather status relevant for the Observatory status. Immutable
    */
    static
    bool isObservatoryStatusUseWeatherImmutable()
    {
      return self()->isImmutable( QStringLiteral( "observatoryStatusUseWeather" ) );
    }

    /**
      Set Scale the sensor graph value axis to the values range.
    */
    static
    void setWeatherAutoScaleValues( bool v )
    {
      if (v != self()->mWeatherAutoScaleValues && !self()->isWeatherAutoScaleValuesImmutable()) {
        self()->mWeatherAutoScaleValues = v;
        Q_EMIT self()->weatherAutoScaleValuesChanged();
      }
    }

    Q_PROPERTY(bool weatherAutoScaleValues READ weatherAutoScaleValues WRITE setWeatherAutoScaleValues NOTIFY weatherAutoScaleValuesChanged)
    Q_PROPERTY(bool isWeatherAutoScaleValuesImmutable READ isWeatherAutoScaleValuesImmutable CONSTANT)
    /**
      Get Scale the sensor graph value axis to the values range.
    */
    static
    bool weatherAutoScaleValues()
    {
      return self()->mWeatherAutoScaleValues;
    }

    /**
      Is Scale the sensor graph value axis to the values range. Immutable
    */
    static
    bool isWeatherAutoScaleValuesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "weatherAutoScaleValues" ) );
    }

    /**
      Set Full path to the ASTAP executable.
    */
    static
    void setASTAPExecutable( const QString & v )
    {
      if (v != self()->mASTAPExecutable && !self()->isASTAPExecutableImmutable()) {
        self()->mASTAPExecutable = v;
        Q_EMIT self()->ASTAPExecutableChanged();
      }
    }

    Q_PROPERTY(QString aSTAPExecutable READ aSTAPExecutable WRITE setASTAPExecutable NOTIFY ASTAPExecutableChanged)
    Q_PROPERTY(bool isASTAPExecutableImmutable READ isASTAPExecutableImmutable CONSTANT)
    /**
      Get Full path to the ASTAP executable.
    */
    static
    QString aSTAPExecutable()
    {
      return self()->mASTAPExecutable;
    }

    /**
      Is Full path to the ASTAP executable. Immutable
    */
    static
    bool isASTAPExecutableImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ASTAPExecutable" ) );
    }

    /**
      Set Down sample prior to solving. Also called binning. A value 0 will result in auto selection downsampling.
    */
    static
    void setASTAPDownSample( bool v )
    {
      if (v != self()->mASTAPDownSample && !self()->isASTAPDownSampleImmutable()) {
        self()->mASTAPDownSample = v;
        Q_EMIT self()->ASTAPDownSampleChanged();
      }
    }

    Q_PROPERTY(bool aSTAPDownSample READ aSTAPDownSample WRITE setASTAPDownSample NOTIFY ASTAPDownSampleChanged)
    Q_PROPERTY(bool isASTAPDownSampleImmutable READ isASTAPDownSampleImmutable CONSTANT)
    /**
      Get Down sample prior to solving. Also called binning. A value 0 will result in auto selection downsampling.
    */
    static
    bool aSTAPDownSample()
    {
      return self()->mASTAPDownSample;
    }

    /**
      Is Down sample prior to solving. Also called binning. A value 0 will result in auto selection downsampling. Immutable
    */
    static
    bool isASTAPDownSampleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ASTAPDownSample" ) );
    }

    /**
      Set Down sample prior to solving. Also called binning. A value 0 will result in auto selection downsampling.
    */
    static
    void setASTAPDownSampleValue( double v )
    {
      if (v != self()->mASTAPDownSampleValue && !self()->isASTAPDownSampleValueImmutable()) {
        self()->mASTAPDownSampleValue = v;
        Q_EMIT self()->ASTAPDownSampleValueChanged();
      }
    }

    Q_PROPERTY(double aSTAPDownSampleValue READ aSTAPDownSampleValue WRITE setASTAPDownSampleValue NOTIFY ASTAPDownSampleValueChanged)
    Q_PROPERTY(bool isASTAPDownSampleValueImmutable READ isASTAPDownSampleValueImmutable CONSTANT)
    /**
      Get Down sample prior to solving. Also called binning. A value 0 will result in auto selection downsampling.
    */
    static
    double aSTAPDownSampleValue()
    {
      return self()->mASTAPDownSampleValue;
    }

    /**
      Is Down sample prior to solving. Also called binning. A value 0 will result in auto selection downsampling. Immutable
    */
    static
    bool isASTAPDownSampleValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ASTAPDownSampleValue" ) );
    }

    /**
      Set The program will search in a square spiral around the start position up to this radius.
    */
    static
    void setASTAPSearchRadius( bool v )
    {
      if (v != self()->mASTAPSearchRadius && !self()->isASTAPSearchRadiusImmutable()) {
        self()->mASTAPSearchRadius = v;
        Q_EMIT self()->ASTAPSearchRadiusChanged();
      }
    }

    Q_PROPERTY(bool aSTAPSearchRadius READ aSTAPSearchRadius WRITE setASTAPSearchRadius NOTIFY ASTAPSearchRadiusChanged)
    Q_PROPERTY(bool isASTAPSearchRadiusImmutable READ isASTAPSearchRadiusImmutable CONSTANT)
    /**
      Get The program will search in a square spiral around the start position up to this radius.
    */
    static
    bool aSTAPSearchRadius()
    {
      return self()->mASTAPSearchRadius;
    }

    /**
      Is The program will search in a square spiral around the start position up to this radius. Immutable
    */
    static
    bool isASTAPSearchRadiusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ASTAPSearchRadius" ) );
    }

    /**
      Set The program will search in a square spiral around the start position up to this radius.
    */
    static
    void setASTAPSearchRadiusValue( double v )
    {
      if (v != self()->mASTAPSearchRadiusValue && !self()->isASTAPSearchRadiusValueImmutable()) {
        self()->mASTAPSearchRadiusValue = v;
        Q_EMIT self()->ASTAPSearchRadiusValueChanged();
      }
    }

    Q_PROPERTY(double aSTAPSearchRadiusValue READ aSTAPSearchRadiusValue WRITE setASTAPSearchRadiusValue NOTIFY ASTAPSearchRadiusValueChanged)
    Q_PROPERTY(bool isASTAPSearchRadiusValueImmutable READ isASTAPSearchRadiusValueImmutable CONSTANT)
    /**
      Get The program will search in a square spiral around the start position up to this radius.
    */
    static
    double aSTAPSearchRadiusValue()
    {
      return self()->mASTAPSearchRadiusValue;
    }

    /**
      Is The program will search in a square spiral around the start position up to this radius. Immutable
    */
    static
    bool isASTAPSearchRadiusValueImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ASTAPSearchRadiusValue" ) );
    }

    /**
      Set Update the fits header with the found solution.
    */
    static
    void setASTAPUpdateFITS( bool v )
    {
      if (v != self()->mASTAPUpdateFITS && !self()->isASTAPUpdateFITSImmutable()) {
        self()->mASTAPUpdateFITS = v;
        Q_EMIT self()->ASTAPUpdateFITSChanged();
      }
    }

    Q_PROPERTY(bool aSTAPUpdateFITS READ aSTAPUpdateFITS WRITE setASTAPUpdateFITS NOTIFY ASTAPUpdateFITSChanged)
    Q_PROPERTY(bool isASTAPUpdateFITSImmutable READ isASTAPUpdateFITSImmutable CONSTANT)
    /**
      Get Update the fits header with the found solution.
    */
    static
    bool aSTAPUpdateFITS()
    {
      return self()->mASTAPUpdateFITS;
    }

    /**
      Is Update the fits header with the found solution. Immutable
    */
    static
    bool isASTAPUpdateFITSImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ASTAPUpdateFITS" ) );
    }

    /**
      Set Increase search window size.
    */
    static
    void setASTAPLargeSearchWindow( bool v )
    {
      if (v != self()->mASTAPLargeSearchWindow && !self()->isASTAPLargeSearchWindowImmutable()) {
        self()->mASTAPLargeSearchWindow = v;
        Q_EMIT self()->ASTAPLargeSearchWindowChanged();
      }
    }

    Q_PROPERTY(bool aSTAPLargeSearchWindow READ aSTAPLargeSearchWindow WRITE setASTAPLargeSearchWindow NOTIFY ASTAPLargeSearchWindowChanged)
    Q_PROPERTY(bool isASTAPLargeSearchWindowImmutable READ isASTAPLargeSearchWindowImmutable CONSTANT)
    /**
      Get Increase search window size.
    */
    static
    bool aSTAPLargeSearchWindow()
    {
      return self()->mASTAPLargeSearchWindow;
    }

    /**
      Is Increase search window size. Immutable
    */
    static
    bool isASTAPLargeSearchWindowImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ASTAPLargeSearchWindow" ) );
    }

    /**
      Set MosaicTransparencyAuto
    */
    static
    void setMosaicTransparencyAuto( bool v )
    {
      if (v != self()->mMosaicTransparencyAuto && !self()->isMosaicTransparencyAutoImmutable()) {
        self()->mMosaicTransparencyAuto = v;
        Q_EMIT self()->MosaicTransparencyAutoChanged();
      }
    }

    Q_PROPERTY(bool mosaicTransparencyAuto READ mosaicTransparencyAuto WRITE setMosaicTransparencyAuto NOTIFY MosaicTransparencyAutoChanged)
    Q_PROPERTY(bool isMosaicTransparencyAutoImmutable READ isMosaicTransparencyAutoImmutable CONSTANT)
    /**
      Get MosaicTransparencyAuto
    */
    static
    bool mosaicTransparencyAuto()
    {
      return self()->mMosaicTransparencyAuto;
    }

    /**
      Is MosaicTransparencyAuto Immutable
    */
    static
    bool isMosaicTransparencyAutoImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MosaicTransparencyAuto" ) );
    }

    /**
      Set MosaicTransparencyLevel
    */
    static
    void setMosaicTransparencyLevel( double v )
    {
      if (v != self()->mMosaicTransparencyLevel && !self()->isMosaicTransparencyLevelImmutable()) {
        self()->mMosaicTransparencyLevel = v;
        Q_EMIT self()->MosaicTransparencyLevelChanged();
      }
    }

    Q_PROPERTY(double mosaicTransparencyLevel READ mosaicTransparencyLevel WRITE setMosaicTransparencyLevel NOTIFY MosaicTransparencyLevelChanged)
    Q_PROPERTY(bool isMosaicTransparencyLevelImmutable READ isMosaicTransparencyLevelImmutable CONSTANT)
    /**
      Get MosaicTransparencyLevel
    */
    static
    double mosaicTransparencyLevel()
    {
      return self()->mMosaicTransparencyLevel;
    }

    /**
      Is MosaicTransparencyLevel Immutable
    */
    static
    bool isMosaicTransparencyLevelImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MosaicTransparencyLevel" ) );
    }

    /**
      Set Enable MCP server
    */
    static
    void setMCPEnabled( bool v )
    {
      if (v != self()->mMCPEnabled && !self()->isMCPEnabledImmutable()) {
        self()->mMCPEnabled = v;
        Q_EMIT self()->MCPEnabledChanged();
      }
    }

    Q_PROPERTY(bool mCPEnabled READ mCPEnabled WRITE setMCPEnabled NOTIFY MCPEnabledChanged)
    Q_PROPERTY(bool isMCPEnabledImmutable READ isMCPEnabledImmutable CONSTANT)
    /**
      Get Enable MCP server
    */
    static
    bool mCPEnabled()
    {
      return self()->mMCPEnabled;
    }

    /**
      Is Enable MCP server Immutable
    */
    static
    bool isMCPEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MCPEnabled" ) );
    }

    /**
      Set MCP server port
    */
    static
    void setMCPPort( uint v )
    {
      if (v != self()->mMCPPort && !self()->isMCPPortImmutable()) {
        self()->mMCPPort = v;
        Q_EMIT self()->MCPPortChanged();
      }
    }

    Q_PROPERTY(uint mCPPort READ mCPPort WRITE setMCPPort NOTIFY MCPPortChanged)
    Q_PROPERTY(bool isMCPPortImmutable READ isMCPPortImmutable CONSTANT)
    /**
      Get MCP server port
    */
    static
    uint mCPPort()
    {
      return self()->mMCPPort;
    }

    /**
      Is MCP server port Immutable
    */
    static
    bool isMCPPortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MCPPort" ) );
    }

    /**
      Set Allow only read-only MCP tools
    */
    static
    void setMCPReadOnlyMode( bool v )
    {
      if (v != self()->mMCPReadOnlyMode && !self()->isMCPReadOnlyModeImmutable()) {
        self()->mMCPReadOnlyMode = v;
        Q_EMIT self()->MCPReadOnlyModeChanged();
      }
    }

    Q_PROPERTY(bool mCPReadOnlyMode READ mCPReadOnlyMode WRITE setMCPReadOnlyMode NOTIFY MCPReadOnlyModeChanged)
    Q_PROPERTY(bool isMCPReadOnlyModeImmutable READ isMCPReadOnlyModeImmutable CONSTANT)
    /**
      Get Allow only read-only MCP tools
    */
    static
    bool mCPReadOnlyMode()
    {
      return self()->mMCPReadOnlyMode;
    }

    /**
      Is Allow only read-only MCP tools Immutable
    */
    static
    bool isMCPReadOnlyModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MCPReadOnlyMode" ) );
    }

    /**
      Set MCP tools disabled by the user
    */
    static
    void setMCPDisabledTools( const QStringList & v )
    {
      if (v != self()->mMCPDisabledTools && !self()->isMCPDisabledToolsImmutable()) {
        self()->mMCPDisabledTools = v;
        Q_EMIT self()->MCPDisabledToolsChanged();
      }
    }

    Q_PROPERTY(QStringList mCPDisabledTools READ mCPDisabledTools WRITE setMCPDisabledTools NOTIFY MCPDisabledToolsChanged)
    Q_PROPERTY(bool isMCPDisabledToolsImmutable READ isMCPDisabledToolsImmutable CONSTANT)
    /**
      Get MCP tools disabled by the user
    */
    static
    QStringList mCPDisabledTools()
    {
      return self()->mMCPDisabledTools;
    }

    /**
      Is MCP tools disabled by the user Immutable
    */
    static
    bool isMCPDisabledToolsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MCPDisabledTools" ) );
    }


    enum {
      signalPositionTimeBoxChanged = 1,
      signalPositionFocusBoxChanged = 2,
      signalPositionGeoBoxChanged = 3,
      signalShadeTimeBoxChanged = 4,
      signalShadeFocusBoxChanged = 5,
      signalShadeGeoBoxChanged = 6,
      signalShowInfoBoxesChanged = 7,
      signalShowTimeBoxChanged = 8,
      signalShowFocusBoxChanged = 9,
      signalShowGeoBoxChanged = 10,
      signalStickyTimeBoxChanged = 11,
      signalStickyFocusBoxChanged = 12,
      signalStickyGeoBoxChanged = 13,
      signalShowStatusBarChanged = 14,
      signalShowAltAzFieldChanged = 15,
      signalShowRADecFieldChanged = 16,
      signalShowJ2000RADecFieldChanged = 17,
      signalShowSensorFOVChanged = 18,
      signalWindowWidthChanged = 19,
      signalWindowHeightChanged = 20,
      signalKStarsGeometryChanged = 21,
      signalRunStartupWizardChanged = 22,
      signalCurrentThemeChanged = 23,
      signalCatalogFileChanged = 24,
      signalShowCatalogChanged = 25,
      signalShowCatalogNamesChanged = 26,
      signalResolveNamesOnlineChanged = 27,
      signalDSOCachePercentageChanged = 28,
      signalDSOMinZoomFactorChanged = 29,
      signalDSOCatalogFilenameChanged = 30,
      signalDSODefaultCatalogFilenameChanged = 31,
      signalINDIWindowWidthChanged = 32,
      signalINDIWindowHeightChanged = 33,
      signalINDIWindowGeometryChanged = 34,
      signalUseGeographicUpdateChanged = 35,
      signalUseTimeUpdateChanged = 36,
      signalIndependentWindowINDIChanged = 37,
      signalShowTargetCrosshairChanged = 38,
      signalShowINDIMessagesChanged = 39,
      signalShowINDIwindowInitiallyChanged = 40,
      signalMaxFocusFrameFilesChanged = 41,
      signalMessageNotificationINDIChanged = 42,
      signalTimeSourceChanged = 43,
      signalLocationSourceChanged = 44,
      signalUseExternalSkyMapChanged = 45,
      signalFitsDirChanged = 46,
      signalServerTransferBufferSizeChanged = 47,
      signalServerPortStartChanged = 48,
      signalServerPortEndChanged = 49,
      signalIndiServerChanged = 50,
      signalIndiServerIsInternalChanged = 51,
      signalIndiDriversDirChanged = 52,
      signalIndiDriversAreInternalChanged = 53,
      signalStreamWindowWidthChanged = 54,
      signalStreamWindowHeightChanged = 55,
      signalINDIMountLoggingChanged = 56,
      signalINDIFocuserLoggingChanged = 57,
      signalINDICCDLoggingChanged = 58,
      signalINDIFilterWheelLoggingChanged = 59,
      signalINDIDomeLoggingChanged = 60,
      signalINDIDetectorLoggingChanged = 61,
      signalINDIWeatherLoggingChanged = 62,
      signalINDIAuxiliaryLoggingChanged = 63,
      signalINDIRotatorLoggingChanged = 64,
      signalINDIGPSLoggingChanged = 65,
      signalINDIAOLoggingChanged = 66,
      signalCityNameChanged = 67,
      signalProvinceNameChanged = 68,
      signalCountryNameChanged = 69,
      signalLongitudeChanged = 70,
      signalLatitudeChanged = 71,
      signalElevationChanged = 72,
      signalTimeZoneChanged = 73,
      signalDSTChanged = 74,
      signalUseAnimatedSlewingChanged = 75,
      signalLeftClickSelectsObjectChanged = 76,
      signalDefaultCursorChanged = 77,
      signalFOVNamesChanged = 78,
      signalFadePlanetTrailsChanged = 79,
      signalFocusRAChanged = 80,
      signalFocusDecChanged = 81,
      signalFocusObjectChanged = 82,
      signalIsTrackingChanged = 83,
      signalHideOnSlewChanged = 84,
      signalHideCBoundsChanged = 85,
      signalHideCLinesChanged = 86,
      signalSkyCultureChanged = 87,
      signalHideCNamesChanged = 88,
      signalHideGridsChanged = 89,
      signalHideMilkyWayChanged = 90,
      signalHideOtherChanged = 91,
      signalHidePlanetsChanged = 92,
      signalHideStarsChanged = 93,
      signalHideLabelsChanged = 94,
      signalShowAsteroidsChanged = 95,
      signalShowAsteroidNamesChanged = 96,
      signalOrbitalElementsAutoUpdateChanged = 97,
      signalShowCometsChanged = 98,
      signalShowCometComasChanged = 99,
      signalShowCometNamesChanged = 100,
      signalShowSupernovaeChanged = 101,
      signalShowSupernovaNamesChanged = 102,
      signalMagnitudeLimitShowSupernovaeChanged = 103,
      signalSupernovaDetectionAgeChanged = 104,
      signalSupernovaDownloadUrlChanged = 105,
      signalLimitSupernovaeByZoomChanged = 106,
      signalSupernovaeHostOnlyChanged = 107,
      signalSupernovaeClassifiedOnlyChanged = 108,
      signalShowSupernovaAlertsChanged = 109,
      signalMagnitudeLimitAlertSupernovaeChanged = 110,
      signalShowCBoundsChanged = 111,
      signalShowHighlightedCBoundChanged = 112,
      signalShowCLinesChanged = 113,
      signalShowConstellationArtChanged = 114,
      signalShowCNamesChanged = 115,
      signalShowDeepSkyChanged = 116,
      signalShowEclipticChanged = 117,
      signalShowEquatorChanged = 118,
      signalAutoSelectGridChanged = 119,
      signalShowEquatorialGridChanged = 120,
      signalShowHorizontalGridChanged = 121,
      signalShowLocalMeridianChanged = 122,
      signalShowGroundChanged = 123,
      signalShowHorizonChanged = 124,
      signalShowFlagsChanged = 125,
      signalSimulateDaytimeChanged = 126,
      signalShowOtherChanged = 127,
      signalShowMilkyWayChanged = 128,
      signalFillMilkyWayChanged = 129,
      signalShowSolarSystemChanged = 130,
      signalShowPlanetImagesChanged = 131,
      signalShowPlanetNamesChanged = 132,
      signalShowSunChanged = 133,
      signalSunScaleChanged = 134,
      signalShowMoonChanged = 135,
      signalMoonScaleChanged = 136,
      signalShowMercuryChanged = 137,
      signalShowVenusChanged = 138,
      signalShowMarsChanged = 139,
      signalShowJupiterChanged = 140,
      signalShowSaturnChanged = 141,
      signalShowUranusChanged = 142,
      signalShowNeptuneChanged = 143,
      signalShowPlutoChanged = 144,
      signalShowStarsChanged = 145,
      signalShowStarMagnitudesChanged = 146,
      signalShowStarsOverHIPSChanged = 147,
      signalShowStarNamesChanged = 148,
      signalShowDeepSkyMagnitudesChanged = 149,
      signalShowDeepSkyNamesChanged = 150,
      signalShowMosaicPanelChanged = 151,
      signalSlewTimeScaleChanged = 152,
      signalBoxBGModeChanged = 153,
      signalProjectionChanged = 154,
      signalUseAbbrevConstellNamesChanged = 155,
      signalUseLatinConstellNamesChanged = 156,
      signalUseLocalConstellNamesChanged = 157,
      signalUseAltAzChanged = 158,
      signalUseAutoLabelChanged = 159,
      signalUseAutoTrailChanged = 160,
      signalUseHoverLabelChanged = 161,
      signalUseRefractionChanged = 162,
      signalUseRelativisticChanged = 163,
      signalUseAntialiasChanged = 164,
      signalZoomFactorChanged = 165,
      signalSkyRotationChanged = 166,
      signalMirrorSkyMapChanged = 167,
      signalErectObserverCorrectionChanged = 168,
      signalZoomScrollFactorChanged = 169,
      signalMagLimitAsteroidChanged = 170,
      signalMagLimitAsteroidDownloadChanged = 171,
      signalAsteroidLabelDensityChanged = 172,
      signalMagLimitDrawDeepSkyChanged = 173,
      signalMagLimitDrawDeepSkyZoomOutChanged = 174,
      signalShowUnknownMagObjectsChanged = 175,
      signalShowInlineImagesChanged = 176,
      signalStarDensityChanged = 177,
      signalMagLimitHideStarChanged = 178,
      signalStarLabelDensityChanged = 179,
      signalDeepSkyLabelDensityChanged = 180,
      signalDeepSkyLongLabelsChanged = 181,
      signalLabelFontScalingChanged = 182,
      signalMaxRadCometNameChanged = 183,
      signalUseGLChanged = 184,
      signalRunClockChanged = 185,
      signalImagingPlannerAcceptOpenClusterChanged = 186,
      signalImagingPlannerAcceptNebulaChanged = 187,
      signalImagingPlannerAcceptGlobularClusterChanged = 188,
      signalImagingPlannerAcceptPlanetaryChanged = 189,
      signalImagingPlannerAcceptSupernovaRemnantChanged = 190,
      signalImagingPlannerAcceptGalaxyChanged = 191,
      signalImagingPlannerAcceptGalaxyClusterChanged = 192,
      signalImagingPlannerAcceptDarkNebulaChanged = 193,
      signalImagingPlannerAcceptOtherChanged = 194,
      signalAstrobinAwardChanged = 195,
      signalAstrobinMinRadiusChanged = 196,
      signalAstrobinMaxRadiusChanged = 197,
      signalImagingPlannerUseArtificialHorizonChanged = 198,
      signalImagingPlannerMinHoursChanged = 199,
      signalImagingPlannerMinAltitudeChanged = 200,
      signalImagingPlannerMinMoonSeparationChanged = 201,
      signalImagingPlannerMaxMoonAltitudeChanged = 202,
      signalImagingPlannerShowPickedChanged = 203,
      signalImagingPlannerShowNotPickedChanged = 204,
      signalImagingPlannerDontCarePickedChanged = 205,
      signalImagingPlannerShowKeywordChanged = 206,
      signalImagingPlannerShowNotKeywordChanged = 207,
      signalImagingPlannerDontCareKeywordChanged = 208,
      signalImagingPlannerKeywordChanged = 209,
      signalImagingPlannerShowImagedChanged = 210,
      signalImagingPlannerShowNotImagedChanged = 211,
      signalImagingPlannerDontCareImagedChanged = 212,
      signalImagingPlannerShowAddedChanged = 213,
      signalImagingPlannerShowNotAddedChanged = 214,
      signalImagingPlannerDontCareAddedChanged = 215,
      signalImagingPlannerShowIgnoredChanged = 216,
      signalImagingPlannerShowNotIgnoredChanged = 217,
      signalImagingPlannerDontCareIgnoredChanged = 218,
      signalImagingPlannerHideAstrobinDetailsChanged = 219,
      signalImagingPlannerHideFiltersChanged = 220,
      signalImagingPlannerHideImageChanged = 221,
      signalImagingPlannerHideAltitudeGraphChanged = 222,
      signalImagingPlannerCatalogPathChanged = 223,
      signalImagingPlannerCenterOnSkyMapChanged = 224,
      signalImagingPlannerIndependentWindowChanged = 225,
      signalImagingPlannerStartSolvingImmediatelyChanged = 226,
      signalObsListSymbolChanged = 227,
      signalObsListTextChanged = 228,
      signalObsListPreferDSSChanged = 229,
      signalObsListPreferSDSSChanged = 230,
      signalObsListDemoteHoleChanged = 231,
      signalObsListHoleSizeChanged = 232,
      signalObsListCoverageChanged = 233,
      signalColorSchemeFileChanged = 234,
      signalStarColorModeChanged = 235,
      signalStarColorIntensityChanged = 236,
      signalDomeSlitInvertedChanged = 237,
      signalAngularRulerColorChanged = 238,
      signalBoxBGColorChanged = 239,
      signalBoxGrabColorChanged = 240,
      signalBoxTextColorChanged = 241,
      signalCBoundColorChanged = 242,
      signalCBoundHighColorChanged = 243,
      signalCLineColorChanged = 244,
      signalCNameColorChanged = 245,
      signalCompassColorChanged = 246,
      signalEclipticColorChanged = 247,
      signalEquatorColorChanged = 248,
      signalEquatorialGridColorChanged = 249,
      signalHorizontalGridColorChanged = 250,
      signalSpecialObjectColorChanged = 251,
      signalHorizonColorChanged = 252,
      signalLocalMeridianColorChanged = 253,
      signalMilkyWayWColorChanged = 254,
      signalStarNameColorChanged = 255,
      signalDeepSkyNameColorChanged = 256,
      signalPlanetNameColorChanged = 257,
      signalPlanetTrailColorChanged = 258,
      signalSkyColorChanged = 259,
      signalSkyColorDaytimeChanged = 260,
      signalArtificialHorizonColorChanged = 261,
      signalTelescopeTargetColorChanged = 262,
      signalVisibleSatColorChanged = 263,
      signalSatColorChanged = 264,
      signalSatLabelColorChanged = 265,
      signalSupernovaColorChanged = 266,
      signalAsteroidColorChanged = 267,
      signalUserLabelColorChanged = 268,
      signalRAGuideColorChanged = 269,
      signalDEGuideColorChanged = 270,
      signalSolverFOVColorChanged = 271,
      signalXplanetIsInternalChanged = 272,
      signalXplanetPathChanged = 273,
      signalXplanetUseFIFOChanged = 274,
      signalXplanetTimeoutChanged = 275,
      signalXplanetAnimationDelayChanged = 276,
      signalXplanetWidthChanged = 277,
      signalXplanetHeightChanged = 278,
      signalXplanetLabelChanged = 279,
      signalXplanetLabelLocalTimeChanged = 280,
      signalXplanetLabelGMTChanged = 281,
      signalXplanetLabelStringChanged = 282,
      signalXplanetFontSizeChanged = 283,
      signalXplanetColorChanged = 284,
      signalXplanetDateFormatChanged = 285,
      signalXplanetLabelTLChanged = 286,
      signalXplanetLabelTRChanged = 287,
      signalXplanetLabelBRChanged = 288,
      signalXplanetLabelBLChanged = 289,
      signalXplanetGlareChanged = 290,
      signalXplanetRandomChanged = 291,
      signalXplanetLatLongChanged = 292,
      signalXplanetLatitudeChanged = 293,
      signalXplanetLongitudeChanged = 294,
      signalXplanetProjectionChanged = 295,
      signalXplanetBackgroundChanged = 296,
      signalXplanetBackgroundImageChanged = 297,
      signalXplanetBackgroundImagePathChanged = 298,
      signalXplanetBackgroundColorChanged = 299,
      signalXplanetBackgroundColorValueChanged = 300,
      signalXplanetMagnitudeChanged = 301,
      signalXplanetArcFileChanged = 302,
      signalXplanetArcFilePathChanged = 303,
      signalXplanetConfigFileChanged = 304,
      signalXplanetConfigFilePathChanged = 305,
      signalXplanetFOVChanged = 306,
      signalXplanetMarkerFileChanged = 307,
      signalXplanetMarkerFilePathChanged = 308,
      signalXplanetMarkerBoundsChanged = 309,
      signalXplanetMarkerBoundsPathChanged = 310,
      signalXplanetStarmapChanged = 311,
      signalXplanetStarmapPathChanged = 312,
      signalXplanetQualityChanged = 313,
      signalShowSatellitesChanged = 314,
      signalShowVisibleSatellitesChanged = 315,
      signalDrawSatellitesLikeStarsChanged = 316,
      signalShowSatellitesLabelsChanged = 317,
      signalSelectedSatellitesChanged = 318,
      signalKStarsFirstRunChanged = 319,
      signalAlwaysRecomputeCoordinatesChanged = 320,
      signalDefaultDSSImageSizeChanged = 321,
      signalDSSPaddingChanged = 322,
      signalVerboseLoggingChanged = 323,
      signalRegularLoggingChanged = 324,
      signalDisableLoggingChanged = 325,
      signalLogToDefaultChanged = 326,
      signalLogToFileChanged = 327,
      signalFITSLoggingChanged = 328,
      signalINDILoggingChanged = 329,
      signalCaptureLoggingChanged = 330,
      signalFocusLoggingChanged = 331,
      signalSaveGuideImagesChanged = 332,
      signalSaveAlignImagesChanged = 333,
      signalSaveFailedAlignImagesChanged = 334,
      signalDontSyncToRealTimeChanged = 335,
      signalGuideLoggingChanged = 336,
      signalAlignmentLoggingChanged = 337,
      signalMountLoggingChanged = 338,
      signalObservatoryLoggingChanged = 339,
      signalImageDebayerEngineChanged = 340,
      signalImageDebayerAlgoChanged = 341,
      signalStackDebayerEngineChanged = 342,
      signalStackDebayerAlgoChanged = 343,
      signalFITSWindowGeometryChanged = 344,
      signalUseFITSViewerChanged = 345,
      signalSinglePreviewFITSChanged = 346,
      signalSingleWindowCapturedFITSChanged = 347,
      signalSingleWindowOpenedFITSChanged = 348,
      signalFocusFITSOnNewImageChanged = 349,
      signalIndependentWindowFITSChanged = 350,
      signalLiveStackerOwnProcessChanged = 351,
      signalAutoDebayerChanged = 352,
      signalAuto3DCubeChanged = 353,
      signalAutoHFRChanged = 354,
      signalQuickHFRChanged = 355,
      signalStellarSolverPartitionChanged = 356,
      signalAutoWCSChanged = 357,
      signalLimitedResourcesModeChanged = 358,
      signalNonLinearHistogramChanged = 359,
      signalHIPSOpacityChanged = 360,
      signalHIPSOffsetXChanged = 361,
      signalHIPSOffsetYChanged = 362,
      signalFitsSolverProfileChanged = 363,
      signalFitsSolverModuleChanged = 364,
      signalFitsSolverProfileIndecesChanged = 365,
      signalFitsCatalogChanged = 366,
      signalFitsCatObjShowNamesChanged = 367,
      signalFitsSolverUseScaleChanged = 368,
      signalFitsSolverUsePositionChanged = 369,
      signalFitsSolverScaleChanged = 370,
      signalFitsSolverImageScaleUnitsChanged = 371,
      signalFitsSolverRadiusChanged = 372,
      signalFitsLSHideGeneralChanged = 373,
      signalFitsLSHideCalibrationChanged = 374,
      signalFitsLSHideAlignmentChanged = 375,
      signalFitsLSHideStackingChanged = 376,
      signalFitsLSHidePostProcChanged = 377,
      signalFitsLSCalcSNRChanged = 378,
      signalFitsLSMasterDarkChanged = 379,
      signalFitsLSMasterFlatChanged = 380,
      signalFitsLSHotPixelsChanged = 381,
      signalFitsLSColdPixelsChanged = 382,
      signalFitsLSAlignMethodChanged = 383,
      signalFitsLSNumInMemChanged = 384,
      signalFitsLSDownscaleChanged = 385,
      signalFitsLSWeightingChanged = 386,
      signalFitsLSNormalizationChanged = 387,
      signalFitsLSStackingMethodChanged = 388,
      signalFitsLSLowSigmaChanged = 389,
      signalFitsLSHighSigmaChanged = 390,
      signalFitsLSWinsorCutoffChanged = 391,
      signalFitsLSIterationsChanged = 392,
      signalFitsLSKappaChanged = 393,
      signalFitsLSAlphaChanged = 394,
      signalFitsLSSigmaChanged = 395,
      signalFitsPSFUpdateChanged = 396,
      signalFitsLSPostProcChanged = 397,
      signalFitsLSGradientAmtChanged = 398,
      signalFitsLSDeconvAmtChanged = 399,
      signalFitsLSPSFSigmaChanged = 400,
      signalFitsLSDenoiseAmtChanged = 401,
      signalFitsLSSharpenAmtChanged = 402,
      signalFitsLSSharpenKernalChanged = 403,
      signalFitsLSSharpenSigmaChanged = 404,
      signalFitsLSMWindowGeometryChanged = 405,
      signalFitsLSMVisibleColumnsChanged = 406,
      signalFitsLSMColumnWidthsChanged = 407,
      signalFitsLSMSortColumnChanged = 408,
      signalFitsLSMSortOrderChanged = 409,
      signalFitsLSMHighlightingChanged = 410,
      signalFitsLSWebcastTitleChanged = 411,
      signalFitsLSWebcastLogoLChanged = 412,
      signalFitsLSWebcastLogoRChanged = 413,
      signalFitsLSWebcastPortChanged = 414,
      signalFitsLSWebcastThrottleChanged = 415,
      signalBortleClassChanged = 416,
      signalTelescopeCheckChanged = 417,
      signalBinocularsCheckChanged = 418,
      signalBinocularsApertureChanged = 419,
      signalScopeListIndexChanged = 420,
      signalEkosWindowWidthChanged = 421,
      signalEkosWindowHeightChanged = 422,
      signalEkosGeometryChanged = 423,
      signalEkosTopIconsChanged = 424,
      signalEkosLeftIconsChanged = 425,
      signalIndependentWindowEkosChanged = 426,
      signalProfileChanged = 427,
      signalNeverLoadConfigChanged = 428,
      signalLoadConfigOnConnectionChanged = 429,
      signalLoadDefaultConfigChanged = 430,
      signalAutoLoadSerialAssistantChanged = 431,
      signalRememberCredentialsChanged = 432,
      signalAutoStartEkosLiveChanged = 433,
      signalEkosLiveUsernameChanged = 434,
      signalEkosLiveObservatoryChanged = 435,
      signalEkosLiveOfflineServerChanged = 436,
      signalEkosLiveOnlineServerChanged = 437,
      signalEkosLiveSoundChanged = 438,
      signalEkosLiveNotificationsChanged = 439,
      signalEkosLiveCloudChanged = 440,
      signalMaxDarkTemperatureDiffChanged = 441,
      signalShutterfulCCDsChanged = 442,
      signalShutterlessCCDsChanged = 443,
      signalDarkLibraryDurationChanged = 444,
      signalUseGraphicalCountsDisplayChanged = 445,
      signalMinimumAltLimitChanged = 446,
      signalMaximumAltLimitChanged = 447,
      signalEnableAltitudeLimitsChanged = 448,
      signalEnableAltitudeLimitsTrackingOnlyChanged = 449,
      signalConfirmBelowHorizonChanged = 450,
      signalMeridianFlipOffsetDegreesChanged = 451,
      signalMaximumHaLimitChanged = 452,
      signalEnableHaLimitChanged = 453,
      signalExecuteMeridianFlipChanged = 454,
      signalLeftRightReversedChanged = 455,
      signalUpDownReversedChanged = 456,
      signalParkEveryDayChanged = 457,
      signalParkTimeChanged = 458,
      signalDefaultObserverChanged = 459,
      signalSyncFOVPAChanged = 460,
      signalPAMultiplierChanged = 461,
      signalPAOffsetChanged = 462,
      signalPAPierSideChanged = 463,
      signalGuideDeviationChanged = 464,
      signalGuideDeviationRepsChanged = 465,
      signalStartGuideDeviationChanged = 466,
      signalGuideDitherPerJobFrequencyChanged = 467,
      signalHFRDeviationChanged = 468,
      signalMaxFocusTemperatureDeltaChanged = 469,
      signalAutoDarkChanged = 470,
      signalEnforceGuideDeviationChanged = 471,
      signalEnforceAutofocusHFRChanged = 472,
      signalEnforceAutofocusOnTemperatureChanged = 473,
      signalEnforceRefocusEveryNChanged = 474,
      signalRefocusEveryNChanged = 475,
      signalRefocusAfterMeridianFlipChanged = 476,
      signalResetMountModelAfterMeridianChanged = 477,
      signalForcedFlipChanged = 478,
      signalCalibrationADUValueChanged = 479,
      signalCalibrationADUValueToleranceChanged = 480,
      signalCalibrationPreActionIndexChanged = 481,
      signalCalibrationFlatDurationIndexChanged = 482,
      signalCalibrationWallAzChanged = 483,
      signalCalibrationWallAltChanged = 484,
      signalMaxTemperatureDiffChanged = 485,
      signalMaxStartGuiderDriftChanged = 486,
      signalEnforceStartGuiderDriftChanged = 487,
      signalGuidingSettleChanged = 488,
      signalAlwaysResetSequenceWhenStartingChanged = 489,
      signalFlatSyncFocusChanged = 490,
      signalHFRThresholdPercentageChanged = 491,
      signalHFRCheckAlgorithmChanged = 492,
      signalInSequenceCheckFramesChanged = 493,
      signalAutoStretchChanged = 494,
      signalStretchPreviewSamplingChanged = 495,
      signalClipping64KValueChanged = 496,
      signalClipping256ValueChanged = 497,
      signalAdaptiveSamplingChanged = 498,
      signalUseSummaryPreviewChanged = 499,
      signalUseDSLRImageViewerChanged = 500,
      signalForceDSLRPresetsChanged = 501,
      signalCaptureDirectoryChanged = 502,
      signalPlaceholderFormatChanged = 503,
      signalRemoteCaptureDirectoryChanged = 504,
      signalManualCoverTimeoutChanged = 505,
      signalCaptureOperationsTimeoutChanged = 506,
      signalMinFlipDurationChanged = 507,
      signalCapturePositionChanged = 508,
      signalCaptureTrainIDChanged = 509,
      signalCaptureCalibrationWallChanged = 510,
      signalCaptureCalibrationParkMountChanged = 511,
      signalCaptureCalibrationParkDomeChanged = 512,
      signalCaptureCalibrationUseManualChanged = 513,
      signalCaptureCalibrationUseADUChanged = 514,
      signalCaptureCalibrationADUValueChanged = 515,
      signalCaptureCalibrationADUToleranceChanged = 516,
      signalCaptureCalibrationSkyFlatsChanged = 517,
      signalAbsTicksSpinChanged = 518,
      signalFocusExposureChanged = 519,
      signalFocusBinningChanged = 520,
      signalFocusGainChanged = 521,
      signalFocusISOChanged = 522,
      signalDefaultFocusTemperatureSourceChanged = 523,
      signalFocusFilterChanged = 524,
      signalUseFocusDarkFrameChanged = 525,
      signalFocusSubFrameChanged = 526,
      signalFocusBoxSizeChanged = 527,
      signalFocusUseFullFieldChanged = 528,
      signalFocusNoMaskRBChanged = 529,
      signalFocusRingMaskRBChanged = 530,
      signalFocusMosaicMaskRBChanged = 531,
      signalFocusFullFieldInnerRadiusChanged = 532,
      signalFocusFullFieldOuterRadiusChanged = 533,
      signalFocusMosaicTileWidthChanged = 534,
      signalFocusMosaicSpaceChanged = 535,
      signalFocusAutoStarEnabledChanged = 536,
      signalFocusSuspendGuidingChanged = 537,
      signalFocusGuideSettleTimeChanged = 538,
      signalFocusUnitsChanged = 539,
      signalFocusAdaptiveChanged = 540,
      signalFocusAdaptiveMinMoveChanged = 541,
      signalFocusAdaptStartChanged = 542,
      signalFocusAdaptiveMaxMoveChanged = 543,
      signalFocusDetectionChanged = 544,
      signalFocusSEPProfileChanged = 545,
      signalFocusAlgorithmChanged = 546,
      signalFocusCurveFitChanged = 547,
      signalFocusStarMeasureChanged = 548,
      signalFocusStarPSFChanged = 549,
      signalFocusUseWeightsChanged = 550,
      signalFocusR2LimitChanged = 551,
      signalFocusRefineCurveFitChanged = 552,
      signalFocusFramesCountChanged = 553,
      signalFocusHFRFramesCountChanged = 554,
      signalFocusMultiRowAverageChanged = 555,
      signalFocusGaussianSigmaChanged = 556,
      signalFocusThresholdChanged = 557,
      signalFocusDenoiseChanged = 558,
      signalFocusDonutChanged = 559,
      signalFocusTimeDilationChanged = 560,
      signalFocusOutlierRejectionChanged = 561,
      signalFocusScanStartPosChanged = 562,
      signalFocusScanAlwaysOnChanged = 563,
      signalFocusScanDatapointsChanged = 564,
      signalFocusScanStepSizeFactorChanged = 565,
      signalFocusGaussianKernelSizeChanged = 566,
      signalFocusToleranceChanged = 567,
      signalFocusWalkChanged = 568,
      signalFocusSettleTimeChanged = 569,
      signalFocusTicksChanged = 570,
      signalFocusOutStepsChanged = 571,
      signalFocusNumStepsChanged = 572,
      signalFocusMaxTravelChanged = 573,
      signalFocusMaxSingleStepChanged = 574,
      signalFocusBacklashChanged = 575,
      signalFocusAFOverscanChanged = 576,
      signalFocusOverscanDelayChanged = 577,
      signalFocusCaptureTimeoutChanged = 578,
      signalFocusMotionTimeoutChanged = 579,
      signalFocusCFZAlgorithmChanged = 580,
      signalFocusCFZToleranceChanged = 581,
      signalFocusCFZTauChanged = 582,
      signalFocusCFZDisplayVCurveChanged = 583,
      signalFocusCFZWavelengthChanged = 584,
      signalFocusCFZApertureChanged = 585,
      signalFocusCFZFNumberChanged = 586,
      signalFocusCFZSeeingChanged = 587,
      signalFocusCFZStepSizeChanged = 588,
      signalFocusAdvHelpOnlyChangesChanged = 589,
      signalFocusAdvUpdateParamsChanged = 590,
      signalFocusAdvFindStarsChanged = 591,
      signalFocusAdvCourseAdjChanged = 592,
      signalFocusAdvFineAdjChanged = 593,
      signalFocusSplitterChanged = 594,
      signalRightLayoutChanged = 595,
      signalAdaptFocusBFOChanged = 596,
      signalAbInsTileSelectionChanged = 597,
      signalAbInsShowLabelsChanged = 598,
      signalAbInsShowCFZChanged = 599,
      signalAbInsOptCentresChanged = 600,
      signalAbInsHSplitterChanged = 601,
      signalAbInsVSplitterChanged = 602,
      signalAbInsSelectionChanged = 603,
      signalAbInsThemeChanged = 604,
      signalAbInsLabelsChanged = 605,
      signalAbInsSensorChanged = 606,
      signalAbInsPetzvalWireChanged = 607,
      signalAbInsPetzvalSurfaceChanged = 608,
      signalTiltPlateTypeChanged = 609,
      signalTiltRadiusChanged = 610,
      signalTiltThreadIndexChanged = 611,
      signalTiltScrewPitchChanged = 612,
      signalTiltRotationChanged = 613,
      signalTiltModeChanged = 614,
      signalTiltPlatePresentChanged = 615,
      signalFocusSextractorTypeChanged = 616,
      signalFocusOptionsProfileChanged = 617,
      signalHFRSextractorTypeChanged = 618,
      signalHFROptionsProfileChanged = 619,
      signalGuideSextractorTypeChanged = 620,
      signalGuideOptionsProfileChanged = 621,
      signalSolveSextractorTypeChanged = 622,
      signalSolverModeChanged = 623,
      signalSolverTypeChanged = 624,
      signalSolveOptionsProfileChanged = 625,
      signalLoggerLevelChanged = 626,
      signalAstrometryLogToFileChanged = 627,
      signalAstrometryLogFilepathChanged = 628,
      signalAstrometryIndexFolderListChanged = 629,
      signalAlignExposureChanged = 630,
      signalAlignBinningChanged = 631,
      signalAlignGainChanged = 632,
      signalAlignISOChanged = 633,
      signalAlignDarkFrameChanged = 634,
      signalAlignFilterChanged = 635,
      signalAlignUseCurrentFilterChanged = 636,
      signalAstrometryUseRotatorChanged = 637,
      signalAstrometryRotatorThresholdChanged = 638,
      signalAstrometryFlipRotationAllowedChanged = 639,
      signalRotatorParityReversedChanged = 640,
      signalAstrometrySolverWCSChanged = 641,
      signalAstrometrySolverOverlayChanged = 642,
      signalAstrometryDifferentialSlewingChanged = 643,
      signalAlignAccuracyThresholdChanged = 644,
      signalAlignSettlingTimeChanged = 645,
      signalAstrometryUseNoFITS2FITSChanged = 646,
      signalAstrometryUseResortChanged = 647,
      signalAstrometryUseNoVerifyChanged = 648,
      signalAstrometryUseImageScaleChanged = 649,
      signalAstrometryImageScaleLowChanged = 650,
      signalAstrometryImageScaleHighChanged = 651,
      signalAstrometryAutoUpdateImageScaleChanged = 652,
      signalAstrometryImageScaleUnitsChanged = 653,
      signalAstrometryUseDownsampleChanged = 654,
      signalAstrometryDownsampleChanged = 655,
      signalAstrometryAutoDownsampleChanged = 656,
      signalAstrometryDynamicThresholdChanged = 657,
      signalAstrometryUsePositionChanged = 658,
      signalAstrometryPositionRAChanged = 659,
      signalAstrometryPositionDEChanged = 660,
      signalAstrometryAutoUpdatePositionChanged = 661,
      signalAstrometryRadiusChanged = 662,
      signalAstrometryDetectParityChanged = 663,
      signalAstrometryCustomOptionsChanged = 664,
      signalAstrometrySolverBinaryChanged = 665,
      signalAstrometryWCSInfoChanged = 666,
      signalAstrometryConfFileChanged = 667,
      signalSextractorBinaryChanged = 668,
      signalWatneyBinaryChanged = 669,
      signalAstrometryAPIKeyChanged = 670,
      signalAstrometryAPIURLChanged = 671,
      signalAstrometryUseJPEGChanged = 672,
      signalAstrometryTimeoutChanged = 673,
      signalPAHMountSpeedChanged = 674,
      signalPAHRotaionChanged = 675,
      signalPAHRefreshAlgorithmChanged = 676,
      signalPAHDirectionChanged = 677,
      signalPAHAutoParkChanged = 678,
      signalPAHManualSlewChanged = 679,
      signalPAHExposureChanged = 680,
      signalPAHAutoPACCorrectionChanged = 681,
      signalPAHAutoChangeDirectionChanged = 682,
      signalPAHSuccessThresholdChanged = 683,
      signalPAHCorrectionTimeoutChanged = 684,
      signalGuideExposureChanged = 685,
      signalGuideDelayChanged = 686,
      signalGuiderTypeChanged = 687,
      signalGuideAlgorithmChanged = 688,
      signalRAGuidePulseAlgorithmChanged = 689,
      signalDECGuidePulseAlgorithmChanged = 690,
      signalAIGuiderWeightsFileChanged = 691,
      signalAIPredictionGainChanged = 692,
      signalAIProportionalBackoffChanged = 693,
      signalAIPIDAutoTuneChanged = 694,
      signalAIShadowModeChanged = 695,
      signalPHD2HostChanged = 696,
      signalPHD2PortChanged = 697,
      signalLinGuiderHostChanged = 698,
      signalLinGuiderPortChanged = 699,
      signalCalibrationPulseDurationChanged = 700,
      signalCalibrationMaxMoveChanged = 701,
      signalGuideSquareSizeChanged = 702,
      signalGuideBinningChanged = 703,
      signalGuideAutoStarChanged = 704,
      signalGuideShowFrameChanged = 705,
      signalGuideAutoSquareSizeEnabledChanged = 706,
      signalAutoModeIterationsChanged = 707,
      signalGuideLostStarTimeoutChanged = 708,
      signalGuideCalibrationTimeoutChanged = 709,
      signalGuideMaxDeltaRMSChanged = 710,
      signalGuideMaxHFRChanged = 711,
      signalMinDetectionsSEPMultistarChanged = 712,
      signalMaxMultistarReferenceStarsChanged = 713,
      signalAlwaysInventGuideStarChanged = 714,
      signalTwoAxisEnabledChanged = 715,
      signalUseGuideHeadChanged = 716,
      signalSaveGuideLogChanged = 717,
      signalGuideDarkFrameChanged = 718,
      signalGuideSubframeChanged = 719,
      signalDitherPixelsChanged = 720,
      signalDitherFramesChanged = 721,
      signalDitherSettleChanged = 722,
      signalDitherThresholdChanged = 723,
      signalDitherTimeoutChanged = 724,
      signalDitherMaxIterationsChanged = 725,
      signalDitherNoGuidingPulseChanged = 726,
      signalDitherFailAbortsAutoGuideChanged = 727,
      signalDitherWithOnePulseChanged = 728,
      signalDitherEnabledChanged = 729,
      signalDitherNoGuidingChanged = 730,
      signalRAGuideEnabledChanged = 731,
      signalDECGuideEnabledChanged = 732,
      signalNorthDECGuideEnabledChanged = 733,
      signalSouthDECGuideEnabledChanged = 734,
      signalEastRAGuideEnabledChanged = 735,
      signalWestRAGuideEnabledChanged = 736,
      signalRAProportionalGainChanged = 737,
      signalDECProportionalGainChanged = 738,
      signalRAIntegralGainChanged = 739,
      signalDECIntegralGainChanged = 740,
      signalRAMinimumPulseArcSecChanged = 741,
      signalDECMinimumPulseArcSecChanged = 742,
      signalRAMaximumPulseArcSecChanged = 743,
      signalDECMaximumPulseArcSecChanged = 744,
      signalGPGEnabledChanged = 745,
      signalGPGDarkGuidingChanged = 746,
      signalGPGDarkGuidingIntervalChanged = 747,
      signalAIDarkGuidingChanged = 748,
      signalAIDarkGuidingIntervalChanged = 749,
      signalGPGcWeightChanged = 750,
      signalGPGMinPeriodsForInferenceChanged = 751,
      signalGPGMinMoveChanged = 752,
      signalGPGSE0KLengthScaleChanged = 753,
      signalGPGSE0KSignalVarianceChanged = 754,
      signalGPGPKLengthScaleChanged = 755,
      signalGPGPeriodChanged = 756,
      signalGPGPKSignalVarianceChanged = 757,
      signalGPGSE1KLengthScaleChanged = 758,
      signalGPGSE1KSignalVarianceChanged = 759,
      signalGPGMinPeriodsForPeriodEstimateChanged = 760,
      signalGPGPointsForApproximationChanged = 761,
      signalGPGpWeightChanged = 762,
      signalGPGEstimatePeriodChanged = 763,
      signalGuiderAccuracyThresholdChanged = 764,
      signalRADisplayedOnGuideGraphChanged = 765,
      signalDEDisplayedOnGuideGraphChanged = 766,
      signalRACorrDisplayedOnGuideGraphChanged = 767,
      signalDECorrDisplayedOnGuideGraphChanged = 768,
      signalSNRDisplayedOnGuideGraphChanged = 769,
      signalRMSDisplayedOnGuideGraphChanged = 770,
      signalRAHysteresisChanged = 771,
      signalDECHysteresisChanged = 772,
      signalSchedulerAlgorithmChanged = 773,
      signalSchedulerLoggingChanged = 774,
      signalStopEkosAfterShutdownChanged = 775,
      signalShutdownScriptTerminatesINDIChanged = 776,
      signalCameraWarmupEnabledChanged = 777,
      signalCameraWarmupRampChanged = 778,
      signalPreemptiveShutdownChanged = 779,
      signalResetMountModelOnAlignFailChanged = 780,
      signalResetMountModelBeforeJobChanged = 781,
      signalResetGuideCalibrationChanged = 782,
      signalForceAlignmentBeforeJobChanged = 783,
      signalReuseGuideCalibrationChanged = 784,
      signalReverseDecOnPierSideChangeChanged = 785,
      signalGuideCalibrationBacklashChanged = 786,
      signalAssumeDecOrthogonalChanged = 787,
      signalSerializedCalibrationChanged = 788,
      signalRealignAfterCalibrationFailureChanged = 789,
      signalPreemptiveShutdownTimeChanged = 790,
      signalRememberJobProgressChanged = 791,
      signalGreedySchedulingChanged = 792,
      signalLeadTimeChanged = 793,
      signalPreDawnTimeChanged = 794,
      signalDawnOffsetChanged = 795,
      signalDuskOffsetChanged = 796,
      signalTelescopeFocalLengthChanged = 797,
      signalTelescopeFocalReducerChanged = 798,
      signalCameraPixelWidthChanged = 799,
      signalCameraPixelHeightChanged = 800,
      signalCameraWidthChanged = 801,
      signalCameraHeightChanged = 802,
      signalCameraRotationChanged = 803,
      signalErrorHandlingStrategyChanged = 804,
      signalErrorHandlingStrategyDelayChanged = 805,
      signalRescheduleErrorsChanged = 806,
      signalAlignCheckFrequencyChanged = 807,
      signalAlignCheckThresholdChanged = 808,
      signalSchedulerTrackStepChanged = 809,
      signalSchedulerStartupEnabledChanged = 810,
      signalSchedulerPreStartupScriptChanged = 811,
      signalSchedulerPostStartupScriptChanged = 812,
      signalSchedulerShutdownEnabledChanged = 813,
      signalSchedulerPreShutdownScriptChanged = 814,
      signalSchedulerPostShutdownScriptChanged = 815,
      signalSchedulerFocusStepChanged = 816,
      signalSchedulerGuideStepChanged = 817,
      signalSchedulerAlignStepChanged = 818,
      signalSchedulerAltitudeChanged = 819,
      signalSchedulerAltitudeValueChanged = 820,
      signalSchedulerHorizonChanged = 821,
      signalSchedulerMoonSeparationChanged = 822,
      signalSchedulerMoonSeparationValueChanged = 823,
      signalSchedulerMoonAltitudeChanged = 824,
      signalSchedulerMoonAltitudeMaxValueChanged = 825,
      signalSchedulerWeatherChanged = 826,
      signalSchedulerWeatherGracePeriodChanged = 827,
      signalSchedulerWeatherShutdownDelayChanged = 828,
      signalSchedulerSafetyMonitorConnectionStringChanged = 829,
      signalSchedulerTwilightChanged = 830,
      signalSchedulerCompleteSequencesChanged = 831,
      signalSchedulerRepeatEverythingChanged = 832,
      signalSchedulerRepeatSequencesChanged = 833,
      signalSchedulerUntilTerminatedChanged = 834,
      signalSchedulerUntilChanged = 835,
      signalSchedulerUntilValueChanged = 836,
      signalSchedulerExecutionSequencesLimitChanged = 837,
      signalAnalyzeRestartWithEkosChanged = 838,
      signalAnalyzeAlternativeDirectoryNameChanged = 839,
      signalAnalyzeHFRChanged = 840,
      signalAnalyzeNumCaptureStarsChanged = 841,
      signalAnalyzeMedianChanged = 842,
      signalAnalyzeEccentricityChanged = 843,
      signalAnalyzeTemperatureChanged = 844,
      signalFocusPositionChanged = 845,
      signalAnalyzeNumStarsChanged = 846,
      signalAnalyzeSkyBgChanged = 847,
      signalAnalyzeSNRChanged = 848,
      signalAnalyzeRAChanged = 849,
      signalAnalyzeDECChanged = 850,
      signalAnalyzeRApChanged = 851,
      signalAnalyzeDECpChanged = 852,
      signalAnalyzeDriftChanged = 853,
      signalAnalyzeRMSChanged = 854,
      signalAnalyzeTargetDistanceChanged = 855,
      signalAnalyzeRMSCChanged = 856,
      signalAnalyzeMountRAChanged = 857,
      signalAnalyzeMountDECChanged = 858,
      signalAnalyzeMountHAChanged = 859,
      signalAnalyzeAzChanged = 860,
      signalAnalyzeAltChanged = 861,
      signalAnalyzePierSideChanged = 862,
      signalAnalyzeStatsYAxisChanged = 863,
      signalLastServerChanged = 864,
      signalLastServerPortChanged = 865,
      signalLastWebManagerPortChanged = 866,
      signalHIPSMemoryCacheChanged = 867,
      signalHIPSNetCacheChanged = 868,
      signalHIPSSourceChanged = 869,
      signalHIPSBiLinearInterpolationChanged = 870,
      signalHIPSShowGridChanged = 871,
      signalHIPSPanningChanged = 872,
      signalShowHIPSChanged = 873,
      signalHIPSUseOfflineSourceChanged = 874,
      signalHIPSOfflinePathChanged = 875,
      signalTerrainSourceChanged = 876,
      signalTerrainSourceCorrectAzChanged = 877,
      signalTerrainSourceCorrectAltChanged = 878,
      signalTerrainDownsamplingChanged = 879,
      signalTerrainPanningChanged = 880,
      signalShowTerrainChanged = 881,
      signalTerrainSkipSpeedupChanged = 882,
      signalTerrainTransparencySpeedupChanged = 883,
      signalTerrainSmoothPixelsChanged = 884,
      signalShowImageOverlaysChanged = 885,
      signalShowImageOverlaysBelowCatalogsChanged = 886,
      signalShowSelectedImageOverlayChanged = 887,
      signalImageOverlayMaxDimensionChanged = 888,
      signalImageOverlayTimeoutChanged = 889,
      signalImageOverlayDefaultScaleChanged = 890,
      signalDefaultObservatoryWeatherSourceChanged = 891,
      signalWarningActionsActiveChanged = 892,
      signalAlertActionsActiveChanged = 893,
      signalWeatherWarningCloseDomeChanged = 894,
      signalWeatherWarningCloseShutterChanged = 895,
      signalWeatherWarningStopSchedulerChanged = 896,
      signalWeatherWarningDelayChanged = 897,
      signalWeatherAlertCloseDomeChanged = 898,
      signalWeatherAlertCloseShutterChanged = 899,
      signalWeatherAlertStopSchedulerChanged = 900,
      signalWeatherAlertDelayChanged = 901,
      signalObservatoryStatusUseDomeChanged = 902,
      signalObservatoryStatusUseShutterChanged = 903,
      signalObservatoryStatusUseWeatherChanged = 904,
      signalWeatherAutoScaleValuesChanged = 905,
      signalASTAPExecutableChanged = 906,
      signalASTAPDownSampleChanged = 907,
      signalASTAPDownSampleValueChanged = 908,
      signalASTAPSearchRadiusChanged = 909,
      signalASTAPSearchRadiusValueChanged = 910,
      signalASTAPUpdateFITSChanged = 911,
      signalASTAPLargeSearchWindowChanged = 912,
      signalMosaicTransparencyAutoChanged = 913,
      signalMosaicTransparencyLevelChanged = 914,
      signalMCPEnabledChanged = 915,
      signalMCPPortChanged = 916,
      signalMCPReadOnlyModeChanged = 917,
      signalMCPDisabledToolsChanged = 918
    };

  Q_SIGNALS:
    void PositionTimeBoxChanged();

    void PositionFocusBoxChanged();

    void PositionGeoBoxChanged();

    void ShadeTimeBoxChanged();

    void ShadeFocusBoxChanged();

    void ShadeGeoBoxChanged();

    void ShowInfoBoxesChanged();

    void ShowTimeBoxChanged();

    void ShowFocusBoxChanged();

    void ShowGeoBoxChanged();

    void StickyTimeBoxChanged();

    void StickyFocusBoxChanged();

    void StickyGeoBoxChanged();

    void ShowStatusBarChanged();

    void ShowAltAzFieldChanged();

    void ShowRADecFieldChanged();

    void ShowJ2000RADecFieldChanged();

    void ShowSensorFOVChanged();

    void WindowWidthChanged();

    void WindowHeightChanged();

    void KStarsGeometryChanged();

    void RunStartupWizardChanged();

    void CurrentThemeChanged();

    void CatalogFileChanged();

    void ShowCatalogChanged();

    void ShowCatalogNamesChanged();

    void ResolveNamesOnlineChanged();

    void DSOCachePercentageChanged();

    void DSOMinZoomFactorChanged();

    void DSOCatalogFilenameChanged();

    void DSODefaultCatalogFilenameChanged();

    void INDIWindowWidthChanged();

    void INDIWindowHeightChanged();

    void INDIWindowGeometryChanged();

    void useGeographicUpdateChanged();

    void useTimeUpdateChanged();

    void independentWindowINDIChanged();

    void showTargetCrosshairChanged();

    void showINDIMessagesChanged();

    void showINDIwindowInitiallyChanged();

    void maxFocusFrameFilesChanged();

    void messageNotificationINDIChanged();

    void timeSourceChanged();

    void locationSourceChanged();

    void useExternalSkyMapChanged();

    void fitsDirChanged();

    void serverTransferBufferSizeChanged();

    void serverPortStartChanged();

    void serverPortEndChanged();

    void indiServerChanged();

    void indiServerIsInternalChanged();

    void indiDriversDirChanged();

    void indiDriversAreInternalChanged();

    void streamWindowWidthChanged();

    void streamWindowHeightChanged();

    void INDIMountLoggingChanged();

    void INDIFocuserLoggingChanged();

    void INDICCDLoggingChanged();

    void INDIFilterWheelLoggingChanged();

    void INDIDomeLoggingChanged();

    void INDIDetectorLoggingChanged();

    void INDIWeatherLoggingChanged();

    void INDIAuxiliaryLoggingChanged();

    void INDIRotatorLoggingChanged();

    void INDIGPSLoggingChanged();

    void INDIAOLoggingChanged();

    void CityNameChanged();

    void ProvinceNameChanged();

    void CountryNameChanged();

    void LongitudeChanged();

    void LatitudeChanged();

    void ElevationChanged();

    void TimeZoneChanged();

    void DSTChanged();

    void UseAnimatedSlewingChanged();

    void LeftClickSelectsObjectChanged();

    void DefaultCursorChanged();

    void FOVNamesChanged();

    void FadePlanetTrailsChanged();

    void FocusRAChanged();

    void FocusDecChanged();

    void FocusObjectChanged();

    void IsTrackingChanged();

    void HideOnSlewChanged();

    void HideCBoundsChanged();

    void HideCLinesChanged();

    void SkyCultureChanged();

    void HideCNamesChanged();

    void HideGridsChanged();

    void HideMilkyWayChanged();

    void HideOtherChanged();

    void HidePlanetsChanged();

    void HideStarsChanged();

    void HideLabelsChanged();

    void ShowAsteroidsChanged();

    void ShowAsteroidNamesChanged();

    void OrbitalElementsAutoUpdateChanged();

    void ShowCometsChanged();

    void ShowCometComasChanged();

    void ShowCometNamesChanged();

    void ShowSupernovaeChanged();

    void ShowSupernovaNamesChanged();

    void MagnitudeLimitShowSupernovaeChanged();

    void SupernovaDetectionAgeChanged();

    void SupernovaDownloadUrlChanged();

    void LimitSupernovaeByZoomChanged();

    void SupernovaeHostOnlyChanged();

    void SupernovaeClassifiedOnlyChanged();

    void ShowSupernovaAlertsChanged();

    void MagnitudeLimitAlertSupernovaeChanged();

    void ShowCBoundsChanged();

    void ShowHighlightedCBoundChanged();

    void ShowCLinesChanged();

    void ShowConstellationArtChanged();

    void ShowCNamesChanged();

    void ShowDeepSkyChanged();

    void ShowEclipticChanged();

    void ShowEquatorChanged();

    void AutoSelectGridChanged();

    void ShowEquatorialGridChanged();

    void ShowHorizontalGridChanged();

    void ShowLocalMeridianChanged();

    void ShowGroundChanged();

    void ShowHorizonChanged();

    void ShowFlagsChanged();

    void SimulateDaytimeChanged();

    void ShowOtherChanged();

    void ShowMilkyWayChanged();

    void FillMilkyWayChanged();

    void ShowSolarSystemChanged();

    void ShowPlanetImagesChanged();

    void ShowPlanetNamesChanged();

    void ShowSunChanged();

    void SunScaleChanged();

    void ShowMoonChanged();

    void MoonScaleChanged();

    void ShowMercuryChanged();

    void ShowVenusChanged();

    void ShowMarsChanged();

    void ShowJupiterChanged();

    void ShowSaturnChanged();

    void ShowUranusChanged();

    void ShowNeptuneChanged();

    void ShowPlutoChanged();

    void ShowStarsChanged();

    void ShowStarMagnitudesChanged();

    void ShowStarsOverHIPSChanged();

    void ShowStarNamesChanged();

    void ShowDeepSkyMagnitudesChanged();

    void ShowDeepSkyNamesChanged();

    void ShowMosaicPanelChanged();

    void SlewTimeScaleChanged();

    void BoxBGModeChanged();

    void ProjectionChanged();

    void UseAbbrevConstellNamesChanged();

    void UseLatinConstellNamesChanged();

    void UseLocalConstellNamesChanged();

    void UseAltAzChanged();

    void UseAutoLabelChanged();

    void UseAutoTrailChanged();

    void UseHoverLabelChanged();

    void UseRefractionChanged();

    void UseRelativisticChanged();

    void UseAntialiasChanged();

    void ZoomFactorChanged();

    void SkyRotationChanged();

    void MirrorSkyMapChanged();

    void ErectObserverCorrectionChanged();

    void ZoomScrollFactorChanged();

    void MagLimitAsteroidChanged();

    void MagLimitAsteroidDownloadChanged();

    void AsteroidLabelDensityChanged();

    void MagLimitDrawDeepSkyChanged();

    void MagLimitDrawDeepSkyZoomOutChanged();

    void ShowUnknownMagObjectsChanged();

    void ShowInlineImagesChanged();

    void StarDensityChanged();

    void MagLimitHideStarChanged();

    void StarLabelDensityChanged();

    void DeepSkyLabelDensityChanged();

    void DeepSkyLongLabelsChanged();

    void LabelFontScalingChanged();

    void MaxRadCometNameChanged();

    void UseGLChanged();

    void RunClockChanged();

    void ImagingPlannerAcceptOpenClusterChanged();

    void ImagingPlannerAcceptNebulaChanged();

    void ImagingPlannerAcceptGlobularClusterChanged();

    void ImagingPlannerAcceptPlanetaryChanged();

    void ImagingPlannerAcceptSupernovaRemnantChanged();

    void ImagingPlannerAcceptGalaxyChanged();

    void ImagingPlannerAcceptGalaxyClusterChanged();

    void ImagingPlannerAcceptDarkNebulaChanged();

    void ImagingPlannerAcceptOtherChanged();

    void AstrobinAwardChanged();

    void AstrobinMinRadiusChanged();

    void AstrobinMaxRadiusChanged();

    void ImagingPlannerUseArtificialHorizonChanged();

    void ImagingPlannerMinHoursChanged();

    void ImagingPlannerMinAltitudeChanged();

    void ImagingPlannerMinMoonSeparationChanged();

    void ImagingPlannerMaxMoonAltitudeChanged();

    void ImagingPlannerShowPickedChanged();

    void ImagingPlannerShowNotPickedChanged();

    void ImagingPlannerDontCarePickedChanged();

    void ImagingPlannerShowKeywordChanged();

    void ImagingPlannerShowNotKeywordChanged();

    void ImagingPlannerDontCareKeywordChanged();

    void ImagingPlannerKeywordChanged();

    void ImagingPlannerShowImagedChanged();

    void ImagingPlannerShowNotImagedChanged();

    void ImagingPlannerDontCareImagedChanged();

    void ImagingPlannerShowAddedChanged();

    void ImagingPlannerShowNotAddedChanged();

    void ImagingPlannerDontCareAddedChanged();

    void ImagingPlannerShowIgnoredChanged();

    void ImagingPlannerShowNotIgnoredChanged();

    void ImagingPlannerDontCareIgnoredChanged();

    void ImagingPlannerHideAstrobinDetailsChanged();

    void ImagingPlannerHideFiltersChanged();

    void ImagingPlannerHideImageChanged();

    void ImagingPlannerHideAltitudeGraphChanged();

    void ImagingPlannerCatalogPathChanged();

    void ImagingPlannerCenterOnSkyMapChanged();

    void ImagingPlannerIndependentWindowChanged();

    void ImagingPlannerStartSolvingImmediatelyChanged();

    void ObsListSymbolChanged();

    void ObsListTextChanged();

    void ObsListPreferDSSChanged();

    void ObsListPreferSDSSChanged();

    void ObsListDemoteHoleChanged();

    void ObsListHoleSizeChanged();

    void ObsListCoverageChanged();

    void ColorSchemeFileChanged();

    void StarColorModeChanged();

    void StarColorIntensityChanged();

    void DomeSlitInvertedChanged();

    void AngularRulerColorChanged();

    void BoxBGColorChanged();

    void BoxGrabColorChanged();

    void BoxTextColorChanged();

    void CBoundColorChanged();

    void CBoundHighColorChanged();

    void CLineColorChanged();

    void CNameColorChanged();

    void CompassColorChanged();

    void EclipticColorChanged();

    void EquatorColorChanged();

    void EquatorialGridColorChanged();

    void HorizontalGridColorChanged();

    void SpecialObjectColorChanged();

    void HorizonColorChanged();

    void LocalMeridianColorChanged();

    void MilkyWayWColorChanged();

    void StarNameColorChanged();

    void DeepSkyNameColorChanged();

    void PlanetNameColorChanged();

    void PlanetTrailColorChanged();

    void SkyColorChanged();

    void SkyColorDaytimeChanged();

    void ArtificialHorizonColorChanged();

    void TelescopeTargetColorChanged();

    void VisibleSatColorChanged();

    void SatColorChanged();

    void SatLabelColorChanged();

    void SupernovaColorChanged();

    void AsteroidColorChanged();

    void UserLabelColorChanged();

    void RAGuideColorChanged();

    void DEGuideColorChanged();

    void SolverFOVColorChanged();

    void xplanetIsInternalChanged();

    void XplanetPathChanged();

    void XplanetUseFIFOChanged();

    void XplanetTimeoutChanged();

    void XplanetAnimationDelayChanged();

    void XplanetWidthChanged();

    void XplanetHeightChanged();

    void XplanetLabelChanged();

    void XplanetLabelLocalTimeChanged();

    void XplanetLabelGMTChanged();

    void XplanetLabelStringChanged();

    void XplanetFontSizeChanged();

    void XplanetColorChanged();

    void XplanetDateFormatChanged();

    void XplanetLabelTLChanged();

    void XplanetLabelTRChanged();

    void XplanetLabelBRChanged();

    void XplanetLabelBLChanged();

    void XplanetGlareChanged();

    void XplanetRandomChanged();

    void XplanetLatLongChanged();

    void XplanetLatitudeChanged();

    void XplanetLongitudeChanged();

    void XplanetProjectionChanged();

    void XplanetBackgroundChanged();

    void XplanetBackgroundImageChanged();

    void XplanetBackgroundImagePathChanged();

    void XplanetBackgroundColorChanged();

    void XplanetBackgroundColorValueChanged();

    void XplanetMagnitudeChanged();

    void XplanetArcFileChanged();

    void XplanetArcFilePathChanged();

    void XplanetConfigFileChanged();

    void XplanetConfigFilePathChanged();

    void XplanetFOVChanged();

    void XplanetMarkerFileChanged();

    void XplanetMarkerFilePathChanged();

    void XplanetMarkerBoundsChanged();

    void XplanetMarkerBoundsPathChanged();

    void XplanetStarmapChanged();

    void XplanetStarmapPathChanged();

    void XplanetQualityChanged();

    void ShowSatellitesChanged();

    void ShowVisibleSatellitesChanged();

    void DrawSatellitesLikeStarsChanged();

    void ShowSatellitesLabelsChanged();

    void SelectedSatellitesChanged();

    void KStarsFirstRunChanged();

    void AlwaysRecomputeCoordinatesChanged();

    void DefaultDSSImageSizeChanged();

    void DSSPaddingChanged();

    void VerboseLoggingChanged();

    void RegularLoggingChanged();

    void DisableLoggingChanged();

    void LogToDefaultChanged();

    void LogToFileChanged();

    void FITSLoggingChanged();

    void INDILoggingChanged();

    void CaptureLoggingChanged();

    void FocusLoggingChanged();

    void SaveGuideImagesChanged();

    void SaveAlignImagesChanged();

    void SaveFailedAlignImagesChanged();

    void DontSyncToRealTimeChanged();

    void GuideLoggingChanged();

    void AlignmentLoggingChanged();

    void MountLoggingChanged();

    void ObservatoryLoggingChanged();

    void ImageDebayerEngineChanged();

    void ImageDebayerAlgoChanged();

    void StackDebayerEngineChanged();

    void StackDebayerAlgoChanged();

    void FITSWindowGeometryChanged();

    void useFITSViewerChanged();

    void singlePreviewFITSChanged();

    void singleWindowCapturedFITSChanged();

    void singleWindowOpenedFITSChanged();

    void focusFITSOnNewImageChanged();

    void independentWindowFITSChanged();

    void liveStackerOwnProcessChanged();

    void AutoDebayerChanged();

    void Auto3DCubeChanged();

    void AutoHFRChanged();

    void QuickHFRChanged();

    void StellarSolverPartitionChanged();

    void AutoWCSChanged();

    void LimitedResourcesModeChanged();

    void NonLinearHistogramChanged();

    void HIPSOpacityChanged();

    void HIPSOffsetXChanged();

    void HIPSOffsetYChanged();

    void FitsSolverProfileChanged();

    void FitsSolverModuleChanged();

    void FitsSolverProfileIndecesChanged();

    void FitsCatalogChanged();

    void FitsCatObjShowNamesChanged();

    void FitsSolverUseScaleChanged();

    void FitsSolverUsePositionChanged();

    void FitsSolverScaleChanged();

    void FitsSolverImageScaleUnitsChanged();

    void FitsSolverRadiusChanged();

    void fitsLSHideGeneralChanged();

    void fitsLSHideCalibrationChanged();

    void fitsLSHideAlignmentChanged();

    void fitsLSHideStackingChanged();

    void fitsLSHidePostProcChanged();

    void fitsLSCalcSNRChanged();

    void fitsLSMasterDarkChanged();

    void fitsLSMasterFlatChanged();

    void fitsLSHotPixelsChanged();

    void fitsLSColdPixelsChanged();

    void fitsLSAlignMethodChanged();

    void fitsLSNumInMemChanged();

    void fitsLSDownscaleChanged();

    void fitsLSWeightingChanged();

    void fitsLSNormalizationChanged();

    void fitsLSStackingMethodChanged();

    void fitsLSLowSigmaChanged();

    void fitsLSHighSigmaChanged();

    void fitsLSWinsorCutoffChanged();

    void fitsLSIterationsChanged();

    void fitsLSKappaChanged();

    void fitsLSAlphaChanged();

    void fitsLSSigmaChanged();

    void fitsPSFUpdateChanged();

    void fitsLSPostProcChanged();

    void fitsLSGradientAmtChanged();

    void fitsLSDeconvAmtChanged();

    void fitsLSPSFSigmaChanged();

    void fitsLSDenoiseAmtChanged();

    void fitsLSSharpenAmtChanged();

    void fitsLSSharpenKernalChanged();

    void fitsLSSharpenSigmaChanged();

    void fitsLSMWindowGeometryChanged();

    void fitsLSMVisibleColumnsChanged();

    void fitsLSMColumnWidthsChanged();

    void fitsLSMSortColumnChanged();

    void fitsLSMSortOrderChanged();

    void fitsLSMHighlightingChanged();

    void fitsLSWebcastTitleChanged();

    void fitsLSWebcastLogoLChanged();

    void fitsLSWebcastLogoRChanged();

    void fitsLSWebcastPortChanged();

    void fitsLSWebcastThrottleChanged();

    void BortleClassChanged();

    void TelescopeCheckChanged();

    void BinocularsCheckChanged();

    void BinocularsApertureChanged();

    void ScopeListIndexChanged();

    void EkosWindowWidthChanged();

    void EkosWindowHeightChanged();

    void EkosGeometryChanged();

    void EkosTopIconsChanged();

    void EkosLeftIconsChanged();

    void independentWindowEkosChanged();

    void profileChanged();

    void neverLoadConfigChanged();

    void loadConfigOnConnectionChanged();

    void loadDefaultConfigChanged();

    void autoLoadSerialAssistantChanged();

    void RememberCredentialsChanged();

    void AutoStartEkosLiveChanged();

    void EkosLiveUsernameChanged();

    void EkosLiveObservatoryChanged();

    void EkosLiveOfflineServerChanged();

    void EkosLiveOnlineServerChanged();

    void EkosLiveSoundChanged();

    void EkosLiveNotificationsChanged();

    void EkosLiveCloudChanged();

    void MaxDarkTemperatureDiffChanged();

    void shutterfulCCDsChanged();

    void shutterlessCCDsChanged();

    void DarkLibraryDurationChanged();

    void UseGraphicalCountsDisplayChanged();

    void MinimumAltLimitChanged();

    void MaximumAltLimitChanged();

    void EnableAltitudeLimitsChanged();

    void EnableAltitudeLimitsTrackingOnlyChanged();

    void ConfirmBelowHorizonChanged();

    void MeridianFlipOffsetDegreesChanged();

    void MaximumHaLimitChanged();

    void EnableHaLimitChanged();

    void ExecuteMeridianFlipChanged();

    void LeftRightReversedChanged();

    void UpDownReversedChanged();

    void ParkEveryDayChanged();

    void ParkTimeChanged();

    void DefaultObserverChanged();

    void SyncFOVPAChanged();

    void PAMultiplierChanged();

    void PAOffsetChanged();

    void PAPierSideChanged();

    void GuideDeviationChanged();

    void GuideDeviationRepsChanged();

    void StartGuideDeviationChanged();

    void GuideDitherPerJobFrequencyChanged();

    void HFRDeviationChanged();

    void MaxFocusTemperatureDeltaChanged();

    void AutoDarkChanged();

    void EnforceGuideDeviationChanged();

    void EnforceAutofocusHFRChanged();

    void EnforceAutofocusOnTemperatureChanged();

    void EnforceRefocusEveryNChanged();

    void RefocusEveryNChanged();

    void RefocusAfterMeridianFlipChanged();

    void ResetMountModelAfterMeridianChanged();

    void ForcedFlipChanged();

    void CalibrationADUValueChanged();

    void CalibrationADUValueToleranceChanged();

    void CalibrationPreActionIndexChanged();

    void CalibrationFlatDurationIndexChanged();

    void CalibrationWallAzChanged();

    void CalibrationWallAltChanged();

    void MaxTemperatureDiffChanged();

    void MaxStartGuiderDriftChanged();

    void EnforceStartGuiderDriftChanged();

    void GuidingSettleChanged();

    void AlwaysResetSequenceWhenStartingChanged();

    void FlatSyncFocusChanged();

    void HFRThresholdPercentageChanged();

    void HFRCheckAlgorithmChanged();

    void InSequenceCheckFramesChanged();

    void AutoStretchChanged();

    void StretchPreviewSamplingChanged();

    void Clipping64KValueChanged();

    void Clipping256ValueChanged();

    void AdaptiveSamplingChanged();

    void useSummaryPreviewChanged();

    void useDSLRImageViewerChanged();

    void ForceDSLRPresetsChanged();

    void CaptureDirectoryChanged();

    void PlaceholderFormatChanged();

    void RemoteCaptureDirectoryChanged();

    void ManualCoverTimeoutChanged();

    void CaptureOperationsTimeoutChanged();

    void MinFlipDurationChanged();

    void CapturePositionChanged();

    void CaptureTrainIDChanged();

    void CaptureCalibrationWallChanged();

    void CaptureCalibrationParkMountChanged();

    void CaptureCalibrationParkDomeChanged();

    void CaptureCalibrationUseManualChanged();

    void CaptureCalibrationUseADUChanged();

    void CaptureCalibrationADUValueChanged();

    void CaptureCalibrationADUToleranceChanged();

    void CaptureCalibrationSkyFlatsChanged();

    void AbsTicksSpinChanged();

    void FocusExposureChanged();

    void FocusBinningChanged();

    void FocusGainChanged();

    void FocusISOChanged();

    void DefaultFocusTemperatureSourceChanged();

    void FocusFilterChanged();

    void UseFocusDarkFrameChanged();

    void FocusSubFrameChanged();

    void FocusBoxSizeChanged();

    void FocusUseFullFieldChanged();

    void FocusNoMaskRBChanged();

    void focusRingMaskRBChanged();

    void focusMosaicMaskRBChanged();

    void FocusFullFieldInnerRadiusChanged();

    void FocusFullFieldOuterRadiusChanged();

    void FocusMosaicTileWidthChanged();

    void focusMosaicSpaceChanged();

    void FocusAutoStarEnabledChanged();

    void FocusSuspendGuidingChanged();

    void FocusGuideSettleTimeChanged();

    void FocusUnitsChanged();

    void FocusAdaptiveChanged();

    void focusAdaptiveMinMoveChanged();

    void FocusAdaptStartChanged();

    void focusAdaptiveMaxMoveChanged();

    void FocusDetectionChanged();

    void FocusSEPProfileChanged();

    void FocusAlgorithmChanged();

    void FocusCurveFitChanged();

    void FocusStarMeasureChanged();

    void FocusStarPSFChanged();

    void FocusUseWeightsChanged();

    void FocusR2LimitChanged();

    void FocusRefineCurveFitChanged();

    void focusFramesCountChanged();

    void focusHFRFramesCountChanged();

    void FocusMultiRowAverageChanged();

    void FocusGaussianSigmaChanged();

    void FocusThresholdChanged();

    void FocusDenoiseChanged();

    void FocusDonutChanged();

    void FocusTimeDilationChanged();

    void focusOutlierRejectionChanged();

    void focusScanStartPosChanged();

    void focusScanAlwaysOnChanged();

    void focusScanDatapointsChanged();

    void focusScanStepSizeFactorChanged();

    void FocusGaussianKernelSizeChanged();

    void FocusToleranceChanged();

    void FocusWalkChanged();

    void FocusSettleTimeChanged();

    void FocusTicksChanged();

    void FocusOutStepsChanged();

    void focusNumStepsChanged();

    void FocusMaxTravelChanged();

    void FocusMaxSingleStepChanged();

    void FocusBacklashChanged();

    void FocusAFOverscanChanged();

    void FocusOverscanDelayChanged();

    void FocusCaptureTimeoutChanged();

    void FocusMotionTimeoutChanged();

    void focusCFZAlgorithmChanged();

    void focusCFZToleranceChanged();

    void focusCFZTauChanged();

    void focusCFZDisplayVCurveChanged();

    void focusCFZWavelengthChanged();

    void focusCFZApertureChanged();

    void focusCFZFNumberChanged();

    void focusCFZSeeingChanged();

    void focusCFZStepSizeChanged();

    void focusAdvHelpOnlyChangesChanged();

    void focusAdvUpdateParamsChanged();

    void focusAdvFindStarsChanged();

    void focusAdvCourseAdjChanged();

    void focusAdvFineAdjChanged();

    void FocusSplitterChanged();

    void rightLayoutChanged();

    void adaptFocusBFOChanged();

    void abInsTileSelectionChanged();

    void abInsShowLabelsChanged();

    void abInsShowCFZChanged();

    void abInsOptCentresChanged();

    void abInsHSplitterChanged();

    void abInsVSplitterChanged();

    void abInsSelectionChanged();

    void abInsThemeChanged();

    void abInsLabelsChanged();

    void abInsSensorChanged();

    void abInsPetzvalWireChanged();

    void abInsPetzvalSurfaceChanged();

    void tiltPlateTypeChanged();

    void tiltRadiusChanged();

    void tiltThreadIndexChanged();

    void tiltScrewPitchChanged();

    void tiltRotationChanged();

    void tiltModeChanged();

    void tiltPlatePresentChanged();

    void FocusSextractorTypeChanged();

    void FocusOptionsProfileChanged();

    void HFRSextractorTypeChanged();

    void HFROptionsProfileChanged();

    void GuideSextractorTypeChanged();

    void GuideOptionsProfileChanged();

    void SolveSextractorTypeChanged();

    void SolverModeChanged();

    void SolverTypeChanged();

    void SolveOptionsProfileChanged();

    void LoggerLevelChanged();

    void AstrometryLogToFileChanged();

    void AstrometryLogFilepathChanged();

    void AstrometryIndexFolderListChanged();

    void AlignExposureChanged();

    void AlignBinningChanged();

    void AlignGainChanged();

    void AlignISOChanged();

    void AlignDarkFrameChanged();

    void AlignFilterChanged();

    void AlignUseCurrentFilterChanged();

    void AstrometryUseRotatorChanged();

    void AstrometryRotatorThresholdChanged();

    void AstrometryFlipRotationAllowedChanged();

    void RotatorParityReversedChanged();

    void AstrometrySolverWCSChanged();

    void AstrometrySolverOverlayChanged();

    void AstrometryDifferentialSlewingChanged();

    void AlignAccuracyThresholdChanged();

    void AlignSettlingTimeChanged();

    void AstrometryUseNoFITS2FITSChanged();

    void AstrometryUseResortChanged();

    void AstrometryUseNoVerifyChanged();

    void AstrometryUseImageScaleChanged();

    void AstrometryImageScaleLowChanged();

    void AstrometryImageScaleHighChanged();

    void AstrometryAutoUpdateImageScaleChanged();

    void AstrometryImageScaleUnitsChanged();

    void AstrometryUseDownsampleChanged();

    void AstrometryDownsampleChanged();

    void AstrometryAutoDownsampleChanged();

    void AstrometryDynamicThresholdChanged();

    void AstrometryUsePositionChanged();

    void AstrometryPositionRAChanged();

    void AstrometryPositionDEChanged();

    void AstrometryAutoUpdatePositionChanged();

    void AstrometryRadiusChanged();

    void AstrometryDetectParityChanged();

    void AstrometryCustomOptionsChanged();

    void AstrometrySolverBinaryChanged();

    void AstrometryWCSInfoChanged();

    void AstrometryConfFileChanged();

    void SextractorBinaryChanged();

    void WatneyBinaryChanged();

    void AstrometryAPIKeyChanged();

    void AstrometryAPIURLChanged();

    void AstrometryUseJPEGChanged();

    void AstrometryTimeoutChanged();

    void PAHMountSpeedChanged();

    void PAHRotaionChanged();

    void PAHRefreshAlgorithmChanged();

    void PAHDirectionChanged();

    void PAHAutoParkChanged();

    void PAHManualSlewChanged();

    void PAHExposureChanged();

    void PAHAutoPACCorrectionChanged();

    void PAHAutoChangeDirectionChanged();

    void PAHSuccessThresholdChanged();

    void PAHCorrectionTimeoutChanged();

    void GuideExposureChanged();

    void GuideDelayChanged();

    void GuiderTypeChanged();

    void GuideAlgorithmChanged();

    void RAGuidePulseAlgorithmChanged();

    void DECGuidePulseAlgorithmChanged();

    void AIGuiderWeightsFileChanged();

    void AIPredictionGainChanged();

    void AIProportionalBackoffChanged();

    void AIPIDAutoTuneChanged();

    void AIShadowModeChanged();

    void PHD2HostChanged();

    void PHD2PortChanged();

    void LinGuiderHostChanged();

    void LinGuiderPortChanged();

    void CalibrationPulseDurationChanged();

    void CalibrationMaxMoveChanged();

    void GuideSquareSizeChanged();

    void GuideBinningChanged();

    void GuideAutoStarChanged();

    void guideShowFrameChanged();

    void GuideAutoSquareSizeEnabledChanged();

    void AutoModeIterationsChanged();

    void GuideLostStarTimeoutChanged();

    void GuideCalibrationTimeoutChanged();

    void GuideMaxDeltaRMSChanged();

    void GuideMaxHFRChanged();

    void MinDetectionsSEPMultistarChanged();

    void MaxMultistarReferenceStarsChanged();

    void AlwaysInventGuideStarChanged();

    void TwoAxisEnabledChanged();

    void UseGuideHeadChanged();

    void SaveGuideLogChanged();

    void GuideDarkFrameChanged();

    void GuideSubframeChanged();

    void DitherPixelsChanged();

    void DitherFramesChanged();

    void DitherSettleChanged();

    void DitherThresholdChanged();

    void DitherTimeoutChanged();

    void DitherMaxIterationsChanged();

    void DitherNoGuidingPulseChanged();

    void DitherFailAbortsAutoGuideChanged();

    void DitherWithOnePulseChanged();

    void DitherEnabledChanged();

    void DitherNoGuidingChanged();

    void RAGuideEnabledChanged();

    void DECGuideEnabledChanged();

    void NorthDECGuideEnabledChanged();

    void SouthDECGuideEnabledChanged();

    void EastRAGuideEnabledChanged();

    void WestRAGuideEnabledChanged();

    void RAProportionalGainChanged();

    void DECProportionalGainChanged();

    void RAIntegralGainChanged();

    void DECIntegralGainChanged();

    void RAMinimumPulseArcSecChanged();

    void DECMinimumPulseArcSecChanged();

    void RAMaximumPulseArcSecChanged();

    void DECMaximumPulseArcSecChanged();

    void GPGEnabledChanged();

    void GPGDarkGuidingChanged();

    void GPGDarkGuidingIntervalChanged();

    void AIDarkGuidingChanged();

    void AIDarkGuidingIntervalChanged();

    void GPGcWeightChanged();

    void GPGMinPeriodsForInferenceChanged();

    void GPGMinMoveChanged();

    void GPGSE0KLengthScaleChanged();

    void GPGSE0KSignalVarianceChanged();

    void GPGPKLengthScaleChanged();

    void GPGPeriodChanged();

    void GPGPKSignalVarianceChanged();

    void GPGSE1KLengthScaleChanged();

    void GPGSE1KSignalVarianceChanged();

    void GPGMinPeriodsForPeriodEstimateChanged();

    void GPGPointsForApproximationChanged();

    void GPGpWeightChanged();

    void GPGEstimatePeriodChanged();

    void GuiderAccuracyThresholdChanged();

    void RADisplayedOnGuideGraphChanged();

    void DEDisplayedOnGuideGraphChanged();

    void RACorrDisplayedOnGuideGraphChanged();

    void DECorrDisplayedOnGuideGraphChanged();

    void SNRDisplayedOnGuideGraphChanged();

    void RMSDisplayedOnGuideGraphChanged();

    void RAHysteresisChanged();

    void DECHysteresisChanged();

    void SchedulerAlgorithmChanged();

    void SchedulerLoggingChanged();

    void StopEkosAfterShutdownChanged();

    void ShutdownScriptTerminatesINDIChanged();

    void CameraWarmupEnabledChanged();

    void CameraWarmupRampChanged();

    void PreemptiveShutdownChanged();

    void ResetMountModelOnAlignFailChanged();

    void ResetMountModelBeforeJobChanged();

    void ResetGuideCalibrationChanged();

    void ForceAlignmentBeforeJobChanged();

    void ReuseGuideCalibrationChanged();

    void ReverseDecOnPierSideChangeChanged();

    void GuideCalibrationBacklashChanged();

    void AssumeDecOrthogonalChanged();

    void SerializedCalibrationChanged();

    void RealignAfterCalibrationFailureChanged();

    void PreemptiveShutdownTimeChanged();

    void RememberJobProgressChanged();

    void GreedySchedulingChanged();

    void LeadTimeChanged();

    void PreDawnTimeChanged();

    void DawnOffsetChanged();

    void DuskOffsetChanged();

    void TelescopeFocalLengthChanged();

    void TelescopeFocalReducerChanged();

    void CameraPixelWidthChanged();

    void CameraPixelHeightChanged();

    void CameraWidthChanged();

    void CameraHeightChanged();

    void CameraRotationChanged();

    void ErrorHandlingStrategyChanged();

    void ErrorHandlingStrategyDelayChanged();

    void RescheduleErrorsChanged();

    void AlignCheckFrequencyChanged();

    void AlignCheckThresholdChanged();

    void SchedulerTrackStepChanged();

    void SchedulerStartupEnabledChanged();

    void SchedulerPreStartupScriptChanged();

    void SchedulerPostStartupScriptChanged();

    void SchedulerShutdownEnabledChanged();

    void SchedulerPreShutdownScriptChanged();

    void SchedulerPostShutdownScriptChanged();

    void SchedulerFocusStepChanged();

    void SchedulerGuideStepChanged();

    void SchedulerAlignStepChanged();

    void SchedulerAltitudeChanged();

    void SchedulerAltitudeValueChanged();

    void SchedulerHorizonChanged();

    void SchedulerMoonSeparationChanged();

    void SchedulerMoonSeparationValueChanged();

    void SchedulerMoonAltitudeChanged();

    void SchedulerMoonAltitudeMaxValueChanged();

    void SchedulerWeatherChanged();

    void SchedulerWeatherGracePeriodChanged();

    void SchedulerWeatherShutdownDelayChanged();

    void SchedulerSafetyMonitorConnectionStringChanged();

    void SchedulerTwilightChanged();

    void SchedulerCompleteSequencesChanged();

    void SchedulerRepeatEverythingChanged();

    void SchedulerRepeatSequencesChanged();

    void SchedulerUntilTerminatedChanged();

    void SchedulerUntilChanged();

    void SchedulerUntilValueChanged();

    void SchedulerExecutionSequencesLimitChanged();

    void AnalyzeRestartWithEkosChanged();

    void AnalyzeAlternativeDirectoryNameChanged();

    void AnalyzeHFRChanged();

    void AnalyzeNumCaptureStarsChanged();

    void AnalyzeMedianChanged();

    void AnalyzeEccentricityChanged();

    void AnalyzeTemperatureChanged();

    void FocusPositionChanged();

    void AnalyzeNumStarsChanged();

    void AnalyzeSkyBgChanged();

    void AnalyzeSNRChanged();

    void AnalyzeRAChanged();

    void AnalyzeDECChanged();

    void AnalyzeRApChanged();

    void AnalyzeDECpChanged();

    void AnalyzeDriftChanged();

    void AnalyzeRMSChanged();

    void AnalyzeTargetDistanceChanged();

    void AnalyzeRMSCChanged();

    void AnalyzeMountRAChanged();

    void AnalyzeMountDECChanged();

    void AnalyzeMountHAChanged();

    void AnalyzeAzChanged();

    void AnalyzeAltChanged();

    void AnalyzePierSideChanged();

    void AnalyzeStatsYAxisChanged();

    void LastServerChanged();

    void LastServerPortChanged();

    void LastWebManagerPortChanged();

    void HIPSMemoryCacheChanged();

    void HIPSNetCacheChanged();

    void HIPSSourceChanged();

    void HIPSBiLinearInterpolationChanged();

    void HIPSShowGridChanged();

    void HIPSPanningChanged();

    void ShowHIPSChanged();

    void HIPSUseOfflineSourceChanged();

    void HIPSOfflinePathChanged();

    void TerrainSourceChanged();

    void TerrainSourceCorrectAzChanged();

    void TerrainSourceCorrectAltChanged();

    void TerrainDownsamplingChanged();

    void TerrainPanningChanged();

    void ShowTerrainChanged();

    void TerrainSkipSpeedupChanged();

    void TerrainTransparencySpeedupChanged();

    void TerrainSmoothPixelsChanged();

    void ShowImageOverlaysChanged();

    void ShowImageOverlaysBelowCatalogsChanged();

    void ShowSelectedImageOverlayChanged();

    void ImageOverlayMaxDimensionChanged();

    void ImageOverlayTimeoutChanged();

    void ImageOverlayDefaultScaleChanged();

    void DefaultObservatoryWeatherSourceChanged();

    void warningActionsActiveChanged();

    void alertActionsActiveChanged();

    void weatherWarningCloseDomeChanged();

    void weatherWarningCloseShutterChanged();

    void weatherWarningStopSchedulerChanged();

    void weatherWarningDelayChanged();

    void weatherAlertCloseDomeChanged();

    void weatherAlertCloseShutterChanged();

    void weatherAlertStopSchedulerChanged();

    void weatherAlertDelayChanged();

    void observatoryStatusUseDomeChanged();

    void observatoryStatusUseShutterChanged();

    void observatoryStatusUseWeatherChanged();

    void weatherAutoScaleValuesChanged();

    void ASTAPExecutableChanged();

    void ASTAPDownSampleChanged();

    void ASTAPDownSampleValueChanged();

    void ASTAPSearchRadiusChanged();

    void ASTAPSearchRadiusValueChanged();

    void ASTAPUpdateFITSChanged();

    void ASTAPLargeSearchWindowChanged();

    void MosaicTransparencyAutoChanged();

    void MosaicTransparencyLevelChanged();

    void MCPEnabledChanged();

    void MCPPortChanged();

    void MCPReadOnlyModeChanged();

    void MCPDisabledToolsChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    Options();
    friend class OptionsHelper;


    // GUI
    QPoint mPositionTimeBox;
    QPoint mPositionFocusBox;
    QPoint mPositionGeoBox;
    bool mShadeTimeBox;
    bool mShadeFocusBox;
    bool mShadeGeoBox;
    bool mShowInfoBoxes;
    bool mShowTimeBox;
    bool mShowFocusBox;
    bool mShowGeoBox;
    int mStickyTimeBox;
    int mStickyFocusBox;
    int mStickyGeoBox;
    bool mShowStatusBar;
    bool mShowAltAzField;
    bool mShowRADecField;
    bool mShowJ2000RADecField;
    bool mShowSensorFOV;
    uint mWindowWidth;
    uint mWindowHeight;
    QString mKStarsGeometry;
    bool mRunStartupWizard;
    QString mCurrentTheme;

    // Catalogs
    QStringList mCatalogFile;
    QList<int> mShowCatalog;
    QStringList mShowCatalogNames;
    bool mResolveNamesOnline;
    uint mDSOCachePercentage;
    uint mDSOMinZoomFactor;
    QString mDSOCatalogFilename;
    QString mDSODefaultCatalogFilename;

    // indi
    uint mINDIWindowWidth;
    uint mINDIWindowHeight;
    QString mINDIWindowGeometry;
    bool mUseGeographicUpdate;
    bool mUseTimeUpdate;
    bool mIndependentWindowINDI;
    bool mShowTargetCrosshair;
    bool mShowINDIMessages;
    bool mShowINDIwindowInitially;
    int mMaxFocusFrameFiles;
    bool mMessageNotificationINDI;
    QString mTimeSource;
    QString mLocationSource;
    bool mUseExternalSkyMap;
    QString mFitsDir;
    int mServerTransferBufferSize;
    int mServerPortStart;
    int mServerPortEnd;
    QString mIndiServer;
    bool mIndiServerIsInternal;
    QString mIndiDriversDir;
    bool mIndiDriversAreInternal;
    uint mStreamWindowWidth;
    uint mStreamWindowHeight;
    bool mINDIMountLogging;
    bool mINDIFocuserLogging;
    bool mINDICCDLogging;
    bool mINDIFilterWheelLogging;
    bool mINDIDomeLogging;
    bool mINDIDetectorLogging;
    bool mINDIWeatherLogging;
    bool mINDIAuxiliaryLogging;
    bool mINDIRotatorLogging;
    bool mINDIGPSLogging;
    bool mINDIAOLogging;

    // Location
    QString mCityName;
    QString mProvinceName;
    QString mCountryName;
    double mLongitude;
    double mLatitude;
    double mElevation;
    double mTimeZone;
    QString mDST;

    // View
    bool mUseAnimatedSlewing;
    bool mLeftClickSelectsObject;
    uint mDefaultCursor;
    QStringList mFOVNames;
    bool mFadePlanetTrails;
    double mFocusRA;
    double mFocusDec;
    QString mFocusObject;
    bool mIsTracking;
    bool mHideOnSlew;
    bool mHideCBounds;
    bool mHideCLines;
    QString mSkyCulture;
    bool mHideCNames;
    bool mHideGrids;
    bool mHideMilkyWay;
    bool mHideOther;
    bool mHidePlanets;
    bool mHideStars;
    bool mHideLabels;
    bool mShowAsteroids;
    bool mShowAsteroidNames;
    bool mOrbitalElementsAutoUpdate;
    bool mShowComets;
    bool mShowCometComas;
    bool mShowCometNames;
    bool mShowSupernovae;
    bool mShowSupernovaNames;
    double mMagnitudeLimitShowSupernovae;
    double mSupernovaDetectionAge;
    QString mSupernovaDownloadUrl;
    bool mLimitSupernovaeByZoom;
    bool mSupernovaeHostOnly;
    bool mSupernovaeClassifiedOnly;
    bool mShowSupernovaAlerts;
    double mMagnitudeLimitAlertSupernovae;
    bool mShowCBounds;
    bool mShowHighlightedCBound;
    bool mShowCLines;
    bool mShowConstellationArt;
    bool mShowCNames;
    bool mShowDeepSky;
    bool mShowEcliptic;
    bool mShowEquator;
    bool mAutoSelectGrid;
    bool mShowEquatorialGrid;
    bool mShowHorizontalGrid;
    bool mShowLocalMeridian;
    bool mShowGround;
    bool mShowHorizon;
    bool mShowFlags;
    bool mSimulateDaytime;
    bool mShowOther;
    bool mShowMilkyWay;
    bool mFillMilkyWay;
    bool mShowSolarSystem;
    bool mShowPlanetImages;
    bool mShowPlanetNames;
    bool mShowSun;
    double mSunScale;
    bool mShowMoon;
    double mMoonScale;
    bool mShowMercury;
    bool mShowVenus;
    bool mShowMars;
    bool mShowJupiter;
    bool mShowSaturn;
    bool mShowUranus;
    bool mShowNeptune;
    bool mShowPluto;
    bool mShowStars;
    bool mShowStarMagnitudes;
    bool mShowStarsOverHIPS;
    bool mShowStarNames;
    bool mShowDeepSkyMagnitudes;
    bool mShowDeepSkyNames;
    bool mShowMosaicPanel;
    double mSlewTimeScale;
    uint mBoxBGMode;
    uint mProjection;
    bool mUseAbbrevConstellNames;
    bool mUseLatinConstellNames;
    bool mUseLocalConstellNames;
    bool mUseAltAz;
    bool mUseAutoLabel;
    bool mUseAutoTrail;
    bool mUseHoverLabel;
    bool mUseRefraction;
    bool mUseRelativistic;
    bool mUseAntialias;
    double mZoomFactor;
    double mSkyRotation;
    bool mMirrorSkyMap;
    int mErectObserverCorrection;
    double mZoomScrollFactor;
    double mMagLimitAsteroid;
    double mMagLimitAsteroidDownload;
    double mAsteroidLabelDensity;
    double mMagLimitDrawDeepSky;
    double mMagLimitDrawDeepSkyZoomOut;
    bool mShowUnknownMagObjects;
    bool mShowInlineImages;
    int mStarDensity;
    double mMagLimitHideStar;
    double mStarLabelDensity;
    double mDeepSkyLabelDensity;
    bool mDeepSkyLongLabels;
    int mLabelFontScaling;
    double mMaxRadCometName;
    bool mUseGL;
    bool mRunClock;

    // ImagingPlanner
    bool mImagingPlannerAcceptOpenCluster;
    bool mImagingPlannerAcceptNebula;
    bool mImagingPlannerAcceptGlobularCluster;
    bool mImagingPlannerAcceptPlanetary;
    bool mImagingPlannerAcceptSupernovaRemnant;
    bool mImagingPlannerAcceptGalaxy;
    bool mImagingPlannerAcceptGalaxyCluster;
    bool mImagingPlannerAcceptDarkNebula;
    bool mImagingPlannerAcceptOther;
    bool mAstrobinAward;
    double mAstrobinMinRadius;
    double mAstrobinMaxRadius;
    bool mImagingPlannerUseArtificialHorizon;
    double mImagingPlannerMinHours;
    double mImagingPlannerMinAltitude;
    double mImagingPlannerMinMoonSeparation;
    double mImagingPlannerMaxMoonAltitude;
    bool mImagingPlannerShowPicked;
    bool mImagingPlannerShowNotPicked;
    bool mImagingPlannerDontCarePicked;
    bool mImagingPlannerShowKeyword;
    bool mImagingPlannerShowNotKeyword;
    bool mImagingPlannerDontCareKeyword;
    QString mImagingPlannerKeyword;
    bool mImagingPlannerShowImaged;
    bool mImagingPlannerShowNotImaged;
    bool mImagingPlannerDontCareImaged;
    bool mImagingPlannerShowAdded;
    bool mImagingPlannerShowNotAdded;
    bool mImagingPlannerDontCareAdded;
    bool mImagingPlannerShowIgnored;
    bool mImagingPlannerShowNotIgnored;
    bool mImagingPlannerDontCareIgnored;
    bool mImagingPlannerHideAstrobinDetails;
    bool mImagingPlannerHideFilters;
    bool mImagingPlannerHideImage;
    bool mImagingPlannerHideAltitudeGraph;
    QString mImagingPlannerCatalogPath;
    bool mImagingPlannerCenterOnSkyMap;
    bool mImagingPlannerIndependentWindow;
    bool mImagingPlannerStartSolvingImmediately;

    // ObservingList
    bool mObsListSymbol;
    bool mObsListText;
    bool mObsListPreferDSS;
    bool mObsListPreferSDSS;
    bool mObsListDemoteHole;
    double mObsListHoleSize;
    double mObsListCoverage;

    // Colors
    QString mColorSchemeFile;
    uint mStarColorMode;
    uint mStarColorIntensity;
    bool mDomeSlitInverted;
    QString mAngularRulerColor;
    QString mBoxBGColor;
    QString mBoxGrabColor;
    QString mBoxTextColor;
    QString mCBoundColor;
    QString mCBoundHighColor;
    QString mCLineColor;
    QString mCNameColor;
    QString mCompassColor;
    QString mEclipticColor;
    QString mEquatorColor;
    QString mEquatorialGridColor;
    QString mHorizontalGridColor;
    QString mSpecialObjectColor;
    QString mHorizonColor;
    QString mLocalMeridianColor;
    QString mMilkyWayWColor;
    QString mStarNameColor;
    QString mDeepSkyNameColor;
    QString mPlanetNameColor;
    QString mPlanetTrailColor;
    QString mSkyColor;
    QString mSkyColorDaytime;
    QString mArtificialHorizonColor;
    QString mTelescopeTargetColor;
    QString mVisibleSatColor;
    QString mSatColor;
    QString mSatLabelColor;
    QString mSupernovaColor;
    QString mAsteroidColor;
    QString mUserLabelColor;
    QString mRAGuideColor;
    QString mDEGuideColor;
    QString mSolverFOVColor;

    // Xplanet
    bool mXplanetIsInternal;
    QString mXplanetPath;
    bool mXplanetUseFIFO;
    uint mXplanetTimeout;
    uint mXplanetAnimationDelay;
    uint mXplanetWidth;
    uint mXplanetHeight;
    bool mXplanetLabel;
    bool mXplanetLabelLocalTime;
    bool mXplanetLabelGMT;
    QString mXplanetLabelString;
    QString mXplanetFontSize;
    QString mXplanetColor;
    QString mXplanetDateFormat;
    bool mXplanetLabelTL;
    bool mXplanetLabelTR;
    bool mXplanetLabelBR;
    bool mXplanetLabelBL;
    QString mXplanetGlare;
    bool mXplanetRandom;
    bool mXplanetLatLong;
    QString mXplanetLatitude;
    QString mXplanetLongitude;
    uint mXplanetProjection;
    bool mXplanetBackground;
    bool mXplanetBackgroundImage;
    QString mXplanetBackgroundImagePath;
    bool mXplanetBackgroundColor;
    QString mXplanetBackgroundColorValue;
    QString mXplanetMagnitude;
    bool mXplanetArcFile;
    QString mXplanetArcFilePath;
    bool mXplanetConfigFile;
    QString mXplanetConfigFilePath;
    bool mXplanetFOV;
    bool mXplanetMarkerFile;
    QString mXplanetMarkerFilePath;
    bool mXplanetMarkerBounds;
    QString mXplanetMarkerBoundsPath;
    bool mXplanetStarmap;
    QString mXplanetStarmapPath;
    QString mXplanetQuality;

    // Satellites
    bool mShowSatellites;
    bool mShowVisibleSatellites;
    bool mDrawSatellitesLikeStars;
    bool mShowSatellitesLabels;
    QStringList mSelectedSatellites;

    // General
    bool mKStarsFirstRun;
    bool mAlwaysRecomputeCoordinates;
    double mDefaultDSSImageSize;
    double mDSSPadding;
    bool mVerboseLogging;
    bool mRegularLogging;
    bool mDisableLogging;
    bool mLogToDefault;
    bool mLogToFile;
    bool mFITSLogging;
    bool mINDILogging;
    bool mCaptureLogging;
    bool mFocusLogging;
    bool mSaveGuideImages;
    bool mSaveAlignImages;
    bool mSaveFailedAlignImages;
    bool mDontSyncToRealTime;
    bool mGuideLogging;
    bool mAlignmentLogging;
    bool mMountLogging;
    bool mObservatoryLogging;
    int mImageDebayerEngine;
    int mImageDebayerAlgo;
    int mStackDebayerEngine;
    int mStackDebayerAlgo;

    // FITSViewer
    QString mFITSWindowGeometry;
    bool mUseFITSViewer;
    bool mSinglePreviewFITS;
    bool mSingleWindowCapturedFITS;
    bool mSingleWindowOpenedFITS;
    bool mFocusFITSOnNewImage;
    bool mIndependentWindowFITS;
    bool mLiveStackerOwnProcess;
    bool mAutoDebayer;
    bool mAuto3DCube;
    bool mAutoHFR;
    bool mQuickHFR;
    bool mStellarSolverPartition;
    bool mAutoWCS;
    bool mLimitedResourcesMode;
    bool mNonLinearHistogram;
    double mHIPSOpacity;
    int mHIPSOffsetX;
    int mHIPSOffsetY;
    uint mFitsSolverProfile;
    uint mFitsSolverModule;
    QString mFitsSolverProfileIndeces;
    uint mFitsCatalog;
    bool mFitsCatObjShowNames;
    bool mFitsSolverUseScale;
    bool mFitsSolverUsePosition;
    double mFitsSolverScale;
    uint mFitsSolverImageScaleUnits;
    double mFitsSolverRadius;
    bool mFitsLSHideGeneral;
    bool mFitsLSHideCalibration;
    bool mFitsLSHideAlignment;
    bool mFitsLSHideStacking;
    bool mFitsLSHidePostProc;
    bool mFitsLSCalcSNR;
    QString mFitsLSMasterDark;
    QString mFitsLSMasterFlat;
    bool mFitsLSHotPixels;
    bool mFitsLSColdPixels;
    uint mFitsLSAlignMethod;
    uint mFitsLSNumInMem;
    uint mFitsLSDownscale;
    uint mFitsLSWeighting;
    uint mFitsLSNormalization;
    uint mFitsLSStackingMethod;
    double mFitsLSLowSigma;
    double mFitsLSHighSigma;
    double mFitsLSWinsorCutoff;
    uint mFitsLSIterations;
    double mFitsLSKappa;
    double mFitsLSAlpha;
    double mFitsLSSigma;
    uint mFitsPSFUpdate;
    bool mFitsLSPostProc;
    double mFitsLSGradientAmt;
    double mFitsLSDeconvAmt;
    double mFitsLSPSFSigma;
    double mFitsLSDenoiseAmt;
    double mFitsLSSharpenAmt;
    uint mFitsLSSharpenKernal;
    double mFitsLSSharpenSigma;
    QString mFitsLSMWindowGeometry;
    QStringList mFitsLSMVisibleColumns;
    QList<int> mFitsLSMColumnWidths;
    int mFitsLSMSortColumn;
    int mFitsLSMSortOrder;
    bool mFitsLSMHighlighting;
    QString mFitsLSWebcastTitle;
    QString mFitsLSWebcastLogoL;
    QString mFitsLSWebcastLogoR;
    uint mFitsLSWebcastPort;
    uint mFitsLSWebcastThrottle;

    // WISettings
    uint mBortleClass;
    bool mTelescopeCheck;
    bool mBinocularsCheck;
    double mBinocularsAperture;
    uint mScopeListIndex;

    // Ekos
    uint mEkosWindowWidth;
    uint mEkosWindowHeight;
    QString mEkosGeometry;
    bool mEkosTopIcons;
    bool mEkosLeftIcons;
    bool mIndependentWindowEkos;
    QString mProfile;
    bool mNeverLoadConfig;
    bool mLoadConfigOnConnection;
    bool mLoadDefaultConfig;
    bool mAutoLoadSerialAssistant;

    // EkosLive
    bool mRememberCredentials;
    bool mAutoStartEkosLive;
    QString mEkosLiveUsername;
    QString mEkosLiveObservatory;
    QString mEkosLiveOfflineServer;
    QString mEkosLiveOnlineServer;
    bool mEkosLiveSound;
    bool mEkosLiveNotifications;
    bool mEkosLiveCloud;

    // DarkLibrary
    double mMaxDarkTemperatureDiff;
    QStringList mShutterfulCCDs;
    QStringList mShutterlessCCDs;
    uint mDarkLibraryDuration;

    // Manager
    bool mUseGraphicalCountsDisplay;

    // Mount
    double mMinimumAltLimit;
    double mMaximumAltLimit;
    bool mEnableAltitudeLimits;
    bool mEnableAltitudeLimitsTrackingOnly;
    bool mConfirmBelowHorizon;
    double mMeridianFlipOffsetDegrees;
    double mMaximumHaLimit;
    bool mEnableHaLimit;
    bool mExecuteMeridianFlip;
    bool mLeftRightReversed;
    bool mUpDownReversed;
    bool mParkEveryDay;
    QString mParkTime;

    // Capture
    QString mDefaultObserver;
    bool mSyncFOVPA;
    double mPAMultiplier;
    double mPAOffset;
    uint mPAPierSide;
    double mGuideDeviation;
    uint mGuideDeviationReps;
    double mStartGuideDeviation;
    uint mGuideDitherPerJobFrequency;
    double mHFRDeviation;
    double mMaxFocusTemperatureDelta;
    bool mAutoDark;
    bool mEnforceGuideDeviation;
    bool mEnforceAutofocusHFR;
    bool mEnforceAutofocusOnTemperature;
    bool mEnforceRefocusEveryN;
    uint mRefocusEveryN;
    bool mRefocusAfterMeridianFlip;
    bool mResetMountModelAfterMeridian;
    bool mForcedFlip;
    uint mCalibrationADUValue;
    uint mCalibrationADUValueTolerance;
    uint mCalibrationPreActionIndex;
    uint mCalibrationFlatDurationIndex;
    double mCalibrationWallAz;
    double mCalibrationWallAlt;
    double mMaxTemperatureDiff;
    double mMaxStartGuiderDrift;
    bool mEnforceStartGuiderDrift;
    double mGuidingSettle;
    bool mAlwaysResetSequenceWhenStarting;
    bool mFlatSyncFocus;
    double mHFRThresholdPercentage;
    int mHFRCheckAlgorithm;
    uint mInSequenceCheckFrames;
    bool mAutoStretch;
    uint mStretchPreviewSampling;
    uint mClipping64KValue;
    uint mClipping256Value;
    bool mAdaptiveSampling;
    bool mUseSummaryPreview;
    bool mUseDSLRImageViewer;
    bool mForceDSLRPresets;
    QString mCaptureDirectory;
    QString mPlaceholderFormat;
    QString mRemoteCaptureDirectory;
    uint mManualCoverTimeout;
    uint mCaptureOperationsTimeout;
    uint mMinFlipDuration;
    bool mCapturePosition;
    uint mCaptureTrainID;
    bool mCaptureCalibrationWall;
    bool mCaptureCalibrationParkMount;
    bool mCaptureCalibrationParkDome;
    bool mCaptureCalibrationUseManual;
    bool mCaptureCalibrationUseADU;
    double mCaptureCalibrationADUValue;
    double mCaptureCalibrationADUTolerance;
    bool mCaptureCalibrationSkyFlats;

    // Focus
    uint mAbsTicksSpin;
    double mFocusExposure;
    QString mFocusBinning;
    double mFocusGain;
    QString mFocusISO;
    QString mDefaultFocusTemperatureSource;
    QString mFocusFilter;
    bool mUseFocusDarkFrame;
    bool mFocusSubFrame;
    uint mFocusBoxSize;
    bool mFocusUseFullField;
    bool mFocusNoMaskRB;
    bool mFocusRingMaskRB;
    bool mFocusMosaicMaskRB;
    double mFocusFullFieldInnerRadius;
    double mFocusFullFieldOuterRadius;
    double mFocusMosaicTileWidth;
    uint mFocusMosaicSpace;
    bool mFocusAutoStarEnabled;
    bool mFocusSuspendGuiding;
    double mFocusGuideSettleTime;
    QString mFocusUnits;
    bool mFocusAdaptive;
    uint mFocusAdaptiveMinMove;
    bool mFocusAdaptStart;
    uint mFocusAdaptiveMaxMove;
    QString mFocusDetection;
    QString mFocusSEPProfile;
    QString mFocusAlgorithm;
    QString mFocusCurveFit;
    QString mFocusStarMeasure;
    QString mFocusStarPSF;
    bool mFocusUseWeights;
    double mFocusR2Limit;
    bool mFocusRefineCurveFit;
    uint mFocusFramesCount;
    uint mFocusHFRFramesCount;
    int mFocusMultiRowAverage;
    double mFocusGaussianSigma;
    double mFocusThreshold;
    bool mFocusDenoise;
    bool mFocusDonut;
    double mFocusTimeDilation;
    double mFocusOutlierRejection;
    bool mFocusScanStartPos;
    bool mFocusScanAlwaysOn;
    uint mFocusScanDatapoints;
    double mFocusScanStepSizeFactor;
    int mFocusGaussianKernelSize;
    double mFocusTolerance;
    QString mFocusWalk;
    double mFocusSettleTime;
    uint mFocusTicks;
    double mFocusOutSteps;
    uint mFocusNumSteps;
    uint mFocusMaxTravel;
    uint mFocusMaxSingleStep;
    uint mFocusBacklash;
    uint mFocusAFOverscan;
    double mFocusOverscanDelay;
    uint mFocusCaptureTimeout;
    uint mFocusMotionTimeout;
    QString mFocusCFZAlgorithm;
    double mFocusCFZTolerance;
    double mFocusCFZTau;
    bool mFocusCFZDisplayVCurve;
    double mFocusCFZWavelength;
    uint mFocusCFZAperture;
    double mFocusCFZFNumber;
    double mFocusCFZSeeing;
    double mFocusCFZStepSize;
    bool mFocusAdvHelpOnlyChanges;
    bool mFocusAdvUpdateParams;
    bool mFocusAdvFindStars;
    bool mFocusAdvCourseAdj;
    bool mFocusAdvFineAdj;
    QString mFocusSplitter;
    QString mRightLayout;
    bool mAdaptFocusBFO;
    QString mAbInsTileSelection;
    bool mAbInsShowLabels;
    bool mAbInsShowCFZ;
    bool mAbInsOptCentres;
    QString mAbInsHSplitter;
    QString mAbInsVSplitter;
    QString mAbInsSelection;
    QString mAbInsTheme;
    bool mAbInsLabels;
    bool mAbInsSensor;
    bool mAbInsPetzvalWire;
    bool mAbInsPetzvalSurface;
    uint mTiltPlateType;
    double mTiltRadius;
    uint mTiltThreadIndex;
    double mTiltScrewPitch;
    double mTiltRotation;
    uint mTiltMode;
    bool mTiltPlatePresent;

    // StellarSolver
    uint mFocusSextractorType;
    uint mFocusOptionsProfile;
    uint mHFRSextractorType;
    uint mHFROptionsProfile;
    uint mGuideSextractorType;
    uint mGuideOptionsProfile;
    uint mSolveSextractorType;
    uint mSolverMode;
    uint mSolverType;
    uint mSolveOptionsProfile;
    uint mLoggerLevel;
    bool mAstrometryLogToFile;
    QString mAstrometryLogFilepath;
    QStringList mAstrometryIndexFolderList;

    // Align
    double mAlignExposure;
    QString mAlignBinning;
    double mAlignGain;
    double mAlignISO;
    bool mAlignDarkFrame;
    QString mAlignFilter;
    bool mAlignUseCurrentFilter;
    bool mAstrometryUseRotator;
    double mAstrometryRotatorThreshold;
    bool mAstrometryFlipRotationAllowed;
    bool mRotatorParityReversed;
    bool mAstrometrySolverWCS;
    bool mAstrometrySolverOverlay;
    bool mAstrometryDifferentialSlewing;
    uint mAlignAccuracyThreshold;
    uint mAlignSettlingTime;
    bool mAstrometryUseNoFITS2FITS;
    bool mAstrometryUseResort;
    bool mAstrometryUseNoVerify;
    bool mAstrometryUseImageScale;
    double mAstrometryImageScaleLow;
    double mAstrometryImageScaleHigh;
    bool mAstrometryAutoUpdateImageScale;
    uint mAstrometryImageScaleUnits;
    bool mAstrometryUseDownsample;
    uint mAstrometryDownsample;
    bool mAstrometryAutoDownsample;
    bool mAstrometryDynamicThreshold;
    bool mAstrometryUsePosition;
    double mAstrometryPositionRA;
    double mAstrometryPositionDE;
    bool mAstrometryAutoUpdatePosition;
    double mAstrometryRadius;
    bool mAstrometryDetectParity;
    QString mAstrometryCustomOptions;
    QString mAstrometrySolverBinary;
    QString mAstrometryWCSInfo;
    QString mAstrometryConfFile;
    QString mSextractorBinary;
    QString mWatneyBinary;
    QString mAstrometryAPIKey;
    QString mAstrometryAPIURL;
    bool mAstrometryUseJPEG;
    uint mAstrometryTimeout;
    QString mPAHMountSpeed;
    double mPAHRotaion;
    QString mPAHRefreshAlgorithm;
    QString mPAHDirection;
    bool mPAHAutoPark;
    bool mPAHManualSlew;
    double mPAHExposure;
    bool mPAHAutoPACCorrection;
    bool mPAHAutoChangeDirection;
    double mPAHSuccessThreshold;
    uint mPAHCorrectionTimeout;

    // Guide
    double mGuideExposure;
    double mGuideDelay;
    uint mGuiderType;
    uint mGuideAlgorithm;
    uint mRAGuidePulseAlgorithm;
    uint mDECGuidePulseAlgorithm;
    QUrl mAIGuiderWeightsFile;
    double mAIPredictionGain;
    bool mAIProportionalBackoff;
    bool mAIPIDAutoTune;
    bool mAIShadowMode;
    QString mPHD2Host;
    uint mPHD2Port;
    QString mLinGuiderHost;
    uint mLinGuiderPort;
    uint mCalibrationPulseDuration;
    uint mCalibrationMaxMove;
    QString mGuideSquareSize;
    QString mGuideBinning;
    bool mGuideAutoStar;
    bool mGuideShowFrame;
    bool mGuideAutoSquareSizeEnabled;
    uint mAutoModeIterations;
    uint mGuideLostStarTimeout;
    uint mGuideCalibrationTimeout;
    double mGuideMaxDeltaRMS;
    double mGuideMaxHFR;
    uint mMinDetectionsSEPMultistar;
    uint mMaxMultistarReferenceStars;
    bool mAlwaysInventGuideStar;
    bool mTwoAxisEnabled;
    bool mUseGuideHead;
    bool mSaveGuideLog;
    bool mGuideDarkFrame;
    bool mGuideSubframe;
    double mDitherPixels;
    uint mDitherFrames;
    uint mDitherSettle;
    double mDitherThreshold;
    uint mDitherTimeout;
    uint mDitherMaxIterations;
    uint mDitherNoGuidingPulse;
    bool mDitherFailAbortsAutoGuide;
    bool mDitherWithOnePulse;
    bool mDitherEnabled;
    bool mDitherNoGuiding;
    bool mRAGuideEnabled;
    bool mDECGuideEnabled;
    bool mNorthDECGuideEnabled;
    bool mSouthDECGuideEnabled;
    bool mEastRAGuideEnabled;
    bool mWestRAGuideEnabled;
    double mRAProportionalGain;
    double mDECProportionalGain;
    double mRAIntegralGain;
    double mDECIntegralGain;
    double mRAMinimumPulseArcSec;
    double mDECMinimumPulseArcSec;
    uint mRAMaximumPulseArcSec;
    uint mDECMaximumPulseArcSec;
    bool mGPGEnabled;
    bool mGPGDarkGuiding;
    double mGPGDarkGuidingInterval;
    bool mAIDarkGuiding;
    double mAIDarkGuidingInterval;
    double mGPGcWeight;
    uint mGPGMinPeriodsForInference;
    double mGPGMinMove;
    uint mGPGSE0KLengthScale;
    double mGPGSE0KSignalVariance;
    double mGPGPKLengthScale;
    double mGPGPeriod;
    double mGPGPKSignalVariance;
    double mGPGSE1KLengthScale;
    double mGPGSE1KSignalVariance;
    uint mGPGMinPeriodsForPeriodEstimate;
    uint mGPGPointsForApproximation;
    double mGPGpWeight;
    bool mGPGEstimatePeriod;
    uint mGuiderAccuracyThreshold;
    bool mRADisplayedOnGuideGraph;
    bool mDEDisplayedOnGuideGraph;
    bool mRACorrDisplayedOnGuideGraph;
    bool mDECorrDisplayedOnGuideGraph;
    bool mSNRDisplayedOnGuideGraph;
    bool mRMSDisplayedOnGuideGraph;
    double mRAHysteresis;
    double mDECHysteresis;

    // Scheduler
    uint mSchedulerAlgorithm;
    bool mSchedulerLogging;
    bool mStopEkosAfterShutdown;
    bool mShutdownScriptTerminatesINDI;
    bool mCameraWarmupEnabled;
    uint mCameraWarmupRamp;
    bool mPreemptiveShutdown;
    bool mResetMountModelOnAlignFail;
    bool mResetMountModelBeforeJob;
    bool mResetGuideCalibration;
    bool mForceAlignmentBeforeJob;
    bool mReuseGuideCalibration;
    bool mReverseDecOnPierSideChange;
    bool mGuideCalibrationBacklash;
    bool mAssumeDecOrthogonal;
    QString mSerializedCalibration;
    bool mRealignAfterCalibrationFailure;
    double mPreemptiveShutdownTime;
    bool mRememberJobProgress;
    bool mGreedyScheduling;
    double mLeadTime;
    double mPreDawnTime;
    double mDawnOffset;
    double mDuskOffset;
    double mTelescopeFocalLength;
    double mTelescopeFocalReducer;
    double mCameraPixelWidth;
    double mCameraPixelHeight;
    uint mCameraWidth;
    uint mCameraHeight;
    double mCameraRotation;
    uint mErrorHandlingStrategy;
    uint mErrorHandlingStrategyDelay;
    bool mRescheduleErrors;
    uint mAlignCheckFrequency;
    double mAlignCheckThreshold;
    bool mSchedulerTrackStep;
    bool mSchedulerStartupEnabled;
    QString mSchedulerPreStartupScript;
    QString mSchedulerPostStartupScript;
    bool mSchedulerShutdownEnabled;
    QString mSchedulerPreShutdownScript;
    QString mSchedulerPostShutdownScript;
    bool mSchedulerFocusStep;
    bool mSchedulerGuideStep;
    bool mSchedulerAlignStep;
    bool mSchedulerAltitude;
    double mSchedulerAltitudeValue;
    bool mSchedulerHorizon;
    bool mSchedulerMoonSeparation;
    double mSchedulerMoonSeparationValue;
    bool mSchedulerMoonAltitude;
    double mSchedulerMoonAltitudeMaxValue;
    bool mSchedulerWeather;
    uint mSchedulerWeatherGracePeriod;
    uint mSchedulerWeatherShutdownDelay;
    QString mSchedulerSafetyMonitorConnectionString;
    bool mSchedulerTwilight;
    bool mSchedulerCompleteSequences;
    bool mSchedulerRepeatEverything;
    bool mSchedulerRepeatSequences;
    bool mSchedulerUntilTerminated;
    bool mSchedulerUntil;
    QString mSchedulerUntilValue;
    uint mSchedulerExecutionSequencesLimit;

    // Analyze
    bool mAnalyzeRestartWithEkos;
    QString mAnalyzeAlternativeDirectoryName;
    bool mAnalyzeHFR;
    bool mAnalyzeNumCaptureStars;
    bool mAnalyzeMedian;
    bool mAnalyzeEccentricity;
    bool mAnalyzeTemperature;
    bool mFocusPosition;
    bool mAnalyzeNumStars;
    bool mAnalyzeSkyBg;
    bool mAnalyzeSNR;
    bool mAnalyzeRA;
    bool mAnalyzeDEC;
    bool mAnalyzeRAp;
    bool mAnalyzeDECp;
    bool mAnalyzeDrift;
    bool mAnalyzeRMS;
    bool mAnalyzeTargetDistance;
    bool mAnalyzeRMSC;
    bool mAnalyzeMountRA;
    bool mAnalyzeMountDEC;
    bool mAnalyzeMountHA;
    bool mAnalyzeAz;
    bool mAnalyzeAlt;
    bool mAnalyzePierSide;
    QString mAnalyzeStatsYAxis;

    // INDI Lite
    QString mLastServer;
    uint mLastServerPort;
    uint mLastWebManagerPort;

    // HIPS
    uint mHIPSMemoryCache;
    uint mHIPSNetCache;
    QString mHIPSSource;
    bool mHIPSBiLinearInterpolation;
    bool mHIPSShowGrid;
    bool mHIPSPanning;
    bool mShowHIPS;
    bool mHIPSUseOfflineSource;
    QString mHIPSOfflinePath;

    // Terrain
    QString mTerrainSource;
    int mTerrainSourceCorrectAz;
    int mTerrainSourceCorrectAlt;
    int mTerrainDownsampling;
    bool mTerrainPanning;
    bool mShowTerrain;
    bool mTerrainSkipSpeedup;
    bool mTerrainTransparencySpeedup;
    bool mTerrainSmoothPixels;

    // ImageOverlay
    bool mShowImageOverlays;
    bool mShowImageOverlaysBelowCatalogs;
    bool mShowSelectedImageOverlay;
    int mImageOverlayMaxDimension;
    int mImageOverlayTimeout;
    double mImageOverlayDefaultScale;

    // Observatory
    QString mDefaultObservatoryWeatherSource;
    bool mWarningActionsActive;
    bool mAlertActionsActive;
    bool mWeatherWarningCloseDome;
    bool mWeatherWarningCloseShutter;
    bool mWeatherWarningStopScheduler;
    uint mWeatherWarningDelay;
    bool mWeatherAlertCloseDome;
    bool mWeatherAlertCloseShutter;
    bool mWeatherAlertStopScheduler;
    uint mWeatherAlertDelay;
    bool mObservatoryStatusUseDome;
    bool mObservatoryStatusUseShutter;
    bool mObservatoryStatusUseWeather;
    bool mWeatherAutoScaleValues;

    // ASTAP
    QString mASTAPExecutable;
    bool mASTAPDownSample;
    double mASTAPDownSampleValue;
    bool mASTAPSearchRadius;
    double mASTAPSearchRadiusValue;
    bool mASTAPUpdateFITS;
    bool mASTAPLargeSearchWindow;

    // Mosaic
    bool mMosaicTransparencyAuto;
    double mMosaicTransparencyLevel;

    // MCP
    bool mMCPEnabled;
    uint mMCPPort;
    bool mMCPReadOnlyMode;
    QStringList mMCPDisabledTools;
};

#endif

