CARMA C++
CMReceiver.h
1 #ifndef CARMA_ANTENNA_COMMON_CMRECEIVER_H
2 #define CARMA_ANTENNA_COMMON_CMRECEIVER_H
3 
13 #include "carma/canbus/Types.h"
14 
15 #include "carma/monitor/BimaSubsystem.h"
16 #include "carma/monitor/OvroSubsystem.h"
17 
18 namespace carma{
19 
20 namespace monitor {
21  class RxBias;
22 }
23 
24 namespace antenna {
25 namespace common {
26 
27 class CMReceiver : public carma::canbus::devices::XacDevice {
28 public:
29 
33  CMReceiver( carma::canbus::nodeType node,
35  carma::monitor::RxBias & rxBias,
36  carma::monitor::OvroSubsystem::RxBiasTemps * ovroRxBiasTemps );
37 
38  CMReceiver( carma::canbus::nodeType node,
40  carma::monitor::RxBias & rxBias,
41  carma::monitor::BimaSubsystem::RxBiasTemps * bimaRxBiasTemps );
45  ~CMReceiver();
46 
47  // Control commands
48  void set30GHzDrainVoltage( unsigned short stage, float volts );
49  void set30GHzDrainCurrent( unsigned short stage, float milliAmps );
50  void set30GHzIFDrainCurrent( float milliAmps );
51  void set90GHzDrainVoltage( unsigned short amplifier, float volts );
52  void set90GHzGateVoltage( unsigned short amplifier, unsigned short stage,
53  float volts );
54  void set90GHzIFDrainVoltage( float volts );
55  void set90GHzIFGateVoltage( float volts );
56  void sendGuardMessage();
57 
58  // Device interface implementation
61  bool sim);
62 
64 
65  carma::canbus::MsgBriefMap getHalfSecMonitors( ) const;
66 
67  carma::canbus::MsgBriefMap getSlowMonitors() const;
68 
69 protected:
70 
71  // No protected members.
72 
73 private:
74 
75  void updateFrameData();
76  carma::canbus::Message createMsgToChan(int chanNo, carma::canbus::msgType msgID);
77 
78  void processBlankingFramePacket1( carma::canbus::DataVector & data );
79  void processBlankingFramePacket2( carma::canbus::DataVector & data );
80  void processBlankingFramePacket3( carma::canbus::DataVector & data );
81  void processBlankingFramePacket4( carma::canbus::DataVector & data );
82  void processBlankingFramePacket5( carma::canbus::DataVector & data );
83  void processBlankingFramePacket6( carma::canbus::DataVector & data );
84  void processBlankingFramePacket7( carma::canbus::DataVector & data );
85  void processBlankingFramePacket8( carma::canbus::DataVector & data );
86  void processBlankingFramePacket9( carma::canbus::DataVector & data );
87  void processBlankingFramePacket10( carma::canbus::DataVector & data );
88  void processBlankingFramePacket11( carma::canbus::DataVector & data );
89 
90  carma::canbus::Message simBlankingFramePacket1( );
91  carma::canbus::Message simBlankingFramePacket2( );
92  carma::canbus::Message simBlankingFramePacket3( );
93  carma::canbus::Message simBlankingFramePacket4( );
94  carma::canbus::Message simBlankingFramePacket5( );
95  carma::canbus::Message simBlankingFramePacket6( );
96  carma::canbus::Message simBlankingFramePacket7( );
97  carma::canbus::Message simBlankingFramePacket8( );
98  carma::canbus::Message simBlankingFramePacket9( );
99  carma::canbus::Message simBlankingFramePacket10( );
100  carma::canbus::Message simBlankingFramePacket11( );
101 
102  carma::monitor::RxBias & rxMon_;
103  carma::monitor::OvroSubsystem::RxBiasTemps * ovroRxBiasTemps_;
104  carma::monitor::BimaSubsystem::RxBiasTemps * bimaRxBiasTemps_;
105 
106 }; // class CMReceiver
107 
108 }}} // namespace carma::antenna::common
109 #endif // #ifndef CARMA_ANTENNA_COMMON_CMRECEIVER_H
Declarations of carma::canbus types.
Class to encapsulate a CAN message.
Definition: Message.h:21
XacDevice canbus::device class implementation.
Definition: XacDevice.h:37
unsigned short nodeType
Carma Node Type id type.
Definition: Types.h:66
::std::map< ::carma::canbus::msgType,::std::string > MsgBriefMap
Alias for message descriptions keyed by message id.
Definition: Types.h:74
virtual void processMsg(msgType messageId, std::vector< byteType > &data, bool sim)=0
Process a CAN message.
::std::vector< ::carma::canbus::byteType > DataVector
Alias for CAN data.
Definition: Types.h:72
carma::canbus::devices::XacDevice class declaration.
unsigned short msgType
Carma Message id type.
Definition: Types.h:69
CanOutput interface.
Definition: CanOutput.h:26