diff --git a/WSJT-X_Users_Guide_v1.2.docx b/WSJT-X_Users_Guide_v1.2.docx index 79adb9cae..1af1624b9 100644 Binary files a/WSJT-X_Users_Guide_v1.2.docx and b/WSJT-X_Users_Guide_v1.2.docx differ diff --git a/commons.h b/commons.h index 37447fb58..4b875c210 100644 --- a/commons.h +++ b/commons.h @@ -16,6 +16,7 @@ extern struct FortranCommon { int newdat; //1 ==> new data, must do long FFT int npts8; //npts for c0() array int nfa; //Low decode limit (Hz) + int nfSplit; //JT65 | JT9 split frequency int nfb; //High decode limit (Hz) int ntol; //+/- decoding range around fQSO (Hz) int kin; diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 83e63a204..0250eda63 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -14,8 +14,8 @@ subroutine decoder(ss,id2) integer*2 id2(NTMAX*12000) real*4 dd(NTMAX*12000) integer*1 i1SoftSymbols(207) - common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfb,ntol, & - kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime + common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, & + ntol,kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime common/tracer/limtrace,lu save @@ -33,7 +33,10 @@ subroutine decoder(ss,id2) done65=.false. if(nmode.ge.65 .and. ntxmode.eq.65) then if(newdat.ne.0) dd(1:npts65)=id2(1:npts65) - call jt65a(dd,npts65,newdat,nutc,nfa,nfqso,ntol65,nagain,ndecoded) + nf1=nfa + nf2=nfb + if(nmode.eq.65+9) nf2=nfsplit + call jt65a(dd,npts65,newdat,nutc,nf1,nf2,nfqso,ntol65,nagain,ndecoded) done65=.true. endif @@ -50,7 +53,9 @@ subroutine decoder(ss,id2) done=.false. nf0=0 - ia=max(1,nint((nfa-nf0)/df3)) + nf1=nfa + if(nmode.eq.65+9) nf1=nfsplit + ia=max(1,nint((nf1-nf0)/df3)) ib=min(NSMAX,nint((nfb-nf0)/df3)) lag1=-(2.5/tstep + 0.9999) lag2=5.0/tstep + 0.9999 @@ -89,7 +94,7 @@ subroutine decoder(ss,id2) ia1=ia ib1=ib else - nfa1=nfa + nfa1=nf1 nfb1=nfb ia=max(1,nint((nfa1-nf0)/df3)) ib=min(NSMAX,nint((nfb1-nf0)/df3)) @@ -159,7 +164,7 @@ subroutine decoder(ss,id2) if(nmode.ge.65 .and. (.not.done65)) then if(newdat.ne.0) dd(1:npts65)=id2(1:npts65) - call jt65a(dd,npts65,newdat,nutc,nfa,nfqso,ntol65,nagain,ndecoded) + call jt65a(dd,npts65,newdat,nutc,nf1,nf2,nfqso,ntol65,nagain,ndecoded) endif !### JT65 is not yet producing info for nsynced, ndecoded. diff --git a/lib/fillcom.f90 b/lib/fillcom.f90 index 03fbb2c12..4f9ab55f4 100644 --- a/lib/fillcom.f90 +++ b/lib/fillcom.f90 @@ -1,7 +1,7 @@ subroutine fillcom(nutc0,ndepth0,nrxfreq) character*20 datetime - common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfb,ntol, & - kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime + common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, & + ntol,kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime save nutc=nutc0 @@ -10,7 +10,8 @@ subroutine fillcom(nutc0,ndepth0,nrxfreq) nfqso=nrxfreq newdat=1 npts8=74736 - nfa=2700 + nfa=200 + nfsplit=2700 nfb=4007 ntol=3 kin=1024 diff --git a/lib/jt65a.f90 b/lib/jt65a.f90 index 0c061eda7..47dad71c2 100644 --- a/lib/jt65a.f90 +++ b/lib/jt65a.f90 @@ -1,4 +1,4 @@ -subroutine jt65a(dd,npts,newdat,nutc,nfa,nfqso,ntol,nagain,ndecoded) +subroutine jt65a(dd,npts,newdat,nutc,nf1,nf2,nfqso,ntol,nagain,ndecoded) ! Process dd() data to find and decode JT65 signals. @@ -30,8 +30,8 @@ subroutine jt65a(dd,npts,newdat,nutc,nfa,nfqso,ntol,nagain,ndecoded) fa=nfqso - ntol fb=nfqso + ntol else !Wideband decode at all freqs - fa=200 - fb=nfa + fa=nf1 + fb=nf2 endif ia=max(51,nint(fa/df)) ib=min(NSZ-51,nint(fb/df)) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 1a7675d2a..ff5307ef4 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -8,8 +8,8 @@ program jt9 real*4 s(NSMAX) integer*2 id2 character*80 arg,infile - common/jt9com/ss(184,NSMAX),savg(NSMAX),id2(NMAX),nutc,ndiskdat, & - ntr,mousefqso,newdat,nfa,nfb,ntol,kin,nzhsym,nsynced,ndecoded + common/jt9com/ss(184,NSMAX),savg(NSMAX),id2(NMAX),nutc,ndiskdat,ntr, & + mousefqso,newdat,nfa,nfsplit,nfb,ntol,kin,nzhsym,nsynced,ndecoded common/tracer/limtrace,lu nargs=iargc() diff --git a/lib/jt9c.f90 b/lib/jt9c.f90 index 57b3cb25a..0fa3e76a6 100644 --- a/lib/jt9c.f90 +++ b/lib/jt9c.f90 @@ -4,10 +4,10 @@ subroutine jt9c(ss,savg,id2,nparams0) real*4 ss(184*NSMAX),savg(NSMAX) integer*2 id2(NTMAX*12000) - integer nparams0(21),nparams(21) + integer nparams0(22),nparams(22) character*20 datetime - common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfb,ntol, & - kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime + common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, & + ntol,kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime equivalence (nparams,nutc) nutc=id2(1)+int(savg(1)) !Silence compiler warning diff --git a/mainwindow.cpp b/mainwindow.cpp index 70c05679a..e5f2bbdbe 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -390,7 +390,6 @@ MainWindow::MainWindow(QSharedMemory *shdmem, QString *thekey, \ //--------------------------------------------------- MainWindow destructor MainWindow::~MainWindow() { - writeSettings(); if(!m_decoderBusy) { QFile lockFile(m_appDir + "/.lock"); lockFile.remove(); @@ -1057,6 +1056,7 @@ void MainWindow::OnExit() { m_guiTimer.stop (); g_pWideGraph->saveSettings(); + writeSettings(); if(m_fname != "") killFile(); m_killAll=true; mem_jt9->detach(); @@ -1320,14 +1320,11 @@ void MainWindow::decode() //decode() jt9com_.ndepth=m_ndepth; jt9com_.ndiskdat=0; if(m_diskData) jt9com_.ndiskdat=1; - int nfa=g_pWideGraph->getFmin(); - int nfb=g_pWideGraph->getFmax(); - if(m_mode=="JT9") nfa=200; //decode from 0 to fmax - if(m_mode=="JT65") nfa=nfb; //decode from 0 to fmax - jt9com_.nfa=nfa; - jt9com_.nfb=nfb; + jt9com_.nfa=g_pWideGraph->nStartFreq(); + jt9com_.nfSplit=g_pWideGraph->getFmin(); + jt9com_.nfb=g_pWideGraph->getFmax(); jt9com_.ntol=20; - if(jt9com_.nutc < m_nutc0) m_RxLog |= 1; //Date and Time to all.txt + if(jt9com_.nutc < m_nutc0) m_RxLog |= 1; //Date and Time to all.txt m_nutc0=jt9com_.nutc; jt9com_.ntxmode=9; if(m_modeTx=="JT65") jt9com_.ntxmode=65; diff --git a/mainwindow.ui b/mainwindow.ui index b854d4ab6..769b730e9 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -461,7 +461,7 @@ p, li { white-space: pre-wrap; } - Decode most recent Rx period at QSO Frequency (use shift for all freqs) + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> &Decode @@ -515,7 +515,7 @@ p, li { white-space: pre-wrap; } - Assert PTT and emit a pure tone + <html><head/><body><p>Transmit a pure tone</p></body></html> &Tune @@ -584,6 +584,9 @@ p, li { white-space: pre-wrap; } + + <html><head/><body><p>Tx frequency tracks Rx frequency</p></body></html> + Lock Tx=Rx @@ -647,6 +650,9 @@ p, li { white-space: pre-wrap; } 20 + + Audio Rx frequency + Hz @@ -1127,7 +1133,7 @@ p, li { white-space: pre-wrap; } - Signal report (dB0 + <html><head/><body><p>Signal report (dB)</p></body></html> -50 @@ -2061,6 +2067,9 @@ p, li { white-space: pre-wrap; } false + + Toggle Tx mode + Tx JT9 @@ -2084,6 +2093,9 @@ p, li { white-space: pre-wrap; } + + Add 2 kHz to requested dial frequency + +2 kHz @@ -2098,7 +2110,7 @@ p, li { white-space: pre-wrap; } - If orange, click to read dial frequency once + <html><head/><body><p>If orange, click to read dial frequency</p></body></html> diff --git a/widegraph.ui b/widegraph.ui index e8c2128d5..5c8363990 100644 --- a/widegraph.ui +++ b/widegraph.ui @@ -77,7 +77,7 @@ - Constant offset applied to waterfall data + <html><head/><body><p>Constant offset applied to spectra</p></body></html> @@ -108,7 +108,7 @@ - Scaling (dB) applied to spectra before plotting + <html><head/><body><p>Gain (dB) applied to spectra before display</p></body></html> Gain @@ -161,6 +161,9 @@ 0 + + Frequency (Hz) at left edge of waterfall + Hz @@ -282,6 +285,9 @@ 0 + + Correction applied to flatted displayed spectra + Slope @@ -336,7 +342,7 @@ - Select data for display curve + <html><head/><body><p>Select data for spectral display</p></body></html> 1 diff --git a/wsjtx.iss b/wsjtx.iss index 8dcc1be64..a27fe4ed1 100644 --- a/wsjtx.iss +++ b/wsjtx.iss @@ -1,9 +1,9 @@ [Setup] AppName=wsjtx -AppVerName=wsjtx Version 1.1.1 r3520 +AppVerName=wsjtx Version 1.2 r3537 AppCopyright=Copyright (C) 2001-2013 by Joe Taylor, K1JT -DefaultDirName=c:\wsjtx2 -DefaultGroupName=wsjtx2 +DefaultDirName=c:\wsjtx1.2 +DefaultGroupName=wsjtx1.2 [Files] Source: "c:\Users\joe\wsjt\wsjtx_install\*.exe"; DestDir: "{app}" @@ -14,12 +14,13 @@ Source: "c:\Users\joe\wsjt\wsjtx_install\qt.conf"; DestDir Source: "c:\Users\joe\wsjt\wsjtx_install\CALL3.TXT"; DestDir: "{app}"; Flags: onlyifdoesntexist Source: "c:\Users\joe\wsjt\wsjtx\shortcuts.txt"; DestDir: "{app}" Source: "c:\Users\joe\wsjt\wsjtx\mouse_commands.txt"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx\WSJT-X_Users_Guide_v1.1.1.pdf"; DestDir: "{app}" +Source: "c:\Users\joe\wsjt\wsjtx\WSJT-X_Users_Guide_v1.2.pdf"; DestDir: "{app}" Source: "c:\Users\joe\wsjt\wsjtx_install\save\Samples\130418_1742.wav"; DestDir: "{app}\save\Samples"; Source: "c:\Users\joe\wsjt\wsjtx_install\save\Samples\130610_2343.wav"; DestDir: "{app}\save\Samples"; Source: "c:\Users\joe\wsjt\wsjtx_install\platforms\qwindows.dll"; DestDir: "{app}\platforms"; +Source: "c:\Users\joe\wsjt\wsjtx_install\Palettes\*.pal"; DestDir: "{app}\Palettes"; [Icons] -Name: "{group}\wsjtx2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico -Name: "{userdesktop}\wsjtx2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico +Name: "{group}\wsjtx1.2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico +Name: "{userdesktop}\wsjtx1.2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico diff --git a/wsjtx_update.iss b/wsjtx_update.iss new file mode 100644 index 000000000..da3bec248 --- /dev/null +++ b/wsjtx_update.iss @@ -0,0 +1,18 @@ +[Setup] +AppName=wsjtx +AppVerName=wsjtx Version 1.2 r3537 +AppCopyright=Copyright (C) 2001-2013 by Joe Taylor, K1JT +DefaultDirName=c:\wsjtx1.2 +DefaultGroupName=wsjtx1.2 + +[Files] +Source: "c:\Users\joe\wsjt\wsjtx_install\wsjtx.exe"; DestDir: "{app}" +Source: "c:\Users\joe\wsjt\wsjtx_install\jt9.exe"; DestDir: "{app}" +Source: "c:\Users\joe\wsjt\wsjtx\shortcuts.txt"; DestDir: "{app}" +Source: "c:\Users\joe\wsjt\wsjtx\mouse_commands.txt"; DestDir: "{app}" +Source: "c:\Users\joe\wsjt\wsjtx\WSJT-X_Users_Guide_v1.2.pdf"; DestDir: "{app}" + +[Icons] +Name: "{group}\wsjtx1.2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico +Name: "{userdesktop}\wsjtx1.2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico +