• 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
indifocuser.cpp
Go to the documentation of this file.
1 /* INDI Focuser
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 
10 #include <basedevice.h>
11 #include "indifocuser.h"
12 #include "clientmanager.h"
13 
14 namespace ISD
15 {
16 
17 
18 void Focuser::processLight(ILightVectorProperty *lvp)
19 {
20  DeviceDecorator::processLight(lvp);
21 }
22 
23 void Focuser::processNumber(INumberVectorProperty *nvp)
24 {
25 
26  DeviceDecorator::processNumber(nvp);
27 }
28 
29 void Focuser::processSwitch(ISwitchVectorProperty *svp)
30 {
31  DeviceDecorator::processSwitch(svp);
32 
33 }
34 
35 void Focuser::processText(ITextVectorProperty *tvp)
36 {
37  DeviceDecorator::processText(tvp);
38 }
39 
40 bool Focuser::focusIn()
41 {
42  ISwitchVectorProperty *focusProp = baseDevice->getSwitch("FOCUS_MOTION");
43  if (focusProp == NULL)
44  return false;
45 
46 
47  ISwitch *inFocus = IUFindSwitch(focusProp, "FOCUS_INWARD");
48  if (inFocus == NULL)
49  return false;
50 
51  if (inFocus->s == ISS_ON)
52  return true;
53 
54  IUResetSwitch(focusProp);
55  inFocus->s = ISS_ON;
56 
57  clientManager->sendNewSwitch(focusProp);
58 
59  return true;
60 
61 }
62 
63 bool Focuser::focusOut()
64 {
65  ISwitchVectorProperty *focusProp = baseDevice->getSwitch("FOCUS_MOTION");
66  if (focusProp == NULL)
67  return false;
68 
69 
70  ISwitch *outFocus = IUFindSwitch(focusProp, "FOCUS_OUTWARD");
71  if (outFocus == NULL)
72  return false;
73 
74  if (outFocus->s == ISS_ON)
75  return true;
76 
77  IUResetSwitch(focusProp);
78  outFocus->s = ISS_ON;
79 
80  clientManager->sendNewSwitch(focusProp);
81 
82  return true;
83 }
84 
85 bool Focuser::moveFocuser(int secs)
86 {
87  INumberVectorProperty *focusProp = baseDevice->getNumber("FOCUS_TIMER");
88  if (focusProp == NULL)
89  return false;
90 
91  focusProp->np[0].value = secs;
92 
93  clientManager->sendNewNumber(focusProp);
94 
95  return true;
96 }
97 
98 bool Focuser::absMoveFocuser(int steps)
99 {
100  INumberVectorProperty *focusProp = baseDevice->getNumber("ABS_FOCUS_POSITION");
101  if (focusProp == NULL)
102  return false;
103 
104  focusProp->np[0].value = steps;
105 
106  clientManager->sendNewNumber(focusProp);
107 
108  return true;
109 }
110 
111 bool Focuser::canAbsMove()
112 {
113  INumberVectorProperty *focusProp = baseDevice->getNumber("ABS_FOCUS_POSITION");
114  if (focusProp == NULL)
115  return false;
116  else
117  return true;
118 }
119 
120 }
ISD::DeviceDecorator::baseDevice
INDI::BaseDevice * baseDevice
Definition: indistd.h:189
indifocuser.h
ISD::DeviceDecorator::processNumber
virtual void processNumber(INumberVectorProperty *nvp)
Definition: indistd.cpp:653
clientmanager.h
ISD::Focuser::processSwitch
void processSwitch(ISwitchVectorProperty *svp)
Definition: indifocuser.cpp:29
ISD::DeviceDecorator::processSwitch
virtual void processSwitch(ISwitchVectorProperty *svp)
Definition: indistd.cpp:659
ISD::Focuser::absMoveFocuser
bool absMoveFocuser(int steps)
Definition: indifocuser.cpp:98
ISD::Focuser::processNumber
void processNumber(INumberVectorProperty *nvp)
Definition: indifocuser.cpp:23
ISD::Focuser::processText
void processText(ITextVectorProperty *tvp)
Definition: indifocuser.cpp:35
ISD::DeviceDecorator::processText
virtual void processText(ITextVectorProperty *tvp)
Definition: indistd.cpp:665
ISD::Focuser::focusIn
bool focusIn()
Definition: indifocuser.cpp:40
ISD::Focuser::canAbsMove
bool canAbsMove()
Definition: indifocuser.cpp:111
ISD::DeviceDecorator::clientManager
ClientManager * clientManager
Definition: indistd.h:190
ISD::Focuser::processLight
void processLight(ILightVectorProperty *lvp)
Definition: indifocuser.cpp:18
ISD::DeviceDecorator::processLight
virtual void processLight(ILightVectorProperty *lvp)
Definition: indistd.cpp:646
ISD::Focuser::focusOut
bool focusOut()
Definition: indifocuser.cpp:63
ISD::Focuser::moveFocuser
bool moveFocuser(int secs)
Definition: indifocuser.cpp:85
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:36:19 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