My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
AntennaGpib.h
Go to the documentation of this file.
1 // $Id: AntennaGpib.h,v 1.4 2009/08/25 21:07:39 eml Exp $
2 
3 #ifndef GCP_ANTENNA_CONTROL_ANTENNAGPIB_H
4 #define GCP_ANTENNA_CONTROL_ANTENNAGPIB_H
5 
15 #include "gcp/util/common/CryoCon.h"
16 #include "gcp/util/common/GpibUsbController.h"
17 #include "gcp/util/common/GenericTask.h"
18 #include "gcp/util/common/LsThermal.h"
19 
20 #include "gcp/antenna/control/specific/AntennaGpibMsg.h"
21 #include "gcp/antenna/control/specific/SpecificTask.h"
22 #include "gcp/antenna/control/specific/Board.h"
23 #include "gcp/util/specific/Directives.h"
24 #include "gcp/control/code/unix/libunix_src/common/tcpip.h"
25 #include "gcp/control/code/unix/libunix_src/common/regmap.h"
26 
27 #include <string>
28 
29 namespace gcp {
30  namespace antenna {
31  namespace control {
32 
33  class AntennaControl;
34 
35  class SpecificShare;
42  class AntennaGpib :
43  public SpecificTask,
44  public gcp::util::GenericTask<AntennaGpibMsg>{
45 
46  public:
47 
48  // Constructor.
49 
50  AntennaGpib(AntennaControl* parent=0,
51  std::string device="whatever",
52  unsigned cryoConAddr=12,
53  unsigned lsThermoAddr=11);
54 
55  // Destructor.
56 
57  virtual ~AntennaGpib();
58 
59  private:
60 
61  // Board object to be able to write data
62 
63  Board* thermalBoard_;
64 
65  // Declare AntennaControl a friend so that the parent has
66  // access to our private members
67 
68  friend class AntennaControl;
69 
70  // A pointer to the parent task resources
71 
72  AntennaControl* parent_;
73 
75  gcp::util::CryoCon* cryoCon_;
76  gcp::util::LsThermal* lsThermo_;
77 
78  std::string gpibDevice_;
79  unsigned cryoConAddr_;
80  unsigned lsThermoAddr_;
81 
82  // Attempt to connect to the GPIB controller
83 
84  bool connect();
85 
86  // Readout Lakeshore thermometry
87 
88  void readoutThermometry();
89 
90  // previous index in readout
91 
92  int previousIndex_;
93 
94  // Readout CryoCon heater and temperature sensor
95 
96  void readoutCryoCon();
97 
98  // Execute the GPIB command
99 
100  void executeGpibCmd(AntennaGpibMsg* msg);
101 
102  // Process a message received on our message queue
103 
104  void processMsg(AntennaGpibMsg* msg);
105 
106  // Data registers we store
107 
108  RegMapBlock* utc_;
109  RegMapBlock* lsTempSensors_;
110  RegMapBlock* ccTempSensor_;
111  RegMapBlock* ccHeaterCurrent_;
112 
113  }; // End class AntennaGpib
114 
115  } // End namespace control
116  } // End namespace antenna
117 } // End namespace gcp
118 
119 
120 
121 #endif // End #ifndef GCP_ANTENNA_CONTROL_ANTENNAGPIB_H
Definition: AntennaControl.h:43
Definition: AntennaGpibMsg.h:21
Definition: Board.h:24
Definition: CryoCon.h:17
Definition: SpecificTask.h:19
Definition: GpibUsbController.h:53
Definition: AntennaGpib.h:42
Definition: LsThermal.h:17
AntennaGpib(AntennaControl *parent=0, std::string device="whatever", unsigned cryoConAddr=12, unsigned lsThermoAddr=11)
Definition: AntennaGpib.cc:17
Definition: GenericTask.h:33
virtual ~AntennaGpib()
Definition: AntennaGpib.cc:112