mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-22 12:08:43 -04:00
Progress toward full implementation of QRA64 in MAP65.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@7505 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
8475e23906
commit
48505621ae
@ -30,7 +30,7 @@ extern struct { //This is "common/datcom/..." in Fortran
|
||||
int map65RxLog; //Flags to control log files
|
||||
int nfsample; //Input sample rate
|
||||
int nxpol; //1 if using xpol antennas, 0 otherwise
|
||||
int mode65; //JT65 sub-mode: A=1, B=2, C=4
|
||||
int nmode; //nmode = 10*m_modeQRA64 + m_modeJT65
|
||||
int nfast; //1 for sub-modes ABC; 2 for B2, C2
|
||||
int nsave; //Number of s3(64,63) spectra saved
|
||||
char mycall[12];
|
||||
|
@ -48,13 +48,7 @@ void getfile(QString fname, bool xpol, int dbDgrd, int nfast)
|
||||
if(i0<0) i0=fname.indexOf(".iq");
|
||||
datcom_.nutc=0;
|
||||
if(i0>0) {
|
||||
if(fname.mid(i0-5,1)=="_") {
|
||||
datcom_.nutc=10000*fname.mid(i0-4,2).toInt() +
|
||||
100*fname.mid(i0-2,2).toInt();
|
||||
} else {
|
||||
datcom_.nutc=10000*fname.mid(i0-6,2).toInt() +
|
||||
100*fname.mid(i0-4,2).toInt() + fname.mid(i0-2,2).toInt();
|
||||
}
|
||||
datcom_.nutc=100*fname.mid(i0-4,2).toInt() + fname.mid(i0-2,2).toInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ subroutine decode0(dd,ss,savg,nstandalone)
|
||||
character mycall0*12,hiscall0*12,hisgrid0*6
|
||||
common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, &
|
||||
ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, &
|
||||
mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,mode65, &
|
||||
mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, &
|
||||
nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime
|
||||
common/tracer/ limtrace,lu
|
||||
data neme0/-99/,mcall3b/1/
|
||||
@ -54,7 +54,7 @@ subroutine decode0(dd,ss,savg,nstandalone)
|
||||
call map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
|
||||
mousedf,mousefqso,nagain,ndecdone,ndiskdat,nfshift,ndphi, &
|
||||
nfcal,nkeep,mcall3b,nsum,nsave,nxant,rmsdd,mycall,mygrid, &
|
||||
neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,mode65,nfast)
|
||||
neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,nmode,nfast)
|
||||
|
||||
call timer('map65a ',1)
|
||||
call timer('decode0 ',1)
|
||||
|
@ -16,7 +16,7 @@ program m65
|
||||
common/datcom/dd(4,5760000),ss(4,322,NFFT),savg(4,NFFT),fc0,nutc0,junk(36)
|
||||
common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, &
|
||||
ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, &
|
||||
mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,mode65, &
|
||||
mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, &
|
||||
nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime
|
||||
|
||||
nargs=iargc()
|
||||
@ -34,9 +34,11 @@ program m65
|
||||
call ftnquit
|
||||
go to 999
|
||||
endif
|
||||
if(arg(1:1).eq.'A') mode65=1
|
||||
if(arg(1:1).eq.'B') mode65=2
|
||||
if(arg(1:1).eq.'C') mode65=4
|
||||
!### These need fixing:
|
||||
if(arg(1:1).eq.'A') nmode=1
|
||||
if(arg(1:1).eq.'B') nmode=2
|
||||
if(arg(1:1).eq.'C') nmode=3
|
||||
!###
|
||||
nfast=1
|
||||
if(arg(2:2).eq.'2') nfast=2
|
||||
nfsample=96000
|
||||
|
@ -68,7 +68,7 @@ subroutine m65c(dd,ss,savg,nparams0)
|
||||
character*20 datetime
|
||||
common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, &
|
||||
ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, &
|
||||
mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,mode65, &
|
||||
mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, &
|
||||
nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime
|
||||
equivalence (nparams,fcenter)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
|
||||
mousedf,mousefqso,nagain,ndecdone,ndiskdat,nfshift,ndphi, &
|
||||
nfcal,nkeep,mcall3b,nsum,nsave,nxant,rmsdd,mycall,mygrid, &
|
||||
neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,mode65,nfast)
|
||||
neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,nmode,nfast)
|
||||
|
||||
! Processes timf2 data from Linrad to find and decode JT65 signals.
|
||||
|
||||
@ -17,7 +17,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
|
||||
real*8 fcenter
|
||||
character*22 msg(MAXMSG)
|
||||
character*3 shmsg0(4)
|
||||
character mycall*12,hiscall*12,mygrid*6,hisgrid*6,grid*6,cp*1
|
||||
character mycall*12,hiscall*12,mygrid*6,hisgrid*6,grid*6,cp*1,cm*1
|
||||
integer indx(MAXMSG),nsiz(MAXMSG)
|
||||
logical done(MAXMSG)
|
||||
logical xpol,bqra64
|
||||
@ -27,13 +27,16 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
|
||||
common/c3com/ mcall3a
|
||||
common/testcom/ifreq
|
||||
|
||||
data blank/' '/
|
||||
data blank/' '/,cm/'#'/
|
||||
data shmsg0/'ATT','RO ','RRR','73 '/
|
||||
data nfile/0/,nutc0/-999/,nid/0/,ip000/1/,ip001/1/,mousefqso0/-999/
|
||||
save
|
||||
|
||||
bqra64=nfast.ge.100
|
||||
nfast=mod(nfast,100)
|
||||
mode65=mod(nmode,10)
|
||||
if(mode65.eq.3) mode65=4
|
||||
modeqra64=nmode/10
|
||||
|
||||
bqra64=modeqra64.gt.0
|
||||
mcall3a=mcall3b
|
||||
mousefqso0=mousefqso
|
||||
xpol=(nxpol.ne.0)
|
||||
@ -222,7 +225,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
|
||||
if(nqd.eq.2) then
|
||||
call timer('qra64 ',0)
|
||||
call qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall, &
|
||||
hiscall,hisgrid)
|
||||
hiscall,hisgrid,nwrite_qra64)
|
||||
call timer('qra64 ',1)
|
||||
cycle
|
||||
endif
|
||||
@ -323,22 +326,22 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
|
||||
|
||||
if(ndphi.eq.0) then
|
||||
write(*,1010) nkHz,ndf,npol,nutc,dt,nsync2, &
|
||||
decoded,nkv,nqual,ntxpol,cp
|
||||
1010 format('!',i3,i5,i4,i7.6,f5.1,i4,2x,a22,i2,i5,i5,1x,a1)
|
||||
cm,decoded,nkv,nqual,ntxpol,cp
|
||||
1010 format('!',i3,i5,i4,i6.4,1x,f5.1,i4,a1,1x,a22,i2,i5,i5,1x,a1)
|
||||
else
|
||||
if(iloop.ge.1) qphi(iloop)=sig(k,10)
|
||||
write(*,1010) nkHz,ndf,npol,nutc,dt,nsync2, &
|
||||
decoded,nkv,nqual,30*iloop
|
||||
cm,decoded,nkv,nqual,30*iloop
|
||||
write(27,1011) 30*iloop,nkHz,ndf,npol,nutc, &
|
||||
dt,sync2,nkv,nqual,decoded
|
||||
1011 format(i3,i4,i5,i4,i7.6,f5.1,f7.1,i3,i5,2x,a22)
|
||||
dt,sync2,nkv,nqual,cm,decoded
|
||||
1011 format(i3,i4,i5,i4,i6.4,1x,f5.1,f7.1,i3,i5,a1,1x,a22)
|
||||
endif
|
||||
endif
|
||||
enddo
|
||||
|
||||
if(nwrite.eq.0) then
|
||||
if(nwrite.eq.0 .and. nwrite_qra64.eq.0) then
|
||||
write(*,1012) mousefqso,nutc
|
||||
1012 format('!',i3,9x,i7.6,' ')
|
||||
1012 format('!',i3,9x,i6.4,' ')
|
||||
endif
|
||||
|
||||
endif
|
||||
@ -457,14 +460,14 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
|
||||
nsync2,nutc,decoded,cp,cmode
|
||||
write(21,1014) f0,ndf,ndf0,ndf1,ndf2,dt,npol,nsync1, &
|
||||
nsync2,nutc,decoded,cp,cmode
|
||||
1014 format(f8.3,i5,3i3,f5.1,i4,i3,i4,i7.6,2x,a22,2x,a1,3x,a2)
|
||||
1014 format(f8.3,i5,3i3,f5.1,i4,i3,i4,i5.4,4x,a22,2x,a1,3x,a2)
|
||||
|
||||
endif
|
||||
endif
|
||||
j=j+nsiz(n)
|
||||
enddo
|
||||
write(26,1015) nutc
|
||||
1015 format(39x,i6.6)
|
||||
1015 format(38x,i6.4,' ')
|
||||
call flush(21)
|
||||
call flush(26)
|
||||
call display(nkeep,ftol)
|
||||
|
@ -1,5 +1,5 @@
|
||||
subroutine qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall_12,hiscall_12, &
|
||||
hisgrid_6)
|
||||
hisgrid_6,nwrite_qra64)
|
||||
|
||||
parameter (NFFT1=5376000) !56*96000
|
||||
parameter (NFFT2=336000) !56*6000 (downsampled by 1/16)
|
||||
@ -28,7 +28,7 @@ subroutine qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall_12,hiscall_12, &
|
||||
|
||||
! write(67) nutc,cx,cy
|
||||
call qra64c(cx,cy,nutc,nqd,ikhz,mousedf,ntol,xplo,mycall_12, &
|
||||
hiscall_12,hisgrid_6)
|
||||
hiscall_12,hisgrid_6,nwrite_qra64)
|
||||
close(17)
|
||||
|
||||
return
|
||||
|
@ -1,5 +1,5 @@
|
||||
subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12, &
|
||||
hiscall_12,hisgrid_6)
|
||||
hiscall_12,hisgrid_6,nwrite_qra64)
|
||||
|
||||
use packjt
|
||||
parameter (NFFT2=336000) !56*6000 (downsampled by 1/16)
|
||||
@ -13,7 +13,7 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12, &
|
||||
character*12 mycall_12,hiscall_12
|
||||
character*6 mycall,hiscall,hisgrid_6
|
||||
character*4 hisgrid
|
||||
character*1 cp
|
||||
character*1 cp,cmode
|
||||
logical xpol,ltext
|
||||
complex cx(0:NFFT2-1),cy(0:NFFT2-1)
|
||||
complex c00(0:720000) !Complex spectrum of dd()
|
||||
@ -24,7 +24,7 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12, &
|
||||
integer dat4(12) !Decoded message (as 12 integers)
|
||||
integer dat4x(12)
|
||||
integer nap(0:11)
|
||||
data nap/0,2,3,2,3,4,2,3,6,4,6,6/
|
||||
data nap/0,2,3,2,3,4,2,3,6,4,6,6/,cmode/'$'/
|
||||
data nc1z/-1/,nc2z/-1/,ng2z/-1/,maxaptypez/-1/
|
||||
save
|
||||
|
||||
@ -37,6 +37,7 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12, &
|
||||
emedelay=2.5
|
||||
|
||||
irc=-1
|
||||
nwrite_qra64=0
|
||||
decoded=' '
|
||||
nft=99
|
||||
mycall=mycall_12(1:6)
|
||||
@ -160,22 +161,17 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12, &
|
||||
if(nSubmode.eq.4) nsnr=nint(10.0*log10(sy)-24.0) !E
|
||||
endif
|
||||
|
||||
! write(*,1011) nutc/100,nsnr,dtx,nfreq,decoded
|
||||
!1011 format(i4.4,i4,f5.1,i5,1x,2x,1x,a22)
|
||||
|
||||
npol=0
|
||||
cp='H'
|
||||
ntxpol=0
|
||||
if(irc.ge.0) then
|
||||
write(*,1010) ikHz,nfreq,npol,nutc/100,dtx,nsnr,decoded,irc,ntxpol,cp
|
||||
!1010 format('!',i3,i5,i4,i7.6,f5.1,i4,2x,a22,i2,i5,i5,1x,a1)
|
||||
!1010 format(i3,i5,i4,i5.4,f5.1,i5,2x,a22,i2,i5,1x,a1)
|
||||
1010 format('!',i3,i5,i4,i6.4,f5.1,i5,2x,a22,i2,i5,1x,a1)
|
||||
write(*,1010) ikHz,nfreq,npol,nutc,dtx,nsnr,cmode,decoded,irc,ntxpol,cp
|
||||
1010 format('!',i3,i5,i4,i6.4,f5.1,i5,a1,1x,a22,i2,i5,1x,a1)
|
||||
nwrite_qra64=nwrite_qra64+1
|
||||
else
|
||||
write(*,1010) ikHz,nfreq,npol,nutc/100,dtx,nsnr
|
||||
write(*,1010) ikHz,nfreq,npol,nutc,dtx,nsnr,cmode
|
||||
nwrite_qra64=nwrite_qra64+1
|
||||
endif
|
||||
|
||||
! goto 1
|
||||
|
||||
999 return
|
||||
end subroutine qra64c
|
||||
|
117
mainwindow.cpp
117
mainwindow.cpp
@ -61,11 +61,18 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
ui->actionBlue->setActionGroup(paletteGroup);
|
||||
|
||||
QActionGroup* modeGroup = new QActionGroup(this);
|
||||
ui->actionNoJT65->setActionGroup(modeGroup);
|
||||
ui->actionJT65A->setActionGroup(modeGroup);
|
||||
ui->actionJT65B->setActionGroup(modeGroup);
|
||||
ui->actionJT65C->setActionGroup(modeGroup);
|
||||
ui->actionJT65B2->setActionGroup(modeGroup);
|
||||
ui->actionJT65C2->setActionGroup(modeGroup);
|
||||
|
||||
QActionGroup* modeGroup2 = new QActionGroup(this);
|
||||
ui->actionNoQRA64->setActionGroup(modeGroup2);
|
||||
ui->actionQRA64A->setActionGroup(modeGroup2);
|
||||
ui->actionQRA64B->setActionGroup(modeGroup2);
|
||||
ui->actionQRA64C->setActionGroup(modeGroup2);
|
||||
ui->actionQRA64D->setActionGroup(modeGroup2);
|
||||
ui->actionQRA64E->setActionGroup(modeGroup2);
|
||||
|
||||
QActionGroup* saveGroup = new QActionGroup(this);
|
||||
ui->actionSave_all->setActionGroup(saveGroup);
|
||||
@ -152,7 +159,8 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
m_colors="000066ff0000ffff00969696646464";
|
||||
m_nfast=1;
|
||||
m_nsave=0;
|
||||
m_bQRA64=false;
|
||||
m_modeJT65=0;
|
||||
m_modeQRA64=0;
|
||||
bTune=false;
|
||||
txPower=100;
|
||||
iqAmp=0;
|
||||
@ -219,9 +227,6 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
if(m_mode=="JT65A") on_actionJT65A_triggered();
|
||||
if(m_mode=="JT65B") on_actionJT65B_triggered();
|
||||
if(m_mode=="JT65C") on_actionJT65C_triggered();
|
||||
if(m_mode=="JT65B2") on_actionJT65B2_triggered();
|
||||
if(m_mode=="JT65C2") on_actionJT65C2_triggered();
|
||||
|
||||
future1 = new QFuture<void>;
|
||||
watcher1 = new QFutureWatcher<void>;
|
||||
connect(watcher1, SIGNAL(finished()),this,SLOT(diskDat()));
|
||||
@ -367,12 +372,13 @@ void MainWindow::writeSettings()
|
||||
settings.setValue("PaletteAFMHot",ui->actionAFMHot->isChecked());
|
||||
settings.setValue("PaletteBlue",ui->actionBlue->isChecked());
|
||||
settings.setValue("Mode",m_mode);
|
||||
settings.setValue("nModeJT65",m_modeJT65);
|
||||
settings.setValue("nModeQRA64",m_modeQRA64);
|
||||
settings.setValue("SaveNone",ui->actionNone->isChecked());
|
||||
settings.setValue("SaveAll",ui->actionSave_all->isChecked());
|
||||
settings.setValue("NDepth",m_ndepth);
|
||||
settings.setValue("NEME",m_onlyEME);
|
||||
settings.setValue("KB8RQ",m_kb8rq);
|
||||
settings.setValue("DecodeQRA64",m_bQRA64);
|
||||
settings.setValue("NB",m_NB);
|
||||
settings.setValue("NBslider",m_NBslider);
|
||||
settings.setValue("GainX",(double)m_gainx);
|
||||
@ -451,11 +457,16 @@ void MainWindow::readSettings()
|
||||
"PaletteCuteSDR",true).toBool());
|
||||
ui->actionLinrad->setChecked(settings.value(
|
||||
"PaletteLinrad",false).toBool());
|
||||
ui->actionAFMHot->setChecked(settings.value(
|
||||
"PaletteAFMHot",false).toBool());
|
||||
ui->actionBlue->setChecked(settings.value(
|
||||
"PaletteBlue",false).toBool());
|
||||
m_mode=settings.value("Mode","JT65B").toString();
|
||||
m_modeJT65=settings.value("nModeJT65",2).toInt();
|
||||
m_modeQRA64=settings.value("nModeQRA64",2).toInt();
|
||||
if(m_modeQRA64==0) ui->actionNoQRA64->setChecked(true);
|
||||
if(m_modeQRA64==1) ui->actionQRA64A->setChecked(true);
|
||||
if(m_modeQRA64==2) ui->actionQRA64B->setChecked(true);
|
||||
if(m_modeQRA64==3) ui->actionQRA64C->setChecked(true);
|
||||
if(m_modeQRA64==4) ui->actionQRA64D->setChecked(true);
|
||||
if(m_modeQRA64==5) ui->actionQRA64E->setChecked(true);
|
||||
|
||||
ui->actionNone->setChecked(settings.value("SaveNone",true).toBool());
|
||||
ui->actionSave_all->setChecked(settings.value("SaveAll",false).toBool());
|
||||
m_saveAll=ui->actionSave_all->isChecked();
|
||||
@ -464,8 +475,6 @@ void MainWindow::readSettings()
|
||||
ui->actionOnly_EME_calls->setChecked(m_onlyEME);
|
||||
m_kb8rq=settings.value("KB8RQ",false).toBool();
|
||||
ui->actionF4_sets_Tx6->setChecked(m_kb8rq);
|
||||
m_bQRA64=settings.value("DecodeQRA64",false).toBool();
|
||||
ui->actionDecode_QRA64_near_QSO_frequency->setChecked(m_bQRA64);
|
||||
m_NB=settings.value("NB",false).toBool();
|
||||
ui->NBcheckBox->setChecked(m_NB);
|
||||
m_NBslider=settings.value("NBslider",40).toInt();
|
||||
@ -591,13 +600,6 @@ void MainWindow::dataSink(int k)
|
||||
if(m_saveAll and !m_diskData) {
|
||||
QString fname=m_saveDir + "/" + t.date().toString("yyMMdd") + "_" +
|
||||
t.time().toString("hhmm");
|
||||
if(m_nfast==2) {
|
||||
if(t.time().second() < 30) {
|
||||
fname += "00";
|
||||
} else {
|
||||
fname += "30";
|
||||
}
|
||||
}
|
||||
if(m_xpol) fname += ".tf2";
|
||||
if(!m_xpol) fname += ".iq";
|
||||
*future2 = QtConcurrent::run(savetf2, fname, m_xpol, m_nfast);
|
||||
@ -1034,14 +1036,11 @@ void MainWindow::on_actionOpen_next_in_directory_triggered() //Open Next
|
||||
QStringList list;
|
||||
if(m_xpol) {
|
||||
list= fi.dir().entryList().filter(".tf2");
|
||||
// len=15;
|
||||
} else {
|
||||
list= fi.dir().entryList().filter(".iq");
|
||||
// len=14;
|
||||
}
|
||||
for (i = 0; i < list.size()-1; ++i) {
|
||||
if(i==list.size()-2) m_loopall=false;
|
||||
// qDebug() << len << i << list.at(i) << list.at(i).length();
|
||||
len=list.at(i).length();
|
||||
if(list.at(i)==m_path.right(len)) {
|
||||
int n=m_path.length();
|
||||
@ -1222,9 +1221,7 @@ void MainWindow::decode() //decode()
|
||||
int imin=ms/60000;
|
||||
int ihr=imin/60;
|
||||
imin=imin % 60;
|
||||
int isec=(ms/1000) % 60;
|
||||
datcom_.nutc=100*(100*ihr + imin);
|
||||
if((m_mode=="JT65B2" or m_mode=="JT65C2") and isec>30) datcom_.nutc += 30;
|
||||
datcom_.nutc=100*ihr + imin;
|
||||
}
|
||||
|
||||
datcom_.idphi=m_dPhi;
|
||||
@ -1260,9 +1257,8 @@ void MainWindow::decode() //decode()
|
||||
if(!m_fs96000) datcom_.nfsample=95238;
|
||||
datcom_.nxpol=0;
|
||||
if(m_xpol) datcom_.nxpol=1;
|
||||
datcom_.mode65=m_mode65;
|
||||
datcom_.nmode=10*m_modeQRA64 + m_modeJT65;
|
||||
datcom_.nfast=m_nfast;
|
||||
if(m_bQRA64) datcom_.nfast += 100;
|
||||
datcom_.nsave=m_nsave;
|
||||
|
||||
QString mcall=(m_myCall+" ").mid(0,12);
|
||||
@ -1330,7 +1326,7 @@ void MainWindow::readFromStdout() //readFromStdout
|
||||
QString t2;
|
||||
t2.sprintf("Avg: %d",m_nsum);
|
||||
lab6->setText(t2);
|
||||
if(m_bQRA64) g_pWideGraph->setDecodeFinished();
|
||||
if(m_modeQRA64>0) g_pWideGraph->setDecodeFinished();
|
||||
}
|
||||
if(t.indexOf("<DecodeFinished>") >= 0) {
|
||||
if(m_widebandDecode) {
|
||||
@ -1543,7 +1539,6 @@ void MainWindow::guiUpdate()
|
||||
}
|
||||
|
||||
if(nsec != m_sec0) { //Once per second
|
||||
// qDebug() << txPower << iqAmp << iqPhase;
|
||||
// qDebug() << "B" << bTune << bTxTime << btxok;
|
||||
soundInThread.setForceCenterFreqMHz(g_pWideGraph->m_dForceCenterFreq);
|
||||
soundInThread.setForceCenterFreqBool(g_pWideGraph->m_bForceCenterFreq);
|
||||
@ -2048,9 +2043,14 @@ void MainWindow::on_actionErase_map65_tx_log_triggered() //Erase Tx log
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionNoJT65_triggered()
|
||||
{
|
||||
m_modeJT65=0;
|
||||
}
|
||||
void MainWindow::on_actionJT65A_triggered()
|
||||
{
|
||||
m_mode="JT65A";
|
||||
m_modeJT65=1;
|
||||
m_mode65=1;
|
||||
m_nfast=1;
|
||||
m_TRperiod=60;
|
||||
@ -2066,6 +2066,7 @@ void MainWindow::on_actionJT65A_triggered()
|
||||
void MainWindow::on_actionJT65B_triggered()
|
||||
{
|
||||
m_mode="JT65B";
|
||||
m_modeJT65=2;
|
||||
m_mode65=2;
|
||||
m_nfast=1;
|
||||
m_TRperiod=60;
|
||||
@ -2081,6 +2082,7 @@ void MainWindow::on_actionJT65B_triggered()
|
||||
void MainWindow::on_actionJT65C_triggered()
|
||||
{
|
||||
m_mode="JT65C";
|
||||
m_modeJT65=3;
|
||||
m_mode65=4;
|
||||
m_nfast=1;
|
||||
m_TRperiod=60;
|
||||
@ -2093,36 +2095,38 @@ void MainWindow::on_actionJT65C_triggered()
|
||||
ui->actionJT65C->setChecked(true);
|
||||
}
|
||||
|
||||
void MainWindow::on_actionJT65B2_triggered()
|
||||
void MainWindow::on_actionNoQRA64_triggered()
|
||||
{
|
||||
m_mode="JT65B2";
|
||||
m_mode65=2;
|
||||
m_nfast=2;
|
||||
m_TRperiod=30;
|
||||
soundInThread.setPeriod(m_TRperiod);
|
||||
soundOutThread.setPeriod(m_TRperiod);
|
||||
g_pWideGraph->setMode65(m_mode65);
|
||||
g_pWideGraph->setPeriod(m_TRperiod);
|
||||
lab5->setStyleSheet("QLabel{background-color: #7fff00}");
|
||||
lab5->setText(m_mode);
|
||||
ui->actionJT65B2->setChecked(true);
|
||||
m_modeQRA64=0;
|
||||
}
|
||||
|
||||
void MainWindow::on_actionJT65C2_triggered()
|
||||
void MainWindow::on_actionQRA64A_triggered()
|
||||
{
|
||||
m_mode="JT65C2";
|
||||
m_mode65=4;
|
||||
m_nfast=2;
|
||||
m_TRperiod=30;
|
||||
soundInThread.setPeriod(m_TRperiod);
|
||||
soundOutThread.setPeriod(m_TRperiod);
|
||||
g_pWideGraph->setMode65(m_mode65);
|
||||
g_pWideGraph->setPeriod(m_TRperiod);
|
||||
lab5->setStyleSheet("QLabel{background-color: #97ffff}");
|
||||
lab5->setText(m_mode);
|
||||
ui->actionJT65C2->setChecked(true);
|
||||
m_modeQRA64=1;
|
||||
}
|
||||
|
||||
void MainWindow::on_actionQRA64B_triggered()
|
||||
{
|
||||
m_modeQRA64=2;
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_actionQRA64C_triggered()
|
||||
{
|
||||
m_modeQRA64=3;
|
||||
}
|
||||
|
||||
void MainWindow::on_actionQRA64D_triggered()
|
||||
{
|
||||
m_modeQRA64=4;
|
||||
}
|
||||
|
||||
void MainWindow::on_actionQRA64E_triggered()
|
||||
{
|
||||
m_modeQRA64=5;
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_NBcheckBox_toggled(bool checked)
|
||||
{
|
||||
m_NB=checked;
|
||||
@ -2165,8 +2169,3 @@ void MainWindow::on_actionTx_Tune_triggered()
|
||||
g_pTxTune->set_txPower(txPower);
|
||||
g_pTxTune->show();
|
||||
}
|
||||
|
||||
void MainWindow::on_actionDecode_QRA64_near_QSO_frequency_triggered(bool b)
|
||||
{
|
||||
m_bQRA64=b;
|
||||
}
|
||||
|
13
mainwindow.h
13
mainwindow.h
@ -124,11 +124,15 @@ private slots:
|
||||
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();
|
||||
void on_actionDecode_QRA64_near_QSO_frequency_triggered(bool b);
|
||||
void on_actionQRA64A_triggered();
|
||||
void on_actionQRA64B_triggered();
|
||||
void on_actionNoJT65_triggered();
|
||||
void on_actionNoQRA64_triggered();
|
||||
void on_actionQRA64C_triggered();
|
||||
void on_actionQRA64D_triggered();
|
||||
void on_actionQRA64E_triggered();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
@ -166,6 +170,8 @@ private:
|
||||
qint32 m_nsum;
|
||||
qint32 m_nsave;
|
||||
qint32 m_TRperiod;
|
||||
qint32 m_modeJT65;
|
||||
qint32 m_modeQRA64;
|
||||
|
||||
double m_fAdd;
|
||||
// double m_IQamp;
|
||||
@ -197,7 +203,6 @@ private:
|
||||
bool m_10db;
|
||||
bool m_initIQplus;
|
||||
bool m_bIQxt;
|
||||
bool m_bQRA64;
|
||||
|
||||
float m_gainx;
|
||||
float m_gainy;
|
||||
|
@ -59,7 +59,7 @@
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string> Freq DF Pol UTC DT dB KV DS TxPol</string>
|
||||
<string> Freq DF Pol UTC DT dB</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_9">
|
||||
<item>
|
||||
@ -1164,11 +1164,17 @@ p, li { white-space: pre-wrap; }
|
||||
<property name="title">
|
||||
<string>Mode</string>
|
||||
</property>
|
||||
<addaction name="actionNoJT65"/>
|
||||
<addaction name="actionJT65A"/>
|
||||
<addaction name="actionJT65B"/>
|
||||
<addaction name="actionJT65C"/>
|
||||
<addaction name="actionJT65B2"/>
|
||||
<addaction name="actionJT65C2"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionNoQRA64"/>
|
||||
<addaction name="actionQRA64A"/>
|
||||
<addaction name="actionQRA64B"/>
|
||||
<addaction name="actionQRA64C"/>
|
||||
<addaction name="actionQRA64D"/>
|
||||
<addaction name="actionQRA64E"/>
|
||||
</widget>
|
||||
<addaction name="menuFile"/>
|
||||
<addaction name="menuSetup"/>
|
||||
@ -1512,22 +1518,6 @@ p, li { white-space: pre-wrap; }
|
||||
<string>FUNcube Dongle Settings</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionJT65B2">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>JT65B2</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionJT65C2">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>JT65C2</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionEdit_wsjt_log">
|
||||
<property name="text">
|
||||
<string>Edit wsjt.log</string>
|
||||
@ -1552,6 +1542,65 @@ p, li { white-space: pre-wrap; }
|
||||
<string>Decode QRA64 near QSO frequency</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionQRA64A">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>QRA64A</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionQRA64B">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>QRA64B</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionNoJT65">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>No JT65</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionNoQRA64">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>No QRA64</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionQRA64C">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>QRA64C</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionQRA64D">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>QRA64D</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionQRA64E">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>QRA64E</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<customwidgets>
|
||||
|
Loading…
Reference in New Issue
Block a user