mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-29 12:52:28 -04:00
Fix some potential bounds errors in setting frequency limits. Implement submodes QRA65B-E on the Tx side.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6942 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
6a8ed228e2
commit
d1e23bdac8
@ -37,8 +37,8 @@ subroutine qra64a(dd0,nutc,nf1,nf2,nfqso,ntol,mycall_12,hiscall_12, &
|
|||||||
call spec64(dd0,-1,s,savg,ss)
|
call spec64(dd0,-1,s,savg,ss)
|
||||||
fa=max(nf1,nfqso-ntol)
|
fa=max(nf1,nfqso-ntol)
|
||||||
fb=min(nf2,nfqso+ntol)
|
fb=min(nf2,nfqso+ntol)
|
||||||
ia=nint(fa/df)
|
ia=max(1,nint(fa/df))
|
||||||
ib=nint(fb/df)
|
ib=min(NZ,nint(fb/df))
|
||||||
call pctile(savg(ia),ib-ia+1,45,base)
|
call pctile(savg(ia),ib-ia+1,45,base)
|
||||||
savg=savg/base - 1.0
|
savg=savg/base - 1.0
|
||||||
ss=ss/base
|
ss=ss/base
|
||||||
@ -105,7 +105,7 @@ subroutine qra64a(dd0,nutc,nf1,nf2,nfqso,ntol,mycall_12,hiscall_12, &
|
|||||||
! write(*,5001) dtx,nint(f0),0,snr1
|
! write(*,5001) dtx,nint(f0),0,snr1
|
||||||
!5001 format(f6.3,2i6,f7.1)
|
!5001 format(f6.3,2i6,f7.1)
|
||||||
maxf1=10
|
maxf1=10
|
||||||
call sync64(dd0,nf1,nf2,maxf1,dtx,f0,kpk,snr,s3a)
|
call sync64(dd0,nf1,nf2,nfqso,ntol,maxf1,dtx,f0,kpk,snr,s3a)
|
||||||
! write(*,5001) dtx,nint(f0),kpk,snr
|
! write(*,5001) dtx,nint(f0),kpk,snr
|
||||||
|
|
||||||
mycall=mycall_12(1:6) !### May need fixing ###
|
mycall=mycall_12(1:6) !### May need fixing ###
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine sync64(dd,nf1,nf2,maxf1,dtx,f0,kpk,snrdb,s3a)
|
subroutine sync64(dd,nf1,nf2,nfqso,ntol,maxf1,dtx,f0,kpk,snrdb,s3a)
|
||||||
|
|
||||||
parameter (NMAX=60*12000) !Max size of raw data at 12000 Hz
|
parameter (NMAX=60*12000) !Max size of raw data at 12000 Hz
|
||||||
parameter (NSPS=2304) !Samples per symbol at 4000 Hz
|
parameter (NSPS=2304) !Samples per symbol at 4000 Hz
|
||||||
@ -53,8 +53,10 @@ subroutine sync64(dd,nf1,nf2,maxf1,dtx,f0,kpk,snrdb,s3a)
|
|||||||
nfft3=NSPC
|
nfft3=NSPC
|
||||||
nh3=nfft3/2
|
nh3=nfft3/2
|
||||||
df3=4000.0/nfft3
|
df3=4000.0/nfft3
|
||||||
ia=nint(nf1/df3)
|
fa=max(nf1,nfqso-ntol)
|
||||||
ib=nint(nf2/df3)
|
fb=min(nf2,nfqso+ntol)
|
||||||
|
ia=max(maxf1,nint(fa/df3))
|
||||||
|
ib=min(NSPC-1-maxf1,nint(fb/df3))
|
||||||
iz=ib-ia+1
|
iz=ib-ia+1
|
||||||
snr=0.
|
snr=0.
|
||||||
jpk=0
|
jpk=0
|
||||||
|
@ -3984,7 +3984,9 @@ void MainWindow::on_actionMSK144_triggered()
|
|||||||
|
|
||||||
void MainWindow::on_actionQRA64_triggered()
|
void MainWindow::on_actionQRA64_triggered()
|
||||||
{
|
{
|
||||||
|
int n=m_nSubMode;
|
||||||
on_actionJT65_triggered();
|
on_actionJT65_triggered();
|
||||||
|
m_nSubMode=n;
|
||||||
m_mode="QRA64";
|
m_mode="QRA64";
|
||||||
m_modeTx="QRA64";
|
m_modeTx="QRA64";
|
||||||
ui->actionQRA64->setChecked(true);
|
ui->actionQRA64->setChecked(true);
|
||||||
@ -3993,9 +3995,15 @@ void MainWindow::on_actionQRA64_triggered()
|
|||||||
setup_status_bar (m_config.enable_VHF_features ());
|
setup_status_bar (m_config.enable_VHF_features ());
|
||||||
m_wideGraph->setMode(m_mode);
|
m_wideGraph->setMode(m_mode);
|
||||||
m_wideGraph->setModeTx(m_modeTx);
|
m_wideGraph->setModeTx(m_modeTx);
|
||||||
|
ui->sbSubmode->setMaximum(4);
|
||||||
|
if(m_config.enable_VHF_features()) {
|
||||||
|
ui->sbSubmode->setValue(m_nSubMode);
|
||||||
|
} else {
|
||||||
|
ui->sbSubmode->setValue(0);
|
||||||
|
ui->sbTR->setValue(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void MainWindow::on_actionJT65_triggered()
|
void MainWindow::on_actionJT65_triggered()
|
||||||
{
|
{
|
||||||
if(m_mode=="JT4" or m_mode.startsWith ("WSPR")) {
|
if(m_mode=="JT4" or m_mode.startsWith ("WSPR")) {
|
||||||
@ -4865,6 +4873,8 @@ void MainWindow::transmit (double snr)
|
|||||||
if(m_nSubMode==0) toneSpacing=12000.0/6912.0;
|
if(m_nSubMode==0) toneSpacing=12000.0/6912.0;
|
||||||
if(m_nSubMode==1) toneSpacing=2*12000.0/6912.0;
|
if(m_nSubMode==1) toneSpacing=2*12000.0/6912.0;
|
||||||
if(m_nSubMode==2) toneSpacing=4*12000.0/6912.0;
|
if(m_nSubMode==2) toneSpacing=4*12000.0/6912.0;
|
||||||
|
if(m_nSubMode==3) toneSpacing=8*12000.0/6912.0;
|
||||||
|
if(m_nSubMode==4) toneSpacing=16*12000.0/6912.0;
|
||||||
Q_EMIT sendMessage (NUM_QRA64_SYMBOLS,
|
Q_EMIT sendMessage (NUM_QRA64_SYMBOLS,
|
||||||
6912.0, ui->TxFreqSpinBox->value () - m_XIT,
|
6912.0, ui->TxFreqSpinBox->value () - m_XIT,
|
||||||
toneSpacing, m_soundOutput, m_config.audio_output_channel (),
|
toneSpacing, m_soundOutput, m_config.audio_output_channel (),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user