15 #include "charinterface.h"
16 #include "usersignalgenerator.h"
18 REGISTER_TYPE(
XDriverList, SG7130,
"KENWOOD SG7130 signal generator");
19 REGISTER_TYPE(
XDriverList, SG7200,
"KENWOOD SG7200 signal generator");
20 REGISTER_TYPE(
XDriverList, HP8643,
"HP/Agilent 8643/8644 signal generator");
21 REGISTER_TYPE(
XDriverList, HP8648,
"HP/Agilent 8648 signal generator");
22 REGISTER_TYPE(
XDriverList, HP8664,
"HP/Agilent 8664/8665 signal generator");
23 REGISTER_TYPE(
XDriverList, DPL32XGF,
"DSTech. DPL-3.2XGF signal generator");
24 REGISTER_TYPE(
XDriverList, RhodeSchwartzSMLSMV,
"Rhode-Schwartz SML01/02/03/SMV03 signal generator");
26 XSG7200::XSG7200(
const char *name,
bool runtime,
27 Transaction &tr_meas,
const shared_ptr<XMeasure> &meas)
29 interface()->setGPIBUseSerialPollOnWrite(
false);
30 interface()->setGPIBUseSerialPollOnRead(
false);
32 XSG7130::XSG7130(
const char *name,
bool runtime,
33 Transaction &tr_meas,
const shared_ptr<XMeasure> &meas)
34 :
XSG7200(name, runtime, ref(tr_meas), meas) {
37 XSG7200::changeFreq(
double mhz) {
39 interface()->sendf(
"FR%fMHZ", mhz);
47 interface()->sendf(
"LE%fDBM", (
double)shot[ *
oLevel()]);
51 interface()->send(shot[ *
fmON()] ?
"FMON" :
"FMOFF");
55 interface()->send(shot[ *
amON()] ?
"AMON" :
"AMOFF");
58 XHP8643::XHP8643(
const char *name,
bool runtime,
59 Transaction &tr_meas,
const shared_ptr<XMeasure> &meas)
61 interface()->setGPIBUseSerialPollOnWrite(
false);
66 XHP8643::changeFreq(
double mhz) {
68 interface()->sendf(
"FREQ:CW %f MHZ", mhz);
73 interface()->sendf(
"AMPL:STAT %s", shot[ *
rfON()] ?
"ON" :
"OFF");
77 interface()->sendf(
"AMPL:LEV %f DBM", (
double)shot[ *
oLevel()]);
81 interface()->sendf(
"FMSTAT %s", shot[ *
fmON()] ?
"ON" :
"OFF");
85 interface()->sendf(
"AMSTAT %s", shot[ *
amON()] ?
"ON" :
"OFF");
88 XHP8648::XHP8648(
const char *name,
bool runtime,
89 Transaction &tr_meas,
const shared_ptr<XMeasure> &meas)
90 :
XHP8643(name, runtime, ref(tr_meas), meas) {
97 interface()->sendf(
"OUTP:STAT %s", shot[ *
rfON()] ?
"ON" :
"OFF");
101 interface()->sendf(
"POW:AMPL %f DBM", (
double)shot[ *
oLevel()]);
104 XHP8664::XHP8664(
const char *name,
bool runtime,
105 Transaction &tr_meas,
const shared_ptr<XMeasure> &meas)
107 interface()->setGPIBUseSerialPollOnWrite(
false);
112 XHP8664::changeFreq(
double mhz) {
114 interface()->sendf(
"FREQ:CW %f MHZ", mhz);
119 interface()->sendf(
"AMPL:STAT %s", shot[ *
rfON()] ?
"ON" :
"OFF");
123 interface()->sendf(
"AMPL %f DBM", (
double)shot[ *
oLevel()]);
127 interface()->sendf(
"FM:STAT %s", shot[ *
fmON()] ?
"ON" :
"OFF");
131 interface()->sendf(
"AM:STAT %s", shot[ *
amON()] ?
"ON" :
"OFF");
134 XDPL32XGF::XDPL32XGF(
const char *name,
bool runtime,
135 Transaction &tr_meas,
const shared_ptr<XMeasure> &meas)
137 interface()->setEOS(
"\r\n");
138 interface()->setSerialBaudRate(9600);
139 interface()->setSerialStopBits(1);
140 interface()->setSerialFlushBeforeWrite(
true);
145 XDPL32XGF::changeFreq(
double mhz) {
147 interface()->queryf(
"F %fM", mhz);
152 interface()->queryf(
"%s", shot[ *
rfON()] ?
"ON" :
"OFF");
156 interface()->queryf(
"A %.1f", (
double)shot[ *
oLevel()]);
165 XRhodeSchwartzSMLSMV::XRhodeSchwartzSMLSMV(
const char *name,
bool runtime,
166 Transaction &tr_meas,
const shared_ptr<XMeasure> &meas)
168 interface()->setEOS(
"\r\n");
169 interface()->setSerialBaudRate(9600);
170 interface()->setSerialStopBits(1);
171 interface()->setSerialFlushBeforeWrite(
true);
175 XRhodeSchwartzSMLSMV::changeFreq(
double mhz) {
177 interface()->sendf(
":SOUR:FREQ %f", mhz * 1e6);
182 interface()->sendf(
":OUTP:STAT %s", shot[ *
rfON()] ?
"ON" :
"OFF");
186 interface()->sendf(
":POW %.1f", (
double)shot[ *
oLevel()]);
190 interface()->sendf(
":FM:STAT %s", shot[ *
fmON()] ?
"ON" :
"OFF");
194 interface()->sendf(
":AM:STAT %s", shot[ *
amON()] ?
"ON" :
"OFF");