CARMA C++
AntennaIF.h
Go to the documentation of this file.
1 
13 #ifndef CARMA_ANTENNA_BIMA_ANTENNAIF_H
14 #define CARMA_ANTENNA_BIMA_ANTENNAIF_H
15 
16 // System includes
17 #include <sys/time.h>
18 
19 // Carma includes
20 #include "carma/corba/corba.h"
22 #include "carma/canbus/Types.h"
23 
24 namespace log4cpp {
25  class Category;
26 } // End namespace log4cpp
27 
28 namespace carma
29 {
30 
31  namespace monitor {
32  class AntennaIF;
33  class StateMonitorPointEnum;
34  class Xac;
35  } // End namespace monitor
36 
37  namespace antenna
38  {
39  namespace bima
40  {
41 
42  // Forward Declarations
43  class Rx;
44  class SharedMemory;
48 class AntennaIF :
50 {
51 public:
52 
60  Rx &rx,
61  carma::monitor::StateMonitorPointEnum & state,
62  carma::monitor::AntennaIF &ifMon,
63  carma::monitor::Xac &xacMon);
64 
68  ~AntennaIF();
69 
70  // Public control commands.
77  void selectRx();
78 
79  void selectBand( ::CORBA::UShort band );
80 
86  void setAtten(::CORBA::Float atten);
87 
95  void setPower(::CORBA::Float pow);
96 
103  void setPresetPower();
104  void reset( );
108 
109  void startFastSample( unsigned short chan );
110  void stopFastSample();
111 
112 protected:
113 
114  // No protected members or data
115 
116 private:
117 
118  // Disallow assignment and copy construction.
119  AntennaIF(const AntennaIF &);
120  AntennaIF &operator=(const AntennaIF &);
121 
122  virtual void blankingFrameHook1( float ifoutTotPower, float pamTemp );
123  virtual void blankingFrameHook2( float attenSet,
124  unsigned char pamStat,
125  unsigned char ifSwitchStat,
126  unsigned char laserStat,
127  unsigned char nErrors );
128  virtual void blankingFrameHook3( float laserOpticalPow,
129  float laserTemp );
130  virtual void blankingFrameHook4( float inputAttenSet,
131  float outputAttenSet );
132 
133  void processPAMStatusOnChange(carma::canbus::DataVector &data);
134  void processSwitchStatusOnChange(carma::canbus::DataVector &data);
135  void processTotalPowerResponse(carma::canbus::DataVector &data);
136  void processFastTotalPowerPacket(carma::canbus::DataVector & data);
137 
138  void processFastChannel1Packet( carma::canbus::DataVector &data );
139  void processFastChannel2Packet( carma::canbus::DataVector &data );
140 
141  void updateIFTimer( void );
142  static const int NMAX=300; // note: must match MAX_SCAN_STEPS in Rx.h
143  float Rpow[NMAX];
144  float Lpow[NMAX];
145 
146  // Member variables
147  carma::antenna::bima::Rx& rx_;
148  log4cpp::Category &log_;
149  SharedMemory *_bimaShm;
150  struct timeval _tm;
151  struct timezone _tz;
152 
153 };
154 }}} // End namespace carma::antenna::bima
155 #endif
CAN Device implementation for Antenna IF Module.
AntennaIF(carma::canbus::nodeType node, carma::canbus::CanOutput &io, Rx &rx, carma::monitor::StateMonitorPointEnum &state, carma::monitor::AntennaIF &ifMon, carma::monitor::Xac &xacMon)
Constructor.
void setPresetPower()
Set output power to preset.
Declarations of carma::canbus types.
Antenna IF CAN module device class.
Definition: AntennaIF.h:48
Base Antenna IF CAN module device class.
Definition: AntennaIF.h:46
unsigned short nodeType
Carma Node Type id type.
Definition: Types.h:66
void selectRx()
Select band Select a particular band as an input to the PAM, by setting the position of the IF switch...
::std::vector< ::carma::canbus::byteType > DataVector
Alias for CAN data.
Definition: Types.h:72
void reset()
Reset the module.
void setPower(::CORBA::Float pow)
Set IF level.
void setAtten(::CORBA::Float atten)
Set IF total attenuation.
CanOutput interface.
Definition: CanOutput.h:26