SEPIA
Software documentation for the APEX SEPIA receivers
Cartridge Class Referenceabstract

A virtual class representing a cartridge. More...

#include <cartridge.h>

Inheritance diagram for Cartridge:
Collaboration diagram for Cartridge:

Public Slots

void resetBand ()
 Reset cartridge to warm-up conditions. More...
 
void run ()
 Start up a cartridge. More...
 
virtual void initBand (bool withDeflux)=0
 Initialize a band. More...
 
virtual void shutdownBand ()=0
 Shut down a band. More...
 
virtual void tuneLO (double ghz)
 Tune the LO using tuning table. More...
 
virtual void tuneMixer (Mixer::Polarization pol)
 Tune a mixer. More...
 
void tuneSystem (double ghz)
 Tune both LO and mixers to a given LO frequency using tuning table. More...
 
virtual void demagnetize (Mixer::Polarization pol, Mixer::Element sis)=0
 De-magnetize a mixer element. More...
 
virtual void deflux (Mixer::Polarization pol)=0
 De-flux both mixer elements of given polarization. More...
 
void disable ()
 Disable band.
 
void enable ()
 Enable band.
 
void demagnetizeMixers (bool p0s1, bool p0s2, bool p1s1, bool p1s2)
 De-magnetize specified mixer elements. More...
 
void defluxMixers (bool p0, bool p1)
 De-flux both specified polarizations. More...
 
void setLNADefaults ()
 Set LNA voltages to the values given in configuration file.
 
void cleanup ()
 Clean up cartridge operations as part of band shutdown. More...
 
void updateYIG (int value)
 Set a new YIG value. More...
 
void changeSynthFreq (double ghz)
 Set synthesizer frequency. More...
 
void changeSynthLevel (double dBm)
 Set synthesizer level. More...
 
void switchSynth (bool flag)
 Turn Synthesizer on/off. More...
 
void IVscan (Mixer::Polarization pol, Mixer::Element sis, double from, double to, int steps, bool withPower)
 Perform an IV scan on one mixer. More...
 
void scanMixers (double from, double to, int steps)
 Perform an IV scan on all mixers. More...
 
void resetSisVoltages ()
 Set all SiS voltages to 0.0 mV in the recommended way.
 
void resetCoilCurrents ()
 Set all magnetic coil currents to 0.0 mA in the recommended way.
 
void resetLNAs ()
 Sets all LNA drain voltages and currents to zero.
 
void setCoilCurrents ()
 Set magnetic coil currents to the values given in configuration file.
 
void setPaGateVoltages ()
 Set PA gate voltages to prescribed values in configuration file.
 
void showCurve (Mixer::Polarization pol, Mixer::Element sis, QVector< double > x, QVector< double > y, QVector< double > z, const QString &xlab=QString::fromUtf8("mixer bias [mV]"), const QString &ylab=QString::fromUtf8("mixer current [µA]"))
 Signal GUI to display results from IV scan. More...
 
bool pllControl (float *vcorr, float *vlock)
 Check status of PLL. More...
 
void cryoControl (bool flag)
 Turn cryo control loop on/off. More...
 
void preparePLL (bool upper)
 Prepare PLL for locking. More...
 
void addChannel (Sepia::Channel channel)
 
void removeChannel (Sepia::Channel channel)
 
float getRealValue (QString name)
 Get a float value via its name. More...
 
bool getFlag (QString name)
 Get a boolean value via its name. More...
 
unsigned short getWord (QString name)
 Get a 16 bit unsigned integer via its name. More...
 

Signals

void demagnetized (Mixer::Polarization pol, Mixer::Element sis, bool ok)
 A signal emitted when the mixer element is de-magnetized . More...
 
void defluxed (Mixer::Polarization pol, bool ok)
 A signal emitted when a mixer polarization is defluxed. More...
 
void faulted (Sepia::ErrorCode code)
 A signal emitted when an error has occured.
 
void pllStatus (bool locked, float Vlock, float Vcorr)
 Signal the PLL signal. More...
 
void updateMonitorItem (const QString &name, DWORD addr, float v, char unit, int gain)
 Send latest reading of a monitor item. More...
 
void percentDone (int percent)
 Report how many percentof an operation is done. More...
 
void statusMessage (const QString &msg)
 Send a status message. More...
 
void synthConnected (bool flag)
 A signal emitted to indicate synthesizer connection status. More...
 
void synthSwitched (bool on)
 A signal emitted to indicate synthesizer status. More...
 
void synthFreqChanged (double ghz)
 A signal emitted when synthesizer frequency changed. More...
 
void synthLevelChanged (double dbm)
 A signal emitted when synthesizer level changed. More...
 
void yigChanged (int value)
 A signal emitted when YIG setting changed. More...
 
void pointReady (Mixer::Polarization pol, Mixer::Element sis, int i, double mV, double mA, double mW)
 A signal emitted when a new point of an IV scan has been taken. More...
 
void traceReady (Mixer::Polarization pol, Mixer::Element sis, QVector< double > x, QVector< double > y, QVector< double > z, const QString &xlab, const QString &ylab)
 A signal emitted when a new trace, i.e. data from a mixer scan, is available. More...
 
void LOtuned (bool ok)
 A signal emitted when LO tuning is done. More...
 
void LOmodified (bool flag)
 A signal emitted when LO tuning was modified. More...
 
void newCmdLOfrequency (double ghz)
 Signal a new commanded LO frequency. More...
 
void newCmdHarmonic (int harmonic)
 Signal a new harmonic for LO tuning. More...
 
void mixerTuned (Mixer::Polarization pol, bool ok)
 A signal emitted when mixer tuning is done. More...
 
void systemTuned (bool ok)
 A signal emitted when system tuning (i.e. both LO and mixer) is done. More...
 
void newMixerCurrent (Mixer::Polarization pol, Mixer::Element sis, float mA)
 Signal a new actual mixer current. More...
 
