mirror of https://github.com/saitohirga/WSJT-X.git
Many changes to the procedures for selecting decodable candidate JT9 signals.
This code may be the new benchmark? git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3274 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
1f82d75194
commit
057287fab1
|
@ -30,7 +30,7 @@ OBJS1 = pctile.o graycode.o sort.o ssort.o \
|
||||||
softsym.o peakdt9.o getlags.o afc9.o fchisq.o \
|
softsym.o peakdt9.o getlags.o afc9.o fchisq.o \
|
||||||
twkfreq.o downsam9.o symspec2.o ipcomm.o sleep_msec.o \
|
twkfreq.o downsam9.o symspec2.o ipcomm.o sleep_msec.o \
|
||||||
stdmsg.o sec_midn.o cutil.o azdist.o geodist.o morse.o \
|
stdmsg.o sec_midn.o cutil.o azdist.o geodist.o morse.o \
|
||||||
fillcom.o
|
fillcom.o chkss2.o
|
||||||
|
|
||||||
libjt9.a: $(OBJS1)
|
libjt9.a: $(OBJS1)
|
||||||
ar cr libjt9.a $(OBJS1)
|
ar cr libjt9.a $(OBJS1)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
subroutine chkss2(ss2,schk)
|
subroutine chkss2(ss2,freq,drift,schk)
|
||||||
|
|
||||||
real ss2(0:8,85)
|
real ss2(0:8,85)
|
||||||
real s(0:8,85)
|
real s(0:8,85)
|
||||||
|
@ -8,7 +8,7 @@ subroutine chkss2(ss2,schk)
|
||||||
ave=sum(ss2)/(9*85)
|
ave=sum(ss2)/(9*85)
|
||||||
s=ss2/ave-1.0
|
s=ss2/ave-1.0
|
||||||
|
|
||||||
! call zplot9(s)
|
! call zplot9(s,freq,drift)
|
||||||
s1=0.
|
s1=0.
|
||||||
do lag=0,5
|
do lag=0,5
|
||||||
do i=1,16
|
do i=1,16
|
||||||
|
|
|
@ -82,7 +82,6 @@ subroutine decode9(i1SoftSymbols,limit,nlim,msg)
|
||||||
call packbits(i1DecodedBits,12,6,i4Decoded6BitWords)
|
call packbits(i1DecodedBits,12,6,i4Decoded6BitWords)
|
||||||
call unpackmsg(i4Decoded6BitWords,msg) !Unpack decoded msg
|
call unpackmsg(i4Decoded6BitWords,msg) !Unpack decoded msg
|
||||||
if(index(msg,'000AAA ').gt.0) msg=' '
|
if(index(msg,'000AAA ').gt.0) msg=' '
|
||||||
! if(index(msg,'15P6715P67WCV').gt.0) msg=' '
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
|
@ -10,6 +10,7 @@ subroutine decoder(ss,c0,nstandalone)
|
||||||
character*80 fmt
|
character*80 fmt
|
||||||
character*20 datetime
|
character*20 datetime
|
||||||
real*4 ccfred(NSMAX)
|
real*4 ccfred(NSMAX)
|
||||||
|
real*4 red2(NSMAX)
|
||||||
logical ccfok(NSMAX)
|
logical ccfok(NSMAX)
|
||||||
logical done(NSMAX)
|
logical done(NSMAX)
|
||||||
integer*1 i1SoftSymbols(207)
|
integer*1 i1SoftSymbols(207)
|
||||||
|
@ -61,6 +62,16 @@ subroutine decoder(ss,c0,nstandalone)
|
||||||
! idf=ntol/df3 + 0.999
|
! idf=ntol/df3 + 0.999
|
||||||
done=.false.
|
done=.false.
|
||||||
|
|
||||||
|
ia=max(1,nint((nfa-1000)/df3))
|
||||||
|
ib=min(NSMAX,nint((nfb-1000)/df3))
|
||||||
|
lag1=-(2.5/tstep + 0.9999)
|
||||||
|
lag2=5.0/tstep + 0.9999
|
||||||
|
call timer('sync9 ',0)
|
||||||
|
call sync9(ss,nzhsym,lag1,lag2,ia,ib,ccfred,red2,ipk)
|
||||||
|
call timer('sync9 ',1)
|
||||||
|
red2lim=1.6
|
||||||
|
schklim=2.2
|
||||||
|
|
||||||
do nqd=1,0,-1
|
do nqd=1,0,-1
|
||||||
limit=1000
|
limit=1000
|
||||||
ccflim=4.0
|
ccflim=4.0
|
||||||
|
@ -70,7 +81,7 @@ subroutine decoder(ss,c0,nstandalone)
|
||||||
endif
|
endif
|
||||||
if(ndepth.ge.3) then
|
if(ndepth.ge.3) then
|
||||||
limit=100000
|
limit=100000
|
||||||
ccflim=3.0
|
ccflim=2.5
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if(nqd.eq.1) then
|
if(nqd.eq.1) then
|
||||||
|
@ -82,27 +93,20 @@ subroutine decoder(ss,c0,nstandalone)
|
||||||
nfa1=nfa
|
nfa1=nfa
|
||||||
nfb1=nfb
|
nfb1=nfb
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ia=max(1,nint((nfa1-1000)/df3))
|
ia=max(1,nint((nfa1-1000)/df3))
|
||||||
ib=min(NSMAX,nint((nfb1-1000)/df3))
|
ib=min(NSMAX,nint((nfb1-1000)/df3))
|
||||||
lag1=-(2.5/tstep + 0.9999)
|
|
||||||
lag2=5.0/tstep + 0.9999
|
|
||||||
call timer('sync9 ',0)
|
|
||||||
! Compute ccfred()
|
|
||||||
call sync9(ss,nzhsym,lag1,lag2,ia,ib,ccfred,ipk)
|
|
||||||
call timer('sync9 ',1)
|
|
||||||
|
|
||||||
ccfok=.false.
|
ccfok=.false.
|
||||||
|
|
||||||
if(nqd.eq.1) then
|
if(nqd.eq.1) then
|
||||||
ccfok(ipk)=.true.
|
ccfok(ipk)=.true.
|
||||||
do i=ia,ib
|
do i=ia,ib
|
||||||
ccfok(i)=ccfred(i).gt.ccflim
|
ccfok(i)=ccfred(i).gt.ccflim .and. red2(i).gt.red2lim
|
||||||
enddo
|
enddo
|
||||||
ia1=ia
|
ia1=ia
|
||||||
ib1=ib
|
ib1=ib
|
||||||
else
|
else
|
||||||
do i=ia,ib
|
do i=ia,ib
|
||||||
ccfok(i)=ccfred(i).gt.ccflim
|
ccfok(i)=ccfred(i).gt.ccflim .and. red2(i).gt.red2lim
|
||||||
enddo
|
enddo
|
||||||
ccfok(ia1:ib1)=.false.
|
ccfok(ia1:ib1)=.false.
|
||||||
endif
|
endif
|
||||||
|
@ -128,7 +132,7 @@ subroutine decoder(ss,c0,nstandalone)
|
||||||
drift,schk,i1SoftSymbols)
|
drift,schk,i1SoftSymbols)
|
||||||
call timer('softsym ',1)
|
call timer('softsym ',1)
|
||||||
|
|
||||||
if(schk.ge.2.0) then
|
if(schk.ge.schklim) then
|
||||||
|
|
||||||
call timer('decode9 ',0)
|
call timer('decode9 ',0)
|
||||||
call decode9(i1SoftSymbols,limit,nlim,msg)
|
call decode9(i1SoftSymbols,limit,nlim,msg)
|
||||||
|
@ -141,8 +145,9 @@ subroutine decoder(ss,c0,nstandalone)
|
||||||
nsnr=nint(snrdb)
|
nsnr=nint(snrdb)
|
||||||
ndrift=nint(drift/df3)
|
ndrift=nint(drift/df3)
|
||||||
|
|
||||||
write(38,3002) nutc,nqd,nsnr,i,freq,ccfred(i),schk,nlim,msg
|
! write(38,3002) nutc,nqd,nsnr,i,freq,ccfred(i),red2(i), &
|
||||||
3002 format(i4.4,i2,i5,i6,f8.1,2f6.1,i9,2x,a22)
|
! schk,nlim,msg
|
||||||
|
!3002 format(i4.4,i2,i5,i6,f8.1,3f6.1,i9,2x,a22)
|
||||||
|
|
||||||
if(msg.ne.' ') then
|
if(msg.ne.' ') then
|
||||||
if(nqd.eq.0) ndecodes0=ndecodes0+1
|
if(nqd.eq.0) ndecodes0=ndecodes0+1
|
||||||
|
@ -163,7 +168,7 @@ subroutine decoder(ss,c0,nstandalone)
|
||||||
call flush(6)
|
call flush(6)
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
write(38,3002) nutc,nqd,-99,i,freq,ccfred(i),schk,0
|
! write(38,3002) nutc,nqd,-99,i,freq,ccfred(i),red2(i),schk,0
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
|
@ -181,11 +186,11 @@ subroutine decoder(ss,c0,nstandalone)
|
||||||
if(nstandalone.eq.0) call timer('decoder ',101)
|
if(nstandalone.eq.0) call timer('decoder ',101)
|
||||||
|
|
||||||
call system_clock(iclock,iclock_rate,iclock_max)
|
call system_clock(iclock,iclock_rate,iclock_max)
|
||||||
write(39,3001) nutc,nfreqs1,nfreqs0,ndecodes1,ndecodes0+ndecodes1, &
|
! write(39,3001) nutc,nfreqs1,nfreqs0,ndecodes1,ndecodes0+ndecodes1, &
|
||||||
float(iclock-iclock0)/iclock_rate
|
! float(iclock-iclock0)/iclock_rate
|
||||||
3001 format(5i8,f10.3)
|
!3001 format(5i8,f10.3)
|
||||||
call flush(38)
|
! call flush(38)
|
||||||
call flush(39)
|
! call flush(39)
|
||||||
|
|
||||||
return
|
return
|
||||||
end subroutine decoder
|
end subroutine decoder
|
||||||
|
|
|
@ -34,7 +34,6 @@ subroutine downsam9(c0,npts8,nsps8,newdat,nspsd,fpk,c2,nz2)
|
||||||
!3001 format(i5,2f12.3,i8)
|
!3001 format(i5,2f12.3,i8)
|
||||||
enddo
|
enddo
|
||||||
call pctile(s,1000,40,avenoise)
|
call pctile(s,1000,40,avenoise)
|
||||||
newdat=0
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ndown=nsps8/16 !Downsample factor
|
ndown=nsps8/16 !Downsample factor
|
||||||
|
|
|
@ -11,6 +11,8 @@ subroutine softsym(c0,npts8,nsps8,newdat,fpk,syncpk,snrdb,xdt,freq,drift, &
|
||||||
integer*1 i1SoftSymbolsScrambled(207)
|
integer*1 i1SoftSymbolsScrambled(207)
|
||||||
integer*1 i1SoftSymbols(207)
|
integer*1 i1SoftSymbols(207)
|
||||||
include 'jt9sync.f90'
|
include 'jt9sync.f90'
|
||||||
|
data freq0/-999.0/,drift0/-999.0/
|
||||||
|
save freq0,drift0
|
||||||
|
|
||||||
nspsd=16
|
nspsd=16
|
||||||
ndown=nsps8/nspsd
|
ndown=nsps8/nspsd
|
||||||
|
@ -26,15 +28,22 @@ subroutine softsym(c0,npts8,nsps8,newdat,fpk,syncpk,snrdb,xdt,freq,drift, &
|
||||||
freq=fpk - a(1)
|
freq=fpk - a(1)
|
||||||
drift=-2.0*a(2)
|
drift=-2.0*a(2)
|
||||||
|
|
||||||
|
if(abs(freq-freq0).lt.0.1 .and. abs(drift-drift0).lt.0.1) then
|
||||||
|
schk=0.
|
||||||
|
go to 999
|
||||||
|
endif
|
||||||
|
freq0=freq
|
||||||
|
drift0=drift
|
||||||
|
newdat=0
|
||||||
|
|
||||||
call twkfreq(c3,c5,nz3,fsample,a) !Correct for deltaF, fDot, fDDot
|
call twkfreq(c3,c5,nz3,fsample,a) !Correct for deltaF, fDot, fDDot
|
||||||
|
|
||||||
! Compute soft symbols (in scrambled order)
|
! Compute soft symbols (in scrambled order)
|
||||||
call symspec2(c5,nz3,nsps8,nspsd,fsample,freq,drift,snrdb,schk, &
|
call symspec2(c5,nz3,nsps8,nspsd,fsample,freq,drift,snrdb,schk, &
|
||||||
i1SoftSymbolsScrambled)
|
i1SoftSymbolsScrambled)
|
||||||
if(snrdb.lt.-99.0) return
|
|
||||||
|
|
||||||
! Remove interleaving
|
! Remove interleaving
|
||||||
call interleave9(i1SoftSymbolsScrambled,-1,i1SoftSymbols)
|
call interleave9(i1SoftSymbolsScrambled,-1,i1SoftSymbols)
|
||||||
|
|
||||||
return
|
999 return
|
||||||
end subroutine softsym
|
end subroutine softsym
|
||||||
|
|
|
@ -25,7 +25,7 @@ subroutine symspec(k,ntrperiod,nsps,ingain,nb,nbslider,pxdb,s,red, &
|
||||||
parameter (NFFT2=1024,NFFT2A=NFFT2/8)
|
parameter (NFFT2=1024,NFFT2A=NFFT2/8)
|
||||||
parameter (MAXFFT3=32768)
|
parameter (MAXFFT3=32768)
|
||||||
real*4 s(NSMAX),w3(MAXFFT3)
|
real*4 s(NSMAX),w3(MAXFFT3)
|
||||||
real*4 x0(NFFT1),x1(NFFT1)
|
real*4 x1(NFFT1)
|
||||||
real*4 x2(NFFT1+105)
|
real*4 x2(NFFT1+105)
|
||||||
real*4 ssum(NSMAX)
|
real*4 ssum(NSMAX)
|
||||||
real*4 red(NSMAX)
|
real*4 red(NSMAX)
|
||||||
|
@ -82,24 +82,16 @@ subroutine symspec(k,ntrperiod,nsps,ingain,nb,nbslider,pxdb,s,red, &
|
||||||
k0=k
|
k0=k
|
||||||
|
|
||||||
nzap=0
|
nzap=0
|
||||||
sigmas=1.0*(10.0**(0.01*nbslider)) + 0.7
|
|
||||||
peaklimit=sigmas*max(10.0,rms)
|
|
||||||
px=0.
|
px=0.
|
||||||
|
|
||||||
nwindow=2
|
|
||||||
! nwindow=0 !### No windowing ###
|
|
||||||
kstep1=NFFT1
|
kstep1=NFFT1
|
||||||
if(nwindow.ne.0) kstep1=NFFT1/2
|
|
||||||
fac=2.0/NFFT1
|
fac=2.0/NFFT1
|
||||||
nblks=(k-k1)/kstep1
|
nblks=(k-k1)/kstep1
|
||||||
gain=10.0**(0.05*ingain)
|
gain=10.0**(0.05*ingain)
|
||||||
do nblk=1,nblks
|
do nblk=1,nblks
|
||||||
do i=1,NFFT1
|
do i=1,NFFT1
|
||||||
x0(i)=gain*id2(k1+i)
|
x1(i)=gain*id2(k1+i)
|
||||||
enddo
|
enddo
|
||||||
call timf2(x0,k,NFFT1,nwindow,nb,peaklimit,x1, &
|
|
||||||
slimit,lstrong,px,nzap)
|
|
||||||
|
|
||||||
! Mix at 1500 Hz, lowpass at +/-750 Hz, and downsample to 1500 Hz complex.
|
! Mix at 1500 Hz, lowpass at +/-750 Hz, and downsample to 1500 Hz complex.
|
||||||
x2(106:105+kstep1)=x1(1:kstep1)
|
x2(106:105+kstep1)=x1(1:kstep1)
|
||||||
call fil3(x2,kstep1+105,c0(k8+1),n2)
|
call fil3(x2,kstep1+105,c0(k8+1),n2)
|
||||||
|
@ -152,6 +144,7 @@ subroutine symspec(k,ntrperiod,nsps,ingain,nb,nbslider,pxdb,s,red, &
|
||||||
call pctile(ssum,iz,npct,xmed1)
|
call pctile(ssum,iz,npct,xmed1)
|
||||||
fac1=fac00/max(xmed1,0.006*ihsym)
|
fac1=fac00/max(xmed1,0.006*ihsym)
|
||||||
savg(1:iz)=fac1*ssum(1:iz)
|
savg(1:iz)=fac1*ssum(1:iz)
|
||||||
|
savg(iz+1:iz+20)=savg(iz)
|
||||||
call redsync(ss,ntrperiod,ihsym,iz,red)
|
call redsync(ss,ntrperiod,ihsym,iz,red)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
|
@ -11,7 +11,7 @@ subroutine symspec2(c5,nz3,nsps8,nspsd,fsample,freq,drift,snrdb,schk, &
|
||||||
real ss3(0:7,69)
|
real ss3(0:7,69)
|
||||||
integer*1 i1
|
integer*1 i1
|
||||||
equivalence (i1,i4)
|
equivalence (i1,i4)
|
||||||
include 'jt9sync.f90'
|
include 'jt9sync.f90'
|
||||||
|
|
||||||
aa(1)=-1500.0/nsps8
|
aa(1)=-1500.0/nsps8
|
||||||
aa(2)=0.
|
aa(2)=0.
|
||||||
|
@ -37,7 +37,9 @@ subroutine symspec2(c5,nz3,nsps8,nspsd,fsample,freq,drift,snrdb,schk, &
|
||||||
!###
|
!###
|
||||||
! write(30) freq,drift,ss2
|
! write(30) freq,drift,ss2
|
||||||
! call flush(30)
|
! call flush(30)
|
||||||
call chkss2(ss2,schk)
|
call chkss2(ss2,freq,drift,schk)
|
||||||
|
freq0=freq
|
||||||
|
drift0=drift
|
||||||
if(schk.lt.2.0) go to 900
|
if(schk.lt.2.0) go to 900
|
||||||
!###
|
!###
|
||||||
ss=0.
|
ss=0.
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
subroutine sync9(ss,nzhsym,lag1,lag2,ia,ib,ccfred,ipkbest)
|
subroutine sync9(ss,nzhsym,lag1,lag2,ia,ib,ccfred,red2,ipkbest)
|
||||||
|
|
||||||
parameter (NSMAX=22000) !Max length of saved spectra
|
parameter (NSMAX=22000) !Max length of saved spectra
|
||||||
real ss(184,NSMAX)
|
real ss(184,NSMAX)
|
||||||
real ss1(184)
|
real ss1(184)
|
||||||
real ccfred(NSMAX)
|
real ccfred(NSMAX)
|
||||||
|
real savg(NSMAX)
|
||||||
|
real savg2(NSMAX)
|
||||||
|
real smo(-5:25)
|
||||||
|
real sq(NSMAX)
|
||||||
|
real red2(NSMAX)
|
||||||
include 'jt9sync.f90'
|
include 'jt9sync.f90'
|
||||||
|
|
||||||
ipk=0
|
ipk=0
|
||||||
|
@ -42,7 +47,43 @@ subroutine sync9(ss,nzhsym,lag1,lag2,ia,ib,ccfred,ipkbest)
|
||||||
|
|
||||||
call pctile(ccfred(ia),ib-ia+1,50,xmed)
|
call pctile(ccfred(ia),ib-ia+1,50,xmed)
|
||||||
if(xmed.le.0.0) xmed=1.0
|
if(xmed.le.0.0) xmed=1.0
|
||||||
ccfred=2.0*ccfred/xmed
|
ccfred=2.0*ccfred/xmed
|
||||||
|
! ccfred=4.0*(ccfred/xmed - 1.0)
|
||||||
|
|
||||||
|
savg=0.
|
||||||
|
do j=1,nzhsym
|
||||||
|
savg(ia:ib)=savg(ia:ib) + ss(j,ia:ib)
|
||||||
|
enddo
|
||||||
|
df=1500.0/2048.0 ! 0.732422
|
||||||
|
df9=12000.0/6912.0 ! 1.736111
|
||||||
|
savg(ia:ib)=savg(ia:ib)/nzhsym
|
||||||
|
smo(0:20)=1.0/21.0
|
||||||
|
smo(-5:-1)=-(1.0/21.0)*(21.0/10.0)
|
||||||
|
smo(21:25)=smo(-5)
|
||||||
|
|
||||||
|
do i=ia,ib
|
||||||
|
sm=0.
|
||||||
|
do j=-5,25
|
||||||
|
if(i+j.ge.1 .and. i+j.lt.NSMAX) sm=sm + smo(j)*savg(i+j)
|
||||||
|
enddo
|
||||||
|
savg2(i)=sm
|
||||||
|
sq(i)=sm*sm
|
||||||
|
enddo
|
||||||
|
|
||||||
|
call pctile(sq(ia:ib),ib-ia+1,20,sq0)
|
||||||
|
rms=sqrt(sq0)
|
||||||
|
savg2(ia:ib)=savg2(ia:ib)/(5.0*rms)
|
||||||
|
|
||||||
|
red2=0.
|
||||||
|
do i=ia+11,ib-10
|
||||||
|
ref=max(savg2(i-10),savg2(i+10))
|
||||||
|
red2(i)=savg2(i)-ref
|
||||||
|
if(red2(i).lt.-99.0) red2(i)=-99.0
|
||||||
|
if(red2(i).gt.99.0) red2(i)=99.0
|
||||||
|
! write(30,3001) i,i*df+1000.0,savg2(i),red2(i),ccfred(i)
|
||||||
|
!3001 format(i8,4f10.3)
|
||||||
|
enddo
|
||||||
|
! call flush(30)
|
||||||
|
|
||||||
return
|
return
|
||||||
end subroutine sync9
|
end subroutine sync9
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
subroutine zplot9(s)
|
subroutine zplot9(s,freq,drift)
|
||||||
|
|
||||||
real s(0:8,85)
|
real s(0:8,85)
|
||||||
character*1 line(85),mark(0:6)
|
character*1 line(85),mark(0:6)
|
||||||
data mark/' ',' ','.','-','+','X','$'/
|
data mark/' ',' ','.','-','+','X','$'/
|
||||||
include 'jt9sync.f90'
|
include 'jt9sync.f90'
|
||||||
|
|
||||||
|
write(32,1000) freq,drift
|
||||||
|
1000 format('Freq:',f7.1,' Drift:',f5.1,' ',60('-'))
|
||||||
do j=8,0,-1
|
do j=8,0,-1
|
||||||
do i=1,85
|
do i=1,85
|
||||||
n=(s(j,i))
|
n=(s(j,i))
|
||||||
|
@ -23,7 +25,7 @@ subroutine zplot9(s)
|
||||||
1015 format(87('-'))
|
1015 format(87('-'))
|
||||||
write(32,1020) line
|
write(32,1020) line
|
||||||
1020 format(2x,85a1)
|
1020 format(2x,85a1)
|
||||||
write(32,1015)
|
call flush(32)
|
||||||
|
|
||||||
return
|
return
|
||||||
end subroutine zplot9
|
end subroutine zplot9
|
||||||
|
|
|
@ -1760,7 +1760,7 @@ void MainWindow::startTx2()
|
||||||
double snr=t.mid(1,5).toDouble();
|
double snr=t.mid(1,5).toDouble();
|
||||||
if(snr>0.0 or snr < -50.0) snr=99.0;
|
if(snr>0.0 or snr < -50.0) snr=99.0;
|
||||||
soundOutThread.setTxSNR(snr);
|
soundOutThread.setTxSNR(snr);
|
||||||
soundOutThread.start(QThread::HighPriority);
|
soundOutThread.start(QThread::HighestPriority);
|
||||||
ui->xThermo->setValue(0.0); //Set Thermo to zero
|
ui->xThermo->setValue(0.0); //Set Thermo to zero
|
||||||
m_monitoring=false;
|
m_monitoring=false;
|
||||||
soundInThread.setMonitoring(false);
|
soundInThread.setMonitoring(false);
|
||||||
|
|
Loading…
Reference in New Issue