CARMA C++
RxSelectorHandle.h
Go to the documentation of this file.
1 
2 #ifndef CARMA_RX_SELECTOR_HANDLE_H
3 #define CARMA_RX_SELECTOR_HANDLE_H
4 
18 #include "carma/corba/corba.h"
19 #include "carma/antenna/common/RxControl.h"
20 #include "carma/antenna/common/RxSelector.h"
22 #include "carma/control/SubarrayControl_skel.h"
25 
26 namespace carma {
27 
28 namespace monitor {
29 
30  class MonitorSystem;
31 
32 } // namespace monitor
33 namespace control {
34 
35 typedef RemoteObjHandleT<carma::antenna::common::RxSelector>
36  RxSelectorRemoteObjHandle;
37 
40 
41 public:
53  RxSelectorHandle( const unsigned short carmaAntNo,
54  monitor::MonitorSystem & monitorSystem,
55  monitor::ControlSubsystemBase::Antenna & antenna );
56 
60  virtual ~RxSelectorHandle();
61 
84  double yigFreq,
85  double loFreq,
86  double refFreq,
87  int harmonic,
88  bool endWithAbsorberInBeam,
89  bool optimizeReceiver,
90  bool forceRelock,
91  monitor::ControlSubsystem* controlSubsystem,
92  monitor::MonitorSystem* monsys,
93  const int preferredSeqNo );
94 
101  double power);
102 
109 
117  antenna::common::RxControl::IF_Type polarization,
118  double atten);
119 
125  void vj( antenna::common::RxControl::Type rxType,
126  antenna::common::RxControl::Pol_Type pol,
127  float vj );
128 
134  void ij( antenna::common::RxControl::Type rxType,
135  antenna::common::RxControl::Pol_Type pol,
136  float ij );
137 
142  void setRefAtten(unsigned short atten);
143 
158  struct IVcurveArgs {
159  CORBA::Float startVjInMv;
160  CORBA::Float stopVjInMv;
161  CORBA::Float stepVjInMv;
162  CORBA::UShort deltaInMs;
163  CORBA::Boolean doTotalPower;
164  };
165 
166  void doIVcurve( carma::antenna::common::RxControl::Type rx,
167  carma::antenna::common::RxControl::Pol_Type pol,
168  const IVcurveArgs ivCurveParams,
169  carma::monitor::MonitorSystem * const monsys,
170  int preferredSeqNo );
171 
176 
177  /*
178  * Get the carma antenna number
179  * @return the carma antenna number
180  */
181  unsigned short getCarmaAntennaNo( ) const;
182 
194  bool isActionComplete( const monitor::MonitorSystem & monsys,
195  int monDataErrorLimit );
196 
197 
198 private:
199  void handleNilRx(antenna::common::RxControl::Type rxType ) const;
200  void handleNilIF(antenna::common::RxControl::Type rxType ) const;
201  void handleNilFrontEnd(antenna::common::RxControl::Type rxType ) const;
202  const unsigned short carmaAntNo_;
203  int nextSequenceNo_;
204  int consecutiveErrorCount_;
205  antenna::common::RxControl::Type pendingIvCurveRxType_;
206  antenna::common::RxControl::Pol_Type pendingIvCurvePolType_;
207 };
208 
209 
210 } } // End namespace carma/control
211 
212 
213 #endif // CARMA_CONTROL_RX_SELECTOR_HANDLE_H
214 
RxSelectorHandle(const unsigned short carmaAntNo, monitor::MonitorSystem &monitorSystem, monitor::ControlSubsystemBase::Antenna &antenna)
Constructor.
carma::antenna::common::IVCurve * getIVcurve()
Retrieve that same IV curve.
virtual ~RxSelectorHandle()
Destructor - releases object (DO) references.
The monitor system base class.
The monitor system for the Control subsystem.
Semi-hand-forged extensions to the auto-generated classes for the Control subsystem.
void setFrequency(antenna::common::RxControl::Type rxType, double yigFreq, double loFreq, double refFreq, int harmonic, bool endWithAbsorberInBeam, bool optimizeReceiver, bool forceRelock, monitor::ControlSubsystem *controlSubsystem, monitor::MonitorSystem *monsys, const int preferredSeqNo)
Get a receiver and set its frequency The preferred sequence number is compared to the one currently r...
void antennaIFpower(antenna::common::RxControl::Type rxType, double power)
Get a receiver and set its IF output power.
Type
Enumerate valid Receiver types.
Definition: RxControl.idl:36
Data returned by an IV curve method Be careful not to assume that the totPower contains the same numb...
Definition: IVCurve.idl:30
void antennaIFpresetPower(antenna::common::RxControl::Type rxType)
Get a receiver and set its IF output power to the preset level.
void ij(antenna::common::RxControl::Type rxType, antenna::common::RxControl::Pol_Type pol, float ij)
Get a receiver and set its front end junction current.
Manages connection to remote DO.
Kick off an IV curve with a preferred sequence number.
void setRefAtten(unsigned short atten)
Set the reference LO attenuator.
bool isActionComplete(const monitor::MonitorSystem &monsys, int monDataErrorLimit)
Compare next sequence number with one returned by monitor system.
Typed class for managing connections to DOs.
Monitor system base class.
Definition: MonitorSystem.h:81
void antennaIFatten(antenna::common::RxControl::Type rxType, antenna::common::RxControl::IF_Type polarization, double atten)
Get a receiver and set its IF attenuation to a specific value.
Manages antenna Rx selector control DO connections.
void vj(antenna::common::RxControl::Type rxType, antenna::common::RxControl::Pol_Type pol, float vj)
Get a receiver and set its front end junction voltage.