1. Correct bug that prevented save/restore of Wide Graph geometry.

2. Fix jt9 so that decoding starts at fStart (which now may be non-zero).
3. Improved or new Tool Tips for some GUI controls.
4. Updates to User's Guide.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3540 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2013-08-09 17:22:08 +00:00
parent 84a8696f22
commit a8acd97f42
12 changed files with 79 additions and 38 deletions

Binary file not shown.

View File

@ -16,6 +16,7 @@ extern struct FortranCommon {
int newdat; //1 ==> new data, must do long FFT int newdat; //1 ==> new data, must do long FFT
int npts8; //npts for c0() array int npts8; //npts for c0() array
int nfa; //Low decode limit (Hz) int nfa; //Low decode limit (Hz)
int nfSplit; //JT65 | JT9 split frequency
int nfb; //High decode limit (Hz) int nfb; //High decode limit (Hz)
int ntol; //+/- decoding range around fQSO (Hz) int ntol; //+/- decoding range around fQSO (Hz)
int kin; int kin;

View File

@ -14,8 +14,8 @@ subroutine decoder(ss,id2)
integer*2 id2(NTMAX*12000) integer*2 id2(NTMAX*12000)
real*4 dd(NTMAX*12000) real*4 dd(NTMAX*12000)
integer*1 i1SoftSymbols(207) integer*1 i1SoftSymbols(207)
common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfb,ntol, & common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, &
kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime ntol,kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime
common/tracer/limtrace,lu common/tracer/limtrace,lu
save save
@ -33,7 +33,10 @@ subroutine decoder(ss,id2)
done65=.false. done65=.false.
if(nmode.ge.65 .and. ntxmode.eq.65) then if(nmode.ge.65 .and. ntxmode.eq.65) then
if(newdat.ne.0) dd(1:npts65)=id2(1:npts65) 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. done65=.true.
endif endif
@ -50,7 +53,9 @@ subroutine decoder(ss,id2)
done=.false. done=.false.
nf0=0 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)) ib=min(NSMAX,nint((nfb-nf0)/df3))
lag1=-(2.5/tstep + 0.9999) lag1=-(2.5/tstep + 0.9999)
lag2=5.0/tstep + 0.9999 lag2=5.0/tstep + 0.9999
@ -89,7 +94,7 @@ subroutine decoder(ss,id2)
ia1=ia ia1=ia
ib1=ib ib1=ib
else else
nfa1=nfa nfa1=nf1
nfb1=nfb nfb1=nfb
ia=max(1,nint((nfa1-nf0)/df3)) ia=max(1,nint((nfa1-nf0)/df3))
ib=min(NSMAX,nint((nfb1-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(nmode.ge.65 .and. (.not.done65)) then
if(newdat.ne.0) dd(1:npts65)=id2(1:npts65) 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 endif
!### JT65 is not yet producing info for nsynced, ndecoded. !### JT65 is not yet producing info for nsynced, ndecoded.

View File

@ -1,7 +1,7 @@
subroutine fillcom(nutc0,ndepth0,nrxfreq) subroutine fillcom(nutc0,ndepth0,nrxfreq)
character*20 datetime character*20 datetime
common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfb,ntol, & common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, &
kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime ntol,kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime
save save
nutc=nutc0 nutc=nutc0
@ -10,7 +10,8 @@ subroutine fillcom(nutc0,ndepth0,nrxfreq)
nfqso=nrxfreq nfqso=nrxfreq
newdat=1 newdat=1
npts8=74736 npts8=74736
nfa=2700 nfa=200
nfsplit=2700
nfb=4007 nfb=4007
ntol=3 ntol=3
kin=1024 kin=1024

View File

@ -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. ! 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 fa=nfqso - ntol
fb=nfqso + ntol fb=nfqso + ntol
else !Wideband decode at all freqs else !Wideband decode at all freqs
fa=200 fa=nf1
fb=nfa fb=nf2
endif endif
ia=max(51,nint(fa/df)) ia=max(51,nint(fa/df))
ib=min(NSZ-51,nint(fb/df)) ib=min(NSZ-51,nint(fb/df))

View File

@ -8,8 +8,8 @@ program jt9
real*4 s(NSMAX) real*4 s(NSMAX)
integer*2 id2 integer*2 id2
character*80 arg,infile character*80 arg,infile
common/jt9com/ss(184,NSMAX),savg(NSMAX),id2(NMAX),nutc,ndiskdat, & common/jt9com/ss(184,NSMAX),savg(NSMAX),id2(NMAX),nutc,ndiskdat,ntr, &
ntr,mousefqso,newdat,nfa,nfb,ntol,kin,nzhsym,nsynced,ndecoded mousefqso,newdat,nfa,nfsplit,nfb,ntol,kin,nzhsym,nsynced,ndecoded
common/tracer/limtrace,lu common/tracer/limtrace,lu
nargs=iargc() nargs=iargc()

View File

@ -4,10 +4,10 @@ subroutine jt9c(ss,savg,id2,nparams0)
real*4 ss(184*NSMAX),savg(NSMAX) real*4 ss(184*NSMAX),savg(NSMAX)
integer*2 id2(NTMAX*12000) integer*2 id2(NTMAX*12000)
integer nparams0(21),nparams(21) integer nparams0(22),nparams(22)
character*20 datetime character*20 datetime
common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfb,ntol, & common/npar/nutc,ndiskdat,ntrperiod,nfqso,newdat,npts8,nfa,nfsplit,nfb, &
kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime ntol,kin,nzhsym,nsave,nagain,ndepth,ntxmode,nmode,datetime
equivalence (nparams,nutc) equivalence (nparams,nutc)
nutc=id2(1)+int(savg(1)) !Silence compiler warning nutc=id2(1)+int(savg(1)) !Silence compiler warning

View File

@ -390,7 +390,6 @@ MainWindow::MainWindow(QSharedMemory *shdmem, QString *thekey, \
//--------------------------------------------------- MainWindow destructor //--------------------------------------------------- MainWindow destructor
MainWindow::~MainWindow() MainWindow::~MainWindow()
{ {
writeSettings();
if(!m_decoderBusy) { if(!m_decoderBusy) {
QFile lockFile(m_appDir + "/.lock"); QFile lockFile(m_appDir + "/.lock");
lockFile.remove(); lockFile.remove();
@ -1057,6 +1056,7 @@ void MainWindow::OnExit()
{ {
m_guiTimer.stop (); m_guiTimer.stop ();
g_pWideGraph->saveSettings(); g_pWideGraph->saveSettings();
writeSettings();
if(m_fname != "") killFile(); if(m_fname != "") killFile();
m_killAll=true; m_killAll=true;
mem_jt9->detach(); mem_jt9->detach();
@ -1320,12 +1320,9 @@ void MainWindow::decode() //decode()
jt9com_.ndepth=m_ndepth; jt9com_.ndepth=m_ndepth;
jt9com_.ndiskdat=0; jt9com_.ndiskdat=0;
if(m_diskData) jt9com_.ndiskdat=1; if(m_diskData) jt9com_.ndiskdat=1;
int nfa=g_pWideGraph->getFmin(); jt9com_.nfa=g_pWideGraph->nStartFreq();
int nfb=g_pWideGraph->getFmax(); jt9com_.nfSplit=g_pWideGraph->getFmin();
if(m_mode=="JT9") nfa=200; //decode from 0 to fmax jt9com_.nfb=g_pWideGraph->getFmax();
if(m_mode=="JT65") nfa=nfb; //decode from 0 to fmax
jt9com_.nfa=nfa;
jt9com_.nfb=nfb;
jt9com_.ntol=20; 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; m_nutc0=jt9com_.nutc;

View File

@ -461,7 +461,7 @@ p, li { white-space: pre-wrap; }
</size> </size>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>Decode most recent Rx period at QSO Frequency (use shift for all freqs)</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Decode most recent Rx period at QSO Frequency&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="text"> <property name="text">
<string>&amp;Decode</string> <string>&amp;Decode</string>
@ -515,7 +515,7 @@ p, li { white-space: pre-wrap; }
<item> <item>
<widget class="QPushButton" name="tuneButton"> <widget class="QPushButton" name="tuneButton">
<property name="toolTip"> <property name="toolTip">
<string>Assert PTT and emit a pure tone</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Transmit a pure tone&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="text"> <property name="text">
<string>&amp;Tune</string> <string>&amp;Tune</string>
@ -584,6 +584,9 @@ p, li { white-space: pre-wrap; }
</item> </item>
<item row="5" column="6"> <item row="5" column="6">
<widget class="QCheckBox" name="cbTxLock"> <widget class="QCheckBox" name="cbTxLock">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Tx frequency tracks Rx frequency&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text"> <property name="text">
<string>Lock Tx=Rx</string> <string>Lock Tx=Rx</string>
</property> </property>
@ -647,6 +650,9 @@ p, li { white-space: pre-wrap; }
<height>20</height> <height>20</height>
</size> </size>
</property> </property>
<property name="toolTip">
<string>Audio Rx frequency</string>
</property>
<property name="suffix"> <property name="suffix">
<string> Hz</string> <string> Hz</string>
</property> </property>
@ -1127,7 +1133,7 @@ p, li { white-space: pre-wrap; }
</size> </size>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>Signal report (dB0</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Signal report (dB)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="minimum"> <property name="minimum">
<number>-50</number> <number>-50</number>
@ -2061,6 +2067,9 @@ p, li { white-space: pre-wrap; }
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="toolTip">
<string>Toggle Tx mode</string>
</property>
<property name="text"> <property name="text">
<string>Tx JT9</string> <string>Tx JT9</string>
</property> </property>
@ -2084,6 +2093,9 @@ p, li { white-space: pre-wrap; }
</item> </item>
<item row="1" column="0" colspan="2"> <item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="cbPlus2kHz"> <widget class="QCheckBox" name="cbPlus2kHz">
<property name="toolTip">
<string>Add 2 kHz to requested dial frequency</string>
</property>
<property name="text"> <property name="text">
<string>+2 kHz</string> <string>+2 kHz</string>
</property> </property>
@ -2098,7 +2110,7 @@ p, li { white-space: pre-wrap; }
</size> </size>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>If orange, click to read dial frequency once</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;If orange, click to read dial frequency&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="text"> <property name="text">
<string/> <string/>

View File

@ -77,7 +77,7 @@
</size> </size>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>Constant offset applied to waterfall data</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Constant offset applied to spectra&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="suffix"> <property name="suffix">
<string/> <string/>
@ -108,7 +108,7 @@
</size> </size>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>Scaling (dB) applied to spectra before plotting</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Gain (dB) applied to spectra before display&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="prefix"> <property name="prefix">
<string>Gain </string> <string>Gain </string>
@ -161,6 +161,9 @@
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="toolTip">
<string>Frequency (Hz) at left edge of waterfall</string>
</property>
<property name="suffix"> <property name="suffix">
<string> Hz</string> <string> Hz</string>
</property> </property>
@ -282,6 +285,9 @@
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="toolTip">
<string>Correction applied to flatted displayed spectra</string>
</property>
<property name="prefix"> <property name="prefix">
<string>Slope </string> <string>Slope </string>
</property> </property>
@ -336,7 +342,7 @@
<item row="1" column="4"> <item row="1" column="4">
<widget class="QComboBox" name="spec2dComboBox"> <widget class="QComboBox" name="spec2dComboBox">
<property name="toolTip"> <property name="toolTip">
<string>Select data for display curve</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select data for spectral display&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>1</number> <number>1</number>

View File

@ -1,9 +1,9 @@
[Setup] [Setup]
AppName=wsjtx AppName=wsjtx
AppVerName=wsjtx Version 1.1.1 r3520 AppVerName=wsjtx Version 1.2 r3537
AppCopyright=Copyright (C) 2001-2013 by Joe Taylor, K1JT AppCopyright=Copyright (C) 2001-2013 by Joe Taylor, K1JT
DefaultDirName=c:\wsjtx2 DefaultDirName=c:\wsjtx1.2
DefaultGroupName=wsjtx2 DefaultGroupName=wsjtx1.2
[Files] [Files]
Source: "c:\Users\joe\wsjt\wsjtx_install\*.exe"; DestDir: "{app}" 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_install\CALL3.TXT"; DestDir: "{app}"; Flags: onlyifdoesntexist
Source: "c:\Users\joe\wsjt\wsjtx\shortcuts.txt"; 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\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\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\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\platforms\qwindows.dll"; DestDir: "{app}\platforms";
Source: "c:\Users\joe\wsjt\wsjtx_install\Palettes\*.pal"; DestDir: "{app}\Palettes";
[Icons] [Icons]
Name: "{group}\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}\wsjtx2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico Name: "{userdesktop}\wsjtx1.2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico

18
wsjtx_update.iss Normal file
View File

@ -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