CARMA C++
carma::antenna::common::AntennaIF Class Referenceabstract

Base Antenna IF CAN module device class. More...

#include <carma/antenna/common/AntennaIF.h>

Inheritance diagram for carma::antenna::common::AntennaIF:
carma::canbus::devices::XacDevice carma::canbus::Device carma::antenna::bima::AntennaIF carma::antenna::ovro::AntennaIF

Public Member Functions

 AntennaIF (carma::canbus::nodeType node, carma::canbus::CanOutput &io, carma::monitor::StateMonitorPointEnum &state, carma::monitor::AntennaIF &ifMon, carma::monitor::Xac &xacMon)
 Constructor. More...
 
carma::canbus::MsgBriefMap getHalfSecMonitors () const
 Retrieve a map of this devices half second monitor points. More...
 
carma::canbus::MsgBriefMap getSlowMonitors () const
 Return a map of this devices slow monitor points. More...
 
void processMsg (carma::canbus::msgType mid, carma::canbus::DataVector &data, bool sim)
 Process a CAN message addressed from the AntennaIF module. More...
 
void queryTotalPower ()
 Query Total Power. More...
 
void selectBand (unsigned short band)
 Select band Select a particular band as an input to the PAM, by setting the position of the IF switch. More...
 
void setIFlevel (float pow)
 Set IF level. More...
 
void setIFtotalAttenuation (float atten)
 Set IF total attenuation. More...
 
void setInputIFattenuator (float inputAtten)
 Set input IF attenuator. More...
 
void setOutputIFattenuator (float outputAtten)
 Set output IF attenuator. More...
 
void setOutputPowerToPreset ()
 Set output power to preset. More...
 
virtual void simTotalPower (unsigned int nsamps)
 Internally create simulated total power vector. More...
 
carma::canbus::Message simulateMsg (carma::canbus::msgType mid)
 Produce a simulated CAN message for a given msgType. More...
 
 ~AntennaIF ()
 Destructor. More...
 
- Public Member Functions inherited from carma::canbus::devices::XacDevice
bool isOnline ()
 Is Device ONLINE? More...
 
void reset ()
 Reset the can module via CORBA using Device::softReset() method. More...
 
virtual void setState (deviceStateType state)
 Set the state of the device. More...
 
void startChannelOneFastSampling (unsigned short fastItem)
 Start fast sampling on channel one with the requested data item. More...
 
void startChannelTwoFastSampling (unsigned short fastItem)
 Start fast sampling on channel two with the requested data item. More...
 
void stopChannelOneFastSampling ()
 Stop fast sampling on channel one. More...
 
void stopChannelTwoFastSampling ()
 Stop fast sampling on channel two. More...
 
 XacDevice (carma::canbus::apiType api, carma::canbus::nodeType node, carma::canbus::CanOutput &canOutput)
 Constructor. More...
 
virtual ~XacDevice ()
 Destructor. More...
 
- Public Member Functions inherited from carma::canbus::Device
carma::canbus::Message createDummyMsg () const
 Create a dummy CAN message. More...
 
carma::canbus::Message createMsgToAllNodes (msgType messageId) const
 Create a CAN message addressed to all nodes of this type. More...
 
carma::canbus::Message createMsgToHost (msgType messageId) const
 Create a CAN message addressed from this Device to the host. More...
 
carma::canbus::Message createMsgToNode (msgType messageId) const
 Create a CAN message addressed to this device from the host. More...
 
 Device (apiType api, nodeType node, CanOutput &io)
 Device constructor. More...
 
apiType getApi () const
 Return api code of device. More...
 
char getApiVersion () const
 Get API Version of this Device. More...
 
boardType getBoardType () const
 Return board type id of device. More...
 
busIdType getBusId () const
 Return bus Id that node resides on. More...
 
virtual MsgIdInfoMap getControls () const
 Return a map of devices controls. More...
 
keyType getKey () const
 Create a key unique to this api and node. More...
 
double getLastRxTime () const
 Get Last RX Time for device. More...
 