void newCmdMixerBias (Mixer::Polarization pol, Mixer::Element sis, float mV)
 Signal a new commanded mixer bias. More...
 
void newMixerBias (Mixer::Polarization pol, Mixer::Element sis, float mV)
 Signal a new actual mixer bias. More...
 
void newMixerPower (Mixer::Polarization pol, Mixer::Element sis, float mW)
 Signal a new total power reading. More...
 
void newCoilCurrent (Mixer::Polarization pol, Mixer::Element sis, float mA)
 Signal a new actual coil current. More...
 
void newCmdCoilCurrent (Mixer::Polarization pol, Mixer::Element sis, float mA)
 Signal a new commanded coil current. More...
 
void newDrainVoltage (Mixer::Polarization pol, Mixer::Element sis, LNA::Stage stage, float V)
 Signal a new actual drain voltage for an LNA. More...
 
void newCmdDrainVoltage (Mixer::Polarization pol, Mixer::Element sis, LNA::Stage stage, float V)
 Signal a new commanded drain voltage for an LNA. More...
 
void newDrainCurrent (Mixer::Polarization pol, Mixer::Element sis, LNA::Stage stage, float mA)
 Signal a new actual drain current for an LNA. More...
 
void newCmdDrainCurrent (Mixer::Polarization pol, Mixer::Element sis, LNA::Stage stage, float mA)
 Signal a new commanded drain current for an LNA. More...
 
void newGateVoltage (Mixer::Polarization pol, Mixer::Element sis, LNA::Stage stage, float V)
 Signal a new actual gate voltage for an LNA. More...
 
void newCmdPaDrainVoltage (Mixer::Polarization pol, float V)
 Signal a new actual gate voltage for a given PA. More...
 
void stabilize (double T)
 A signal emitted when temperature stabilization should be turned on.
 

Public Member Functions

 Cartridge (const QString &name, Sepia::Channel channel, double WCAmultiplier, double YIGmultiplier, double lowerYigLimit, double upperYigLimit, QObject *parent=0)
 Construct a Cartridge object. More...
 
virtual ~Cartridge ()
 Destructor.
 
void setMonitorChannels (const QStringList &channels)
 Define the list of CANbus addressable items which should be monitored. More...
 
double lowerLimit () const
 Return the lower limit of the LO tuning range in GHz. More...
 
double upperLimit () const
 Return the upper limit of the LO tuning range in GHz. More...
 
float biasOffset (int pol, int sis) const
 Return the bias offset. More...
 
float currentOffset (int pol, int sis) const
 Return the current offset. More...
 
float coilCurrentPreset (int pol, int sis) const
 Return the default setting of the coil current. More...
 
float gateVoltagePreset (int pol) const
 Return the default setting of the gate voltage. More...
 
QVector< double > biasTrace (int pol, int sis) const
 Retrieve the results for the mixer bias from the latest IV scan. More...
 
QVector< double > currentTrace (int pol, int sis) const
 Retrieve the results for the mixer current from the latest IV scan. More...
 
QVector< double > powerTrace (int pol, int sis) const
 Retrieve the results for the total power from the latest IV scan. More...
 
int getYIG () const
 Get the lates YIG setting. More...
 
double synthFreq () const
 Get the current synthesizer frequency. More...
 
double synthLevel () const
 Get the current synthesizer level setting. More...
 
float sisCurrent (Mixer::Polarization pol, Mixer::Element sis)
 Get the mixer current. More...
 
float sisVoltage (Mixer::Polarization pol, Mixer::Element sis)
 Get the mixer bias. More...
 
float sisPower (Mixer::Polarization pol, Mixer::Element sis)
 Get the mixer total power. More...
 
float drainVoltage (Mixer::Polarization pol, Mixer::Element sis, LNA::Stage stage)
 Get the drain voltage of an LNA. More...
 
float drainCurrent (Mixer::Polarization pol, Mixer::Element sis, LNA::Stage stage)
 Get the drain current of an LNA. More...
 
float gateVoltage (Mixer::Polarization pol, Mixer::Element sis, LNA::Stage stage)
 Get the gate voltage of an LNA. More...
 
float paGateVoltage (Mixer::Polarization pol)
 Get the gate voltage of a PA. More...
 
float paDrainVoltage (Mixer::Polarization pol)
 Get the drain voltage of a PA. More...
 
float paDrainCurrent (Mixer::Polarization pol)
 Get the drain current of a PA. More...
 
void setCoilCurrent (Mixer::Polarization pol, Mixer::Element sis, float mA, bool fast=false)
 Set a new coil current value of a mixer element. More...
 
void setSisVoltage (Mixer::Polarization pol, Mixer::Element sis, float mV, bool fast=false)
 Set a new bias voltage of a mixer element. More...
 
bool sisOpenLoop (Mixer::Polarization pol, Mixer::Element sis)
 Get the open loop mode of a mixer element. More...
 
void setSisOpenLoop (Mixer::Polarization pol, Mixer::Element sis, bool flag)
 Switch a mixer element to open loop mode. More...
 
void setDrainVoltage (Mixer::Polarization pol, Mixer::Element sis, LNA::Stage stage, float V)
 Set the drain voltage for given LNA. More...
 
void setDrainCurrent (Mixer::Polarization pol, Mixer::Element sis, LNA::Stage, float mA)
 Set the drain current for given LNA. More...
 
void setLNAenable (Mixer::Polarization pol, Mixer::Element sis, bool flag)
 Enable LNA operation. More...
 
void setPaGateVoltage (Mixer::Polarization pol, float V)
 Set the gate voltage for given PA. More...
 
void setPaDrainVoltage (Mixer::Polarization pol, float V)
 Set the drain voltage for given PA. More...
 
void setAmcADrainVoltage (float V)
 Set the AMC-A drain voltage. More...
 
void setAmcBDrainVoltage (float V)
 Set the AMC-B drain voltage. More...
 
