Starting to implement support for the HB9DRI "IQ+ XT". This will require

setting the Si570 to different frequencies for Rx and Tx.  

Not finished yet!!


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@3591 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2013-11-02 20:52:10 +00:00
parent 7ba47a7e94
commit 0d0a43cbc6
8 changed files with 191 additions and 15 deletions

View File

@ -96,6 +96,9 @@ void DevSetup::initDlg()
ui.soundCardRadioButton->setChecked(!m_network);
ui.rb96000->setChecked(m_fs96000);
ui.rb95238->setChecked(!m_fs96000);
ui.rbIQXT->setChecked(m_bIQxt);
ui.rbSi570->setChecked(!m_bIQxt);
ui.mult570TxSpinBox->setEnabled(m_bIQxt);
ui.comboBoxSndIn->setEnabled(!m_network);
ui.comboBoxSndIn->setCurrentIndex(m_nDevIn);
ui.comboBoxSndOut->setCurrentIndex(m_nDevOut);
@ -104,6 +107,7 @@ void DevSetup::initDlg()
ui.cb10db->setChecked(m_10db);
ui.cbInitIQplus->setChecked(m_initIQplus);
ui.mult570SpinBox->setValue(m_mult570);
ui.mult570TxSpinBox->setValue(m_mult570Tx);
ui.cal570SpinBox->setValue(m_cal570);
sscanf(m_colors.toAscii(),"%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x",
&r,&g,&b,&r0,&g0,&b0,&r1,&g1,&b1,&r2,&g2,&b2,&r3,&g3,&b3);
@ -162,6 +166,7 @@ void DevSetup::accept()
m_fAdd=ui.faddEntry->text().toDouble();
m_network=ui.networkRadioButton->isChecked();
m_fs96000=ui.rb96000->isChecked();
m_bIQxt=ui.rbIQXT->isChecked();
m_nDevIn=ui.comboBoxSndIn->currentIndex();
m_paInDevice=m_inDevList[m_nDevIn];
m_nDevOut=ui.comboBoxSndOut->currentIndex();
@ -171,6 +176,7 @@ void DevSetup::accept()
m_10db=ui.cb10db->isChecked();
m_initIQplus=ui.cbInitIQplus->isChecked();
m_mult570=ui.mult570SpinBox->value();
m_mult570Tx=ui.mult570TxSpinBox->value();
m_cal570=ui.cal570SpinBox->value();
QDialog::accept();
@ -325,3 +331,15 @@ void DevSetup::on_pushButton_5_clicked()
if (color.isValid()) {
}
}
void DevSetup::on_mult570TxSpinBox_valueChanged(int n)
{
m_mult570Tx=n;
}
void DevSetup::on_rbIQXT_toggled(bool checked)
{
m_bIQxt=checked;
ui.mult570TxSpinBox->setEnabled(m_bIQxt);
ui.label_25->setEnabled(m_bIQxt);
}

View File

@ -26,6 +26,7 @@ public:
qint32 m_udpPort;
qint32 m_astroFont;
qint32 m_mult570;
qint32 m_mult570Tx;
double m_fAdd;
double m_cal570;
@ -39,6 +40,7 @@ public:
bool m_restartSoundOut;
bool m_10db;
bool m_initIQplus;
bool m_bIQxt;
QString m_myCall;
QString m_myGrid;
@ -75,6 +77,9 @@ private slots:
void on_sbGreen3_valueChanged(int arg1);
void on_sbBlue3_valueChanged(int arg1);
void on_pushButton_5_clicked();
void on_mult570TxSpinBox_valueChanged(int arg1);
void on_rbIQXT_toggled(bool checked);
private:
int r,g,b,r0,g0,b0,r1,g1,b1,r2,g2,b2,r3,g3,b3;

View File

@ -17,13 +17,13 @@
<item>
<widget class="QTabWidget" name="ioTabWidget">
<property name="currentIndex">
<number>0</number>
<number>2</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Station</string>
</attribute>
<widget class="QWidget" name="">
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>10</x>
@ -952,22 +952,69 @@
<attribute name="title">
<string>Si570</string>
</attribute>
<widget class="QWidget" name="layoutWidget_6">
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>70</x>
<y>90</y>
<width>228</width>
<height>111</height>
<x>40</x>
<y>40</y>
<width>272</width>
<height>220</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_19">
<item>
<widget class="QLabel" name="label_24">
<property name="text">
<string>LO Selection:</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rbSi570">
<property name="text">
<string>IQ+, Generic Si570</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rbIQXT">
<property name="text">
<string>IQ+ Rx/XT</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<widget class="QLabel" name="label_12">
<property name="text">
<string>Frequency multiplier:</string>
<string>Rx frequency multiplier:</string>
</property>
</widget>
</item>
@ -977,7 +1024,7 @@
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -989,6 +1036,18 @@
</item>
<item>
<widget class="QSpinBox" name="mult570SpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="minimum">
<number>1</number>
</property>
@ -1002,6 +1061,58 @@
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_20">
<item>
<widget class="QLabel" name="label_25">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Tx frequency multiplier:</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_21">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>47</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="mult570TxSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_10">
<item>
@ -1017,7 +1128,7 @@
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -1029,6 +1140,18 @@
</item>
<item>
<widget class="QDoubleSpinBox" name="cal570SpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="decimals">
<number>3</number>
</property>
@ -1042,6 +1165,22 @@
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="cbInitIQplus">
<property name="text">