unsigned int getNlatePackets () const
 Get number of late packets. More...
 
nodeType getNode () const
 Return node location code of device. More...
 
serialNumberType getSerialNumber () const
 Return serial number of device. More...
 
deviceStateType getState () const
 Status access routine. More...
 
virtual void processMsg (msgType messageId, std::vector< byteType > &data, bool sim)=0
 Process a CAN message. More...
 
void reset ()
 Perform a software reset of module. More...
 
void setBoardType (boardType bt)
 Set board type of device. More...
 
void setBusId (busIdType busId)
 Set busId of device. More...
 
virtual void setLastRxTime (double rxMjd)
 Set latest rx time. More...
 
void setSerialNumber (serialNumberType sn)
 Set serial number of device. More...
 
void startChannelOneFastSampling (unsigned short fastItem)
 Start fast sampling the specified data item on channel 1. More...
 
void startChannelTwoFastSampling (unsigned short fastItem)
 Start fast sampling the specified data item on channel 2. More...
 
void stopChannelOneFastSampling ()
 Stop fast sampling on channel 1 This routine will stop fast sampling on channel 1 regardless of whether this node is fast sampling the channel or not! In other words the request goes out globally. More...
 
void stopChannelTwoFastSampling ()
 Stop fast sampling on channel 2 This routine will stop fast sampling on channel 2 regardless of whether this node is fast sampling the channel or not! In other words the request goes out globally. More...
 
virtual ~Device ()
 Device destructor. More...
 

Static Public Attributes

static const carma::canbus::msgType IF_LEFT_POL_NODE_ID = 1
 
static const carma::canbus::msgType IF_RIGHT_POL_NODE_ID = 2
 
- Static Public Attributes inherited from carma::canbus::devices::XacDevice
static const carma::canbus::msgType SYSTEM_MONITOR_PACKET_1 = 0x120
 
static const carma::canbus::msgType SYSTEM_MONITOR_PACKET_2 = 0x121
 
static const carma::canbus::msgType SYSTEM_MONITOR_PACKET_3 = 0x122
 
static const carma::canbus::msgType SYSTEM_MONITOR_PACKET_4 = 0x123
 
static const carma::canbus::msgType SYSTEM_MONITOR_PACKET_5 = 0x124
 

Protected Member Functions

virtual void blankingFrameHook1 (float ifoutTotPower, float pamTemp)
 
virtual void blankingFrameHook2 (float attenSet, unsigned char pamStat, unsigned char ifSwitchStat, unsigned char laserStat, unsigned char nErrors)
 
virtual void blankingFrameHook3 (float laserOpticalPow, float laserTemp)
 
virtual void blankingFrameHook4 (float inputAttenSet, float outputAttenSet)
 
virtual void processFastChannel1Packet (carma::canbus::DataVector &data)=0
 
virtual void processFastChannel2Packet (carma::canbus::DataVector &data)=0
 
virtual void processFastTotalPowerPacket (carma::canbus::DataVector &data)=0
 
virtual void processPAMStatusOnChange (carma::canbus::DataVector &data)=0
 
virtual void processSwitchStatusOnChange (carma::canbus::DataVector &data)=0
 
virtual void processTotalPowerResponse (carma::canbus::DataVector &data)=0
 
void updateFrameData ()
 Update device or monitor data on frame timescale... More...
 
- Protected Member Functions inherited from carma::canbus::devices::XacDevice
virtual void initialize ()
 Initialization hook. More...
 
void processSystemMonitorPacket (carma::canbus::msgType mid, carma::canbus::DataVector &data, carma::monitor::Xac &xac)
 Process a system monitor packet. More...
 
void processSystemMonitorPacket1 (carma::canbus::DataVector &data, carma::monitor::Xac &xac)
 Process System Monitor Packet 1 This routine processes standard system monitor packet 1 and places the data into the input Xac reference. More...
 
void processSystemMonitorPacket2 (carma::canbus::DataVector &data, carma::monitor::Xac &xac)
 Process System Monitor Packet 2. More...
 
