10 #include <QFileSystemWatcher> 25 #include "GUI/mixer.h" 26 #include "GUI/lownoiseamplifier.h" 76 virtual void run() = 0;
109 virtual void run() = 0;
185 double V0,
double V1,
int steps);
270 Q_PROPERTY(
int yig READ getYIG WRITE updateYIG);
271 Q_PROPERTY(InternalState state READ state WRITE setState NOTIFY stateChanged)
272 Q_PROPERTY(TuneState tuneState READ tuneState WRITE setTuneState NOTIFY tuneStateChanged)
276 static const double lockRange;
277 static const float invalid;
288 Q_ENUM(InternalState)
314 double lowerYigLimit,
double upperYigLimit, QObject *parent = 0);
320 InternalState state()
const {
return m_state; }
321 TuneState tuneState()
const {
return t_state; }
333 void setMonitorChannels(
const QStringList &channels);
354 float biasOffset(
int pol,
int sis)
const {
return offV[pol][sis-1]; }
388 QVector<double>
biasTrace(
int pol,
int sis)
const {
return t_mV[pol][sis-1]; }
397 QVector<double>
currentTrace(
int pol,
int sis)
const {
return t_uA[pol][sis-1]; }
408 QVector<double>
powerTrace(
int pol,
int sis)
const {
return t_mW[pol][sis-1]; }
832 void setCoarseTune(
unsigned short value) { setWord(
"SET_YTO_COARSE_TUNE", value); }
843 virtual void tuneLO(
double ghz,
int harmonic) = 0;
857 virtual void tuneMixer(
Mixer::Polarization pol,
float bias[2],
float Igoal,
float power,
float maxPower) = 0;
865 void tuneSynthesizer(
double WCAfreq,
int harmonic,
bool upper);
908 virtual void initBand(
bool withDeflux) = 0;
917 virtual void shutdownBand() = 0;
927 virtual void tuneLO(
double ghz);
944 void tuneSystem(
double ghz);
981 void demagnetizeMixers(
bool p0s1,
bool p0s2,
bool p1s1,
bool p1s2);
989 void defluxMixers(
bool p0,
bool p1);
994 void setLNADefaults();
1020 void updateYIG(
int value);
1026 void changeSynthFreq(
double ghz);
1032 void changeSynthLevel(
double dBm);
1038 void switchSynth(
bool flag);
1058 void scanMixers(
double from,
double to,
int steps);
1063 void resetSisVoltages();
1068 void resetCoilCurrents();
1078 void setCoilCurrents();
1083 void setPaGateVoltages();
1096 QVector<double> x, QVector<double> y, QVector<double> z,
1097 const QString &xlab = QString::fromUtf8(
"mixer bias [mV]"),
1098 const QString &ylab = QString::fromUtf8(
"mixer current [µA]"));
1107 bool pllControl(
float *vcorr,
float *vlock);
1114 void cryoControl(
bool flag);
1121 void preparePLL(
bool upper);
1138 float getRealValue(QString name);
1145 bool getFlag(QString name);
1152 unsigned short getWord(QString name);
1154 void updateCryo(
float T4K,
float T12K,
float chanC,
float chanD,
float p);
1162 void setFlag(QString name,
bool flag);
1169 void setRealValue(QString name,
float v);
1176 void setWord(QString name,
unsigned short w);
1179 void stateChanged(Cartridge::InternalState s);
1180 void tuneStateChanged(Cartridge::TuneState s);
1200 void faulted(Sepia::ErrorCode code);
1209 void pllStatus(
bool locked,
float Vlock,
float Vcorr);
1220 void updateMonitorItem(
const QString &name, DWORD addr,
float v,
char unit,
int gain);
1226 void percentDone(
int percent);
1232 void statusMessage(
const QString &msg);
1238 void synthConnected(
bool flag);
1240 void mcConnected(
bool flag);
1241 void mcEnabled(
bool flag);
1247 void synthSwitched(
bool on);
1253 void synthFreqChanged(
double ghz);
1259 void synthLevelChanged(
double dbm);
1265 void yigChanged(
int value);
1278 int i,
double mV,
double mA,
double mW);
1292 QVector<double> x, QVector<double> y, QVector<double> z,
1293 const QString &xlab,
const QString &ylab);
1298 void LOtuned(
bool ok);
1304 void LOmodified(
bool flag);
1310 void newCmdLOfrequency(
double ghz);
1316 void newCmdHarmonic(
int harmonic);
1330 void systemTuned(
bool ok);
1447 void stabilize(
double T);
1450 void timerEvent(QTimerEvent *event);
1451 void mcError(DWORD status);
1452 void getBandSettings();
1453 void synthConnected();
1454 void synthDisconnected();
1455 void setTuneState(TuneState s);
1459 void getMonitoring(
int i);
1460 void getHouseKeeping();
1462 bool needLOTuning();
1466 QFileSystemWatcher *watcher;
1468 const QString bandname;
1470 InternalState m_state;
1476 QStringList monitorChannels;
1490 float drainV[2][2][3];
1491 float drainC[2][2][3];
1534 QVector<double> t_mV[2][2];
1535 QVector<double> t_uA[2][2];
1536 QVector<double> t_mW[2][2];
1539 void setState(InternalState s);
1542 Q_DECLARE_METATYPE(DWORD)
1543 Q_DECLARE_METATYPE(QVector<double>)
1545 #endif // CARTRIDGE_H void setAmcBGateVoltage(float V)
Set the AMC-B gate voltage.
Definition: cartridge.h:635
A class to control the power meter.
Definition: powermeter.h:19
float amcMultiDVoltage()
Get the current AMC-MULT_D voltage.
Definition: cartridge.h:708
Stage
An enumeration for the stages of a low noise amplifier.
Definition: constants.h:35
float pllIfTotalPower()
Get the PLL IF total power.
Definition: cartridge.h:791
double upperLimit() const
Return the upper limit of the LO tuning range in GHz.
Definition: cartridge.h:345
void setPllLoopBandwidth(bool flag)
Set/clear PLL loop bandwidth.
Definition: cartridge.h:820
void setPllSideband(bool lower)
Set PLL sideband.
Definition: cartridge.h:826
float biasOffset(int pol, int sis) const
Return the bias offset.
Definition: cartridge.h:354
Virtual class to run a mixer operations in parallel.
Definition: cartridge.h:62
A class representing a LO/mixer tuning.
Definition: tuning.h:16
A header file for commonly used constants.
double lowerLimit() const
Return the lower limit of the LO tuning range in GHz.
Definition: cartridge.h:339
float currentOffset(int pol, int sis) const
Return the current offset.
Definition: cartridge.h:363
A class for taking an IV curve.
Definition: cartridge.h:171
double synthFreq() const
Get the current synthesizer frequency.
Definition: cartridge.h:422
void setNullPllIntegrator(bool flag)
Set/clear null PLL integrator.
Definition: cartridge.h:814
Polarization
An enumeration for the two polarizations.
Definition: constants.h:9
virtual void run()=0
Run method needs to be implemented by all derived classes.
float amcADrainVoltage()
Get the current AMC_A drain voltage.
Definition: cartridge.h:660
bool LOlockLatch()
Get the state of the PLL lock latch.
Definition: cartridge.h:803
A class to handle all communication with the M&C unit via CANbus.
Definition: mcunit.h:34
float amcADrainCurrent()
Get the current AMC_A drain current.
Definition: cartridge.h:666
Element
An enumeration for the two mixer elements in each polarization.
Definition: constants.h:17
float pllLockVoltage()
Get the PLL lock voltage.
Definition: cartridge.h:773
void setAmcBDrainVoltage(float V)
Set the AMC-B drain voltage.
Definition: cartridge.h:617
A class to control the Anritsu synthesizer.
Definition: anritsu.h:18
void setAmcADrainVoltage(float V)
Set the AMC-A drain voltage.
Definition: cartridge.h:611
Virtual class to run mixer operations in parallel.
Definition: cartridge.h:94
int getYIG() const
Get the lates YIG setting.
Definition: cartridge.h:415
PolRunnable(Cartridge *parent, Mixer::Polarization pol)
Constructor.
Definition: cartridge.cpp:54
A virtual class representing a cartridge.
Definition: cartridge.h:267
void LOclearLatch()
Clear the PLL lock latch.
Definition: cartridge.h:808
float amcMonitor5V()
Get the AMC 5V monitor signal.
Definition: cartridge.h:714
float amcEDrainVoltage()
Get the current AMC_E drain voltage.
Definition: cartridge.h:696
float amcEDrainCurrent()
Get the current AMC_E drain current.
Definition: cartridge.h:702
float amcAGateVoltage()
Get the current AMC_A gate voltage.
Definition: cartridge.h:654
Layout of the local network.
A class for demagnetizing a mixer element.
Definition: cartridge.h:205
A class representing a LO/mixer tuning.
QVector< double > biasTrace(int pol, int sis) const
Retrieve the results for the mixer bias from the latest IV scan.
Definition: cartridge.h:388
A class to parse Andrey Ermakov's ini file.
Definition: inireader.h:40
float amcBGateVoltage()
Get the current AMC_B gate voltage.
Definition: cartridge.h:672
void setAmcAGateVoltage(float V)
Set the AMC-A gate voltage.
Definition: cartridge.h:629
void setAmcEDrainVoltage(float V)
Set the AMC-E drain voltage.
Definition: cartridge.h:623
float amcBDrainVoltage()
Get the current AMC_B drain voltage.
Definition: cartridge.h:678
float gateVoltagePreset(int pol) const
Return the default setting of the gate voltage.
Definition: cartridge.h:379
QVector< double > powerTrace(int pol, int sis) const
Retrieve the results for the total power from the latest IV scan.
Definition: cartridge.h:408
double synthLevel() const
Get the current synthesizer level setting.
Definition: cartridge.h:429
A class for setting the coil current.
Definition: cartridge.h:146
Channel
An enumeration for the three SEPIA channels (cartridges).
Definition: constants.h:66
float coilCurrentPreset(int pol, int sis) const
Return the default setting of the coil current.
Definition: cartridge.h:372
float pllAssemblyTemperature()
Get the PLL assembly temperature.
Definition: cartridge.h:797
QVector< double > currentTrace(int pol, int sis) const
Retrieve the results for the mixer current from the latest IV scan.
Definition: cartridge.h:397
QMutex * mutex(Mixer::Polarization pol, Mixer::Element sis)
Return a pointer to the mutex associated with given mixer element.
Definition: cartridge.cpp:24
void setCoarseTune(unsigned short value)
update YIG oscillator setting
Definition: cartridge.h:832
float pllCorrVoltage()
Get the PLL correction voltage.
Definition: cartridge.h:779
float amcEGateVoltage()
Get the current AMC_E gate voltage.
Definition: cartridge.h:690
void setAmcDMultVoltage(float V)
Set the AMC-MULT_D voltage.
Definition: cartridge.h:648
A class for setting the mixer bias.
Definition: cartridge.h:121
float amcBDrainCurrent()
Get the current AMC_B drain current.
Definition: cartridge.h:684
float pllRefTotalPower()
Get the PLL reference total power.
Definition: cartridge.h:785
A class to perform a deflux operation.
Definition: cartridge.h:227
void setAmcEGateVoltage(float V)
Set the AMC-E gate voltage.
Definition: cartridge.h:641