mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-04 08:21:17 -05:00
Starting to add "Tx Tune" functions.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@3603 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
e34cbfead7
commit
ba4f27518a
@ -8,6 +8,7 @@
|
||||
#include "widegraph.h"
|
||||
#include "messages.h"
|
||||
#include "bandmap.h"
|
||||
#include "txtune.h"
|
||||
#include "sleep.h"
|
||||
#include <portaudio.h>
|
||||
|
||||
@ -17,12 +18,16 @@ short int iwave[2*60*11025]; //Wave file for Tx audio
|
||||
int nwave; //Length of Tx waveform
|
||||
bool btxok; //True if OK to transmit
|
||||
double outputLatency; //Latency in seconds
|
||||
double txPower;
|
||||
double iqAmp;
|
||||
double iqPhase;
|
||||
qint16 id[4*60*96000];
|
||||
|
||||
Astro* g_pAstro = NULL;
|
||||
WideGraph* g_pWideGraph = NULL;
|
||||
Messages* g_pMessages = NULL;
|
||||
BandMap* g_pBandMap = NULL;
|
||||
TxTune* g_pTxTune = NULL;
|
||||
QSharedMemory mem_m65("mem_m65");
|
||||
|
||||
QString rev="$Rev$";
|
||||
@ -145,6 +150,9 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
m_colors="000066ff0000ffff00969696646464";
|
||||
m_nfast=1;
|
||||
m_nsave=0;
|
||||
txPower=1.0;
|
||||
iqAmp=1.0;
|
||||
iqPhase=0.0;
|
||||
|
||||
ui->xThermo->setFillBrush(Qt::green);
|
||||
ui->yThermo->setFillBrush(Qt::magenta);
|
||||
@ -2101,3 +2109,18 @@ void MainWindow::on_actionEdit_wsjt_log_triggered()
|
||||
QString cmnd=m_editorCommand + " " + m_appDir + "/wsjt.log";
|
||||
proc_editor.start(QDir::toNativeSeparators(cmnd));
|
||||
}
|
||||
|
||||
void MainWindow::on_actionTx_Tune_triggered()
|
||||
{
|
||||
if(g_pTxTune==NULL) {
|
||||
g_pTxTune = new TxTune(0);
|
||||
/*
|
||||
g_pTxTune->setWindowTitle("Astronomical Data");
|
||||
Qt::WindowFlags flags = Qt::Dialog | Qt::WindowCloseButtonHint |
|
||||
Qt::WindowMinimizeButtonHint;
|
||||
g_pTxTune->setWindowFlags(flags);
|
||||
g_pTxTune->setGeometry(m_astroGeom);
|
||||
*/
|
||||
}
|
||||
g_pTxTune->show();
|
||||
}
|
||||
|
@ -118,18 +118,13 @@ private slots:
|
||||
void on_NBslider_valueChanged(int value);
|
||||
void on_actionAdjust_IQ_Calibration_triggered();
|
||||
void on_actionApply_IQ_Calibration_triggered();
|
||||
|
||||
void on_actionAFMHot_triggered();
|
||||
|
||||
void on_actionBlue_triggered();
|
||||
|
||||
void on_actionFUNcube_Dongle_triggered();
|
||||
|
||||
void on_actionJT65B2_triggered();
|
||||
|
||||
void on_actionJT65C2_triggered();
|
||||
|
||||
void on_actionEdit_wsjt_log_triggered();
|
||||
void on_actionTx_Tune_triggered();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
|
@ -1167,6 +1167,7 @@ p, li { white-space: pre-wrap; }
|
||||
<addaction name="actionAdjust_IQ_Calibration"/>
|
||||
<addaction name="actionApply_IQ_Calibration"/>
|
||||
<addaction name="actionFind_Delta_Phi"/>
|
||||
<addaction name="actionTx_Tune"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionF4_sets_Tx6"/>
|
||||
<addaction name="separator"/>
|
||||
@ -1540,7 +1541,7 @@ p, li { white-space: pre-wrap; }
|
||||
</action>
|
||||
<action name="actionAdjust_IQ_Calibration">
|
||||
<property name="text">
|
||||
<string>Adjust I/Q Calibration</string>
|
||||
<string>Adjust Rx I/Q Calibration</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionApply_IQ_Calibration">
|
||||
@ -1548,7 +1549,7 @@ p, li { white-space: pre-wrap; }
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Apply I/Q Calibration</string>
|
||||
<string>Apply Rx I/Q Calibration</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionAFMHot">
|
||||
@ -1596,6 +1597,14 @@ p, li { white-space: pre-wrap; }
|
||||
<string>Alt+Shift+E</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionTx_Tune">
|
||||
<property name="text">
|
||||
<string>Tx Tune</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Alt+T</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<customwidgets>
|
||||
|
@ -35,7 +35,8 @@ QMAKE_EXTRA_COMPILERS += gfortran
|
||||
SOURCES += main.cpp mainwindow.cpp plotter.cpp about.cpp \
|
||||
soundin.cpp soundout.cpp devsetup.cpp \
|
||||
widegraph.cpp getfile.cpp messages.cpp bandmap.cpp \
|
||||
astro.cpp displaytext.cpp getdev.cpp
|
||||
astro.cpp displaytext.cpp getdev.cpp \
|
||||
txtune.cpp
|
||||
|
||||
win32 {
|
||||
SOURCES += killbyname.cpp set570.cpp
|
||||
@ -44,11 +45,13 @@ SOURCES += killbyname.cpp set570.cpp
|
||||
HEADERS += mainwindow.h plotter.h soundin.h soundout.h \
|
||||
about.h devsetup.h widegraph.h getfile.h messages.h \
|
||||
bandmap.h commons.h sleep.h astro.h displaytext.h \
|
||||
txtune.h
|
||||
|
||||
DEFINES += __cplusplus
|
||||
|
||||
FORMS += mainwindow.ui about.ui devsetup.ui widegraph.ui \
|
||||
messages.ui bandmap.ui astro.ui
|
||||
messages.ui bandmap.ui astro.ui \
|
||||
txtune.ui
|
||||
|
||||
RC_FILE = map65.rc
|
||||
|
||||
|
@ -357,6 +357,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
||||
}
|
||||
|
||||
df=m_fSample/32768.0;
|
||||
if(m_bLockTxRx) m_TxDF=m_DF;
|
||||
x = (m_DF + m_mode65*66*11025.0/4096.0 - m_ZoomStartFreq)/df;
|
||||
QPen pen2(Qt::darkGreen, 3); //Mark top JT65B tone with dark Green tick
|
||||
painter3.setPen(pen2);
|
||||
|
@ -12,6 +12,9 @@ extern short int iwave[2*60*11025]; //Wave file for Tx audio
|
||||
extern int nwave;
|
||||
extern bool btxok;
|
||||
extern double outputLatency;
|
||||
extern double txPower;
|
||||
extern double iqAmp;
|
||||
extern double iqPhase;
|
||||
|
||||
typedef struct //Parameters sent to or received from callback function
|
||||
{
|
||||
@ -36,6 +39,7 @@ extern "C" int d2aCallback(const void *inputBuffer, void *outputBuffer,
|
||||
int nsec;
|
||||
int nTRperiod=udata->nTRperiod;
|
||||
|
||||
// qDebug() << txPower << iqAmp << iqPhase;
|
||||
// Get System time
|
||||
qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000;
|
||||
tsec = 0.001*ms;
|
||||
|
34
txtune.cpp
Normal file
34
txtune.cpp
Normal file
@ -0,0 +1,34 @@
|
||||
#include "txtune.h"
|
||||
#include "ui_txtune.h"
|
||||
#include <QDebug>
|
||||
|
||||
extern double txPower;
|
||||
extern double iqAmp;
|
||||
extern double iqPhase;
|
||||
|
||||
TxTune::TxTune(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::TxTune)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
TxTune::~TxTune()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void TxTune::on_pwrSlider_valueChanged(int n)
|
||||
{
|
||||
txPower=0.01*n;
|
||||
}
|
||||
|
||||
void TxTune::on_ampSlider_valueChanged(int n)
|
||||
{
|
||||
iqAmp=1.0 + 0.001*n;
|
||||
}
|
||||
|
||||
void TxTune::on_phaSlider_valueChanged(int n)
|
||||
{
|
||||
iqPhase=0.1*n;
|
||||
}
|
27
txtune.h
Normal file
27
txtune.h
Normal file
@ -0,0 +1,27 @@
|
||||
#ifndef TXTUNE_H
|
||||
#define TXTUNE_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class TxTune;
|
||||
}
|
||||
|
||||
class TxTune : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit TxTune(QWidget *parent = 0);
|
||||
~TxTune();
|
||||
|
||||
private slots:
|
||||
void on_pwrSlider_valueChanged(int n);
|
||||
void on_ampSlider_valueChanged(int n);
|
||||
void on_phaSlider_valueChanged(int n);
|
||||
|
||||
private:
|
||||
Ui::TxTune *ui;
|
||||
};
|
||||
|
||||
#endif // TXTUNE_H
|
176
txtune.ui
Normal file
176
txtune.ui
Normal file
@ -0,0 +1,176 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>TxTune</class>
|
||||
<widget class="QDialog" name="TxTune">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Tx Tune</string>
|
||||
</property>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>240</y>
|
||||
<width>341</width>
|
||||
<height>32</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
<property name="centerButtons">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>40</y>
|
||||
<width>331</width>
|
||||
<height>141</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Tx Power:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>I/Q Amplitude:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSlider" name="ampSlider">
|
||||
<property name="minimum">
|
||||
<number>-100</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="tickPosition">
|
||||
<enum>QSlider::TicksBelow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>70</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>I/Q Phase:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QSlider" name="phaSlider">
|
||||
<property name="minimum">
|
||||
<number>-100</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="tickPosition">
|
||||
<enum>QSlider::TicksBelow</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSlider" name="pwrSlider">
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="tickPosition">
|
||||
<enum>QSlider::TicksBelow</enum>
|
||||
</property>
|
||||
<property name="tickInterval">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>TxTune</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>TxTune</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
@ -58,12 +58,9 @@ WideGraph::~WideGraph()
|
||||
void WideGraph::resizeEvent(QResizeEvent* ) //resizeEvent()
|
||||
{
|
||||
if(!size().isValid()) return;
|
||||
// m_Size = size();
|
||||
int w = size().width();
|
||||
int h = size().height();
|
||||
// qDebug() << "A" << w << h << ui->labFreq->geometry();
|
||||
ui->labFreq->setGeometry(QRect(w-160,h-100,131,41));
|
||||
// qDebug() << "B" << w << h << ui->labFreq->geometry();
|
||||
}
|
||||
|
||||
void WideGraph::saveSettings()
|
||||
|
Loading…
Reference in New Issue
Block a user