CARMA C++
RxControlImpl.h
Go to the documentation of this file.
1 
10 #ifndef CARMA_ANTENNA_OVRO_RXCONTROLIMPL_H
11 #define CARMA_ANTENNA_OVRO_RXCONTROLIMPL_H
12 
13 // Carma includes
16 #include "carma/antenna/ovro/control/ovroFrontEndControl.h"
17 #include "carma/antenna/ovro/control/ovroLOControl.h"
18 #include "carma/antenna/ovro/control/ovroPolarizationControl.h"
20 #include "carma/antenna/common/IFControl.h"
21 #include "carma/antenna/common/RxControl.h"
23 #include "carma/antenna/common/SwitchState.h"
24 
25 // Stl includes
26 #include <map>
27 
28 namespace log4cpp {
29  // Forward declaration
30  class Category;
31 }
32 
33 namespace carma {
34 
35  namespace corba {
36  class Server;
37  }
38 
39  namespace monitor {
40  class AntennaCommon;
41  class OvroSubsystem;
42  } // End namespace monitor
43 
44 namespace antenna {
45 namespace ovro {
46 
47  // Forward declarations
48  class CalibratorControlImpl;
49  class FrontEndControlImpl;
50  class IFControlImpl;
51  class OvroMaster;
52  class PolarizationControlImpl;
53 
61  class RxControlImpl {
62  public:
63 
71  carma::monitor::OvroSubsystem & ovroSubsys,
72  carma::corba::Server & server );
73 
74  ~RxControlImpl( ); // Prohibit explicit destruction
75 
76  carma::antenna::common::LOControl_ptr LO( );
77 
78  carma::antenna::common::IFControl_ptr IF(
79  carma::antenna::common::RxControl::IF_Type polarization );
80 
81  carma::antenna::common::FrontEndControl_ptr FrontEnd(
82  carma::antenna::common::RxControl::Pol_Type pol );
83 
84  carma::antenna::common::OpticsControl_ptr Optics( );
85 
86  carma::antenna::common::PolarizationControl_ptr Polarization( );
87 
88  void setFrequency( ::CORBA::Double yigFreq,
89  ::CORBA::Double LOfreq,
90  ::CORBA::Boolean endWithAbsorberInBeam,
91  ::CORBA::Boolean optimizeReceiver,
92  ::CORBA::Boolean forceRelock,
93  ::CORBA::ULong seqNo );
94 
95  void setObservingFrequency( ::CORBA::Double freq,
96  ::CORBA::ULong seqNo );
97 
98  void measureTotalPower(
100  ::CORBA::ULong seqNo );
101 
102  void toggleFastSampling( CORBA::ULong channel,
103  CORBA::Boolean start );
104 
105  void setIFPresetPower( );
106 
107  void setIFAtten(
108  CORBA::Float atten,
109  carma::antenna::common::RxControl::IF_Type ifType );
110 
111  void setIFPower( CORBA::Float power );
112 
113  private:
114 
115  typedef struct {
116  RxControlImpl & This;
117  ::CORBA::Double yigFreq;
118  ::CORBA::Double loFreq;
119  ::CORBA::ULong seqNo;
120  bool ignoreSeqNo;
121  ::CORBA::Boolean endWithAbsorberInBeam;
122  } SetFreqArgType;
123 
124  // The setFrequency command dispatches it's work to the below thread.
125  static void setFrequencyEntryPoint( const SetFreqArgType & args );
126 
127  // Since the Rx is the logical container for all of it's
128  // subsystems, this class is responsible for creating and
129  // maintaining those subsystems. These are ref counted CORBA
130  // servants and as such need to be created on the heap.
131  typedef ::std::map< enum carma::antenna::common::RxControl::Pol_Type,
132  FrontEndControlImpl * > FrontEndMap;
133  typedef ::std::map< enum carma::antenna::common::RxControl::IF_Type,
134  IFControlImpl * > IFMap;
135  typedef ::std::map<
136  enum carma::antenna::common::RxControl::Pol_Type,
137  carma::antenna::ovro::FrontEndControl_ptr > FrontEndPtrMap;
138  typedef ::std::map<
139  enum carma::antenna::common::RxControl::IF_Type,
140  carma::antenna::common::IFControl_ptr > IFPtrMap;
141 
142  FrontEndMap frontEndMap_;
143  IFMap ifMap_;
144  LOControlImpl lo_;
145  OpticsControlImpl optics_;
146  PolarizationControlImpl polarization_;
147  CalibratorControlImpl & cal_;
148 
149 
150  FrontEndPtrMap frontEndPtrMap_;
151  IFPtrMap ifPtrMap_;
152  carma::antenna::ovro::LOControl_ptr loPtr_;
153  carma::antenna::common::OpticsControl_ptr opticsPtr_;
154  carma::antenna::ovro::PolarizationControl_ptr polPtr_;
155 
156  log4cpp::Category & log_;
157  carma::monitor::OvroSubsystem & mon_;
158  carma::monitor::AntennaCommon & comMon_;
160 
161  };
162 } // namespace ovro
163 } // namespace antenna
164 } // namespace carma
165 #endif
LOControlImpl Corba control implementation.
OpticsControlImpl Corba control implementation.
PolarizationControlImpl Corba control class.
CORBA control implementation for the FrontEndControl interface.
Type
Enumerate valid Receiver types.
Definition: RxControl.idl:36
10-m Antenna Optics CAN device class.
Definition: Optics.h:37
Position
A calibrator position enumerator.
Declaration for carma::antenna::common::RxTypeInfo class.
LOControlImpl Corba control class.
Definition: LOControlImpl.h:44
CalibrationControlImpl Corba control class.
RxControlImpl(carma::antenna::ovro::OvroMaster &master, carma::antenna::ovro::CalibratorControlImpl &cal, carma::antenna::common::RxControl::Type type, carma::monitor::OvroSubsystem &ovroSubsys, carma::corba::Server &server)
Constructor.
Maps and provides conversions between the various receiver type definitions from the monitor system...
Definition: RxTypeInfo.h:32
IFControlImpl Corba control delegate class.
Definition: IFControlImpl.h:39
PolarizationControlImpl Corba control implementation.
Class for creating, managing and serving requests to CORBA servants.
Definition: Server.h:22
RxControlImpl CORBA control class.
Definition: RxControlImpl.h:61
Ovro Antenna canbus Master class.
Definition: OvroMaster.h:59
OpticsControlImpl Corba control class.