diff options
Diffstat (limited to 'indi-celestronaux/celestronaux.h')
-rw-r--r-- | indi-celestronaux/celestronaux.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/indi-celestronaux/celestronaux.h b/indi-celestronaux/celestronaux.h index eb5c81d..ab39915 100644 --- a/indi-celestronaux/celestronaux.h +++ b/indi-celestronaux/celestronaux.h @@ -194,6 +194,11 @@ class CelestronAUX : bool getStatus(INDI_HO_AXIS axis); bool getEncoder(INDI_HO_AXIS axis); + bool getHeaterPower(void); + bool setHeaterManual(unsigned p,unsigned n); + bool setHeaterAuto(unsigned p,unsigned n); + bool getAmbient(void); + bool getHeaterPort(unsigned); ///////////////////////////////////////////////////////////////////////////////////// /// Coord Wrap @@ -244,6 +249,7 @@ class CelestronAUX : ///////////////////////////////////////////////////////////////////////////////////// bool guidePulse(INDI_EQ_AXIS axis, uint32_t ms, int8_t rate); + void UpdateHeater(unsigned); private: // Axis Information @@ -301,6 +307,8 @@ class CelestronAUX : uint8_t m_BATVersion[4] {0}; uint8_t m_WiFiVersion[4] {0}; uint8_t m_GPSVersion[4] {0}; + uint8_t m_Heater17Version[4] {0}; + uint8_t m_HeaterBBVersion[4] {0}; // Coord Wrap bool m_CordWrapActive {false}; @@ -336,8 +344,8 @@ class CelestronAUX : /////////////////////////////////////////////////////////////////////////////// // Firmware - INDI::PropertyText FirmwareTP {7}; - enum {FW_HC, FW_MB, FW_AZM, FW_ALT, FW_WiFi, FW_BAT, FW_GPS}; + INDI::PropertyText FirmwareTP {9}; + enum {FW_HC, FW_MB, FW_AZM, FW_ALT, FW_WiFi, FW_BAT, FW_GPS, FW_HEATER17, FW_HEATERBB}; // Mount type INDI::PropertySwitch MountTypeSP {2}; enum @@ -426,8 +434,19 @@ class CelestronAUX : RESET_TO_MARKS }; +#define N_HEATER_CHAN 4 + + INDI::PropertyNumber HeaterPower {2}; + INDI::PropertyNumber Ambient {3}; + INDI::PropertySwitch HeaterPortMode[N_HEATER_CHAN] {{2},{2},{2},{2}}; + INDI::PropertyNumber HeaterPortControl[N_HEATER_CHAN] {{2},{2},{2},{2}}; + INDI::PropertyNumber HeaterPortState[N_HEATER_CHAN] {{2},{2},{2},{2}}; private: + + bool m_heater_auto[N_HEATER_CHAN]; + float m_heater_aggr[N_HEATER_CHAN]; + float m_heater_pct[N_HEATER_CHAN]; // One definition rule (ODR) constants // AUX commands use 24bit integer as a representation of angle in units of @@ -454,6 +473,7 @@ class CelestronAUX : // Coord Wrap static constexpr const char *CORDWRAP_TAB {"Coord Wrap"}; static constexpr const char *MOUNTINFO_TAB {"Mount Info"}; + static constexpr const char *HEATER_TAB {"Heater"}; // Track modes static constexpr uint16_t AUX_SIDEREAL {0xffff}; static constexpr uint16_t AUX_SOLAR {0xfffe}; |