View File

@ -240,6 +240,7 @@ MainWindow::MainWindow(QWidget *parent) :
if(m_fs96000) g_pWideGraph->setFsample(96000);
if(!m_fs96000) g_pWideGraph->setFsample(95238);
g_pWideGraph->m_mult570=m_mult570;
g_pWideGraph->m_mult570Tx=m_mult570Tx;
g_pWideGraph->m_cal570=m_cal570;
if(m_initIQplus) g_pWideGraph->initIQplus();
@ -342,6 +343,7 @@ void MainWindow::writeSettings()
settings.setValue("paOutDevice",m_paOutDevice);
settings.setValue("IQswap",m_IQswap);
settings.setValue("Plus10dB",m_10db);
settings.setValue("IQxt",m_bIQxt);
settings.setValue("InitIQplus",m_initIQplus);
settings.setValue("UDPport",m_udpPort);
settings.setValue("PaletteCuteSDR",ui->actionCuteSDR->isChecked());
@ -361,6 +363,7 @@ void MainWindow::writeSettings()
settings.setValue("PhaseX",(double)m_phasex);
settings.setValue("PhaseY",(double)m_phasey);
settings.setValue("Mult570",m_mult570);
settings.setValue("Mult570Tx",m_mult570Tx);
settings.setValue("Cal570",m_cal570);
settings.setValue("Colors",m_colors);
settings.endGroup();
@ -420,6 +423,7 @@ void MainWindow::readSettings()
m_IQswap = settings.value("IQswap",false).toBool();
m_10db = settings.value("Plus10dB",false).toBool();
m_initIQplus = settings.value("InitIQplus",false).toBool();
m_bIQxt = settings.value("IQxt",false).toBool();
m_udpPort = settings.value("UDPport",50004).toInt();
soundInThread.setSwapIQ(m_IQswap);
soundInThread.set10db(m_10db);
@ -450,6 +454,7 @@ void MainWindow::readSettings()
m_phasex=settings.value("PhaseX",0.0).toFloat();
m_phasey=settings.value("PhaseY",0.0).toFloat();
m_mult570=settings.value("Mult570",2).toInt();
m_mult570Tx=settings.value("Mult570Tx",1).toInt();
m_cal570=settings.value("Cal570",0.0).toDouble();
m_colors=settings.value("Colors","000066ff0000ffff00969696646464").toString();
settings.endGroup();
@ -612,8 +617,10 @@ void MainWindow::on_actionDeviceSetup_triggered() //Setup Dialog
dlg.m_IQswap=m_IQswap;
dlg.m_10db=m_10db;
dlg.m_initIQplus=m_initIQplus;
dlg.m_bIQxt=m_bIQxt;
dlg.m_cal570=m_cal570;
dlg.m_mult570=m_mult570;
dlg.m_mult570Tx=m_mult570Tx;
dlg.m_colors=m_colors;
dlg.initDlg();
@ -646,12 +653,14 @@ void MainWindow::on_actionDeviceSetup_triggered() //Setup Dialog
m_IQswap=dlg.m_IQswap;
m_10db=dlg.m_10db;
m_initIQplus=dlg.m_initIQplus;
m_bIQxt=dlg.m_bIQxt;
m_colors=dlg.m_colors;
g_pMessages->setColors(m_colors);
g_pBandMap->setColors(m_colors);
m_cal570=dlg.m_cal570;
m_mult570=dlg.m_mult570;
m_mult570Tx=dlg.m_mult570Tx;
g_pWideGraph->m_mult570=m_mult570;
g_pWideGraph->m_mult570Tx=m_mult570Tx;
g_pWideGraph->m_cal570=m_cal570;
soundInThread.setSwapIQ(m_IQswap);
soundInThread.set10db(m_10db);

View File

@ -162,6 +162,7 @@ private:
qint32 m_adjustIQ;
qint32 m_applyIQcal;
qint32 m_mult570;
qint32 m_mult570Tx;
qint32 m_nfast;
qint32 m_nsum;
qint32 m_nsave;
@ -195,6 +196,7 @@ private:
bool m_IQswap;
bool m_10db;
bool m_initIQplus;
bool m_bIQxt;
float m_gainx;
float m_gainy;

View File

@ -547,10 +547,11 @@ void CPlotter::mousePressEvent(QMouseEvent *event) //mousePressEvent
int h = (m_Size.height()-60)/2;
int x=event->x();
int y=event->y();
if(y < h+30) {
setFQSO(x,false); // Wideband waterfall
} else {
m_DF=int(m_ZoomStartFreq + x*m_fSample/32768.0); // Zoomed waterfall
int button=event->button();
if(y < h+30) { // Wideband waterfall
if(button==1) setFQSO(x,false);
} else { // Zoomed waterfall
if(button==1) m_DF=int(m_ZoomStartFreq + x*m_fSample/32768.0);
DrawOverlay();
update();
}

View File

@ -56,6 +56,7 @@ public:
void setBinsPerPixel(int n);
int binsPerPixel();
void setFQSO(int n, bool bf);
// void setTxFreq(int)
void setFcal(int n);
void setNkhz(int n);
void DrawOverlay();

View File

@ -16,6 +16,7 @@ public:
bool m_bForceCenterFreq;
qint32 m_mult570;
qint32 m_mult570Tx;
double m_dForceCenterFreq;
double m_cal570;