void setAmcEDrainVoltage (float V)
 Set the AMC-E drain voltage. More...
 
void setAmcAGateVoltage (float V)
 Set the AMC-A gate voltage. More...
 
void setAmcBGateVoltage (float V)
 Set the AMC-B gate voltage. More...
 
void setAmcEGateVoltage (float V)
 Set the AMC-E gate voltage. More...
 
void setAmcDMultVoltage (float V)
 Set the AMC-MULT_D voltage. More...
 
float amcAGateVoltage ()
 Get the current AMC_A gate voltage. More...
 
float amcADrainVoltage ()
 Get the current AMC_A drain voltage. More...
 
float amcADrainCurrent ()
 Get the current AMC_A drain current. More...
 
float amcBGateVoltage ()
 Get the current AMC_B gate voltage. More...
 
float amcBDrainVoltage ()
 Get the current AMC_B drain voltage. More...
 
float amcBDrainCurrent ()
 Get the current AMC_B drain current. More...
 
float amcEGateVoltage ()
 Get the current AMC_E gate voltage. More...
 
float amcEDrainVoltage ()
 Get the current AMC_E drain voltage. More...
 
float amcEDrainCurrent ()
 Get the current AMC_E drain current. More...
 
float amcMultiDVoltage ()
 Get the current AMC-MULT_D voltage. More...
 
float amcMonitor5V ()
 Get the AMC 5V monitor signal. More...
 
float coilCurrent (Mixer::Polarization pol, Mixer::Element sis)
 Get a coil current reading. More...
 
float coilVoltage (Mixer::Polarization pol, Mixer::Element sis)
 Get a coil voltage reading. More...
 
float heaterCurrent (Mixer::Polarization pol)
 Get a reading of the heater current. More...
 
float mixerTemperature (Mixer::Polarization pol)
 Get a reading of the mixer temperature. More...
 
void heaterState (Mixer::Polarization pol, bool on)
 Set the heater state. More...
 
void toggleHeater (Mixer::Polarization pol)
 Toggle the heater state, i.e. switch off, then on. More...
 
float pllLockVoltage ()
 Get the PLL lock voltage. More...
 
float pllCorrVoltage ()
 Get the PLL correction voltage. More...
 
float pllRefTotalPower ()
 Get the PLL reference total power. More...
 
float pllIfTotalPower ()
 Get the PLL IF total power. More...
 
float pllAssemblyTemperature ()
 Get the PLL assembly temperature. More...
 
bool LOlockLatch ()
 Get the state of the PLL lock latch. More...
 
void LOclearLatch ()
 Clear the PLL lock latch.
 
void setNullPllIntegrator (bool flag)
 Set/clear null PLL integrator. More...
 
void setPllLoopBandwidth (bool flag)
 Set/clear PLL loop bandwidth. More...
 
void setPllSideband (bool lower)
 Set PLL sideband. More...
 
void setCoarseTune (unsigned short value)
 update YIG oscillator setting More...
 
virtual void tuneLO (double ghz, int harmonic)=0
 Tune local oscillator. More...
 
virtual void tuneMixer (Mixer::Polarization pol, float bias[2], float Igoal, float power, float maxPower)=0
 Tune a mixer. More...
 
void tuneSynthesizer (double WCAfreq, int harmonic, bool upper)
 Pure virtual method to tune the synthesize. More...
 

Protected Member Functions

void setFlag (QString name, bool flag)
 Set a boolean value via its name. More...
 
void setRealValue (QString name, float v)
 Set a float value via its name. More...
 
void setWord (QString name, unsigned short w)
 Set a 16 bit value via its name. More...
 

Friends

class BiasSetter
 
class CoilSetter
 

Detailed Description

A virtual class representing a cartridge.

A virtual class to describe an abstract SEPIA receiver.

This is an abstract class from which each of the three SEPIA bands inherit, namely Sepia180, Sepia345 and Sepia660. It implements many oprations which are in common for all three bands, but has only pure virtual functions for operations which may differ in their implementation between bands, currently:

Constructor & Destructor Documentation

◆ Cartridge()

Cartridge::Cartridge ( const QString &  name,
Sepia::Channel  channel,
double  WCAmultiplier,
double  YIGmultiplier,
double  lowerYigLimit,
double  upperYigLimit,
QObject *  parent = 0 
)

Construct a Cartridge object.

The constructor will initialize band specific variables and will set up a QFileSystemWatcher for being notified of changes to the band specific settings file (sepiaXXX.conf), which reside in directory /home/apex/.config/APEX.

Parameters
namethe object name to use, this will be visible from scripts.
channelthe Sepia::Channel
WCAmultiplier
YIGmultiplier
lowerYigLimitthe lower limit of the YIG oscillator in GHz
upperYigLimitthe upper limit of the YIG oscillator in GHz
parenta pointer to the parent object

Member Function Documentation

◆ addChannel

void Cartridge::addChannel ( Sepia::Channel  channel)
slot

Enable operations on an additional channel via CANbus.

◆ amcADrainCurrent()

float Cartridge::amcADrainCurrent ( )
inline

Get the current AMC_A drain current.

Returns
drain current in mA

◆ amcADrainVoltage()

float Cartridge::amcADrainVoltage ( )
inline

Get the current AMC_A drain voltage.

Returns
drain voltage in V

◆ amcAGateVoltage()

float Cartridge::amcAGateVoltage ( )
inline

Get the current AMC_A gate voltage.

Returns
gate voltage in V

◆ amcBDrainCurrent()

float Cartridge::amcBDrainCurrent ( )
inline

Get the current AMC_B drain current.

Returns
drian current in mA

◆ amcBDrainVoltage()

float Cartridge::amcBDrainVoltage ( )
inline

Get the current AMC_B drain voltage.

Returns
drain voltage in V

◆ amcBGateVoltage()

float Cartridge::amcBGateVoltage ( )
inline

Get the current AMC_B gate voltage.

Returns
gate voltage in V

◆ amcEDrainCurrent()

