Instrument Neutral Distributed Interface INDI 2.2.5
dragonlight.h
Go to the documentation of this file.
1/*******************************************************************************
2 Copyright(c) 2024 Rick Bassham. All rights reserved.
3
4 Dark Dragons Astronomy DragonLIGHT
5
6 This program is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by the Free
8 Software Foundation; either version 2 of the License, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 more details.
15
16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA.
20
21 The full GNU General Public License is included in this distribution in the
22 file called LICENSE.
23*******************************************************************************/
24#pragma once
25
28
30{
31 public:
33 virtual ~DragonLIGHT() override = default;
34
35 const char *getDefaultName() override;
36 void ISGetProperties(const char *dev) override;
37 virtual bool initProperties() override;
38 virtual bool updateProperties() override;
39
40 virtual bool ISNewText(const char *dev, const char *name, char *texts[], char *names[], int n) override;
41 virtual bool ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) override;
42 virtual bool ISNewNumber(const char *dev, const char *name, double values[], char *names[], int n) override;
43 virtual bool ISSnoopDevice(XMLEle *root) override;
44
45 virtual bool Connect() override;
46 virtual bool Disconnect() override;
47 virtual void TimerHit() override;
48
49 protected:
50 virtual bool SetLightBoxBrightness(uint16_t value) override;
51 virtual bool EnableLightBox(bool enable) override;
52 virtual bool saveConfigItems(FILE *fp) override;
53
54 private:
55 void updateStatus();
56 void discoverDevices();
57
58 INDI::PropertyText FirmwareTP {2};
59 INDI::PropertyText IPAddressTP {1};
60 INDI::PropertySwitch DiscoverSwitchSP {1};
61};
virtual bool ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) override
Process the client newSwitch command.
virtual bool ISSnoopDevice(XMLEle *root) override
Process a snoop event from INDI server. This function is called when a snooped property is updated in...
virtual bool ISNewText(const char *dev, const char *name, char *texts[], char *names[], int n) override
Process the client newSwitch command.
virtual bool EnableLightBox(bool enable) override
EnableLightBox Turn on/off on a light box. Must be implemented in the child class.
virtual bool Connect() override
Connect to the device. INDI::DefaultDevice implementation connects to appropriate connection interfac...
void ISGetProperties(const char *dev) override
define the driver's properties to the client. Usually, only a minimum set of properties are defined t...
virtual void TimerHit() override
Callback function to be called once SetTimer duration elapses.
virtual bool saveConfigItems(FILE *fp) override
saveConfigItems Save specific properties in the provide config file handler. Child class usually over...
virtual bool updateProperties() override
updateProperties is called whenever there is a change in the CONNECTION status of the driver....
virtual bool SetLightBoxBrightness(uint16_t value) override
setBrightness Set light level. Must be implemented in the child class, if supported.
const char * getDefaultName() override
virtual bool ISNewNumber(const char *dev, const char *name, double values[], char *names[], int n) override
Process the client newNumber command.
virtual bool initProperties() override
Initialize properties initial state and value. The child class must implement this function.
virtual ~DragonLIGHT() override=default
virtual bool Disconnect() override
Disconnect from device.
Class to provide extended functionality for devices in addition to the functionality provided by INDI...
ISState
Switch state.
Definition indiapi.h:148