mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-29 21:02:26 -04:00
Various tweaks to the Q65 decoder; new numbering of the end-of-line decoding flags.
This commit is contained in:
parent
bcbca02c08
commit
8a4b5b6a40
@ -785,6 +785,11 @@ contains
|
|||||||
iaptype=idec/100
|
iaptype=idec/100
|
||||||
navg=mod(idec,100)
|
navg=mod(idec,100)
|
||||||
endif
|
endif
|
||||||
|
if(iaptype.eq.1) then
|
||||||
|
iaptype=3
|
||||||
|
else
|
||||||
|
iaptype=iaptype-2
|
||||||
|
endif
|
||||||
cflags='q '
|
cflags='q '
|
||||||
write(cflags(2:2),'(i1)') iaptype
|
write(cflags(2:2),'(i1)') iaptype
|
||||||
if(navg.ge.2) write(cflags(3:3),'(i1)') navg
|
if(navg.ge.2) write(cflags(3:3),'(i1)') navg
|
||||||
|
@ -70,6 +70,7 @@ subroutine q65_avg(nutc,ntrperiod,LL,nfqso,ntol,lclearave,xdt,f0,snr1,s3)
|
|||||||
entry q65_avg2(ntrperiod,ntol,baud,nsubmode,nQSOprogress,lapcqonly, &
|
entry q65_avg2(ntrperiod,ntol,baud,nsubmode,nQSOprogress,lapcqonly, &
|
||||||
ibwa,ibwb,codewords,ncw,xdt,f0,snr1,snr2,dat4,idec)
|
ibwa,ibwb,codewords,ncw,xdt,f0,snr1,snr2,dat4,idec)
|
||||||
|
|
||||||
|
if(nsave.lt.2) go to 900
|
||||||
mode_q65=2**nsubmode
|
mode_q65=2**nsubmode
|
||||||
ibwa=1.8*log(baud*mode_q65) + 2
|
ibwa=1.8*log(baud*mode_q65) + 2
|
||||||
ibwb=min(10,ibwa+4)
|
ibwb=min(10,ibwa+4)
|
||||||
|
@ -291,7 +291,7 @@ subroutine q65_dec1(s3,nsubmode,b90ts,codewords,ncw,esnodb,irc,dat4,decoded)
|
|||||||
else
|
else
|
||||||
irc=-1
|
irc=-1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return
|
return
|
||||||
end subroutine q65_dec1
|
end subroutine q65_dec1
|
||||||
|
|
||||||
|
@ -137,7 +137,11 @@ program test_q65
|
|||||||
iavg=0
|
iavg=0
|
||||||
i0=23
|
i0=23
|
||||||
if(ntrperiod.le.30) i0=25
|
if(ntrperiod.le.30) i0=25
|
||||||
if(line(i0:i0).ne.' ') read(line(60:),*) idec
|
if(line(i0:i0).ne.' ') then
|
||||||
|
i1=index(line,'q')
|
||||||
|
idec=-1
|
||||||
|
read(line(i1+1:),*) idec
|
||||||
|
endif
|
||||||
if(idec.lt.0) cycle
|
if(idec.lt.0) cycle
|
||||||
if(idec.ge.12) then
|
if(idec.ge.12) then
|
||||||
iavg=idec-10
|
iavg=idec-10
|
||||||
|
@ -3481,11 +3481,13 @@ void MainWindow::readFromStdout() //readFromStdout
|
|||||||
bool bDisplayRight=bAvgMsg;
|
bool bDisplayRight=bAvgMsg;
|
||||||
int audioFreq=decodedtext.frequencyOffset();
|
int audioFreq=decodedtext.frequencyOffset();
|
||||||
if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST4" or m_mode=="Q65") {
|
if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST4" or m_mode=="Q65") {
|
||||||
|
int ftol=10;
|
||||||
|
if(m_mode=="Q65") ftol=ui->sbFtol->value();
|
||||||
auto const& parts = decodedtext.string().remove("<").remove(">")
|
auto const& parts = decodedtext.string().remove("<").remove(">")
|
||||||
.split (' ', SkipEmptyParts);
|
.split (' ', SkipEmptyParts);
|
||||||
if (parts.size() > 6) {
|
if (parts.size() > 6) {
|
||||||
auto for_us = parts[5].contains (m_baseCall)
|
auto for_us = parts[5].contains (m_baseCall)
|
||||||
|| ("DE" == parts[5] && qAbs (ui->RxFreqSpinBox->value () - audioFreq) <= 10);
|
|| ("DE" == parts[5] && qAbs (ui->RxFreqSpinBox->value () - audioFreq) <= ftol);
|
||||||
if(m_baseCall==m_config.my_callsign() and m_baseCall!=parts[5]) for_us=false;
|
if(m_baseCall==m_config.my_callsign() and m_baseCall!=parts[5]) for_us=false;
|
||||||
if(m_bCallingCQ && !m_bAutoReply && for_us && ui->cbFirst->isChecked() and
|
if(m_bCallingCQ && !m_bAutoReply && for_us && ui->cbFirst->isChecked() and
|
||||||
SpecOp::FOX > m_config.special_op_id()) {
|
SpecOp::FOX > m_config.special_op_id()) {
|
||||||
@ -3498,8 +3500,6 @@ void MainWindow::readFromStdout() //readFromStdout
|
|||||||
if(SpecOp::FOX==m_config.special_op_id() and for_us and (audioFreq<1000)) bDisplayRight=true;
|
if(SpecOp::FOX==m_config.special_op_id() and for_us and (audioFreq<1000)) bDisplayRight=true;
|
||||||
if(SpecOp::FOX!=m_config.special_op_id() and (for_us or (abs(audioFreq - m_wideGraph->rxFreq()) <= 10))) bDisplayRight=true;
|
if(SpecOp::FOX!=m_config.special_op_id() and (for_us or (abs(audioFreq - m_wideGraph->rxFreq()) <= 10))) bDisplayRight=true;
|
||||||
}
|
}
|
||||||
if((abs(audioFreq - m_wideGraph->rxFreq()) <= ui->sbFtol->value()) and
|
|
||||||
m_mode=="Q65") bDisplayRight=true;
|
|
||||||
} else {
|
} else {
|
||||||
if((abs(audioFreq - m_wideGraph->rxFreq()) <= 10) and
|
if((abs(audioFreq - m_wideGraph->rxFreq()) <= 10) and
|
||||||
!m_config.enable_VHF_features()) bDisplayRight=true;
|
!m_config.enable_VHF_features()) bDisplayRight=true;
|
||||||
|
@ -261,7 +261,7 @@ void CPlotter::draw(float swide[], bool bScroll, bool bRed)
|
|||||||
Font.setWeight(QFont::Bold);
|
Font.setWeight(QFont::Bold);
|
||||||
painter2D.setFont(Font);
|
painter2D.setFont(Font);
|
||||||
int x1=XfromFreq(m_rxFreq);
|
int x1=XfromFreq(m_rxFreq);
|
||||||
y=0.2*m_h2;
|
y=0.25*m_h2;
|
||||||
painter2D.drawText(x1-4,y,"T");
|
painter2D.drawText(x1-4,y,"T");
|
||||||
x1=XfromFreq(m_rxFreq+250);
|
x1=XfromFreq(m_rxFreq+250);
|
||||||
painter2D.drawText(x1-4,y,"M");
|
painter2D.drawText(x1-4,y,"M");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user