float Cartridge::amcEDrainCurrent ( )
inline

Get the current AMC_E drain current.

Returns
drian current in mA

◆ amcEDrainVoltage()

float Cartridge::amcEDrainVoltage ( )
inline

Get the current AMC_E drain voltage.

Returns
drain voltage in V

◆ amcEGateVoltage()

float Cartridge::amcEGateVoltage ( )
inline

Get the current AMC_E gate voltage.

Returns
gate voltage in V

◆ amcMonitor5V()

float Cartridge::amcMonitor5V ( )
inline

Get the AMC 5V monitor signal.

Returns
voltage in V

◆ amcMultiDVoltage()

float Cartridge::amcMultiDVoltage ( )
inline

Get the current AMC-MULT_D voltage.

Returns
voltage in V

◆ biasOffset()

float Cartridge::biasOffset ( int  pol,
int  sis 
) const
inline

Return the bias offset.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
bias offset in mV

◆ biasTrace()

QVector<double> Cartridge::biasTrace ( int  pol,
int  sis 
) const
inline

Retrieve the results for the mixer bias from the latest IV scan.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
a QVector<double> holding the mixer bias settings of the scan

◆ changeSynthFreq

void Cartridge::changeSynthFreq ( double  ghz)
slot

Set synthesizer frequency.

Parameters
ghzrequested synthesizer frequency in GHz

◆ changeSynthLevel

void Cartridge::changeSynthLevel ( double  dBm)
slot

Set synthesizer level.

Parameters
dBmrequested synthesizer level in dBm

◆ cleanup

void Cartridge::cleanup ( )
slot

Clean up cartridge operations as part of band shutdown.

This slot is connected to the hardware thread's finished signal. It will

  • stop the timer
  • turn the cryo cooler control off
  • set all PA drain and gate voltages to zero
  • switch the Anritsu synthesizer off

◆ coilCurrent()

float Cartridge::coilCurrent ( Mixer::Polarization  pol,
Mixer::Element  sis 
)

Get a coil current reading.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
the requested coil current in mA

◆ coilCurrentPreset()

float Cartridge::coilCurrentPreset ( int  pol,
int  sis 
) const
inline

Return the default setting of the coil current.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
default coil current in mA

◆ coilVoltage()

float Cartridge::coilVoltage ( Mixer::Polarization  pol,
Mixer::Element  sis 
)

Get a coil voltage reading.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
the requested coil voltage in V

◆ cryoControl

void Cartridge::cryoControl ( bool  flag)
slot

Turn cryo control loop on/off.

Parameters
flagtrue: turn on, false: turn off.

◆ currentOffset()

float Cartridge::currentOffset ( int  pol,
int  sis 
) const
inline

Return the current offset.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
current offset in mA

◆ currentTrace()

QVector<double> Cartridge::currentTrace ( int  pol,
int  sis 
) const
inline

Retrieve the results for the mixer current from the latest IV scan.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
a QVector<double> holding the mixer current readings of the scan

◆ deflux

virtual void Cartridge::deflux ( Mixer::Polarization  pol)
pure virtualslot

De-flux both mixer elements of given polarization.

Parameters
polthe Mixer::Polarization to use

◆ defluxed

void Cartridge::defluxed ( Mixer::Polarization  pol,
bool  ok 
)
signal

A signal emitted when a mixer polarization is defluxed.

Parameters
polthe Mixer::Polarization to use
oktrue, if operation succeeded

◆ defluxMixers

void Cartridge::defluxMixers ( bool  p0,
bool  p1 
)
slot

De-flux both specified polarizations.

Parameters
p0true, if POL0 should be de-fluxed
p1true, if POL1 should be de-fluxed

◆ demagnetize

virtual void Cartridge::demagnetize ( Mixer::Polarization  pol,
Mixer::Element  sis 
)
pure virtualslot

De-magnetize a mixer element.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use

◆ demagnetized

void Cartridge::demagnetized ( Mixer::Polarization  pol,
Mixer::Element  sis,
bool  ok 
)
signal

A signal emitted when the mixer element is de-magnetized .

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
oktrue, if operation succeeded

◆ demagnetizeMixers

void Cartridge::demagnetizeMixers ( bool  p0s1,
bool  p0s2,
bool  p1s1,
bool  p1s2 
)
slot

De-magnetize specified mixer elements.

Parameters
p0s1true, if POL0 SIS1 should be de-magnetized
p0s2true, if POL0 SIS2 should be de-magnetized
p1s1true, if POL1 SIS1 should be de-magnetized
p1s2true, if POL1 SIS2 should be de-magnetized

◆ drainCurrent()

float Cartridge::drainCurrent ( Mixer::Polarization  pol,
Mixer::Element  sis,
LNA::Stage  stage 
)

Get the drain current of an LNA.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
stagethe LNA::Stage to use
Returns
drain current in mA

◆ drainVoltage()

float Cartridge::drainVoltage ( Mixer::Polarization  pol,
Mixer::Element  sis,
LNA::Stage  stage 
)

Get the drain voltage of an LNA.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
stagethe LNA::Stage to use
Returns
drain voltage in V

◆ gateVoltage()

float Cartridge::gateVoltage ( Mixer::Polarization  pol,
Mixer::Element  sis,
LNA::Stage  stage 
)

Get the gate voltage of an LNA.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
stagethe LNA::Stage to use
Returns
gate voltage in V

◆ gateVoltagePreset()

float Cartridge::gateVoltagePreset ( int  pol) const
inline

Return the default setting of the gate voltage.

Parameters
polthe Mixer::Polarization to use
Returns
default gate voltage in V

◆ getFlag

bool Cartridge::getFlag ( QString  name)
slot

Get a boolean value via its name.

Parameters
namethe shortName of the entry we want to read.
Returns
a boolean.

◆ getRealValue

float Cartridge::getRealValue ( QString  name)
slot

Get a float value via its name.

