CARMA C++
SetBiasCommand.h
Go to the documentation of this file.
1 #ifndef SZA_ANTENNA_CANBUS_SETBIASCOMMAND_H
2 #define SZA_ANTENNA_CANBUS_SETBIASCOMMAND_H
3 
11 #include "carma/szautil/AntNum.h"
12 #include "carma/szautil/Directives.h"
13 #include "carma/szautil/Rx.h"
14 
17 
18 namespace sza {
19  namespace antenna {
20 
21  namespace control {
22  class AntennaRx;
23  }
24 
25  namespace canbus {
26 
27  class Receiver;
28  class CanMonitorPoint;
29 
30  class SetBiasCommand : public CanCommand {
31  public:
32 
36  SetBiasCommand();
37 
38  SetBiasCommand(sza::antenna::control::AntennaRx* parent,
39  sza::util::Rx::Id rxId, unsigned seq=0);
40 
44  virtual ~SetBiasCommand();
45 
46  void compile(sza::util::Rx::Id rxId, unsigned seq);
47  void compile(sza::antenna::control::AntennaRx* parent,
48  sza::util::Rx::Id rxId, unsigned seq);
49  void run(sza::antenna::control::AntennaRx* parent,
50  sza::util::Rx::Id rxId, unsigned seq);
51 
52  void setDefaultBias(sza::util::AntNum::Id antId,
53  sza::antenna::canbus::Receiver::Amp amp,
54  short bias);
55 
56  private:
57 
58  static const short biasLimit_ = 50; // No clue!
59 
60  static const unsigned nBias_ = 8;
61 
62  static sza::antenna::canbus::Receiver::Amp biasTypes30GHz_[nBias_];
63 
64  static short biasVals30GHz_[nBias_][sza::util::AntNum::NANT];
65 
66  static Receiver::Amp biasTypes90GHz_[nBias_];
67 
68  static short biasVals90GHz_[nBias_][sza::util::AntNum::NANT];
69 
70  unsigned iAnt_;
71 
72  // 30 GHz monitor points
73 
74  CanMonitorPoint* drainCurrent30GHz_;
75  CanMonitorPoint* gateVoltage30GHz_;
76  CanMonitorPoint* gateCurrent30GHz_;
77  CanMonitorPoint* ifAmpVoltage30GHz_;
78  CanMonitorPoint* ifAmpCurrent30GHz_;
79  CanMonitorPoint* mixerCurrent30GHz_;
80  CanMonitorPoint* ledCurrent30GHz_;
81 
82  // 90 GHz monitor points
83 
84  CanMonitorPoint* gateCurrent90GHz_;
85  CanMonitorPoint* drainCurrent90GHz_;
86  CanMonitorPoint* ifAmpDrainCurrent90GHz_;
87  CanMonitorPoint* ifAmpGateCurrent90GHz_;
88 
90 
92 
93  Receiver* receiver_;
94 
95  // Return a pointer to the location in the appropriate bias
96  // array, of this amplifier
97 
98  Receiver::Amp biasTypeOf(sza::util::Rx::Id rxId, unsigned iBias);
99  short biasValOf(sza::util::Rx::Id rxId, unsigned iBias);
100  short biasLimitOf(sza::util::Rx::Id rxId, unsigned iBias);
101  CanMonitorPoint* monitorPointOf(sza::util::Rx::Id rxId,
102  unsigned iBias);
103 
104  void initialize(sza::antenna::control::AntennaRx* parent=0);
105  void compile(sza::util::Rx::Id rxId);
106  };
107 
108  } // End namespace canbus
109  } // End namespace antenna
110 } // End namespace sza
111 
112 #endif // End #ifndef SZA_ANTENNA_CANBUS_SETBIASCOMMAND_H
AntennaRx class will handle all receiver functions.
Definition: AntennaRx.h:55
Tagged: Mon Mar 29 11:46:02 PST 2004.
Tagged: Fri Nov 14 12:39:31 UTC 2003.
Tagged: Sat Oct 23 13:35:14 PDT 2004.
Id
Enumerate known receivers.
Definition: AntNum.h:35