mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-24 10:22:26 -04:00
Merged changes to wsjt.py, specjt.py from tags/release-5.9.2.
Added README_592.TXT and WSJT592.iss. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@85 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
624bcc3cbd
commit
44600fef28
81
README_592.TXT
Executable file
81
README_592.TXT
Executable file
@ -0,0 +1,81 @@
|
|||||||
|
Changes in WSJT 5.9.2: January 10, 2006
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
Enhancements
|
||||||
|
------------
|
||||||
|
|
||||||
|
1. Thread priorities have been adjusted for smoother operation. One
|
||||||
|
result is that there will be fewer audio glitches caused by the
|
||||||
|
Windows O/S paying attention to other programs.
|
||||||
|
|
||||||
|
2. The JT65 decoder has improved immunity to "garbage data," and
|
||||||
|
it exhibits better performance on strong signals.
|
||||||
|
|
||||||
|
3. The FSK441 decoder produces less on-screen gibberish when you do
|
||||||
|
mouse-picked decodes.
|
||||||
|
|
||||||
|
4. The JT6M decoder now makes better use of Freeze and Tol. You can
|
||||||
|
set the value of "Freeze DF" by using the Right/Left arrow keys.
|
||||||
|
|
||||||
|
5. On-screen font sizes can be set by using Windows Notepad to edit
|
||||||
|
the file wsjtrc.win. If your screen has resolution greater than
|
||||||
|
1024 x 768, or if you have old eyes (like mine), you may want to
|
||||||
|
increase the sizes from 8 and 9 (first three lines of the file) to
|
||||||
|
9 and 10, say.
|
||||||
|
|
||||||
|
6. Dividing lines are now provided on the waterfall display between
|
||||||
|
spectra corresponding to wave files read from disk.
|
||||||
|
|
||||||
|
7. The PTT line is explicitly set low on program startup.
|
||||||
|
|
||||||
|
8. The F10 key brings up the SpecJT screen (if it was hidden) and
|
||||||
|
toggles focus between the WSJT and SpecJT screens.
|
||||||
|
|
||||||
|
9. Use the Alt-F keyboard shortcut to toggle "Freeze", and Alt-Z to
|
||||||
|
toggle "Zap".
|
||||||
|
|
||||||
|
10. "Accelerated decoding" HAS BEEN removed from the Setup menu.
|
||||||
|
In effect, it is now always ON.
|
||||||
|
|
||||||
|
|
||||||
|
Bug Fixes:
|
||||||
|
----------
|
||||||
|
1. The use of non-threadsafe code for FFTs caused occasional and
|
||||||
|
unpredictable program crashes. Fixed.
|
||||||
|
|
||||||
|
2. A bug in the JT65 decoder could (rarely) cause large errors in the
|
||||||
|
reported level of strong signals. Fixed.
|
||||||
|
|
||||||
|
3. The program could be made to crash by trying to read a very short
|
||||||
|
wave file. Fixed.
|
||||||
|
|
||||||
|
|
||||||
|
Information for Programmers
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
WSJT is no longer a one-person effort. It has become a full-fledged
|
||||||
|
Open Source project, with an active working group making contributions
|
||||||
|
to future development. Source code is now stored in a public
|
||||||
|
repository under control of the Subversion (SVN) version control
|
||||||
|
system. You can learn more at
|
||||||
|
http://developer.berlios.de/projects/wsjt/.
|
||||||
|
|
||||||
|
The first significant result of the group effort has been to create
|
||||||
|
versions of WSJT that run under the Linux and FreeBSD operating
|
||||||
|
systems. If you are interested in testing and using WSJT on your own
|
||||||
|
Linux or FreeBSD system, we'd like to hear from you.
|
||||||
|
|
||||||
|
If you feel that you can usefully contribute to the future development
|
||||||
|
of WSJT on any platform, we would also like to hear from you!
|
||||||
|
|
||||||
|
The present WSJT working group consists of:
|
||||||
|
|
||||||
|
Diane Bruce, VA3DB
|
||||||
|
James Courtier-Dutton
|
||||||
|
Bob McGwier, N4HY
|
||||||
|
Jonathan Naylor, ON/G4KLX
|
||||||
|
Stewart Nelson, KK7A
|
||||||
|
Joe Taylor, K1JT
|
||||||
|
Kaj Wiik, OH6EH
|
||||||
|
|
||||||
|
|
24
WSJT592.iss
Executable file
24
WSJT592.iss
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
[Setup]
|
||||||
|
AppName=WSJT
|
||||||
|
AppVerName=WSJT Version 5.9.2 r77
|
||||||
|
AppCopyright=Copyright (C) 2001-2005 by Joe Taylor, K1JT
|
||||||
|
DefaultDirName={pf}\WSJT6
|
||||||
|
DefaultGroupName=WSJT6
|
||||||
|
|
||||||
|
[Files]
|
||||||
|
Source: "c:\k1jt\svn\wsjt\release-5.9.2\WSJT6.EXE"; DestDir: "{app}"
|
||||||
|
Source: "c:\k1jt\svn\wsjt\release-5.9.2\README_592.TXT"; DestDir: "{app}"
|
||||||
|
Source: "c:\k1jt\svn\wsjt\release-5.9.2\CALL3.TXT"; DestDir: "{app}"; Flags: onlyifdoesntexist
|
||||||
|
Source: "c:\k1jt\svn\wsjt\release-5.9.2\wsjt.ico"; DestDir: "{app}"; Flags: onlyifdoesntexist
|
||||||
|
Source: "c:\k1jt\svn\wsjt\release-5.9.2\TSKY.DAT"; DestDir: "{app}"; Flags: onlyifdoesntexist
|
||||||
|
Source: "c:\k1jt\svn\wsjt\release-5.9.2\libsamplerate.dll"; DestDir: "{app}"; Flags: onlyifdoesntexist
|
||||||
|
Source: "c:\k1jt\svn\wsjt\release-5.9.2\kvasd.exe"; DestDir: "{app}";
|
||||||
|
Source: "c:\k1jt\svn\wsjt\release-5.9.2\wsjtrc.win"; DestDir: "{app}";
|
||||||
|
Source: "c:\k1jt\svn\wsjt\release-5.9.2\Tutorial_592.txt"; DestDir: "{app}";
|
||||||
|
Source: "c:\k1jt\python\wsjt\rxwav\samples\W8WN_010809_110400.WAV"; DestDir: "{app}\RxWav\Samples\"; Flags: onlyifdoesntexist
|
||||||
|
|
||||||
|
[Icons]
|
||||||
|
Name: "{group}\WSJT6"; Filename: "{app}\WSJT6.EXE"; WorkingDir: {app}
|
||||||
|
Name: "{userdesktop}\WSJT6"; Filename: "{app}\WSJT6.EXE"; WorkingDir: {app}
|
||||||
|
|
||||||
|
|
12
specjt.py
12
specjt.py
@ -19,8 +19,10 @@ from palettes import colormapblue, colormapgray0, colormapHot, \
|
|||||||
|
|
||||||
def hidespecjt():
|
def hidespecjt():
|
||||||
root.withdraw()
|
root.withdraw()
|
||||||
|
g.showspecjt=0
|
||||||
def showspecjt():
|
def showspecjt():
|
||||||
root.deiconify()
|
root.deiconify()
|
||||||
|
g.showspecjt=2
|
||||||
|
|
||||||
if(__name__=="__main__"):
|
if(__name__=="__main__"):
|
||||||
root = Tk()
|
root = Tk()
|
||||||
@ -153,6 +155,7 @@ def df_mark():
|
|||||||
if g.mode[4:5]=='C': fstep=4*fstep
|
if g.mode[4:5]=='C': fstep=4*fstep
|
||||||
|
|
||||||
# Mark sync tone and top JT65 tone (green) and shorthand tones (red)
|
# Mark sync tone and top JT65 tone (green) and shorthand tones (red)
|
||||||
|
if g.mode[:4]=="JT65":
|
||||||
color='green'
|
color='green'
|
||||||
x1=(Audio.gcom2.mousedf + 6.6*fstep)/df + 288.7
|
x1=(Audio.gcom2.mousedf + 6.6*fstep)/df + 288.7
|
||||||
c.create_line(x1-0.5,25,x1-0.5,12,fill=color)
|
c.create_line(x1-0.5,25,x1-0.5,12,fill=color)
|
||||||
@ -202,9 +205,8 @@ def update():
|
|||||||
if isec==0: nscroll=0
|
if isec==0: nscroll=0
|
||||||
if isec==59: newMinute=1
|
if isec==59: newMinute=1
|
||||||
|
|
||||||
if g.showspecjt:
|
if g.showspecjt==1:
|
||||||
showspecjt()
|
showspecjt()
|
||||||
g.showspecjt=0
|
|
||||||
nspeed=nspeed0.get() #Waterfall update rate
|
nspeed=nspeed0.get() #Waterfall update rate
|
||||||
if (nspeed<6 and nspeed00>=6) or (nspeed>=6 and nspeed00<6):
|
if (nspeed<6 and nspeed00>=6) or (nspeed>=6 and nspeed00<6):
|
||||||
draw_axis()
|
draw_axis()
|
||||||
@ -279,6 +281,9 @@ def update():
|
|||||||
nfreeze0=int(Audio.gcom2.nfreeze)
|
nfreeze0=int(Audio.gcom2.nfreeze)
|
||||||
|
|
||||||
if g.mode!=mode0:
|
if g.mode!=mode0:
|
||||||
|
if g.mode[:4]=="JT65" and nspeed0.get()>5: nspeed0.set(3)
|
||||||
|
if g.mode=="FSK441" and nspeed0.get()<6: nspeed0.set(6)
|
||||||
|
if g.mode=="JT6M" and nspeed0.get()<6: nspeed0.set(6)
|
||||||
draw_axis()
|
draw_axis()
|
||||||
mode0=g.mode
|
mode0=g.mode
|
||||||
|
|
||||||
@ -289,6 +294,8 @@ def update():
|
|||||||
if newdat: Audio.gcom2.ndiskdat=0
|
if newdat: Audio.gcom2.ndiskdat=0
|
||||||
Audio.gcom2.nlines=0
|
Audio.gcom2.nlines=0
|
||||||
Audio.gcom2.nflat=nflat.get()
|
Audio.gcom2.nflat=nflat.get()
|
||||||
|
if g.focus==2:
|
||||||
|
root.focus_set()
|
||||||
ltime.after(200,update) #Reset the timer
|
ltime.after(200,update) #Reset the timer
|
||||||
|
|
||||||
#-------------------------------------------------------- draw_axis
|
#-------------------------------------------------------- draw_axis
|
||||||
@ -484,6 +491,7 @@ Audio.audio_init(ndevin,ndevout) #Start the audio stream
|
|||||||
ltime.after(200,update)
|
ltime.after(200,update)
|
||||||
|
|
||||||
root.deiconify()
|
root.deiconify()
|
||||||
|
g.showspecjt=2
|
||||||
if g.Win32: root.iconbitmap("wsjt.ico")
|
if g.Win32: root.iconbitmap("wsjt.ico")
|
||||||
root.title(' SpecJT by K1JT')
|
root.title(' SpecJT by K1JT')
|
||||||
if(__name__=="__main__"):
|
if(__name__=="__main__"):
|
||||||
|
31
wsjt.py
31
wsjt.py
@ -1,4 +1,4 @@
|
|||||||
#----------------------------------------------------------- WSJT
|
#------------------------------------------------------------ WSJT
|
||||||
from Tkinter import *
|
from Tkinter import *
|
||||||
from tkFileDialog import *
|
from tkFileDialog import *
|
||||||
import Pmw
|
import Pmw
|
||||||
@ -95,8 +95,17 @@ g.freeze_decode=0
|
|||||||
g.mode=""
|
g.mode=""
|
||||||
g.ndevin=IntVar()
|
g.ndevin=IntVar()
|
||||||
g.ndevout=IntVar()
|
g.ndevout=IntVar()
|
||||||
|
g.focus=0
|
||||||
#------------------------------------------------------ showspecjt
|
#------------------------------------------------------ showspecjt
|
||||||
def showspecjt(event=NONE):
|
def showspecjt(event=NONE):
|
||||||
|
if g.showspecjt>0:
|
||||||
|
if g.focus>=1:
|
||||||
|
root.focus_set()
|
||||||
|
g.focus=0
|
||||||
|
else:
|
||||||
|
g.focus=2
|
||||||
|
else:
|
||||||
|
g.focus=2
|
||||||
g.showspecjt=1
|
g.showspecjt=1
|
||||||
|
|
||||||
#------------------------------------------------------ restart
|
#------------------------------------------------------ restart
|
||||||
@ -113,6 +122,10 @@ def restart2():
|
|||||||
def toggle_freeze(event=NONE):
|
def toggle_freeze(event=NONE):
|
||||||
nfreeze.set(1-nfreeze.get())
|
nfreeze.set(1-nfreeze.get())
|
||||||
|
|
||||||
|
#------------------------------------------------------ toggle_zap
|
||||||
|
def toggle_zap(event=NONE):
|
||||||
|
nzap.set(1-nzap.get())
|
||||||
|
|
||||||
#------------------------------------------------------ btx (1-6)
|
#------------------------------------------------------ btx (1-6)
|
||||||
def btx1(event=NONE):
|
def btx1(event=NONE):
|
||||||
ntx.set(1)
|
ntx.set(1)
|
||||||
@ -679,6 +692,8 @@ Alt-Q Log QSO
|
|||||||
Alt-S Stop Monitoring or Decoding
|
Alt-S Stop Monitoring or Decoding
|
||||||
Alt-V Save Last
|
Alt-V Save Last
|
||||||
Alt-X Exclude
|
Alt-X Exclude
|
||||||
|
Alt-Z Toggle Zap
|
||||||
|
Right/Left Arrow Increase/decrease Freeze DF
|
||||||
"""
|
"""
|
||||||
Label(scwid,text=t,justify=LEFT).pack(padx=20)
|
Label(scwid,text=t,justify=LEFT).pack(padx=20)
|
||||||
scwid.focus_set()
|
scwid.focus_set()
|
||||||
@ -976,11 +991,15 @@ def mouse_up_g1(event):
|
|||||||
|
|
||||||
#------------------------------------------------------ right_arrow
|
#------------------------------------------------------ right_arrow
|
||||||
def right_arrow(event=NONE):
|
def right_arrow(event=NONE):
|
||||||
Audio.gcom2.mousedf=Audio.gcom2.mousedf+10
|
n=5*int(Audio.gcom2.mousedf/5) + 5
|
||||||
|
if n==Audio.gcom2.mousedf: n=n+5
|
||||||
|
Audio.gcom2.mousedf=n
|
||||||
|
|
||||||
#------------------------------------------------------ left_arrow
|
#------------------------------------------------------ left_arrow
|
||||||
def left_arrow(event=NONE):
|
def left_arrow(event=NONE):
|
||||||
Audio.gcom2.mousedf=Audio.gcom2.mousedf-10
|
n=5*int(Audio.gcom2.mousedf/5)
|
||||||
|
if n==Audio.gcom2.mousedf: n=n-5
|
||||||
|
Audio.gcom2.mousedf=n
|
||||||
|
|
||||||
#------------------------------------------------------ GenStdMsgs
|
#------------------------------------------------------ GenStdMsgs
|
||||||
def GenStdMsgs(event=NONE):
|
def GenStdMsgs(event=NONE):
|
||||||
@ -1665,6 +1684,8 @@ root.bind_all('<Alt-v>',savelast)
|
|||||||
root.bind_all('<Alt-V>',savelast)
|
root.bind_all('<Alt-V>',savelast)
|
||||||
root.bind_all('<Alt-x>',decode_exclude)
|
root.bind_all('<Alt-x>',decode_exclude)
|
||||||
root.bind_all('<Alt-X>',decode_exclude)
|
root.bind_all('<Alt-X>',decode_exclude)
|
||||||
|
root.bind_all('<Alt-z>',toggle_zap)
|
||||||
|
root.bind_all('<Alt-Z>',toggle_zap)
|
||||||
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('<Left>',left_arrow)
|
||||||
@ -1759,11 +1780,11 @@ lsync.grid(column=0,row=0,padx=2,pady=1,sticky='EW')
|
|||||||
Widget.bind(lsync,'<Button-1>',incsync)
|
Widget.bind(lsync,'<Button-1>',incsync)
|
||||||
Widget.bind(lsync,'<Button-3>',decsync)
|
Widget.bind(lsync,'<Button-3>',decsync)
|
||||||
nzap=IntVar()
|
nzap=IntVar()
|
||||||
cbzap=Checkbutton(f5b,text='Zap',variable=nzap)
|
cbzap=Checkbutton(f5b,text='Zap',underline=0,variable=nzap)
|
||||||
cbzap.grid(column=1,row=0,padx=2,pady=1,sticky='W')
|
cbzap.grid(column=1,row=0,padx=2,pady=1,sticky='W')
|
||||||
cbnb=Checkbutton(f5b,text='NB',variable=nblank)
|
cbnb=Checkbutton(f5b,text='NB',variable=nblank)
|
||||||
cbnb.grid(column=1,row=1,padx=2,pady=1,sticky='W')
|
cbnb.grid(column=1,row=1,padx=2,pady=1,sticky='W')
|
||||||
cbfreeze=Checkbutton(f5b,text='Freeze',variable=nfreeze)
|
cbfreeze=Checkbutton(f5b,text='Freeze',underline=0,variable=nfreeze)
|
||||||
cbfreeze.grid(column=1,row=2,padx=2,sticky='W')
|
cbfreeze.grid(column=1,row=2,padx=2,sticky='W')
|
||||||
cbafc=Checkbutton(f5b,text='AFC',variable=nafc)
|
cbafc=Checkbutton(f5b,text='AFC',variable=nafc)
|
||||||
cbafc.grid(column=1,row=3,padx=2,pady=1,sticky='W')
|
cbafc.grid(column=1,row=3,padx=2,pady=1,sticky='W')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user