mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-09-30 09:06:38 -04:00
MSK144 fixes: Click on lower panel of Fast Graph decodes from previous file; clicking beyond available data does not crash program.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6964 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
78a03a4926
commit
2b6ff14e4b
@ -1,19 +1,29 @@
|
|||||||
subroutine fast_decode(id2,narg,bShMsgs,line,pchk_file,mycall_12,hiscall_12)
|
subroutine fast_decode(id2,narg,ntrperiod,bShMsgs,line,pchk_file, &
|
||||||
|
mycall_12,hiscall_12)
|
||||||
|
|
||||||
parameter (NMAX=30*12000)
|
parameter (NMAX=30*12000)
|
||||||
integer*2 id2(NMAX)
|
integer*2 id2(NMAX)
|
||||||
|
integer*2 id2a(NMAX)
|
||||||
|
integer*2 id2b(NMAX)
|
||||||
integer narg(0:14)
|
integer narg(0:14)
|
||||||
logical*1 bShMsgs
|
logical*1 bShMsgs
|
||||||
real dat(30*12000)
|
real dat(30*12000)
|
||||||
complex cdat(262145),cdat2(262145)
|
complex cdat(262145),cdat2(262145)
|
||||||
real psavg(450)
|
real psavg(450)
|
||||||
logical pick
|
logical pick,first
|
||||||
character*6 cfile6
|
character*6 cfile6
|
||||||
character*80 line(100)
|
character*80 line(100)
|
||||||
character*512 pchk_file
|
character*512 pchk_file
|
||||||
character*12 mycall_12,hiscall_12
|
character*12 mycall_12,hiscall_12
|
||||||
character*6 mycall,hiscall
|
character*6 mycall,hiscall
|
||||||
save npts
|
data first/.true./
|
||||||
|
save npts,cdat,cdat2,id2a,id2b
|
||||||
|
|
||||||
|
if(first) then
|
||||||
|
id2a=0
|
||||||
|
id2b=0
|
||||||
|
first=.false.
|
||||||
|
endif
|
||||||
|
|
||||||
mycall=mycall_12(1:6)
|
mycall=mycall_12(1:6)
|
||||||
hiscall=hiscall_12(1:6)
|
hiscall=hiscall_12(1:6)
|
||||||
@ -31,6 +41,9 @@ subroutine fast_decode(id2,narg,bShMsgs,line,pchk_file,mycall_12,hiscall_12)
|
|||||||
ntol=narg(11)
|
ntol=narg(11)
|
||||||
nhashcalls=narg(12)
|
nhashcalls=narg(12)
|
||||||
|
|
||||||
|
line(1:100)(1:1)=char(0)
|
||||||
|
if(t0.gt.float(ntrperiod)) go to 900
|
||||||
|
|
||||||
if(nmode.eq.102) then
|
if(nmode.eq.102) then
|
||||||
call fast9(id2,narg,line)
|
call fast9(id2,narg,line)
|
||||||
go to 900
|
go to 900
|
||||||
@ -38,11 +51,20 @@ subroutine fast_decode(id2,narg,bShMsgs,line,pchk_file,mycall_12,hiscall_12)
|
|||||||
call jtmsk_decode(id2,narg,line)
|
call jtmsk_decode(id2,narg,line)
|
||||||
go to 900
|
go to 900
|
||||||
else if(nmode.eq.104) then
|
else if(nmode.eq.104) then
|
||||||
|
if(newdat.eq.1) then
|
||||||
|
id2b=id2a
|
||||||
|
id2a=id2
|
||||||
|
endif
|
||||||
ia=max(1,nint(t0*12000.0))
|
ia=max(1,nint(t0*12000.0))
|
||||||
ib=min(ndat0,nint(t1*12000.0))
|
ib=min(ndat0,nint(t1*12000.0))
|
||||||
nz=ib-ia+1
|
nz=ib-ia+1
|
||||||
call msk144_decode(id2(ia),nz,nutc,0,pchk_file,mycall,hiscall,bShMsgs, &
|
if(newdat.eq.1 .or. npick.le.1) then
|
||||||
ntol,t0,line)
|
call msk144_decode(id2(ia),nz,nutc,0,pchk_file,mycall,hiscall, &
|
||||||
|
bShMsgs,ntol,t0,line)
|
||||||
|
else
|
||||||
|
call msk144_decode(id2b(ia),nz,nutc,0,pchk_file,mycall,hiscall, &
|
||||||
|
bShMsgs,ntol,t0,line)
|
||||||
|
endif
|
||||||
go to 900
|
go to 900
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ subroutine msk144_decode(id2,npts,nutc,nprint,pchk_file,mycall,hiscall, &
|
|||||||
logical*1 bShMsgs
|
logical*1 bShMsgs
|
||||||
|
|
||||||
line(1:100)(1:1)=char(0)
|
line(1:100)(1:1)=char(0)
|
||||||
|
if(maxval(id2(1:npts)).eq.0 .and. minval(id2(1:npts)).eq.0) go to 900
|
||||||
|
|
||||||
hist=0
|
hist=0
|
||||||
do i=0,npts-1
|
do i=0,npts-1
|
||||||
@ -56,5 +57,6 @@ subroutine msk144_decode(id2,npts,nutc,nprint,pchk_file,mycall,hiscall, &
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if(line(1)(1:6).eq.' ') line(1)(1:1)=char(0)
|
if(line(1)(1:6).eq.' ') line(1)(1:1)=char(0)
|
||||||
return
|
|
||||||
|
900 return
|
||||||
end subroutine msk144_decode
|
end subroutine msk144_decode
|
||||||
|
@ -107,8 +107,8 @@ extern "C" {
|
|||||||
float* level, float* sigdb, float* snr, float* dfreq,
|
float* level, float* sigdb, float* snr, float* dfreq,
|
||||||
float* width);
|
float* width);
|
||||||
|
|
||||||
void fast_decode_(short id2[], int narg[], bool* bShMsgs, char msg[],
|
void fast_decode_(short id2[], int narg[], int* ntrperiod, bool* bShMsgs,
|
||||||
char pchkFile[], char mycall[], char hiscall[],
|
char msg[], char pchkFile[], char mycall[], char hiscall[],
|
||||||
int len1, int len2, int len3, int len4);
|
int len1, int len2, int len3, int len4);
|
||||||
void hash_calls_(char calls[], int* ih9, int len);
|
void hash_calls_(char calls[], int* ih9, int len);
|
||||||
void degrade_snr_(short d2[], int* n, float* db, float* bandwidth);
|
void degrade_snr_(short d2[], int* n, float* db, float* bandwidth);
|
||||||
@ -2210,8 +2210,8 @@ void MainWindow::decode() //decode()
|
|||||||
narg[14]=m_config.aggressive();
|
narg[14]=m_config.aggressive();
|
||||||
memcpy(d2b,dec_data.d2,2*360000);
|
memcpy(d2b,dec_data.d2,2*360000);
|
||||||
watcher3.setFuture (QtConcurrent::run (std::bind (fast_decode_,&d2b[0],
|
watcher3.setFuture (QtConcurrent::run (std::bind (fast_decode_,&d2b[0],
|
||||||
&narg[0],&m_bShMsgs,&m_msg[0][0],&m_pchkFile[0],dec_data.params.mycall,
|
&narg[0],&m_TRperiod,&m_bShMsgs,&m_msg[0][0],&m_pchkFile[0],
|
||||||
dec_data.params.hiscall,80,512,12,12)));
|
dec_data.params.mycall,dec_data.params.hiscall,80,512,12,12)));
|
||||||
} else {
|
} else {
|
||||||
memcpy(to, from, qMin(mem_jt9->size(), size));
|
memcpy(to, from, qMin(mem_jt9->size(), size));
|
||||||
QFile {m_config.temp_dir ().absoluteFilePath (".lock")}.remove (); // Allow jt9 to start
|
QFile {m_config.temp_dir ().absoluteFilePath (".lock")}.remove (); // Allow jt9 to start
|
||||||
|
Loading…
Reference in New Issue
Block a user