Parameters
namethe shortName of the entry we want to read.
Returns
a 32-bit floating point value.

◆ getWord

unsigned short Cartridge::getWord ( QString  name)
slot

Get a 16 bit unsigned integer via its name.

Parameters
namethe shortName of the entry we want to read.
Returns
a 16-bit unsigned integer.

◆ getYIG()

int Cartridge::getYIG ( ) const
inline

Get the lates YIG setting.

Returns
latest YIG setting as an integer step (0 - 4095)

◆ heaterCurrent()

float Cartridge::heaterCurrent ( Mixer::Polarization  pol)

Get a reading of the heater current.

Parameters
polthe Mixer::Polarization to use
Returns
the heater current in mA

◆ heaterState()

void Cartridge::heaterState ( Mixer::Polarization  pol,
bool  on 
)

Set the heater state.

Parameters
polthe Mixer::Polarization to use
ontrue or false, for on and off, respectively

◆ initBand

virtual void Cartridge::initBand ( bool  withDeflux)
pure virtualslot

Initialize a band.

This is a pure virtual function, inherited by all sepiaXXX child classes. This function will

  • set the PA gate voltages, LNAs and coil currents to their default values specified in the configuration file. Optionally perform a demagnetization and defluxing procedure followed by an IV scan over a default interval.
Parameters
withDefluxa boolean parameter specifying if defluxing should be performed, default is true.

◆ IVscan

void Cartridge::IVscan ( Mixer::Polarization  pol,
Mixer::Element  sis,
double  from,
double  to,
int  steps,
bool  withPower 
)
slot

Perform an IV scan on one mixer.

Parameters
polthe used polarization: 0 or 1
sisthe used SIS element: 1 or 2
fromstarting mixer bias in mV
toending mixer bias in mV
stepsnumber of samples to take.

◆ LOlockLatch()

bool Cartridge::LOlockLatch ( )
inline

Get the state of the PLL lock latch.

Returns
state of the lock latch as a boolean

◆ LOmodified

void Cartridge::LOmodified ( bool  flag)
signal

A signal emitted when LO tuning was modified.

Parameters
flagtrue, tuning changed significantly and re-calibration is necessary

◆ LOtuned

void Cartridge::LOtuned ( bool  ok)
signal

A signal emitted when LO tuning is done.

Parameters
oktrue, if tuning was successful

◆ lowerLimit()

double Cartridge::lowerLimit ( ) const
inline

Return the lower limit of the LO tuning range in GHz.

Returns
lowest LO tuning frequency in GHz

◆ mixerTemperature()

float Cartridge::mixerTemperature ( Mixer::Polarization  pol)

Get a reading of the mixer temperature.

Parameters
polthe Mixer::Polarization to use
Returns
float the mixer temperature in K

◆ mixerTuned

void Cartridge::mixerTuned ( Mixer::Polarization  pol,
bool  ok 
)
signal

A signal emitted when mixer tuning is done.

Parameters
polthe Mixer::Polarization which was tuned
oktrue, if tuning was successful

◆ newCmdCoilCurrent

void Cartridge::newCmdCoilCurrent ( Mixer::Polarization  pol,
Mixer::Element  sis,
float  mA 
)
signal

Signal a new commanded coil current.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
mA

◆ newCmdDrainCurrent

void Cartridge::newCmdDrainCurrent ( Mixer::Polarization  pol,
Mixer::Element  sis,
LNA::Stage  stage,
float  mA 
)
signal

Signal a new commanded drain current for an LNA.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
stagethe LNA::Stage to use
mA

◆ newCmdDrainVoltage

void Cartridge::newCmdDrainVoltage ( Mixer::Polarization  pol,
Mixer::Element  sis,
LNA::Stage  stage,
float  V 
)
signal

Signal a new commanded drain voltage for an LNA.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
stagethe LNA::Stage to use
V

◆ newCmdHarmonic

void Cartridge::newCmdHarmonic ( int  harmonic)
signal

Signal a new harmonic for LO tuning.

Parameters
harmonicthe new commanded harmonic

◆ newCmdLOfrequency

void Cartridge::newCmdLOfrequency ( double  ghz)
signal

Signal a new commanded LO frequency.

Parameters
ghzthe commanded LO frequency in GHz

◆ newCmdMixerBias

void Cartridge::newCmdMixerBias ( Mixer::Polarization  pol,
Mixer::Element  sis,
float  mV 
)
signal

Signal a new commanded mixer bias.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
mV

◆ newCmdPaDrainVoltage

void Cartridge::newCmdPaDrainVoltage ( Mixer::Polarization  pol,
float  V 
)
signal

Signal a new actual gate voltage for a given PA.

Parameters
polthe Mixer::Polarization to use
V

◆ newCoilCurrent

void Cartridge::newCoilCurrent ( Mixer::Polarization  pol,
Mixer::Element  sis,
float  mA 
)
signal

Signal a new actual coil current.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
mA

◆ newDrainCurrent

void Cartridge::newDrainCurrent ( Mixer::Polarization  pol,
Mixer::Element  sis,
LNA::Stage  stage,
float  mA 
)
signal

Signal a new actual drain current for an LNA.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
stagethe LNA::Stage to use
mA

◆ newDrainVoltage

void Cartridge::newDrainVoltage ( Mixer::Polarization  pol,
Mixer::Element  sis,
LNA::Stage  stage,
float  V 
)
signal

Signal a new actual drain voltage for an LNA.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
stagethe LNA::Stage to use
V

◆ newGateVoltage

void Cartridge::newGateVoltage ( Mixer::Polarization  pol,
Mixer::Element  sis,
LNA::Stage  stage,
float  V 
)
signal

Signal a new actual gate voltage for an LNA.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
stagethe LNA::Stage to use
V

◆ newMixerBias

void Cartridge::newMixerBias ( Mixer::Polarization  pol,
Mixer::Element  sis,
float  mV 
)
signal

Signal a new actual mixer bias.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
mV

◆ newMixerCurrent

void Cartridge::newMixerCurrent ( Mixer::Polarization  pol,
Mixer::Element  sis,
float  mA 
)
signal

Signal a new actual mixer current.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
mA

◆ newMixerPower

void Cartridge::newMixerPower ( Mixer::Polarization  pol,
Mixer::Element  sis,
float  mW 
)
signal

Signal a new total power reading.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
mW

◆ paDrainCurrent()

float Cartridge::paDrainCurrent ( Mixer::Polarization  pol)

Get the drain current of a PA.

Parameters
polthe Mixer::Polarization to use
Returns
drain current in mA

◆ paDrainVoltage()

float Cartridge::paDrainVoltage ( Mixer::Polarization  pol)

Get the drain voltage of a PA.

Parameters
polthe Mixer::Polarization to use
Returns
drain voltage in V

◆ paGateVoltage()

float Cartridge::paGateVoltage ( Mixer::Polarization  pol)

Get the gate voltage of a PA.

Parameters
polthe Mixer::Polarization to use
Returns
gate voltage in V

◆ percentDone

void Cartridge::percentDone ( int  percent)
signal

Report how many percentof an operation is done.

Parameters
percent

◆ pllAssemblyTemperature()

float Cartridge::pllAssemblyTemperature ( )
inline

Get the PLL assembly temperature.

Returns
PLL assembly temperature in degrees Celsius

◆ pllControl

bool Cartridge::pllControl ( float *  vcorr,
float *  vlock 
)
slot

Check status of PLL.

Parameters
vcorroutput: will receive current correction voltage
vlockoutput: will receive current lock voltage
Returns
bool true, if PLL is locked, false if unlocked

◆ pllCorrVoltage()

float Cartridge::pllCorrVoltage ( )
inline

Get the PLL correction voltage.

Returns
the PLL correction voltage in V

◆ pllIfTotalPower()

float Cartridge::pllIfTotalPower ( )
inline

Get the PLL IF total power.

Returns
PLL IF total power in V

◆ pllLockVoltage()

float Cartridge::pllLockVoltage ( )
inline

Get the PLL lock voltage.

Returns
the PLL lock voltage in V

◆ pllRefTotalPower()

float Cartridge::pllRefTotalPower ( )
inline

Get the PLL reference total power.

Returns
PLL reference total power in V

◆ pllStatus

void Cartridge::pllStatus ( bool  locked,
float  Vlock,
float  Vcorr 
)
signal

Signal the PLL signal.

Parameters
lockedtrue: PLL is locked, false: PLL is unlocked
Vlocklatest reading of the PLL lock voltage
Vcorrlatest reading of the PLL correction voltaeg

◆ pointReady

void Cartridge::pointReady ( Mixer::Polarization  pol,
Mixer::Element  sis,
int  i,
double  mV,
double  mA,
double  mW 
)
signal

A signal emitted when a new point of an IV scan has been taken.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
iindex of the point taken (0..steps-1)
mVthe bias voltage of this point
mAthe mixer current of this point
mWthe total power of this point

◆ powerTrace()

QVector<double> Cartridge::powerTrace ( int  pol,
int  sis 
) const
inline

Retrieve the results for the total power from the latest IV scan.

(This is not yet implemented, will return a vector with all zeros.)

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
a QVector<double> holding the total power readings of the scan

◆ preparePLL

void Cartridge::preparePLL ( bool  upper)
slot

Prepare PLL for locking.

Parameters
uppertrue: use upper sideband, false: use lower sideband

◆ removeChannel

void Cartridge::removeChannel ( Sepia::Channel  channel)
slot

Disable operations on a channel via CANbus.

◆ resetBand

void Cartridge::resetBand ( )
slot

Reset cartridge to warm-up conditions.

This method will

  • read default settings for band from sepiaXXX.conf files
  • reset SIS voltages, LNA settings and coil currents
  • preset PA gate voltages

◆ run

void Cartridge::run ( )
slot

Start up a cartridge.

This slot is connected to the hardware thread's start signal. It will

  • switch the Anritsu synthesizer on
  • turn the cryo cooler control loop on
  • start a timer to
    1. perform regular health checks (every 60 seconds)
    2. retrieve of monitor items (every 10 seconds)
    3. read SIS biases and currents and PLL status (every second)

◆ scanMixers

void Cartridge::scanMixers ( double  from,
double  to,
int  steps 
)
slot

Perform an IV scan on all mixers.

Parameters
fromstarting mixer bias in mV
toending mixer bias in mV
stepsnumber of samples to take.

◆ setAmcADrainVoltage()

void Cartridge::setAmcADrainVoltage ( float  V)
inline

Set the AMC-A drain voltage.

Parameters
Vthe requested drain voltage in V

◆ setAmcAGateVoltage()

void Cartridge::setAmcAGateVoltage ( float  V)
inline

Set the AMC-A gate voltage.

Parameters
Vthe requested gate voltage in V

◆ setAmcBDrainVoltage()

void Cartridge::setAmcBDrainVoltage ( float  V)
inline

Set the AMC-B drain voltage.

Parameters
Vthe requested drain voltage in V

◆ setAmcBGateVoltage()

void Cartridge::setAmcBGateVoltage ( float  V)
inline

Set the AMC-B gate voltage.

Parameters
Vthe requested gate voltage in V

◆ setAmcDMultVoltage()

void Cartridge::setAmcDMultVoltage ( float  V)
inline

Set the AMC-MULT_D voltage.

Parameters
Vthe requested voltage in V

◆ setAmcEDrainVoltage()

void Cartridge::setAmcEDrainVoltage ( float  V)
inline

Set the AMC-E drain voltage.

Parameters
Vthe requested drain voltage in V

◆ setAmcEGateVoltage()

void Cartridge::setAmcEGateVoltage ( float  V)
inline

Set the AMC-E gate voltage.

Parameters
Vthe requested gate voltage in V

