CARMA C++
carma::antenna::common::SisReceiver Class Reference

10m & 6m SIS Receiver Control CAN module device class. More...

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

Inheritance diagram for carma::antenna::common::SisReceiver:
carma::canbus::devices::XacDevice carma::canbus::Device

Classes

struct  IVCurve
 An IV curve. More...
 
struct  IVPoint
 A point on the IV curve. More...
 

Public Types

enum  CurrentModeType { STORED = 0x00, MESSAGE = 0x01, IV_CURVE = 0x02 }
 Current Mode Enumerator. More...
 
enum  IjLoopModeType { IJ_CLOSED = 0x00, IJ_FINITE = 0x01 }
 Ij Loop Mode Enumerator. More...
 
typedef ::std::vector< IVPointIVDataVec
 
enum  VjLoopModeType { VJ_CLOSED = 0x00, VJ_OPEN = 0x01, VJ_FINITE = 0x02 }
 Loop Mode Enumerator. More...
 

Public Member Functions

void doIVCurve (float startInMilliVolts, float stopInMilliVolts, float stepInMilliVolts, int timeDeltaMilliSeconds, int seqNo, bool doPower)
 Do IV-Curve Measures and reports the junction IV-curve. More...
 
carma::canbus::MsgBriefMap getHalfSecMonitors () const
 Retrieve brief description of this devices half second monitor points. More...
 
IVCurve getIVCurve ()
 Retrieve IV Curve. More...
 
carma::canbus::MsgBriefMap getSlowMonitors () const
 Retrieve brief description of this devices slow (5 second) monitor points. More...
 
void getVgap (CurrentModeType mode, float Igap) const
 Get Vgap Measures the junction gap voltage, which is reported in the blanking frames. More...
 
void processMsg (carma::canbus::msgType mid, carma::canbus::DataVector &data, bool sim)
 Process a CAN message from the SisReceiver module. More...
 
void setId (short stageNo, float IdInMilliAmps) const
 Set Id. More...
 
void setIgap (float Igap) const
 Set Igap Sets the value of current to be used as the default for Igap measurements. More...
 
void setIj (float IjInMicroAmps) const
 Set Ij Sets the SIS junction current. More...
 
void setIjLoopMode (IjLoopModeType mode) const
 Set Ij Loop Mode Determines whether the current in the mixer is controlled continuously or periodically adjusted. More...
 
void setLoAttenuation (float loAttenPercent) const
 Set LO attenuation Sets the LO attenuation. More...
 
void setVd (short stageNo, float VdInVolts) const
 Set Vd. More...
 
void setVg (short stageNo, float Vg) const
 Set Vg. More...
 
void setVj (float VjInMilliVolts) const
 Set Vj. More...
 
void setVjLoopMode (VjLoopModeType mode) const
 Set Vj Loop Mode Determines whether the voltage on the mixer is controlled open or or closed (software) loop. More...
 
carma::canbus::Message simulateMsg (carma::canbus::msgType mid)
 Simulate a CAN message for the given message id. More...
 
 SisReceiver (carma::canbus::nodeType node, carma::canbus::CanOutput &io, carma::monitor::AntennaCommon &antCommon, carma::monitor::StateMonitorPointEnum &state, carma::monitor::SisReceiver &sis, carma::monitor::Xac &xac, carma::antenna::common::AntennaIF &antIF)
 Constructor. More...
 
void tuneMixer (float frequencyInGhz) const
 Tune mixer. More...
 
void updateFrameData ()
 Update Frame Data. More...
 
virtual ~SisReceiver ()
 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 RX_1MM_LEFT_POL_NODE_ID = 3
 
static const carma::canbus::msgType RX_1MM_RIGHT_POL_NODE_ID = 4
 
static const carma::canbus::msgType RX_3MM_LEFT_POL_NODE_ID = 1
 
static const carma::canbus::msgType RX_3MM_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 processBlankingFramePacket1 (carma::canbus::DataVector &data)
 
virtual void processBlankingFramePacket3 (carma::canbus::DataVector &data)
 
virtual void processIVCurvePoint (carma::canbus::DataVector &data)
 
- 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

10m & 6m SIS Receiver Control CAN module device class.

Definition at line 45 of file SisReceiver.h.

Member Enumeration Documentation

Current Mode Enumerator.

Enumerator
STORED 

Use value stored in module.

MESSAGE 

Use value in this message.

IV_CURVE 

Determine current from IV-curve measurement.

Definition at line 196 of file SisReceiver.h.

Ij Loop Mode Enumerator.

Enumerator
IJ_CLOSED 

Continuous adjustment of Ij to set value.

IJ_FINITE 

Use a fixed number of iterations.

Definition at line 240 of file SisReceiver.h.

Loop Mode Enumerator.

Enumerator
VJ_CLOSED 

Continuous adjustment of Vj to set value.

VJ_OPEN 

DAC is set to nominal value for mixer voltage.

VJ_FINITE 

Use a fixed number of iterations.

Definition at line 223 of file SisReceiver.h.

Constructor & Destructor Documentation

carma::antenna::common::SisReceiver::SisReceiver ( carma::canbus::nodeType  node,
carma::canbus::CanOutput io,
carma::monitor::AntennaCommon &  antCommon,
carma::monitor::StateMonitorPointEnum &  state,
carma::monitor::SisReceiver &  sis,
carma::monitor::Xac &  xac,
carma::antenna::common::AntennaIF antIF 
)

Constructor.

Parameters
nodeLocation id of this instance (node location code).
ioReference to CanOutput class.
antCommonReference to antenna common monitor instance.
stateReference to canbus state monitor instance.
sisReference to SisReceiver monitor instance.
xacReference to Xac monitor instance.
antIFReference to AntennaIF monitor instance.
virtual carma::antenna::common::SisReceiver::~SisReceiver ( )
virtual