void processSystemMonitorPacket3 (carma::canbus::DataVector &data, carma::monitor::Xac &xac)
 Process System Monitor Packet 3. More...
 
void processSystemMonitorPacket4 (carma::canbus::DataVector &data, carma::monitor::Xac &xac)
 Process System Monitor Packet 4. More...
 
void processSystemMonitorPacket5 (carma::canbus::DataVector &data, carma::monitor::Xac &xac)
 Process System Monitor Packet 5. More...
 
carma::canbus::Message simSystemMonitorPacket (carma::canbus::msgType mid)
 Simulate system monitor packet. More...
 
carma::canbus::Message simSystemMonitorPacket1 ()
 Simulate System Monitor Packet 1. More...
 
carma::canbus::Message simSystemMonitorPacket2 ()
 Simulate System Monitor Packet 2. More...
 
carma::canbus::Message simSystemMonitorPacket3 ()
 Simulate System Monitor Packet 3. More...
 
carma::canbus::Message simSystemMonitorPacket4 ()
 Simulate System Monitor Packet 4. More...
 
carma::canbus::Message simSystemMonitorPacket5 ()
 Simulate System Monitor Packet 5. More...
 
- Protected Member Functions inherited from carma::canbus::Device
void incrementLatePacketCount ()
 Increment the late packet count by 1. More...
 
bool isPacketLate (double window=100.0)
 Determine if the last packet sent from this device was late. More...
 
void resetLatePacketCount ()
 Reset the late packet count to 0. More...
 
void setApiVersion (char api)
 Set API Version. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from carma::canbus::Device
static keyType createKey (apiType api, nodeType node)
 
- Static Protected Member Functions inherited from carma::canbus::devices::XacDevice
static bool isSystemMonitorPacket (carma::canbus::msgType)
 Check that input message type is a system monitor packet. More...
 
- Protected Attributes inherited from carma::canbus::Device
const apiType api_
 
CanOutputio_
 Reference to CanOutput object. More...
 
const keyType key_
 
const nodeType node_
 
- Static Protected Attributes inherited from carma::canbus::Device
static const msgType RESET = 0x0000
 Software reset message id. More...
 
static const msgType START_CHANNEL_1_FAST_SAMPLING = 0x0004
 Begin channel 1 fast sampling message id. More...
 
static const msgType START_CHANNEL_2_FAST_SAMPLING = 0x0005
 Begin channel 2 fast sampling message id. More...
 
static const msgType STOP_CHANNEL_1_FAST_SAMPLING = 0x0002
 Stop channel 1 fast sampling message id. More...
 
static const msgType STOP_CHANNEL_2_FAST_SAMPLING = 0x0003
 

Detailed Description

Base Antenna IF CAN module device class.

All antenna types use the same physical AntennaIF CAN module, also known as, the PreAmplifier Modules (PAM). This base class handles the majority of message processing and control functionality while providing hooks for the BIMA, OVRO and SZA specific versions.

Definition at line 46 of file AntennaIF.h.

Constructor & Destructor Documentation

carma::antenna::common::AntennaIF::AntennaIF ( carma::canbus::nodeType  node,
carma::canbus::CanOutput io,
carma::monitor::StateMonitorPointEnum &  state,
carma::monitor::AntennaIF &  ifMon,
carma::monitor::Xac &  xacMon 
)

Constructor.

Parameters
nodeLocation id of this instance (node location id).
ioReference to CanOutput class.
ifMonReference to AntennaIF monitor system class.
xacMonReference to Xac monitor system class.
carma::antenna::common::AntennaIF::~AntennaIF ( )

Destructor.

Member Function Documentation

carma::canbus::MsgBriefMap carma::antenna::common::AntennaIF::getHalfSecMonitors ( ) const
virtual

Retrieve a map of this devices half second monitor points.

The monitor points returned from this routine will be simulated if the device is in the OFFLINE state.

Returns
Map with descriptions of the device's half second monitor points keyed by message id.

Implements carma::canbus::Device.