◆ setCoarseTune()

void Cartridge::setCoarseTune ( unsigned short  value)
inline

update YIG oscillator setting

Parameters
valuean integer (0-4095) defining a new commanded YIG setting

◆ setCoilCurrent()

void Cartridge::setCoilCurrent ( Mixer::Polarization  pol,
Mixer::Element  sis,
float  mA,
bool  fast = false 
)

Set a new coil current value of a mixer element.

This method will set the mixer coil current to a new commanded value. Unless the parameter fast is set to true, this will happen in a safe way by performing the setting in small steps of 0.1 mA with a delay of 10 ms between steps.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
mAthe requested coil current in mA
fasttrue if setting should occur in one step, default is false.

◆ setDrainCurrent()

void Cartridge::setDrainCurrent ( Mixer::Polarization  pol,
Mixer::Element  sis,
LNA::Stage  stage,
float  mA 
)

Set the drain current for given LNA.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
stagethe LNA::Stage to use
mAthe requested drain current in mA

◆ setDrainVoltage()

void Cartridge::setDrainVoltage ( Mixer::Polarization  pol,
Mixer::Element  sis,
LNA::Stage  stage,
float  V 
)

Set the drain voltage for given LNA.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
stagethe LNA::Stage to use
Vthe requested drain voltage in V

◆ setFlag()

void Cartridge::setFlag ( QString  name,
bool  flag 
)
protected

Set a boolean value via its name.

Parameters
namethe shortName of the entry we want to set.
flaga boolean.

◆ setLNAenable()

void Cartridge::setLNAenable ( Mixer::Polarization  pol,
Mixer::Element  sis,
bool  flag 
)

Enable LNA operation.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
flagenable (true) or disable (false)

◆ setMonitorChannels()

void Cartridge::setMonitorChannels ( const QStringList &  channels)

Define the list of CANbus addressable items which should be monitored.

See function SEPIA::setupModel where a list of strings is set up in order to control which CANbus read access items should be monitored.

Parameters
channelsa QStringList defining a list of channel names.

◆ setNullPllIntegrator()

void Cartridge::setNullPllIntegrator ( bool  flag)
inline

Set/clear null PLL integrator.

Parameters
flagtrue to set, false to clear

◆ setPaDrainVoltage()

void Cartridge::setPaDrainVoltage ( Mixer::Polarization  pol,
float  V 
)

Set the drain voltage for given PA.

Parameters
polthe Mixer::Polarization to use
Vthe requested drain voltage in V

◆ setPaGateVoltage()

void Cartridge::setPaGateVoltage ( Mixer::Polarization  pol,
float  V 
)

Set the gate voltage for given PA.

Parameters
polthe Mixer::Polarization to use
Vthe requested drain voltage in V

◆ setPllLoopBandwidth()

void Cartridge::setPllLoopBandwidth ( bool  flag)
inline

Set/clear PLL loop bandwidth.

Parameters
flagtrue to set, false to clear

◆ setPllSideband()

void Cartridge::setPllSideband ( bool  lower)
inline

Set PLL sideband.

Parameters
lowertrue: use lower sideband, false: use upper sideband

◆ setRealValue()

void Cartridge::setRealValue ( QString  name,
float  v 
)
protected

Set a float value via its name.

Parameters
namethe shortName of the entry we want to set.
va 32-bit floating point value.

◆ setSisOpenLoop()

void Cartridge::setSisOpenLoop ( Mixer::Polarization  pol,
Mixer::Element  sis,
bool  flag 
)

Switch a mixer element to open loop mode.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
flagturn open loop on (true) or off (false)

◆ setSisVoltage()

void Cartridge::setSisVoltage ( Mixer::Polarization  pol,
Mixer::Element  sis,
float  mV,
bool  fast = false 
)

Set a new bias voltage of a mixer element.

This method will set the mixer bias to a new commanded value. Unless the parameter fast is set to true, this will happen in a safe way by performing the setting in small steps of 0.1 mV.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
mVthe SIS bias in mV to set
fasttrue if setting should occur in one step, default is false.

◆ setWord()

void Cartridge::setWord ( QString  name,
unsigned short  w 
)
protected

Set a 16 bit value via its name.

Parameters
namethe shortName of the entry we want to set.
wa 16-bit unsigned integer.

◆ showCurve

void Cartridge::showCurve ( Mixer::Polarization  pol,
Mixer::Element  sis,
QVector< double >  x,
QVector< double >  y,
QVector< double >  z,
const QString &  xlab = QString::fromUtf8("mixer bias [mV]"),
const QString &  ylab = QString::fromUtf8("mixer current [µA]") 
)
slot

Signal GUI to display results from IV scan.

Parameters
polthe Mixer::Polarization to show
sisthe Mixer::Element to show
xtrace data for x-axis of resulting plot (typically bias voltage)
ytrace data for y-axis of resulting plot (typically current)
ztrace data for 2nd y-axis of resulting plot (typically power)
xlablabel text for x-axis
ylablabel text for y-axis

◆ shutdownBand

virtual void Cartridge::shutdownBand ( )
pure virtualslot

Shut down a band.

This is a pure virtual function, inherited by all sepiaXXX child classes. The function will reset SIS biases, coil currents and LNA settings.

◆ sisCurrent()

float Cartridge::sisCurrent ( Mixer::Polarization  pol,
Mixer::Element  sis 
)

Get the mixer current.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
current mixer current in mA

◆ sisOpenLoop()

bool Cartridge::sisOpenLoop ( Mixer::Polarization  pol,
Mixer::Element  sis 
)

Get the open loop mode of a mixer element.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
open loop mode on (true) or off (false)

◆ sisPower()

float Cartridge::sisPower ( Mixer::Polarization  pol,
Mixer::Element  sis 
)

Get the mixer total power.

(This is not yet implemented, will return value of zero.)

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
current total power in mW

◆ sisVoltage()

