• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

kstars

  • sources
  • kde-4.12
  • kdeedu
  • kstars
  • kstars
  • indi
indistd.h
Go to the documentation of this file.
1 /* INDI STD
2  Copyright (C) 2012 Jasem Mutlaq (mutlaqja@ikarustech.com)
3 
4  This application is free software; you can redistribute it and/or
5  modify it under the terms of the GNU General Public
6  License as published by the Free Software Foundation; either
7  version 2 of the License, or (at your option) any later version.
8 
9  Handle INDI Standard properties.
10  */
11 
12 #ifndef INDISTD_H
13 #define INDISTD_H
14 
15 #include <indiproperty.h>
16 #include <QObject>
17 
18 #include "skypoint.h"
19 #include "indicommon.h"
20 #include "fitsviewer/fitscommon.h"
21 
22 
23 class ClientManager;
24 class FITSViewer;
25 class DriverInfo;
26 class DeviceInfo;
27 class StreamWG;
28 
29 // INDI Standard Device Namespace
30 namespace ISD
31 {
32 
33 
34 class GDSetCommand : public QObject
35 {
36  Q_OBJECT
37 
38 public:
39  GDSetCommand(INDI_TYPE inPropertyType, const QString & inProperty, const QString & inElement, QVariant qValue, QObject *parent);
40 
41  INDI_TYPE propType;
42  QString indiProperty;
43  QString indiElement;
44  QVariant elementValue;
45 
46 };
47 
48 class GDInterface : public QObject
49 {
50  Q_OBJECT
51 
52 public:
53  // Property handling
54  virtual void registerProperty(INDI::Property *prop) =0;
55  virtual void removeProperty(INDI::Property *prop) =0;
56  virtual void processSwitch(ISwitchVectorProperty *svp)=0;
57  virtual void processText(ITextVectorProperty* tvp)=0;
58  virtual void processNumber(INumberVectorProperty *nvp)=0;
59  virtual void processLight(ILightVectorProperty *lvp)=0;
60  virtual void processBLOB(IBLOB *bp)=0;
61 
62  // Accessors
63  virtual QList<INDI::Property *> getProperties() =0;
64  virtual DeviceFamily getType()=0;
65  virtual DriverInfo * getDriverInfo() = 0;
66  virtual DeviceInfo * getDeviceInfo() = 0;
67  virtual INDI::BaseDevice* getBaseDevice()=0;
68 
69  // Convenience functions
70  virtual bool setConfig(INDIConfig tConfig)=0;
71  virtual const char *getDeviceName()=0;
72  virtual bool isConnected()=0;
73  virtual bool getMinMaxStep(const QString & propName, const QString & elementName, double *min, double *max, double *step)=0;
74 
75  virtual ~GDInterface() {}
76 
77 protected:
78  DeviceFamily dType;
79  QList<INDI::Property *> properties;
80 
81 public slots:
82  virtual bool Connect()=0;
83  virtual bool Disconnect()=0;
84  virtual bool runCommand(int command, void *ptr=NULL)=0;
85  virtual bool setProperty(QObject *)=0;
86 
87 signals:
88  void Connected();
89  void Disconnected();
90  void switchUpdated(ISwitchVectorProperty *svp);
91  void textUpdated(ITextVectorProperty* tvp);
92  void numberUpdated(INumberVectorProperty *nvp);
93  void lightUpdated(ILightVectorProperty *lvp);
94  void BLOBUpdated(IBLOB *bp);
95 
96  void propertyDefined(INDI::Property *prop);
97  void propertyDeleted(INDI::Property *prop);
98 
99 
100 };
101 
102 class GenericDevice : public GDInterface
103 {
104 
105  Q_OBJECT
106 
107 public:
108 
109  GenericDevice(DeviceInfo* idv);
110  ~GenericDevice();
111 
112  virtual void registerProperty(INDI::Property *prop);
113  virtual void removeProperty(INDI::Property *prop);
114  virtual void processSwitch(ISwitchVectorProperty *svp);
115  virtual void processText(ITextVectorProperty* tvp);
116  virtual void processNumber(INumberVectorProperty *nvp);
117  virtual void processLight(ILightVectorProperty *lvp);
118  virtual void processBLOB(IBLOB *bp);
119  virtual DeviceFamily getType() { return dType; }
120  virtual const char *getDeviceName();
121  virtual DriverInfo * getDriverInfo() { return driverInfo;}
122  virtual DeviceInfo * getDeviceInfo() { return deviceInfo;}
123  virtual QList<INDI::Property *> getProperties() { return properties; }
124 
125 
126  virtual bool setConfig(INDIConfig tConfig);
127  virtual bool isConnected() { return connected; }
128  virtual INDI::BaseDevice* getBaseDevice() { return baseDevice;}
129  virtual bool getMinMaxStep(const QString & propName, const QString & elementName, double *min, double *max, double *step);
130 
131 public slots:
132  virtual bool Connect();
133  virtual bool Disconnect();
134  virtual bool runCommand(int command, void *ptr=NULL);
135  virtual bool setProperty(QObject *);
136 
137 protected:
138  void createDeviceInit();
139  void updateTime();
140  void updateLocation();
141 
142 private:
143  bool connected;
144 
145  DriverInfo *driverInfo;
146  DeviceInfo *deviceInfo;
147  INDI::BaseDevice *baseDevice;
148  ClientManager *clientManager;
149 
150 };
151 
152 class DeviceDecorator : public GDInterface
153 {
154  Q_OBJECT
155 
156 public:
157 
158 
159  DeviceDecorator(GDInterface *iPtr);
160  ~DeviceDecorator();
161 
162  virtual void registerProperty(INDI::Property *prop);
163  virtual void removeProperty(INDI::Property *prop);
164  virtual void processSwitch(ISwitchVectorProperty *svp);
165  virtual void processText(ITextVectorProperty* tvp);
166  virtual void processNumber(INumberVectorProperty *nvp);
167  virtual void processLight(ILightVectorProperty *lvp);
168  virtual void processBLOB(IBLOB *bp);
169  virtual DeviceFamily getType();
170 
171  virtual bool setConfig(INDIConfig tConfig);
172  virtual bool isConnected();
173  const char *getDeviceName();
174  DriverInfo *getDriverInfo();
175  DeviceInfo * getDeviceInfo();
176  QList<INDI::Property *> getProperties();
177  virtual INDI::BaseDevice* getBaseDevice();
178 
179  bool getMinMaxStep(const QString & propName, const QString & elementName, double *min, double *max, double *step);
180 
181 
182 public slots:
183  virtual bool Connect();
184  virtual bool Disconnect();
185  virtual bool runCommand(int command, void *ptr=NULL);
186  virtual bool setProperty(QObject *);
187 
188 protected:
189  INDI::BaseDevice *baseDevice;
190  ClientManager *clientManager;
191  GDInterface *interfacePtr;
192 
193 };
194 
195 class ST4
196 {
197 public:
198  ST4(INDI::BaseDevice *bdv, ClientManager *cm);
199  ~ST4();
200 
201  bool doPulse(GuideDirection ra_dir, int ra_msecs, GuideDirection dec_dir, int dec_msecs );
202  bool doPulse(GuideDirection dir, int msecs );
203  const char *getDeviceName();
204 
205 private:
206  INDI::BaseDevice *baseDevice;
207  ClientManager *clientManager;
208 
209 };
210 
211 
212 
213 }
214 
215 #endif // INDISTD_H
ISD::DeviceDecorator::Disconnect
virtual bool Disconnect()
Definition: indistd.cpp:728
ISD::DeviceDecorator
Definition: indistd.h:152
ISD::DeviceDecorator::baseDevice
INDI::BaseDevice * baseDevice
Definition: indistd.h:189
ISD::DeviceDecorator::setProperty
virtual bool setProperty(QObject *)
Definition: indistd.cpp:634
ISD::GDInterface::registerProperty
virtual void registerProperty(INDI::Property *prop)=0
ISD::GenericDevice::getProperties
virtual QList< INDI::Property * > getProperties()
Definition: indistd.h:123
ISD::GDInterface::~GDInterface
virtual ~GDInterface()
Definition: indistd.h:75
ISD::GenericDevice::updateLocation
void updateLocation()
Definition: indistd.cpp:438
ISD::DeviceDecorator::runCommand
virtual bool runCommand(int command, void *ptr=NULL)
Definition: indistd.cpp:629
StreamWG
Definition: streamwg.h:33
ISD::GDInterface::runCommand
virtual bool runCommand(int command, void *ptr=NULL)=0
DeviceFamily
DeviceFamily
Definition: indicommon.h:66
ISD::DeviceDecorator::registerProperty
virtual void registerProperty(INDI::Property *prop)
Definition: indistd.cpp:671
ISD::GDInterface::getBaseDevice
virtual INDI::BaseDevice * getBaseDevice()=0
ISD::GDInterface::setConfig
virtual bool setConfig(INDIConfig tConfig)=0
ISD::DeviceDecorator::setConfig
virtual bool setConfig(INDIConfig tConfig)
Definition: indistd.cpp:683
ISD::GenericDevice::getDeviceName
virtual const char * getDeviceName()
Definition: indistd.cpp:66
ISD::DeviceDecorator::processNumber
virtual void processNumber(INumberVectorProperty *nvp)
Definition: indistd.cpp:653
ISD::GDInterface::getMinMaxStep
virtual bool getMinMaxStep(const QString &propName, const QString &elementName, double *min, double *max, double *step)=0
ISD::GenericDevice::~GenericDevice
~GenericDevice()
Definition: indistd.cpp:61
ISD::GDInterface::getDeviceName
virtual const char * getDeviceName()=0
ISD::GenericDevice::processLight
virtual void processLight(ILightVectorProperty *lvp)
Definition: indistd.cpp:267
ISD::GDInterface::processLight
virtual void processLight(ILightVectorProperty *lvp)=0
ISD::GDInterface::processNumber
virtual void processNumber(INumberVectorProperty *nvp)=0
GuideDirection
GuideDirection
Definition: indicommon.h:23
ISD::GDSetCommand
Definition: indistd.h:34
ISD::GenericDevice::setConfig
virtual bool setConfig(INDIConfig tConfig)
Definition: indistd.cpp:344
ISD::GDInterface::processText
virtual void processText(ITextVectorProperty *tvp)=0
ISD::DeviceDecorator::getDeviceName
const char * getDeviceName()
Definition: indistd.cpp:703
QObject
ISD::DeviceDecorator::processSwitch
virtual void processSwitch(ISwitchVectorProperty *svp)
Definition: indistd.cpp:659
ISD::GenericDevice::processNumber
virtual void processNumber(INumberVectorProperty *nvp)
Definition: indistd.cpp:196
ISD::GDInterface::numberUpdated
void numberUpdated(INumberVectorProperty *nvp)
ISD::GDInterface::removeProperty
virtual void removeProperty(INDI::Property *prop)=0
ISD::GenericDevice::getType
virtual DeviceFamily getType()
Definition: indistd.h:119
ISD::GDInterface::lightUpdated
void lightUpdated(ILightVectorProperty *lvp)
ISD::GenericDevice::processText
virtual void processText(ITextVectorProperty *tvp)
Definition: indistd.cpp:233
ISD::GenericDevice::createDeviceInit
void createDeviceInit()
Definition: indistd.cpp:392
ISD::GDInterface::Connect
virtual bool Connect()=0
ISD::GDInterface::Disconnected
void Disconnected()
ISD::DeviceDecorator::~DeviceDecorator
~DeviceDecorator()
Definition: indistd.cpp:624
ISD::GenericDevice::setProperty
virtual bool setProperty(QObject *)
Definition: indistd.cpp:532
ISD::GenericDevice
Definition: indistd.h:102
ISD::DeviceDecorator::getDriverInfo
DriverInfo * getDriverInfo()
Definition: indistd.cpp:693
fitscommon.h
ISD::GenericDevice::getBaseDevice
virtual INDI::BaseDevice * getBaseDevice()
Definition: indistd.h:128
ISD::GenericDevice::processBLOB
virtual void processBLOB(IBLOB *bp)
Definition: indistd.cpp:272
ISD::GenericDevice::GenericDevice
GenericDevice(DeviceInfo *idv)
Definition: indistd.cpp:46
ISD::GDInterface::isConnected
virtual bool isConnected()=0
ISD::GDSetCommand::propType
INDI_TYPE propType
Definition: indistd.h:41
ISD::GDInterface::switchUpdated
void switchUpdated(ISwitchVectorProperty *svp)
ISD::DeviceDecorator::getMinMaxStep
bool getMinMaxStep(const QString &propName, const QString &elementName, double *min, double *max, double *step)
Definition: indistd.cpp:734
ISD::DeviceDecorator::getDeviceInfo
DeviceInfo * getDeviceInfo()
Definition: indistd.cpp:698
ISD::DeviceDecorator::processBLOB
virtual void processBLOB(IBLOB *bp)
Definition: indistd.cpp:639
ISD::DeviceDecorator::processText
virtual void processText(ITextVectorProperty *tvp)
Definition: indistd.cpp:665
ISD::GDInterface::propertyDeleted
void propertyDeleted(INDI::Property *prop)
ISD::DeviceDecorator::Connect
virtual bool Connect()
Definition: indistd.cpp:723
ISD::GDInterface::properties
QList< INDI::Property * > properties
Definition: indistd.h:79
ISD::ST4::getDeviceName
const char * getDeviceName()
Definition: indistd.cpp:750
ISD::DeviceDecorator::getProperties
QList< INDI::Property * > getProperties()
Definition: indistd.cpp:713
skypoint.h
ISD::GenericDevice::getDeviceInfo
virtual DeviceInfo * getDeviceInfo()
Definition: indistd.h:122
DriverInfo
Definition: driverinfo.h:24
ISD::GenericDevice::getDriverInfo
virtual DriverInfo * getDriverInfo()
Definition: indistd.h:121
ISD::DeviceDecorator::clientManager
ClientManager * clientManager
Definition: indistd.h:190
ISD::GDInterface::getType
virtual DeviceFamily getType()=0
ISD::GenericDevice::removeProperty
virtual void removeProperty(INDI::Property *prop)
Definition: indistd.cpp:166
ISD::GDSetCommand::indiElement
QString indiElement
Definition: indistd.h:43
ISD::GDInterface::processSwitch
virtual void processSwitch(ISwitchVectorProperty *svp)=0
ClientManager
Definition: clientmanager.h:22
ISD::DeviceDecorator::removeProperty
virtual void removeProperty(INDI::Property *prop)
Definition: indistd.cpp:676
ISD::GDInterface::textUpdated
void textUpdated(ITextVectorProperty *tvp)
ISD::GDInterface::BLOBUpdated
void BLOBUpdated(IBLOB *bp)
ISD::GDInterface::processBLOB
virtual void processBLOB(IBLOB *bp)=0
ISD::DeviceDecorator::DeviceDecorator
DeviceDecorator(GDInterface *iPtr)
Definition: indistd.cpp:616
ISD::GDInterface::setProperty
virtual bool setProperty(QObject *)=0
ISD::GDInterface::dType
DeviceFamily dType
Definition: indistd.h:78
ISD::GenericDevice::Disconnect
virtual bool Disconnect()
Definition: indistd.cpp:473
ISD::ST4
Definition: indistd.h:195
ISD::DeviceDecorator::processLight
virtual void processLight(ILightVectorProperty *lvp)
Definition: indistd.cpp:646
ISD::GDSetCommand::indiProperty
QString indiProperty
Definition: indistd.h:42
ISD::GDSetCommand::GDSetCommand
GDSetCommand(INDI_TYPE inPropertyType, const QString &inProperty, const QString &inElement, QVariant qValue, QObject *parent)
Definition: indistd.cpp:37
ISD::GDInterface::getDeviceInfo
virtual DeviceInfo * getDeviceInfo()=0
INDIConfig
INDIConfig
Definition: indicommon.h:21
ISD::GDSetCommand::elementValue
QVariant elementValue
Definition: indistd.h:44
ISD::GDInterface::Disconnect
virtual bool Disconnect()=0
ISD::DeviceDecorator::isConnected
virtual bool isConnected()
Definition: indistd.cpp:718
ISD::DeviceDecorator::getBaseDevice
virtual INDI::BaseDevice * getBaseDevice()
Definition: indistd.cpp:708
ISD::GenericDevice::processSwitch
virtual void processSwitch(ISwitchVectorProperty *svp)
Definition: indistd.cpp:171
ISD::GenericDevice::runCommand
virtual bool runCommand(int command, void *ptr=NULL)
Definition: indistd.cpp:478
ISD::GenericDevice::updateTime
void updateTime()
Definition: indistd.cpp:404
ISD::GDInterface::propertyDefined
void propertyDefined(INDI::Property *prop)
ISD::GDInterface::getProperties
virtual QList< INDI::Property * > getProperties()=0
indiproperty.h
ISD::GenericDevice::isConnected
virtual bool isConnected()
Definition: indistd.h:127
DeviceInfo
Definition: deviceinfo.h:18
ISD::DeviceDecorator::interfacePtr
GDInterface * interfacePtr
Definition: indistd.h:191
ISD::DeviceDecorator::getType
virtual DeviceFamily getType()
Definition: indistd.cpp:688
ISD::ST4::ST4
ST4(INDI::BaseDevice *bdv, ClientManager *cm)
Definition: indistd.cpp:742
indicommon.h
FITSViewer
Definition: fitsviewer.h:51
ISD::GenericDevice::Connect
virtual bool Connect()
Definition: indistd.cpp:468
ISD::GDInterface
Definition: indistd.h:48
ISD::ST4::~ST4
~ST4()
Definition: indistd.cpp:748
ISD::ST4::doPulse
bool doPulse(GuideDirection ra_dir, int ra_msecs, GuideDirection dec_dir, int dec_msecs)
Definition: indistd.cpp:755
ISD::GenericDevice::getMinMaxStep
virtual bool getMinMaxStep(const QString &propName, const QString &elementName, double *min, double *max, double *step)
Definition: indistd.cpp:596
ISD::GenericDevice::registerProperty
virtual void registerProperty(INDI::Property *prop)
Definition: indistd.cpp:71
QList
ISD::GDInterface::getDriverInfo
virtual DriverInfo * getDriverInfo()=0
ISD::GDInterface::Connected
void Connected()
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:36:20 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kstars

Skip menu "kstars"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal