diff --git a/Makefile.win b/Makefile.win index dc503145c..0206ddac0 100644 --- a/Makefile.win +++ b/Makefile.win @@ -38,7 +38,7 @@ SRCS2F77 = wsjt1.f avesp2.f bzap.f spec441.f spec2d.f mtdecode.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 + moon2.f MoonDop.f sun.f toxyz.f pfxdump.f SRCS2C = resample.c ptt.c igray.c wrapkarn.c diff --git a/WSJT_Source_Code.txt b/WSJT_Source_Code.txt index 094563c92..dd6db58b0 100755 --- a/WSJT_Source_Code.txt +++ b/WSJT_Source_Code.txt @@ -1,5 +1,8 @@ -1 Introduction + WSJT DEVELOPMENT OVERVIEW + ------------------------- +1 Introduction +---------------------------------------------------------------------- WSJT is a computer program designed to facilitate Amateur Radio communication under extreme weak-signal conditions. Three very different coding and modulation methods are provided: one for @@ -9,7 +12,7 @@ for the very challenging EME (Earth-Moon-Earth) path. 2 Program Overview - +---------------------------------------------------------------------- WSJT's user interface is written in Python. The major Python source-code files include: @@ -50,7 +53,7 @@ weak-signal communication. 3 Some Functional Details - +---------------------------------------------------------------------- WSJT execution starts at the top of Python file wsjt.py. The other Python modules are loaded and executed as needed. Fortran routines are called to start a high-priority thread to handle @@ -63,7 +66,7 @@ alternating transmission and reception intervals. 4 Other Open-Source Software used in WSJT - +---------------------------------------------------------------------- WSJT 5.9 uses the following open source libraries: 1. FFTW, by Matteo Frigo and Steven Johnson, for computing Fourier @@ -79,18 +82,18 @@ WSJT 5.9 uses the following open source libraries: 5 Platform-Dependent Notes - +---------------------------------------------------------------------- The Python code should run on any supported Python platform. Most of -the remaining code can be recompiled for Linux or OS/X, instead of -Windows. Platform-dependent versions of FFTW, PortAudio, and -libsamplerate need to be installed. +the remaining code can be compiled for Linux, FreeBSD, unix, or OS/X, +as well as Windows. Platform-dependent versions of FFTW, PortAudio, +and libsamplerate may need to be installed. Methods are provided for creating additional threads and setting their -runtime priorities in both Windows and Linux. +runtime priorities in Windows, Linux, and FreeBSD. 6 Partial List of Functions and Subroutines, and their purposes - +---------------------------------------------------------------------- Routines for audio startup, decoding, display computations blanker.f90 Noise blanker fivehz.f90 Called by PortAudio callback @@ -161,7 +164,7 @@ runtime priorities in both Windows and Linux. FFTs: fftw3.f Fortran definitions for FFTW four2a.f Wrapper to make FFTW look like four2 - four2.f FFT in Fortran + four2.f FFT in Fortran (a;ternative to using FFTW) ps.f Compute power spectrum xfft.f Real to complex FFT wrapper @@ -230,7 +233,7 @@ runtime priorities in both Windows and Linux. 7 Compiling Instructions - +---------------------------------------------------------------------- Scripts are provided for compiling WSJT in both Windows and Linux. They are presently set up to use Compaq Visual Fortran (v6.6) and Microsoft C (v6.0) in Windows, and g95 and gcc in Linux. My @@ -256,11 +259,25 @@ These steps produce a distributable file WSJT6.EXE (Windows) or wsjt6 end user does not need to install Python or any of its other extensions, or the compilers. +A configuration script and Makefile facility is also provided. +Assuming that all of the pre-requisites are properly installed, WSJT +can now be compiled in Windows as follows: -8 Present status (December 28, 2005) + C> copy Makefile.win Makefile + C> nmake -WSJT version 5-9-2 r25 is fully functional in Windows. The Linux version -can be used to decode recorded files, but real-time audio I/O has not -yet been implemented. +In Linux or FreeBSD, do the following: + + $ ./configure --enable-portaudio (or --enable-alsa) + $ make + + +8 Present status (January 17, 2006) +---------------------------------------------------------------------- + +WSJT version 5.9.2 (built from SVN revision 115) has been released for +Windows. It is is fully functional in Linux and BSD, as well, but +presently need to be compiled locally. In due course we plan to +provide distributions for standard *nix distributions. diff --git a/ftn_init.f90 b/ftn_init.f90 index c2107bbf2..b98252410 100644 --- a/ftn_init.f90 +++ b/ftn_init.f90 @@ -18,7 +18,7 @@ !------------------------------------------------ ftn_init subroutine ftn_init - character*1 cjunk + character*1 cjunk,fname*80 include 'gcom1.f90' include 'gcom2.f90' include 'gcom3.f90' @@ -32,6 +32,7 @@ subroutine ftn_init enddo 1 iz=i lenappdir=iz + call pfxdump(appdir(:iz)//'/prefixes.txt') #ifdef Win32 open(11,file=appdir(:iz)//'/decoded.txt',status='unknown', & diff --git a/pfxdump.f b/pfxdump.f new file mode 100644 index 000000000..dc7dbf00f --- /dev/null +++ b/pfxdump.f @@ -0,0 +1,13 @@ + subroutine pfxdump(fname) + character*(*) fname + include 'pfx.f' + + open(11,file=fname,status='unknown') + write(11,1001) pfx + 1001 format('Supported Add-on Prefixes:'/90('_')/(15(a5,1x))) + write(11,1002) sfx + 1002 format(/'Supported Suffixes:'/44('_')/(11('/',a1,2x))) + close(11) + + return + end diff --git a/wsjt.py b/wsjt.py index f1fc4534c..c49949489 100644 --- a/wsjt.py +++ b/wsjt.py @@ -766,6 +766,19 @@ reports may be substituted.) Label(screenf5,text=t,justify=LEFT).pack(padx=20) screenf5.focus_set() +#------------------------------------------------------ prefixes +def prefixes(event=NONE): + pfx=Toplevel(root) + pfx.geometry(msgpos()) + if g.Win32: pfx.iconbitmap("wsjt.ico") + f=open(appdir+'/prefixes.txt','r') + s=f.readlines() + t="" + for i in range(len(s)): + t=t+s[i] + Label(pfx,text=t,justify=LEFT).pack(padx=20) + pfx.focus_set() + #------------------------------------------------------ azdist def azdist(): if len(HisGrid.get().strip())<4: @@ -1607,6 +1620,7 @@ helpbutton['menu'] = helpmenu helpmenu.add('command', label = 'Keyboard shortcuts', command = shortcuts) helpmenu.add('command', label = 'Special mouse commands', command = mouse_commands) helpmenu.add('command', label = 'What message to send?', command = what2send) +helpmenu.add('command', label = 'Add-on prefix list', command = prefixes) helpmenu.add('command', label = 'About WSJT', command = about) #------------------------------------------------------ Graphics areas @@ -1978,7 +1992,9 @@ try: # elif key == 'RxDelay': options.RxDelay.set(value) # elif key == 'TxDelay': options.TxDelay.set(value) elif key == 'IDinterval': options.IDinterval.set(value) - elif key == 'ComPort': options.ComPort.set(value) + elif key == 'ComPort': + options.ComPort.set(value) + Audio.gcom2.nport=int(options.ComPort.get()) elif key == 'Mileskm': options.mileskm.set(value) elif key == 'MsgStyle': options.ireport.set(value) elif key == 'Region': options.iregion.set(value)