mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-22 12:08:43 -04:00
Merge branch 'develop' of bitbucket.org:k1jt/wsjtx into develop
This commit is contained in:
commit
23ca8f76c8
@ -7,6 +7,7 @@
|
||||
#include <stdio.h>
|
||||
#include "SettingsGroup.hpp"
|
||||
#include "commons.h"
|
||||
#include <math.h>
|
||||
|
||||
extern "C" {
|
||||
void astrosub_ (int* nyear, int* month, int* nday, double* uth, int* nfreq,
|
||||
@ -44,7 +45,7 @@ Astro::~Astro()
|
||||
}
|
||||
|
||||
void Astro::astroUpdate(QDateTime t, QString mygrid, QString hisgrid,
|
||||
int fQSO, int nsetftx, int ntxFreq, QString azelDir)
|
||||
int fQSO, int nsetftx, int ntxFreq, QString azelDir, double xavg)
|
||||
{
|
||||
static int ntxFreq0=-99;
|
||||
char cc[300];
|
||||
@ -86,6 +87,65 @@ void Astro::astroUpdate(QDateTime t, QString mygrid, QString hisgrid,
|
||||
ntsky,xnr,dgrd);
|
||||
ui->astroTextBrowser->setText(" "+ date + "\nUTC: " + utc + "\n" + cc);
|
||||
|
||||
double azOffset=0.0;
|
||||
double elOffset=0.0;
|
||||
double rad=57.2957795131;
|
||||
int iCycle=2;
|
||||
// Are we doing pointing tests?
|
||||
bool bPointing=ui->cbPointingTests->isChecked();
|
||||
ui->gbPointing->setVisible(bPointing);
|
||||
if(bPointing) {
|
||||
int nDwell=int(ui->sbDwell->value());
|
||||
if(ui->cbAutoCycle->isChecked()) {
|
||||
iCycle=(t.currentSecsSinceEpoch()%(6*nDwell))/nDwell + 1;
|
||||
if(iCycle==1) {
|
||||
azOffset = -ui->sbOffset->value()/cos(elsun/rad);
|
||||
ui->rb1->setChecked(true);
|
||||
}
|
||||
if(iCycle==2 or iCycle==5) {
|
||||
ui->rb2->setChecked(true);
|
||||
}
|
||||
if(iCycle==3) {
|
||||
azOffset = +ui->sbOffset->value()/cos(elsun/rad);
|
||||
ui->rb3->setChecked(true);
|
||||
}
|
||||
if(iCycle==4) {
|
||||
elOffset = -ui->sbOffset->value();
|
||||
ui->rb4->setChecked(true);
|
||||
}
|
||||
if(iCycle==6) {
|
||||
elOffset = +ui->sbOffset->value();
|
||||
ui->rb6->setChecked(true);
|
||||
}
|
||||
}
|
||||
if(ui->cbOnOff->isChecked()) {
|
||||
iCycle=(t.currentSecsSinceEpoch()%(2*nDwell))/nDwell + 1;
|
||||
if(iCycle==1) {
|
||||
azOffset = -ui->sbOffset->value()/cos(elsun/rad);
|
||||
ui->rb1->setChecked(true);
|
||||
}
|
||||
if(iCycle==2) {
|
||||
ui->rb2->setChecked(true);
|
||||
}
|
||||
}
|
||||
if(ui->cbAutoCycle->isChecked() or ui->cbOnOff->isChecked()) {
|
||||
QFile f("pointing.out");
|
||||
if(f.open(QIODevice::WriteOnly | QIODevice::Append)) {
|
||||
QTextStream out(&f);
|
||||
out << t.toString("yyyy-MMM-dd hh:mm:ss");
|
||||
sprintf(cc,"%7.1f %7.1f %d %7.1f %7.1f %10.1f %7.2f\n",
|
||||
azsun,elsun,iCycle,azOffset,elOffset,xavg,10.0*log10(xavg));
|
||||
out << cc;
|
||||
f.close();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ui->rb2->setChecked(true);
|
||||
ui->cbAutoCycle->setChecked(false);
|
||||
ui->cbOnOff->setChecked(false);
|
||||
}
|
||||
|
||||
// Write pointing data to azel.dat
|
||||
QString fname=azelDir+"/azel.dat";
|
||||
QFile f(fname);
|
||||
if(!f.open(QIODevice::WriteOnly | QIODevice::Text)) {
|
||||
@ -107,7 +167,7 @@ void Astro::astroUpdate(QDateTime t, QString mygrid, QString hisgrid,
|
||||
"%3d,%1d,fQSO\n"
|
||||
"%3d,%1d,fQSO2\n",
|
||||
nhr,nmin,isec,azmoon,elmoon,
|
||||
nhr,nmin,isec,azsun,elsun,
|
||||
nhr,nmin,isec,azsun+azOffset,elsun+elOffset,
|
||||
nhr,nmin,isec,0.0,0.0,
|
||||
nfreq,ndop,ndop00,
|
||||
fQSO,nsetftx,
|
||||
@ -120,3 +180,14 @@ void Astro::setFontSize(int n)
|
||||
{
|
||||
ui->astroTextBrowser->setFontPointSize(n);
|
||||
}
|
||||
|
||||
void Astro::on_cbAutoCycle_clicked(bool checked)
|
||||
{
|
||||
if(checked) ui->cbOnOff->setChecked(false);
|
||||
}
|
||||
|
||||
void Astro::on_cbOnOff_clicked(bool checked)
|
||||
{
|
||||
if(checked) ui->cbAutoCycle->setChecked(false);
|
||||
}
|
||||
|
||||
|
@ -15,10 +15,14 @@ class Astro : public QWidget
|
||||
public:
|
||||
explicit Astro (QString const& settings_filename, QWidget *parent = 0);
|
||||
void astroUpdate(QDateTime t, QString mygrid, QString hisgrid,
|
||||
int fQSO, int nsetftx, int ntxFreq, QString azelDir);
|
||||
int fQSO, int nsetftx, int ntxFreq, QString azelDir, double xavg);
|
||||
void setFontSize(int n);
|
||||
~Astro ();
|
||||
|
||||
private slots:
|
||||
void on_cbOnOff_clicked(bool checked);
|
||||
void on_cbAutoCycle_clicked(bool checked);
|
||||
|
||||
private:
|
||||
Ui::Astro *ui;
|
||||
QString m_settings_filename;
|
||||
|
236
map65/astro.ui
236
map65/astro.ui
@ -6,30 +6,242 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>262</width>
|
||||
<width>441</width>
|
||||
<height>483</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<widget class="QTextBrowser" name="astroTextBrowser">
|
||||
<widget class="QGroupBox" name="gbPointing">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>269</x>
|
||||
<y>19</y>
|
||||
<width>151</width>
|
||||
<height>431</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<widget class="QRadioButton" name="rb1">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>100</y>
|
||||
<width>30</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QRadioButton" name="rb2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>60</x>
|
||||
<y>100</y>
|
||||
<width>40</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2, 5</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QRadioButton" name="rb3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>110</x>
|
||||
<y>100</y>
|
||||
<width>30</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QRadioButton" name="rb4">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>60</x>
|
||||
<y>150</y>
|
||||
<width>30</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>4</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QRadioButton" name="rb6">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>60</x>
|
||||
<y>50</y>
|
||||
<width>30</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>6</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QDoubleSpinBox" name="sbOffset">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>230</y>
|
||||
<width>130</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="prefix">
|
||||
<string>Offset </string>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string> deg</string>
|
||||
</property>
|
||||
<property name="decimals">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<double>0.500000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>20.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.500000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>2.500000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="cbAutoCycle">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>330</y>
|
||||
<width>91</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Auto Cycle</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="cbOnOff">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>380</y>
|
||||
<width>70</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>On Off</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QSpinBox" name="sbDwell">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>280</y>
|
||||
<width>130</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string> s</string>
|
||||
</property>
|
||||
<property name="prefix">
|
||||
<string>Dwell </string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>300</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>10</y>
|
||||
<width>256</width>
|
||||
<height>451</height>
|
||||
<width>258</width>
|
||||
<height>471</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Courier New</family>
|
||||
<pointsize>20</pointsize>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="astroTextBrowser">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Courier New</family>
|
||||
<pointsize>20</pointsize>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbPointingTests">
|
||||
<property name="text">
|
||||
<string>Pointing Tests</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
@ -520,6 +520,8 @@ void MainWindow::dataSink(int k)
|
||||
static int nkhz;
|
||||
static int nfsample=96000;
|
||||
static int nxpol=0;
|
||||
static int nsec0=0;
|
||||
static int nsum=0;
|
||||
static float fgreen;
|
||||
static int ndiskdat;
|
||||
static int nb;
|
||||
@ -529,6 +531,7 @@ void MainWindow::dataSink(int k)
|
||||
static float rejectx;
|
||||
static float rejecty;
|
||||
static float slimit;
|
||||
static double xsum=0.0;
|
||||
|
||||
if(m_diskData) {
|
||||
ndiskdat=1;
|
||||
@ -551,8 +554,22 @@ void MainWindow::dataSink(int k)
|
||||
&nfsample, &fgreen, &m_adjustIQ, &m_applyIQcal,
|
||||
&m_gainx, &m_gainy, &m_phasex, &m_phasey, &rejectx, &rejecty,
|
||||
&px, &py, s, &nkhz, &ihsym, &nzap, &slimit, lstrong);
|
||||
|
||||
int nsec=QDateTime::currentSecsSinceEpoch();
|
||||
if(nsec==nsec0) {
|
||||
xsum+=pow(10.0,0.1*px);
|
||||
nsum+=1;
|
||||
} else {
|
||||
m_xavg=0.0;
|
||||
if(nsum>0) m_xavg=xsum/nsum;
|
||||
xsum=pow(10.0,0.1*px);
|
||||
nsum=1;
|
||||
}
|
||||
nsec0=nsec;
|
||||
|
||||
QString t;
|
||||
m_pctZap=nzap/178.3;
|
||||
ui->yMeterFrame->setVisible(m_xpol);
|
||||
if(m_xpol) {
|
||||
lab4->setText (
|
||||
QString {" Rx noise: %1 %2 %3 %% "}
|
||||
@ -1693,7 +1710,7 @@ void MainWindow::guiUpdate()
|
||||
QDateTime t = QDateTime::currentDateTimeUtc();
|
||||
int fQSO=m_wide_graph_window->QSOfreq();
|
||||
m_astro_window->astroUpdate(t, m_myGrid, m_hisGrid, fQSO, m_setftx,
|
||||
m_txFreq, m_azelDir);
|
||||
m_txFreq, m_azelDir, m_xavg);
|
||||
m_setftx=0;
|
||||
QString utc = t.date().toString(" yyyy MMM dd \n") + t.time().toString();
|
||||
ui->labUTC->setText(utc);
|
||||
|
@ -200,6 +200,7 @@ private:
|
||||
// double m_IQphase;
|
||||
double m_cal570;
|
||||
double m_TxOffset;
|
||||
double m_xavg;
|
||||
|
||||
bool m_monitoring;
|
||||
bool m_transmitting;
|
||||
|
@ -210,6 +210,7 @@ using SpecOp = Configuration::SpecialOperatingActivity;
|
||||
|
||||
bool m_displayBand = false;
|
||||
bool no_a7_decodes = false;
|
||||
bool keep_frequency = false;
|
||||
|
||||
namespace
|
||||
{
|
||||
@ -4133,7 +4134,7 @@ void MainWindow::pskPost (DecodedText const& decodedtext)
|
||||
}
|
||||
int snr = decodedtext.snr();
|
||||
Frequency frequency = m_freqNominalPeriod + audioFrequency; // prevent spotting wrong band
|
||||
if(grid.contains (grid_regexp)) {
|
||||
if(grid.contains (grid_regexp) || decodedtext.string().contains(" CQ ")) {
|
||||
// qDebug() << "To PSKreporter:" << deCall << grid << frequency << msgmode << snr;
|
||||
if (!m_psk_Reporter.addRemoteStation (deCall, grid, frequency, msgmode, snr))
|
||||
{
|
||||
@ -6758,7 +6759,7 @@ void MainWindow::on_actionFT8_triggered()
|
||||
ui->txb5->setEnabled(false);
|
||||
ui->txb6->setEnabled(false);
|
||||
} else {
|
||||
switch_mode (Modes::FT8);
|
||||
if (!(keep_frequency)) switch_mode (Modes::FT8);
|
||||
}
|
||||
|
||||
if(m_specOp != SpecOp::HOUND) {
|
||||
@ -10006,6 +10007,8 @@ void MainWindow::on_houndButton_clicked (bool checked)
|
||||
} else {
|
||||
ui->houndButton->setStyleSheet("");
|
||||
m_config.setSpecial_None();
|
||||
keep_frequency = true;
|
||||
QTimer::singleShot (250, [=] {keep_frequency = false;});
|
||||
}
|
||||
m_specOp=m_config.special_op_id();
|
||||
on_actionFT8_triggered();
|
||||
|
Loading…
Reference in New Issue
Block a user