Destructor.

Member Function Documentation

void carma::antenna::common::SisReceiver::doIVCurve ( float  startInMilliVolts,
float  stopInMilliVolts,
float  stepInMilliVolts,
int  timeDeltaMilliSeconds,
int  seqNo,
bool  doPower 
)

Do IV-Curve Measures and reports the junction IV-curve.

The number of points that will be returned is: N=trunc((Finish - Start)/Step) + 1) The points are returned in message type 0x170. The step may be positive or negative to control the direction the curve is traced in.

Parameters
startStarting junction voltage in milliVolts.
stopStopping junction voltage in milliVolts.
stepVoltage stop size in milliVolts.
deltaTime interval between samples in milliseconds.
seqNoSequence number to set in monitor stream when complete: if 0 it is ignored otherwise antennacommon.receivers.tuneSeqNo is set upon completion.
doPowerIf true, module will also instruct the PAM module to send back total power measurements.
carma::canbus::MsgBriefMap carma::antenna::common::SisReceiver::getHalfSecMonitors ( ) const
virtual

Retrieve brief description of this devices half second monitor points.

See Also
carma::canbus::Device::getHalfSecMonitors
Returns
MsgBriefMap containing string descriptions of device's half second monitor points keyed by message id.

Implements carma::canbus::Device.

IVCurve carma::antenna::common::SisReceiver::getIVCurve ( )

Retrieve IV Curve.

Retrieve an IV Curve initiated by the doIVCurve command. Returns an empty map if either an IV curve hasn't been collected, is in progress or didn't complete properly before hand.

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

Retrieve brief description of this devices slow (5 second) monitor points.

See Also
carma::canbus::Device::getSlowMonitors
Returns
MsgBriefMap containing string descriptions of device's slow monitor points keyed by message id.

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

void carma::antenna::common::SisReceiver::getVgap ( CurrentModeType  mode,
float  Igap 
) const

Get Vgap Measures the junction gap voltage, which is reported in the blanking frames.

The LO attenuation is set to maximum during the measurement. The new value is reported in the blanking frame monitor packets.

Parameters
modeWhat current mode to measure the gap at.
IgapCurrent to use for Vgap measurement in microAmps.
void carma::antenna::common::SisReceiver::processMsg ( carma::canbus::msgType  mid,
carma::canbus::DataVector data,
bool  sim 
)

Process a CAN message from the SisReceiver module.

This routine is responsible for processing all CAN message addressed to this device.

See Also
carma::canbus::Device::processMsg
Parameters
midthe 10bit message id (carma::canbus::msgType).
dataReference to the DataVector containing raw data.
simTrue if message is a simulated message.
void carma::antenna::common::SisReceiver::setId ( short  stageNo,
float  IdInMilliAmps 
) const

Set Id.

Sets the drain current on the specified HEMT stage.

Parameters
stageNoHEMT stage to set drain current on [1-4].
IdHEMT drain current in milliAmps.
void carma::antenna::common::SisReceiver::setIgap ( float  Igap) const

Set Igap Sets the value of current to be used as the default for Igap measurements.

Parameters
IgapDefault current to use for Igap in microAmps.
void carma::antenna::common::SisReceiver::setIj ( float  IjInMicroAmps) const

Set Ij Sets the SIS junction current.

Parameters
IjInMicroAmpsJunction current in microAmps.
void carma::antenna::common::SisReceiver::setIjLoopMode ( IjLoopModeType  mode) const

Set Ij Loop Mode Determines whether the current in the mixer is controlled continuously or periodically adjusted.

Parameters
modeIjLoopMode to set.
void carma::antenna::common::SisReceiver::setLoAttenuation ( float  loAttenPercent) const

Set LO attenuation Sets the LO attenuation.

Parameters
loAttenPercentLO Attenuation in %.
void carma::antenna::common::SisReceiver::setVd ( short  stageNo,
float  VdInVolts 
) const

Set Vd.

Sets the drain voltage on the specified HEMT stage.

Parameters
stageNoHEMT stage to set drain voltage on [1-4].
VdInVoltsHEMT drain voltage in Volts.
void carma::antenna::common::SisReceiver::setVg ( short  stageNo,
float  Vg 
) const

Set Vg.

Sets the gate voltage on the specified HEMT stage.

Parameters
stageNoHEMT stage to set gate voltage on [1-4].
VgHEMT gate voltage in Volts.
void carma::antenna::common::SisReceiver::setVj ( float  VjInMilliVolts) const

Set Vj.

Sets the SIS junction bias voltage.

Parameters
VjInMilliVoltsJunction voltage in milliVolts.
void carma::antenna::common::SisReceiver::setVjLoopMode ( VjLoopModeType  mode) const

Set Vj Loop Mode Determines whether the voltage on the mixer is controlled open or or closed (software) loop.

Parameters
modeLoopMode to set.
carma::canbus::Message carma::antenna::common::SisReceiver::simulateMsg ( carma::canbus::msgType  mid)
virtual

Simulate a CAN message for the given message id.

Parameters
Idof message to simulate.
See Also
carma::canbus::Device::simulateMsg

Implements carma::canbus::Device.

void carma::antenna::common::SisReceiver::tuneMixer ( float  frequencyInGhz) const

Tune mixer.

Instructs mixer to adjust the junction voltage and current to the optimum values for the specified frequency.

Parameters
frequencyInGhzLO frequency in GHz.
void carma::antenna::common::SisReceiver::updateFrameData ( )
virtual

Update Frame Data.

Callback routine to update frame timescale, device dependent information in the monitor stream (e.g. ONLINE state).

Reimplemented from carma::canbus::Device.


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