summaryrefslogtreecommitdiffstats
path: root/indi-celestronaux/celestronaux.h
diff options
context:
space:
mode:
Diffstat (limited to 'indi-celestronaux/celestronaux.h')
-rw-r--r--indi-celestronaux/celestronaux.h24
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};