mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-08-04 23:22:26 -04:00
merge
This commit is contained in:
commit
157642d7cb
@ -71,7 +71,7 @@ message (STATUS "******************************************************")
|
|||||||
|
|
||||||
include (set_build_type)
|
include (set_build_type)
|
||||||
# RC 0 or omitted is a development build, GA is a General Availability release build
|
# RC 0 or omitted is a development build, GA is a General Availability release build
|
||||||
set_build_type (RC 6)
|
set_build_type (RC 7)
|
||||||
set (wsjtx_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${BUILD_TYPE_REVISION}")
|
set (wsjtx_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${BUILD_TYPE_REVISION}")
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -21,6 +21,7 @@ FT8 11101000010011100001000010011000100000
|
|||||||
FT8/VHF 11101000010011100001000010011000100000
|
FT8/VHF 11101000010011100001000010011000100000
|
||||||
FT8/Fox 11101000010011100001000000000010000000
|
FT8/Fox 11101000010011100001000000000010000000
|
||||||
FT8/Hound 11101000010011100001000000000011000000
|
FT8/Hound 11101000010011100001000000000011000000
|
||||||
|
FT8/SupHou 11111000010011100001000000000011000000
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
1 2 3
|
1 2 3
|
||||||
01234567890123456789012345678901234567
|
01234567890123456789012345678901234567
|
||||||
|
@ -53,6 +53,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
character(len=12) :: mycall, hiscall
|
character(len=12) :: mycall, hiscall
|
||||||
character(len=6) :: mygrid, hisgrid
|
character(len=6) :: mygrid, hisgrid
|
||||||
character*60 line
|
character*60 line
|
||||||
|
character*256 cmnd,cmndmsg
|
||||||
|
character*6 crxfreq,cftol
|
||||||
data ndec8/0/,ntr0/-1/
|
data ndec8/0/,ntr0/-1/
|
||||||
save
|
save
|
||||||
type(counting_jt4_decoder) :: my_jt4
|
type(counting_jt4_decoder) :: my_jt4
|
||||||
@ -146,7 +148,12 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
access='stream')
|
access='stream')
|
||||||
write(47) params%yymmdd,params%nutc,id2(1:20),id2(1:180000)
|
write(47) params%yymmdd,params%nutc,id2(1:20),id2(1:180000)
|
||||||
close(47)
|
close(47)
|
||||||
call execute_command_line(trim(exe_dir)//'/sfrx '//'"'//trim(temp_dir)//'/fort.47"')
|
write(crxfreq,'(i6)') params%nfqso
|
||||||
|
write(cftol,'(i5)') params%ntol
|
||||||
|
cmnd=trim(exe_dir)//'/sfrx'//crxfreq//cftol// '"' // &
|
||||||
|
trim(temp_dir)//'/fort.47"'
|
||||||
|
call execute_command_line(trim(cmnd),exitstat=nexitstat, &
|
||||||
|
cmdstat=ncmdstat,cmdmsg=cmndmsg)
|
||||||
else
|
else
|
||||||
call timer('decft8 ',0)
|
call timer('decft8 ',0)
|
||||||
newdat=params%newdat
|
newdat=params%newdat
|
||||||
|
@ -26,7 +26,7 @@ program ft4code
|
|||||||
'LDPC(174,91) encoding,'
|
'LDPC(174,91) encoding,'
|
||||||
print*,'bit and symbol ordering, and other details of the FT4 protocol.'
|
print*,'bit and symbol ordering, and other details of the FT4 protocol.'
|
||||||
print*
|
print*
|
||||||
print*,'Usage: ft4code [-c grid] "message" # Results for specified message'
|
print*,'Usage: ft4code "message" # Results for specified message'
|
||||||
print*,' ft4code -t # Examples of all message types'
|
print*,' ft4code -t # Examples of all message types'
|
||||||
go to 999
|
go to 999
|
||||||
endif
|
endif
|
||||||
|
@ -23,7 +23,7 @@ program ft8code
|
|||||||
'LDPC(174,91) encoding,'
|
'LDPC(174,91) encoding,'
|
||||||
print*,'bit and symbol ordering, and other details of the FT8 protocol.'
|
print*,'bit and symbol ordering, and other details of the FT8 protocol.'
|
||||||
print*
|
print*
|
||||||
print*,'Usage: ft8code [-c grid] "message" # Results for specified message'
|
print*,'Usage: ft8code "message" # Results for specified message'
|
||||||
print*,' ft8code -T # Examples of all message types'
|
print*,' ft8code -T # Examples of all message types'
|
||||||
print*,' ft8code -t # Short format examples'
|
print*,' ft8code -t # Short format examples'
|
||||||
go to 999
|
go to 999
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1369,6 +1369,9 @@ void MainWindow::readSettings()
|
|||||||
ui->sbTR->setValue (m_settings->value ("TRPeriod", 15).toInt());
|
ui->sbTR->setValue (m_settings->value ("TRPeriod", 15).toInt());
|
||||||
QTimer::singleShot (50, [=] {blocked = false;});
|
QTimer::singleShot (50, [=] {blocked = false;});
|
||||||
}
|
}
|
||||||
|
if (m_mode=="FT8") {
|
||||||
|
ui->sbFtol->setValue (m_settings->value("Ftol_SF", 50).toInt());
|
||||||
|
}
|
||||||
if (m_mode=="Q65") {
|
if (m_mode=="Q65") {
|
||||||
m_nSubMode=m_settings->value("SubMode_Q65",0).toInt();
|
m_nSubMode=m_settings->value("SubMode_Q65",0).toInt();
|
||||||
ui->sbSubmode->setValue(m_nSubMode_Q65);
|
ui->sbSubmode->setValue(m_nSubMode_Q65);
|
||||||
@ -2159,6 +2162,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
|
|||||||
set_mode(m_mode);
|
set_mode(m_mode);
|
||||||
configActiveStations();
|
configActiveStations();
|
||||||
}
|
}
|
||||||
|
if(m_mode=="FT8") on_actionFT8_triggered(); //in case we need to reset some things for Fox/Hound
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_monitorButton_clicked (bool checked)
|
void MainWindow::on_monitorButton_clicked (bool checked)
|
||||||
@ -7300,6 +7304,7 @@ void MainWindow::on_actionFT8_triggered()
|
|||||||
VHF_features_enabled(bVHF);
|
VHF_features_enabled(bVHF);
|
||||||
ui->cbAutoSeq->setChecked(true);
|
ui->cbAutoSeq->setChecked(true);
|
||||||
m_TRperiod=15.0;
|
m_TRperiod=15.0;
|
||||||
|
ui->sbFtol->setValue (m_settings->value ("Ftol_SF", 50).toInt()); // restore last used Ftol parameter
|
||||||
m_fastGraph->hide();
|
m_fastGraph->hide();
|
||||||
m_wideGraph->show();
|
m_wideGraph->show();
|
||||||
ui->rh_decodes_headings_label->setText(" UTC dB DT Freq " + tr ("Message"));
|
ui->rh_decodes_headings_label->setText(" UTC dB DT Freq " + tr ("Message"));
|
||||||
@ -7332,8 +7337,10 @@ void MainWindow::on_actionFT8_triggered()
|
|||||||
ui->cbHoldTxFreq->setChecked(true);
|
ui->cbHoldTxFreq->setChecked(true);
|
||||||
ui->cbAutoSeq->setEnabled(false);
|
ui->cbAutoSeq->setEnabled(false);
|
||||||
ui->tabWidget->setCurrentIndex(1);
|
ui->tabWidget->setCurrentIndex(1);
|
||||||
|
m_wideGraph->setSuperFox(false);
|
||||||
if(m_config.superFox()) {
|
if(m_config.superFox()) {
|
||||||
ui->TxFreqSpinBox->setValue(750); //SuperFox transmits at 750 Hz
|
ui->TxFreqSpinBox->setValue(750); //SuperFox transmits at 750 Hz
|
||||||
|
m_wideGraph->setSuperFox(true);
|
||||||
} else {
|
} else {
|
||||||
ui->TxFreqSpinBox->setValue(500);
|
ui->TxFreqSpinBox->setValue(500);
|
||||||
}
|
}
|
||||||
@ -7355,15 +7362,21 @@ void MainWindow::on_actionFT8_triggered()
|
|||||||
ui->cbAutoSeq->setEnabled(false);
|
ui->cbAutoSeq->setEnabled(false);
|
||||||
ui->tabWidget->setCurrentIndex(0);
|
ui->tabWidget->setCurrentIndex(0);
|
||||||
ui->cbHoldTxFreq->setChecked(true);
|
ui->cbHoldTxFreq->setChecked(true);
|
||||||
// 01234567890123456789012345678901234567
|
m_wideGraph->setSuperHound(false);
|
||||||
displayWidgets(nWidgets("11101000010011000001000000000011000000"));
|
|
||||||
ui->cbRxAll->setText(tr("Rx All Freqs"));
|
|
||||||
if(m_config.superFox()) {
|
if(m_config.superFox()) {
|
||||||
|
// 01234567890123456789012345678901234567
|
||||||
|
displayWidgets(nWidgets("11111000010011000001000000000011000000"));
|
||||||
ui->labDXped->setText(tr ("Super Hound"));
|
ui->labDXped->setText(tr ("Super Hound"));
|
||||||
ui->cbRxAll->setEnabled(false);
|
ui->cbRxAll->setEnabled(false);
|
||||||
|
m_wideGraph->setRxFreq(ui->RxFreqSpinBox->value());
|
||||||
|
m_wideGraph->setTol(ui->sbFtol->value());
|
||||||
|
m_wideGraph->setSuperHound(true);
|
||||||
} else {
|
} else {
|
||||||
|
// 01234567890123456789012345678901234567
|
||||||
|
displayWidgets(nWidgets("11101000010011000001000000000011000000"));
|
||||||
ui->labDXped->setText(tr ("Hound"));
|
ui->labDXped->setText(tr ("Hound"));
|
||||||
ui->cbRxAll->setEnabled(true);
|
ui->cbRxAll->setEnabled(true);
|
||||||
|
m_wideGraph->setSuperHound(false);
|
||||||
}
|
}
|
||||||
ui->txrb1->setChecked(true);
|
ui->txrb1->setChecked(true);
|
||||||
ui->txrb2->setEnabled(false);
|
ui->txrb2->setEnabled(false);
|
||||||
@ -7380,6 +7393,7 @@ void MainWindow::on_actionFT8_triggered()
|
|||||||
}
|
}
|
||||||
if(m_specOp != SpecOp::HOUND) {
|
if(m_specOp != SpecOp::HOUND) {
|
||||||
ui->houndButton->setChecked(false);
|
ui->houndButton->setChecked(false);
|
||||||
|
m_wideGraph->setSuperHound(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_specOp=m_config.special_op_id();
|
m_specOp=m_config.special_op_id();
|
||||||
@ -8852,6 +8866,7 @@ void MainWindow::on_sbFtol_valueChanged(int value)
|
|||||||
statusUpdate ();
|
statusUpdate ();
|
||||||
// save last used parameters
|
// save last used parameters
|
||||||
QTimer::singleShot (200, [=] {
|
QTimer::singleShot (200, [=] {
|
||||||
|
if (m_mode=="FT8") m_settings->setValue ("Ftol_SF", ui->sbFtol->value());
|
||||||
if (m_mode=="Q65") m_settings->setValue ("Ftol_Q65", ui->sbFtol->value());
|
if (m_mode=="Q65") m_settings->setValue ("Ftol_Q65", ui->sbFtol->value());
|
||||||
if (m_mode=="MSK144") m_settings->setValue ("Ftol_MSK144", ui->sbFtol->value());
|
if (m_mode=="MSK144") m_settings->setValue ("Ftol_MSK144", ui->sbFtol->value());
|
||||||
if (m_mode=="JT65") m_settings->setValue ("Ftol_JT65", ui->sbFtol->value ());
|
if (m_mode=="JT65") m_settings->setValue ("Ftol_JT65", ui->sbFtol->value ());
|
||||||
|
@ -483,7 +483,9 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
|||||||
|
|
||||||
float bw=9.0*12000.0/m_nsps; //JT9
|
float bw=9.0*12000.0/m_nsps; //JT9
|
||||||
if(m_mode=="FT4") bw=3*12000.0/576.0; //FT4 ### (3x, or 4x???) ###
|
if(m_mode=="FT4") bw=3*12000.0/576.0; //FT4 ### (3x, or 4x???) ###
|
||||||
if(m_mode=="FT8") bw=7*12000.0/1920.0; //FT8
|
if(m_mode=="FT8") {
|
||||||
|
bw=7*12000.0/1920.0; //FT8
|
||||||
|
}
|
||||||
if(m_mode.startsWith("FST4")) {
|
if(m_mode.startsWith("FST4")) {
|
||||||
int h=int(pow(2.0,m_nSubMode));
|
int h=int(pow(2.0,m_nSubMode));
|
||||||
int nsps=800;
|
int nsps=800;
|
||||||
@ -585,7 +587,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
|||||||
painter0.drawLine(x2,25,x2-5,20);
|
painter0.drawLine(x2,25,x2-5,20);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_mode=="Q65" or (m_mode=="JT65" and m_bVHF)) {
|
if(m_mode=="Q65" or (m_mode=="JT65" and m_bVHF) or (m_mode=="FT8" and m_bSuperHound) ) {
|
||||||
painter0.setPen(penGreen);
|
painter0.setPen(penGreen);
|
||||||
x1=XfromFreq(m_rxFreq-m_tol);
|
x1=XfromFreq(m_rxFreq-m_tol);
|
||||||
x2=XfromFreq(m_rxFreq+m_tol);
|
x2=XfromFreq(m_rxFreq+m_tol);
|
||||||
@ -604,10 +606,11 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
|||||||
}
|
}
|
||||||
painter0.setPen(penGreen);
|
painter0.setPen(penGreen);
|
||||||
x6=XfromFreq(m_rxFreq+bw); //Highest tone
|
x6=XfromFreq(m_rxFreq+bw); //Highest tone
|
||||||
|
if(m_mode=="FT8" and m_bSuperHound) x6=XfromFreq(m_rxFreq+1500.0);
|
||||||
painter0.drawLine(x6,20,x6,26);
|
painter0.drawLine(x6,20,x6,26);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Draw the green "goal post"
|
// Draw the green goal post
|
||||||
painter0.setPen(penGreen);
|
painter0.setPen(penGreen);
|
||||||
x1=XfromFreq(m_rxFreq);
|
x1=XfromFreq(m_rxFreq);
|
||||||
x2=XfromFreq(m_rxFreq+bw);
|
x2=XfromFreq(m_rxFreq+bw);
|
||||||
@ -627,12 +630,13 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
|||||||
painter0.setPen(penRed);
|
painter0.setPen(penRed);
|
||||||
x1=XfromFreq(m_txFreq);
|
x1=XfromFreq(m_txFreq);
|
||||||
x2=XfromFreq(m_txFreq+bw);
|
x2=XfromFreq(m_txFreq+bw);
|
||||||
|
if(m_bSuperFox) x2=XfromFreq(m_txFreq+1500.0);
|
||||||
if(m_mode=="WSPR") {
|
if(m_mode=="WSPR") {
|
||||||
bw=4*12000.0/8192.0; //WSPR
|
bw=4*12000.0/8192.0; //WSPR
|
||||||
x1=XfromFreq(m_txFreq-0.5*bw);
|
x1=XfromFreq(m_txFreq-0.5*bw);
|
||||||
x2=XfromFreq(m_txFreq+0.5*bw);
|
x2=XfromFreq(m_txFreq+0.5*bw);
|
||||||
}
|
}
|
||||||
// Draw the red "goal post"
|
// Draw the red goal post
|
||||||
painter0.drawLine(x1,yTxTop,x1,yTxTop+yh);
|
painter0.drawLine(x1,yTxTop,x1,yTxTop+yh);
|
||||||
painter0.drawLine(x1,yTxTop,x2,yTxTop);
|
painter0.drawLine(x1,yTxTop,x2,yTxTop);
|
||||||
painter0.drawLine(x2,yTxTop,x2,yTxTop+yh);
|
painter0.drawLine(x2,yTxTop,x2,yTxTop+yh);
|
||||||
@ -885,6 +889,18 @@ void CPlotter::setFlatten(bool b1, bool b2)
|
|||||||
if(b2) m_Flatten=2;
|
if(b2) m_Flatten=2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CPlotter::setSuperFox(bool b)
|
||||||
|
{
|
||||||
|
m_bSuperFox=b;
|
||||||
|
if(m_bSuperFox) m_bSuperHound=false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CPlotter::setSuperHound(bool b)
|
||||||
|
{
|
||||||
|
m_bSuperHound=b;
|
||||||
|
if(m_bSuperHound) m_bSuperFox=false;
|
||||||
|
}
|
||||||
|
|
||||||
void CPlotter::setTol(int n) //setTol()
|
void CPlotter::setTol(int n) //setTol()
|
||||||
{
|
{
|
||||||
m_tol=n;
|
m_tol=n;
|
||||||
|
@ -77,6 +77,8 @@ public:
|
|||||||
void setColours(QVector<QColor> const& cl);
|
void setColours(QVector<QColor> const& cl);
|
||||||
void setFlatten(bool b1, bool b2);
|
void setFlatten(bool b1, bool b2);
|
||||||
void setTol(int n);
|
void setTol(int n);
|
||||||
|
void setSuperFox(bool b);
|
||||||
|
void setSuperHound(bool b);
|
||||||
void setRxBand(QString band);
|
void setRxBand(QString band);
|
||||||
void setReference(bool b) {m_bReference = b;}
|
void setReference(bool b) {m_bReference = b;}
|
||||||
bool Reference() const {return m_bReference;}
|
bool Reference() const {return m_bReference;}
|
||||||
@ -125,6 +127,8 @@ private:
|
|||||||
bool m_bSingleDecode;
|
bool m_bSingleDecode;
|
||||||
bool m_bFirst=true;
|
bool m_bFirst=true;
|
||||||
bool m_bResized;
|
bool m_bResized;
|
||||||
|
bool m_bSuperFox=false;
|
||||||
|
bool m_bSuperHound=false;
|
||||||
|
|
||||||
float m_fSpan;
|
float m_fSpan;
|
||||||
float m_pdB=0.0;
|
float m_pdB=0.0;
|
||||||
|
@ -498,6 +498,16 @@ void WideGraph::on_zero2dSlider_valueChanged(int value) //Zero2
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WideGraph::setSuperFox(bool b)
|
||||||
|
{
|
||||||
|
ui->widePlot->setSuperFox(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WideGraph::setSuperHound(bool b)
|
||||||
|
{
|
||||||
|
ui->widePlot->setSuperHound(b);
|
||||||
|
}
|
||||||
|
|
||||||
void WideGraph::setTol(int n) //setTol
|
void WideGraph::setTol(int n) //setTol
|
||||||
{
|
{
|
||||||
ui->widePlot->setTol(n);
|
ui->widePlot->setTol(n);
|
||||||
|
@ -42,6 +42,8 @@ public:
|
|||||||
bool flatten();
|
bool flatten();
|
||||||
bool useRef();
|
bool useRef();
|
||||||
void setTol(int n);
|
void setTol(int n);
|
||||||
|
void setSuperFox(bool b);
|
||||||
|
void setSuperHound(bool b);
|
||||||
int smoothYellow();
|
int smoothYellow();
|
||||||
void setRxBand (QString const& band);
|
void setRxBand (QString const& band);
|
||||||
void setWSPRtransmitted();
|
void setWSPRtransmitted();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user