Instrument Neutral Distributed Interface INDI  2.0.2
scopedome_sim.h
Go to the documentation of this file.
1 /*******************************************************************************
2  ScopeDome Dome INDI Driver
3 
4  Copyright(c) 2017-2021 Jarno Paananen. All rights reserved.
5 
6  based on:
7 
8  ScopeDome Windows ASCOM driver version 5.1.30
9 
10  and
11 
12  Copyright(c) 2014 Jasem Mutlaq. All rights reserved.
13 
14  Baader Planetarium Dome INDI Driver
15 
16  This library is free software; you can redistribute it and/or
17  modify it under the terms of the GNU Library General Public
18  License version 2 as published by the Free Software Foundation.
19  .
20  This library is distributed in the hope that it will be useful,
21  but WITHOUT ANY WARRANTY; without even the implied warranty of
22  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23  Library General Public License for more details.
24  .
25  You should have received a copy of the GNU Library General Public License
26  along with this library; see the file COPYING.LIB. If not, write to
27  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
28  Boston, MA 02110-1301, USA.
29 *******************************************************************************/
30 
31 #pragma once
32 
33 #include "scopedome_dome.h"
34 
38 class ScopeDomeSim final : public ScopeDomeCard
39 {
40  public:
44  virtual ~ScopeDomeSim() = default;
45 
46  ScopeDomeSim(const ScopeDomeSim &) = delete;
47  ScopeDomeSim &operator=(const ScopeDomeSim &) = delete;
48 
49  virtual bool detect() override;
50  virtual void setPortFD(int fd) override
51  {
52  (void)fd;
53  };
54 
55  // State polling
56  virtual int updateState() override;
57  virtual uint32_t getStatus() override;
58  virtual int getRotationCounter() override;
59  virtual int getRotationCounterExt() override;
60 
61  // Information
62  virtual void getFirmwareVersions(double &main, double &rotary) override;
63  virtual uint32_t getStepsPerRevolution() override;
64  virtual bool isCalibrationNeeded() override;
65 
66  // Commands
67  virtual void abort() override;
68  virtual void calibrate() override;
69  virtual void findHome() override;
70  virtual void controlShutter(ShutterOperation operation) override;
71 
72  virtual void resetCounter() override;
73 
74  // negative means CCW, positive CW steps
75  virtual void move(int steps) override;
76 
77  // Input/Output management
78  virtual size_t getNumberOfSensors() override;
79  virtual SensorInfo getSensorInfo(size_t index) override;
80  virtual double getSensorValue(size_t index) override;
81 
82  virtual size_t getNumberOfRelays() override;
83  virtual RelayInfo getRelayInfo(size_t index) override;
84  virtual ISState getRelayState(size_t index) override;
85  virtual void setRelayState(size_t index, ISState state) override;
86 
87  virtual size_t getNumberOfInputs() override;
88  virtual InputInfo getInputInfo(size_t index) override;
89  virtual ISState getInputValue(size_t index) override;
90 
91  virtual ISState getInputState(AbstractInput input) override;
92  virtual int setOutputState(AbstractOutput output, ISState state) override;
93 
94  virtual void setHomeSensorPolarity(HomeSensorPolarity polarity) override;
95  private:
96  //ISState digitalSensorState[32];
97 
98  //int currentStep;
99 
100  //int shutterStatus;
101 
102  static const uint32_t STEPS_PER_REVOLUTION = 3240;
103 };
virtual size_t getNumberOfRelays() override
virtual void setRelayState(size_t index, ISState state) override
virtual uint32_t getStepsPerRevolution() override
virtual bool detect() override
virtual ISState getInputValue(size_t index) override
virtual void resetCounter() override
virtual void calibrate() override
virtual bool isCalibrationNeeded() override
virtual SensorInfo getSensorInfo(size_t index) override
virtual ISState getInputState(AbstractInput input) override
virtual int getRotationCounterExt() override
virtual ~ScopeDomeSim()=default
virtual double getSensorValue(size_t index) override
virtual void controlShutter(ShutterOperation operation) override
virtual void getFirmwareVersions(double &main, double &rotary) override
virtual int getRotationCounter() override
virtual size_t getNumberOfSensors() override
virtual size_t getNumberOfInputs() override
virtual void findHome() override
ScopeDomeSim(const ScopeDomeSim &)=delete
ScopeDomeSim & operator=(const ScopeDomeSim &)=delete
virtual void abort() override
virtual RelayInfo getRelayInfo(size_t index) override
virtual void setHomeSensorPolarity(HomeSensorPolarity polarity) override
virtual void move(int steps) override
virtual InputInfo getInputInfo(size_t index) override
virtual uint32_t getStatus() override
virtual ISState getRelayState(size_t index) override
virtual int setOutputState(AbstractOutput output, ISState state) override
virtual int updateState() override
virtual void setPortFD(int fd) override
Definition: scopedome_sim.h:50
ISState
Switch state.
Definition: indiapi.h:150
int fd
Definition: intelliscope.c:43
int main(int, char *[])