mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-07-30 20:52:28 -04:00
Implemented Freeze/Tolerance/MouseDF features for JT6M.
Removed superfluous "#ifdef Win32" in jtaudio.c. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@67 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
5bc2a3acc3
commit
4377834835
21
Makefile.win
21
Makefile.win
@ -26,15 +26,28 @@ SRCS2F90 = a2d.f90 abc441.f90 astro0.f90 audio_init.f90 azdist0.f90 \
|
|||||||
ftn_quit.f90 get_fname.f90 getfile.f90 horizspec.f90 hscroll.f90 \
|
ftn_quit.f90 get_fname.f90 getfile.f90 horizspec.f90 hscroll.f90 \
|
||||||
i1tor4.f90 pix2d.f90 pix2d65.f90 rfile.f90 savedata.f90 spec.f90 \
|
i1tor4.f90 pix2d.f90 pix2d65.f90 rfile.f90 savedata.f90 spec.f90 \
|
||||||
wsjtgen.f90 runqqq.f90 fivehz.f90
|
wsjtgen.f90 runqqq.f90 fivehz.f90
|
||||||
SRCS2F77 = wsjt1.f fsubs1.f fsubs.f astro.f astropak.f
|
SRCS2F77 = wsjt1.f avesp2.f bzap.f spec441.f spec2d.f mtdecode.f \
|
||||||
SRCS2C = resample.c ptt.c igray.c wrapkarn.c
|
stdecode.f indexx.f s2shape.f flat2.f gen65.f chkmsg.f gen6m.f \
|
||||||
|
gentone.f syncf0.f syncf1.f synct.f decode6m.f avemsg6m.f \
|
||||||
|
set.f flatten.f db.f pctile.f sort.f ssort.f ps.f smooth.f ping.f \
|
||||||
|
longx.f peakup.f sync.f detect.f avemsg65.f decode65.f demod64a.f \
|
||||||
|
encode65.f extract.f flat1.f four2.f gencw.f getpfx1.f \
|
||||||
|
getpfx2.f getsnr.f graycode.f grid2k.f interleave63.f k2grid.f \
|
||||||
|
limit.f lpf1.f deep65.f morse.f nchar.f packcall.f packgrid.f \
|
||||||
|
packmsg.f packtext.f setup65.f short65.f slope.f spec2d65.f \
|
||||||
|
sync65.f unpackcall.f unpackgrid.f unpackmsg.f unpacktext.f \
|
||||||
|
xcor.f xfft.f wsjt65.f astro.f azdist.f coord.f dcoord.f \
|
||||||
|
deg2grid.f dot.f ftsky.f geocentric.f GeoDist.f grid2deg.f \
|
||||||
|
moon2.f MoonDop.f sun.f toxyz.f
|
||||||
|
|
||||||
|
SRCS2C = resample.c ptt.c igray.c wrapkarn.c
|
||||||
|
|
||||||
WSJT6.EXE: Audio.pyd wsjt.spec
|
WSJT6.EXE: Audio.pyd wsjt.spec
|
||||||
python c:\python23\installer\Build.py wsjt.spec
|
python c:\python23\installer\Build.py wsjt.spec
|
||||||
-del WSJT6.EXE
|
-del WSJT6.EXE
|
||||||
REN wsjt.exe WSJT6.EXE
|
REN wsjt.exe WSJT6.EXE
|
||||||
|
|
||||||
Audio.pyd: $(OBJS2C)
|
Audio.pyd: $(OBJS2C) $(SRCS2F90) $(SRCS2F77) $(SRCS2C)
|
||||||
python f2py.py -c \
|
python f2py.py -c \
|
||||||
--quiet --"fcompiler=compaqv" \
|
--quiet --"fcompiler=compaqv" \
|
||||||
--opt="/traceback /fast /fpp /define:Win32" \
|
--opt="/traceback /fast /fpp /define:Win32" \
|
||||||
@ -78,6 +91,6 @@ igray.obj: igray.c
|
|||||||
.PHONY : clean
|
.PHONY : clean
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-del *.o *.obj JT65code.exe Audio.pyd
|
-del *.o *.obj JT65code.exe wsjt6.exe Audio.pyd
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
#Makefile for WSJT
|
|
||||||
!include <dfinc.mak>
|
|
||||||
|
|
||||||
OBJS1 = pa_lib.o pa_win_mme.o jtaudio.o ...
|
|
||||||
|
|
||||||
# Much more to be done, if this is to work!
|
|
||||||
|
|
||||||
all: xcomdat.dll specjt2.dll tstsp.exe a2d.exe
|
|
||||||
|
|
||||||
xcomdat.dll xcomdat.lib: xcomdat.f xcom.f
|
|
||||||
$(FOR) $(fflags) xcomdat.f /dll /link /section:.data,RWS
|
|
||||||
|
|
||||||
specjt2.dll: specjt2.f xcom.f
|
|
||||||
$(FOR) $(fflags) specjt2.f /dll xcomdat.lib
|
|
||||||
|
|
||||||
tstsp.exe: tstsp.f xcomdat.lib
|
|
||||||
$(FOR) $(fflags) tstsp.f xcomdat.lib specjt2.lib
|
|
||||||
|
|
||||||
a2d.exe: a2d.f jtaudio.obj xcomdat.lib
|
|
||||||
$(FOR) $(fflags) /traceback /check:all a2d.f $(OBJS3) \
|
|
||||||
/link winmm.lib xcomdat.lib
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-del xcomdat.dll
|
|
||||||
-del xcomdat.lib
|
|
||||||
-del xcomdat.exp
|
|
||||||
-del specjt2.dll
|
|
||||||
-del specjt2.lib
|
|
||||||
-del specjt2.exp
|
|
||||||
-del tstsp.exe
|
|
||||||
-del a2d.exe
|
|
@ -37,11 +37,7 @@ typedef struct _SYSTEMTIME
|
|||||||
short Millisecond;
|
short Millisecond;
|
||||||
} SYSTEMTIME;
|
} SYSTEMTIME;
|
||||||
|
|
||||||
#ifdef Win32
|
|
||||||
extern void __stdcall GetSystemTime(SYSTEMTIME *st);
|
extern void __stdcall GetSystemTime(SYSTEMTIME *st);
|
||||||
#else
|
|
||||||
extern void GetSystemTime(SYSTEMTIME *st);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Input callback routine:
|
// Input callback routine:
|
||||||
static int SoundIn( void *inputBuffer, void *outputBuffer,
|
static int SoundIn( void *inputBuffer, void *outputBuffer,
|
||||||
|
13
syncf0.f
13
syncf0.f
@ -1,4 +1,4 @@
|
|||||||
subroutine syncf0(data,jz,NTol,jstart,f0,smax)
|
subroutine syncf0(data,jz,NFreeze,NTol,jstart,f0,smax)
|
||||||
|
|
||||||
C Does 512-pt FFTs of data with 256-pt step size.
|
C Does 512-pt FFTs of data with 256-pt step size.
|
||||||
C Finds sync tone and determines aproximate values for jstart and f0.
|
C Finds sync tone and determines aproximate values for jstart and f0.
|
||||||
@ -14,12 +14,17 @@ C Finds sync tone and determines aproximate values for jstart and f0.
|
|||||||
|
|
||||||
call zero(s2,6*128) !Clear average
|
call zero(s2,6*128) !Clear average
|
||||||
df=11025./512.
|
df=11025./512.
|
||||||
ia=(1076-NTol)/df
|
|
||||||
ib=(1076+Ntol)/df
|
ia=(f0-400)/df
|
||||||
nblk=jz/256 - 6
|
ib=(f0+400)/df + 0.999
|
||||||
|
if(NFreeze.eq.1) then
|
||||||
|
ia=(f0-NTol)/df
|
||||||
|
ib=(f0+Ntol)/df + 0.999
|
||||||
|
endif
|
||||||
|
|
||||||
C Most of the time in this routine is in this loop.
|
C Most of the time in this routine is in this loop.
|
||||||
|
|
||||||
|
nblk=jz/256 - 6
|
||||||
do n=1,nblk !Accumulate avg spectrum for
|
do n=1,nblk !Accumulate avg spectrum for
|
||||||
j=256*(n-1)+1 !512-pt blocks, stepping by 256
|
j=256*(n-1)+1 !512-pt blocks, stepping by 256
|
||||||
call move(data(j),x,512)
|
call move(data(j),x,512)
|
||||||
|
19
syncf1.f
19
syncf1.f
@ -1,4 +1,4 @@
|
|||||||
subroutine syncf1(data,jz,jstart,f0,NFreeze,smax,red)
|
subroutine syncf1(data,jz,jstart,f0,NFreeze,DFTolerance,smax,red)
|
||||||
|
|
||||||
C Does 16k FFTs of data with stepsize 15360, using only "sync on" intervals.
|
C Does 16k FFTs of data with stepsize 15360, using only "sync on" intervals.
|
||||||
C Returns a refined value of f0, the sync-tone frequency.
|
C Returns a refined value of f0, the sync-tone frequency.
|
||||||
@ -8,6 +8,7 @@ C Returns a refined value of f0, the sync-tone frequency.
|
|||||||
parameter (NQ=NFFT/4)
|
parameter (NQ=NFFT/4)
|
||||||
parameter (NB3=3*512)
|
parameter (NB3=3*512)
|
||||||
real data(jz) !Raw data
|
real data(jz) !Raw data
|
||||||
|
integer DFTolerance
|
||||||
real x(NFFT)
|
real x(NFFT)
|
||||||
real red(512)
|
real red(512)
|
||||||
real s(NQ) !Ref spectrum for flattening and birdie-zapping
|
real s(NQ) !Ref spectrum for flattening and birdie-zapping
|
||||||
@ -41,6 +42,7 @@ C Accumulate a high-resolution average spectrum
|
|||||||
do i=1,NQ !Normalize
|
do i=1,NQ !Normalize
|
||||||
s(i)=fac*s(i)
|
s(i)=fac*s(i)
|
||||||
enddo
|
enddo
|
||||||
|
call smooth(s,NQ)
|
||||||
|
|
||||||
C NB: could also compute a "blue" spectrum, using the sync-off intervals.
|
C NB: could also compute a "blue" spectrum, using the sync-off intervals.
|
||||||
n8=NQ/8
|
n8=NQ/8
|
||||||
@ -52,14 +54,17 @@ C NB: could also compute a "blue" spectrum, using the sync-off intervals.
|
|||||||
red(i)=10.0*red(i)/(8.0*nz)
|
red(i)=10.0*red(i)/(8.0*nz)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
||||||
|
dftol=min(DFTolerance,25)
|
||||||
|
if(nfreeze.eq.1) dftol=DFTolerance
|
||||||
C Find improved value for f0
|
C Find improved value for f0
|
||||||
smax=0.
|
smax=0.
|
||||||
ia=(f0-25.)/df
|
ia=(f0-dftol)/df
|
||||||
ib=(f0+25.)/df
|
ib=(f0+dftol)/df + 0.999
|
||||||
if(NFreeze.eq.1) then
|
! if(NFreeze.eq.1) then
|
||||||
ia=(f0-5.)/df
|
! ia=(f0-5.)/df
|
||||||
ib=(f0+5.)/df
|
! ib=(f0+5.)/df
|
||||||
endif
|
! endif
|
||||||
do i=ia,ib
|
do i=ia,ib
|
||||||
if(s(i).gt.smax) then
|
if(s(i).gt.smax) then
|
||||||
smax=s(i)
|
smax=s(i)
|
||||||
|
11
wsjt.py
11
wsjt.py
@ -574,6 +574,7 @@ def ModeJT6M(event=NONE):
|
|||||||
isync=isync6m
|
isync=isync6m
|
||||||
lsync.configure(text=slabel+str(isync))
|
lsync.configure(text=slabel+str(isync))
|
||||||
shmsg.configure(state=DISABLED)
|
shmsg.configure(state=DISABLED)
|
||||||
|
cbfreeze.configure(state=NORMAL)
|
||||||
itol=5
|
itol=5
|
||||||
inctol()
|
inctol()
|
||||||
ntx.set(1)
|
ntx.set(1)
|
||||||
@ -973,6 +974,14 @@ def mouse_up_g1(event):
|
|||||||
# print event.x
|
# print event.x
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
#------------------------------------------------------ right_arrow
|
||||||
|
def right_arrow(event=NONE):
|
||||||
|
Audio.gcom2.mousedf=Audio.gcom2.mousedf+10
|
||||||
|
|
||||||
|
#------------------------------------------------------ left_arrow
|
||||||
|
def left_arrow(event=NONE):
|
||||||
|
Audio.gcom2.mousedf=Audio.gcom2.mousedf-10
|
||||||
|
|
||||||
#------------------------------------------------------ GenStdMsgs
|
#------------------------------------------------------ GenStdMsgs
|
||||||
def GenStdMsgs(event=NONE):
|
def GenStdMsgs(event=NONE):
|
||||||
t=ToRadio.get().upper().strip()
|
t=ToRadio.get().upper().strip()
|
||||||
@ -1658,6 +1667,8 @@ root.bind_all('<Alt-x>',decode_exclude)
|
|||||||
root.bind_all('<Alt-X>',decode_exclude)
|
root.bind_all('<Alt-X>',decode_exclude)
|
||||||
root.bind_all('<Control-l>',lookup_gen)
|
root.bind_all('<Control-l>',lookup_gen)
|
||||||
root.bind_all('<Control-L>',lookup_gen)
|
root.bind_all('<Control-L>',lookup_gen)
|
||||||
|
root.bind_all('<Left>',left_arrow)
|
||||||
|
root.bind_all('<Right>',right_arrow)
|
||||||
|
|
||||||
text.pack(side=LEFT, fill=X, padx=1)
|
text.pack(side=LEFT, fill=X, padx=1)
|
||||||
sb = Scrollbar(iframe4, orient=VERTICAL, command=text.yview)
|
sb = Scrollbar(iframe4, orient=VERTICAL, command=text.yview)
|
||||||
|
8
wsjt1.f
8
wsjt1.f
@ -197,10 +197,12 @@
|
|||||||
! For waterfall plot
|
! For waterfall plot
|
||||||
call spec2d(dat,jz,nstep,s2,nchan,nz,psavg,sigma)
|
call spec2d(dat,jz,nstep,s2,nchan,nz,psavg,sigma)
|
||||||
if(jz/11025.0.lt.3.9) go to 900
|
if(jz/11025.0.lt.3.9) go to 900
|
||||||
call syncf0(dat,jz,DFTolerance,jstart,f0,smax)
|
|
||||||
if(NFreeze.eq.1) f0=1076.66
|
f0=1076.66
|
||||||
|
if(NFreeze.eq.1) f0=1076.66+mousedf
|
||||||
|
call syncf0(dat,jz,NFreeze,DFTolerance,jstart,f0,smax)
|
||||||
call synct(dat,jz,jstart,f0,smax)
|
call synct(dat,jz,jstart,f0,smax)
|
||||||
call syncf1(dat,jz,jstart,f0,NFreeze,smax,red)
|
call syncf1(dat,jz,jstart,f0,NFreeze,DFTolerance,smax,red)
|
||||||
|
|
||||||
f0a=f0
|
f0a=f0
|
||||||
do i=1,512
|
do i=1,512
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
*font: Arial 9
|
*font: Arial 8
|
||||||
*Label*font: Arial 9
|
*Label*font: Arial 8
|
||||||
*Text*font: "Courier New" 10
|
*Text*font: "Courier New" 9
|
||||||
*background: gray85
|
*background: gray85
|
||||||
*Text*background: white
|
*Text*background: white
|
||||||
*Entry*background: white
|
*Entry*background: white
|
||||||
|
Loading…
x
Reference in New Issue
Block a user