CARMA C++
LOControlImpl.h
Go to the documentation of this file.
1 
10 #ifndef CARMA_ANTENNA_OVRO_LOCONTROLIMPL_H
11 #define CARMA_ANTENNA_OVRO_LOCONTROLIMPL_H
12 
13 // Carma includes
14 #include "carma/antenna/common/RxControl.h"
16 #include "carma/antenna/common/SwitchState.h"
18 
19 namespace log4cpp {
20  // Forward declaration
21  class Category;
22 } // End namespace log4cpp
23 
24 namespace carma {
25 namespace antenna {
26 
27 namespace common {
28  class LOReferenceMonitor;
29  class Varactor;
30 } // End namespace common
31 
32 namespace ovro {
33 
34  // Forward declaration
35  class GunnPll;
36 
44  class LOControlImpl {
45  public:
46 
54  YigPll & yig,
55  GunnPll & gunn,
59 
60  ~LOControlImpl();
61 
67  static bool yigFreqOutOfRange( ::CORBA::Double yigFreq );
68 
74  bool loFreqOutOfRange( ::CORBA::Double loFreq );
75 
81  void setLoFrequency( ::CORBA::Double Frequency );
82 
89  void setYigFrequency( ::CORBA::Double yigFreq );
90 
97  setYigFrequencyAndWaitForLockOrTimeout( ::CORBA::Double yigFreq );
98 
103 
107  void setLoTerminatorPowerLevel( ::CORBA::Double power );
108 
109  // Yig and LO frequencies are in GHz!
110 
111  // Control commands from antenna::common::LOControl interface.
112  void toggleSweep( ::CORBA::Boolean on );
113 
114  void toggleYigSweep( ::CORBA::Boolean on );
115 
116  void setLoTerminatorAttenuation( ::CORBA::UShort atten );
117 
118  // Control commands specific to OVRO YigPll.
119  void extractTuneTable( );
120 
121  void setDampingResistance( ::CORBA::UShort resistance );
122 
123  void setYigOutputFrequency( ::CORBA::Double freq );
124 
125  void resetYigPll( );
126 
127  // Control commands specific to OVRO Bias Tuned Gunn.
128  void setGunnVoltage( ::CORBA::Float volts );
129 
130  void setGunnLoopGain( ::CORBA::Float percent );
131 
132  void turnGunn( carma::antenna::common::SwitchState state );
133 
134  void turnIfMonitor( carma::antenna::common::SwitchState state );
135 
136  void setTuner( ::CORBA::ULong position );
137 
138  void setBackshort( ::CORBA::ULong position );
139 
140  void setAttenuator( ::CORBA::ULong position );
141 
142  void jogTuner( ::CORBA::Short microsteps );
143 
144  void jogBackshort( ::CORBA::Short microsteps );
145 
146  void jogAttenuator( ::CORBA::Short microsteps );
147 
148  void resetGunn( );
149 
150  private:
151 
156  log4cpp::Category & log_;
157  const carma::antenna::common::RxTypeInfo typeInfo_;
158 
159  }; // End class LOControlImpl
160 }}} // End namespace carma::antenna::ovro
161 #endif
bool loFreqOutOfRange(::CORBA::Double loFreq)
Verify that lo frequency is in range.
YIG PLL CAN module device class.
Definition: YigPll.h:33
void setLoTerminatorPowerToPreset()
Set the LO terminator power level to preset value.
enum carma::antenna::ovro::YigPll::LockResult LockResultType
Indicates the result of the lockYigFrequency command.
Type
Enumerate valid Receiver types.
Definition: RxControl.idl:36
Declaration for carma::antenna::common::RxTypeInfo class.
CAN Device class implementation for LO Reference Monitor Module.
LOControlImpl Corba control class.
Definition: LOControlImpl.h:44
static bool yigFreqOutOfRange(::CORBA::Double yigFreq)
Verify that yig frequency is in range.
CAN Device implementation for YIG PLL.
void setYigFrequency(::CORBA::Double yigFreq)
Set the yig frequency and lock.
void setLoFrequency(::CORBA::Double Frequency)
Set the gunn LO frequency independent of the YIG.
Maps and provides conversions between the various receiver type definitions from the monitor system...
Definition: RxTypeInfo.h:32
void setLoTerminatorPowerLevel(::CORBA::Double power)
Set the LO terminator power level to requested value.
LOControlImpl(YigPll &yig, GunnPll &gunn, carma::antenna::common::Varactor &varactor, carma::antenna::common::LOReferenceMonitor &loref, carma::antenna::common::RxControl::Type type)
Constructor.
SwitchState
Generic switch state enumerator.
Definition: SwitchState.idl:18
GunnPll CAN device class.
Definition: GunnPll.h:36
YigPll::LockResultType setYigFrequencyAndWaitForLockOrTimeout(::CORBA::Double yigFreq)
Set Yig frequency and wait for either lock or timeout.
Varactor CAN device class.
Definition: Varactor.h:30