carma::canbus::MsgBriefMap carma::antenna::common::AntennaIF::getSlowMonitors ( ) const
virtual

Return a map of this devices slow monitor points.

These monitor points will be simulated every 5 seconds if the device is in the OFFLINE state.

Returns
Map with descriptions of the device's slow (5 second) monitor points keyed by message id.

Reimplemented from carma::canbus::devices::XacDevice.

void carma::antenna::common::AntennaIF::processMsg ( carma::canbus::msgType  mid,
carma::canbus::DataVector data,
bool  sim 
)

Process a CAN message addressed from the AntennaIF module.

This routine is responsible for processing all CAN messages addressed to this device. It is a callback routine that gets called by the carma::canbus::Master class.

Parameters
mid10bit message id (carma::canbus::msgType).
dataReference to the byte vector containing the raw data.
simTrue if message is simulated, false normally.
See Also
carma::canbus::Device::processMsg
void carma::antenna::common::AntennaIF::queryTotalPower ( )

Query Total Power.

Query value read from total power detector in PAM.

void carma::antenna::common::AntennaIF::selectBand ( unsigned short  band)

Select band Select a particular band as an input to the PAM, by setting the position of the IF switch.

Parameters
bandIF switch position 1,2,3 or 4.
void carma::antenna::common::AntennaIF::setIFlevel ( float  pow)

Set IF level.

Set the IF attenuator so that the IF total power detector returns the closest value to the input parameter. Current PAM will only be able to produce about +8dBm.

Parameters
powTarget IF total power, in mW.
void carma::antenna::common::AntennaIF::setIFtotalAttenuation ( float  atten)

Set IF total attenuation.

Set the IF attenuator to a nominal value.

Parameters
attenAttenuator setting, 0-63 dB in 0.5 dB steps.
void carma::antenna::common::AntennaIF::setInputIFattenuator ( float  inputAtten)

Set input IF attenuator.

Parameters
inputAttenInput attenuator setting, 0-31.5dB in 0.5 db steps.
void carma::antenna::common::AntennaIF::setOutputIFattenuator ( float  outputAtten)

Set output IF attenuator.

Parameters
outputAttenOutput attenuator setting, 0-31.5 dB in 0.5 db steps.
void carma::antenna::common::AntennaIF::setOutputPowerToPreset ( )

Set output power to preset.

Go to preset IF level. Current preset IF level is 0 dBm. Thus it is functionally equivaletn to setIFlevel command with a power level of 1.0 mW.

virtual void carma::antenna::common::AntennaIF::simTotalPower ( unsigned int  nsamps)
virtual

Internally create simulated total power vector.

Default implementation is a no-op.

Parameters
nsampsSize of simulated total power vector.

Reimplemented in carma::antenna::ovro::AntennaIF.

carma::canbus::Message carma::antenna::common::AntennaIF::simulateMsg ( carma::canbus::msgType  mid)
virtual

Produce a simulated CAN message for a given msgType.

This routine creates a Message with simulated data for an input message id. The returned message is automatically placed in the CAN message queue for retrieval and processing by the Master class. It thus can be used to test the processMsg method above as well as to place real (albeit simulated) data into the monitor stream.

Parameters
mid10 bit message id (carma::canbus::msgType).

Implements carma::canbus::Device.

void carma::antenna::common::AntennaIF::updateFrameData ( )
protectedvirtual

Update device or monitor data on frame timescale...

This routine is called every half second for every device registered with a carma::canbus::Master derivative. The default implementation does nothing but a user should overload it to guarantee that certain monitor points are updated every half second regardless of CAN activity. A good example of this is a monitor point representing Device state (ONLINE, OFFLINE, etc). We don't want a monitor point representing this state to be persistent because we want the monitor system to invalidate it if the application quits or data is otherwise not moving through the system. Thus we need to explicitly set the monitor point every half second. There are probably many monitor points where the same mechanism is needed. See the Carma Monitor System for more info or carma::monitor.

Reimplemented from carma::canbus::Device.


The documentation for this class was generated from the following file: