30 : m_DeviceName(deviceName), m_DeviceOnline(false), m_HasSafetyStatus(false), m_SafetyStatusLP(1),
31 m_StatusCallback(statusCallback)
45 LOGF_ERROR(
"Failed to connect to server %s:%d for device %s",
46 host.c_str(), port, m_DeviceName.c_str());
53 LOGF_INFO(
"Safety Monitor Client: Connecting to %s@%s:%d",
54 m_DeviceName.c_str(), host.c_str(), port);
61 if (!m_HasSafetyStatus)
71 m_DeviceOnline =
true;
72 LOGF_INFO(
"Safety Monitor Client: Device %s is online", m_DeviceName.c_str());
80 m_DeviceOnline =
false;
81 m_HasSafetyStatus =
false;
82 LOGF_WARN(
"Safety Monitor Client: Device %s went offline", m_DeviceName.c_str());
90 auto lp =
property.getLight();
93 m_SafetyStatusLP = property;
94 m_HasSafetyStatus =
true;
95 LOGF_INFO(
"Safety Monitor Client: Received SAFETY_STATUS from %s, state: %s",
109 m_SafetyStatusLP = property;
110 LOGF_INFO(
"Safety Monitor Client: Updated safety status from %s, state: %s",
114 if (m_StatusCallback)
121 LOGF_INFO(
"Safety Monitor Client: Connected to server for %s", m_DeviceName.c_str());
126 LOGF_WARN(
"Safety Monitor Client: Disconnected from server for %s (exit code: %d)",
127 m_DeviceName.c_str(), exitCode);
128 m_DeviceOnline =
false;
129 m_HasSafetyStatus =
false;
void setServer(const char *hostname, unsigned int port)
Set the server host name and port.
void watchDevice(const char *deviceName)
Add a device to the watch list.
bool connectServer() override
Connect to INDI server.
Class to provide basic INDI device functionality.
const char * getDeviceName() const
Provides generic container for INDI properties.
const char * getDeviceName() const
bool isNameMatch(const char *otherName) const
void newProperty(INDI::Property property) override
Emmited when a new property is created for an INDI driver.
bool connectToServer(const std::string &host, int port)
Connect to an INDI server.
void newDevice(INDI::BaseDevice dp) override
Emmited when a new device is created from INDI server.
IPState getSafetyStatus() const
Get the current safety status.
void updateProperty(INDI::Property property) override
Emmited when a new property value arrives from INDI server.
void serverConnected() override
Emmited when the server is connected.
void removeDevice(INDI::BaseDevice dp) override
Emmited when a device is deleted from INDI server.
void serverDisconnected(int exitCode) override
Emmited when the server gets disconnected.
SafetyMonitorClient(const std::string &deviceName, std::function< void()> statusCallback)
const char * pstateStr(IPState s)
Interface to the reference INDI C API device implementation on the Device Driver side.
#define LOGF_INFO(fmt,...)
#define LOGF_WARN(fmt,...)
#define LOGF_ERROR(fmt,...)