float Cartridge::sisVoltage ( Mixer::Polarization  pol,
Mixer::Element  sis 
)

Get the mixer bias.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
Returns
current mixer bias in mV

◆ statusMessage

void Cartridge::statusMessage ( const QString &  msg)
signal

Send a status message.

Parameters
msgtext string describing the new status

◆ switchSynth

void Cartridge::switchSynth ( bool  flag)
slot

Turn Synthesizer on/off.

Parameters
flagtrue: switch on, false: switch off

◆ synthConnected

void Cartridge::synthConnected ( bool  flag)
signal

A signal emitted to indicate synthesizer connection status.

Parameters
flagtrue: synthesizer is connected, false: synthesizer is disconnected

◆ synthFreq()

double Cartridge::synthFreq ( ) const
inline

Get the current synthesizer frequency.

Returns
current synthesizer frequency in GHz.

◆ synthFreqChanged

void Cartridge::synthFreqChanged ( double  ghz)
signal

A signal emitted when synthesizer frequency changed.

Parameters
ghznew actual frequency

◆ synthLevel()

double Cartridge::synthLevel ( ) const
inline

Get the current synthesizer level setting.

Returns
current synthesizer level in dBm

◆ synthLevelChanged

void Cartridge::synthLevelChanged ( double  dbm)
signal

A signal emitted when synthesizer level changed.

Parameters
dbmnew actual signal level

◆ synthSwitched

void Cartridge::synthSwitched ( bool  on)
signal

A signal emitted to indicate synthesizer status.

Parameters
ontrue: synthesizer is on, false: synthesizer is off

◆ systemTuned

void Cartridge::systemTuned ( bool  ok)
signal

A signal emitted when system tuning (i.e. both LO and mixer) is done.

Parameters
oktrue, if tuning was successful

◆ toggleHeater()

void Cartridge::toggleHeater ( Mixer::Polarization  pol)

Toggle the heater state, i.e. switch off, then on.

Parameters
polthe Mixer::Polarization to use

◆ traceReady

void Cartridge::traceReady ( Mixer::Polarization  pol,
Mixer::Element  sis,
QVector< double >  x,
QVector< double >  y,
QVector< double >  z,
const QString &  xlab,
const QString &  ylab 
)
signal

A signal emitted when a new trace, i.e. data from a mixer scan, is available.

Parameters
polthe Mixer::Polarization to use
sisthe Mixer::Element to use
xthe data for the x-axis of the plot, typically mixer bias
ythe data for the y-axis of the plot, typically mixer current
zthe data for the 2nd y-axis of the plot, typically mixer total power
xlabthe text for labelling of the x-axis
ylabthe text for labelling of the y-axis

◆ tuneLO() [1/2]

virtual void Cartridge::tuneLO ( double  ghz,
int  harmonic 
)
pure virtual

Tune local oscillator.

This is a pure virtual function, inherited by all sepiaXXX child classes. This function will not use the tuning table, but use the given harmonic.

Parameters
ghzrequested local oscillator frequency in GHz.
harmonicthe harmonic of the synthesizer signal to be used

◆ tuneLO [2/2]

void Cartridge::tuneLO ( double  ghz)
virtualslot

Tune the LO using tuning table.

This is a pure virtual function, inherited by all sepiaXXX child classes. This function will look up the harmonic to be used in the corresponding tuning table.

Parameters
ghzthe requested LO frequency in GHz

◆ tuneMixer() [1/2]

virtual void Cartridge::tuneMixer ( Mixer::Polarization  pol,
float  bias[2],
float  Igoal,
float  power,
float  maxPower 
)
pure virtual

Tune a mixer.

This is a pure virtual function, inherited by all sepiaXXX child classes. Tuning will use given values and will override values in the corresponding tuning table.

Parameters
polthe Mixer::Polarization of the mixer
bias[]the bias voltages to be used for the two mixer elements
Igoalthe mixer current in mA to aim for
powerthe resulting LO power according to tuning table
maxPowerthe maximum allowed LO power

◆ tuneMixer [2/2]

void Cartridge::tuneMixer ( Mixer::Polarization  pol)
virtualslot

Tune a mixer.

This is a pure virtual function, inherited by all sepiaXXX child classes. Tuning will be done based on values in the corresponding tuning table.

Parameters
polthe polarization for which tuning is to be performed

◆ tuneSynthesizer()

void Cartridge::tuneSynthesizer ( double  WCAfreq,
int  harmonic,
bool  upper 
)

Pure virtual method to tune the synthesize.

Parameters
WCAfreqthe frequency of the WCA in GHz
harmonicthe harmonic of the synthesizer signal to be used
uppertrue: use upper sideband of the PLL, false: use lower sideband

◆ tuneSystem

void Cartridge::tuneSystem ( double  ghz)
slot

Tune both LO and mixers to a given LO frequency using tuning table.

Parameters
ghzthe commanded LO frequency in GHz

◆ updateMonitorItem

void Cartridge::updateMonitorItem ( const QString &  name,
DWORD  addr,
float  v,
char  unit,
int  gain 
)
signal

Send latest reading of a monitor item.

Parameters
namethe short name of the item
addrthe CANbus address of the item
vthe actual value
unita character designating the physical unit of the item
gainthe gain factor to apply to the physical unit

◆ updateYIG

void Cartridge::updateYIG ( int  value)
slot

Set a new YIG value.

This method will

  • set the null PLL integrator
  • set the YIG value
  • wait 5 ms
  • clear the null PLL integrator the new setting is emitted via signal (Cartridge::yigChanged)
Parameters
valueinteger step to set (range 0 to 4095)

◆ upperLimit()

double Cartridge::upperLimit ( ) const
inline

Return the upper limit of the LO tuning range in GHz.

Returns
highest LO tuning frequency in GHz

◆ yigChanged

void Cartridge::yigChanged ( int  value)
signal

A signal emitted when YIG setting changed.

Parameters
valuethe new YIG seatting (as an integer step)

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