mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-27 11:00:32 -04:00 
			
		
		
		
	Summary: Merge in linux branch
svn+ssh://svn.berlios.de/svnroot/repos/wsjt/WSJT/branches/linux merged into svn+ssh://svn.berlios.de/svnroot/repos/wsjt/trunk git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@155 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									be0214af79
								
							
						
					
					
						commit
						c2ceb42b28
					
				
							
								
								
									
										25
									
								
								Makefile.in
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								Makefile.in
									
									
									
									
									
								
							| @ -4,13 +4,14 @@ LDFLAGS	= @LDFLAGS@ | |||||||
| CPPFLAGS = @CPPFLAGS@ | CPPFLAGS = @CPPFLAGS@ | ||||||
| CFLAGS	= @CFLAGS@ | CFLAGS	= @CFLAGS@ | ||||||
| # WSJT specific C flags
 | # WSJT specific C flags
 | ||||||
| CFLAGS	+= -DBIGSYM=1 | CFLAGS	+= -DBIGSYM=1 -fPIC | ||||||
| DEFS = @DEFS@ | DEFS = @DEFS@ | ||||||
| CFLAGS += ${DEFS} | CFLAGS += ${DEFS} | ||||||
| CPPFLAGS += ${DEFS} | CPPFLAGS += ${DEFS} -I. | ||||||
| 
 | 
 | ||||||
| # WSJT specific Fortran flags
 | # WSJT specific Fortran flags
 | ||||||
| FFLAGS += -cpp -Wall -fbounds-check -ftrace=full -fno-second-underscore | FFLAGS += -Wall -fbounds-check -fno-second-underscore -ffixed-line-length-none -fPIC | ||||||
|  | #FFLAGS += -Wall -fbounds-check -fno-second-underscore -fPIC
 | ||||||
| #FFLAGS += -cpp -fno-second-underscore
 | #FFLAGS += -cpp -fno-second-underscore
 | ||||||
| # The default rules
 | # The default rules
 | ||||||
| .c.o: | .c.o: | ||||||
| @ -19,8 +20,8 @@ FFLAGS += -cpp -Wall -fbounds-check -ftrace=full -fno-second-underscore | |||||||
| .f.o: | .f.o: | ||||||
| 	${G95} ${CPPFLAGS} ${FFLAGS} -c -o ${<:.f=.o} $< | 	${G95} ${CPPFLAGS} ${FFLAGS} -c -o ${<:.f=.o} $< | ||||||
| 
 | 
 | ||||||
| .f90.o: | .F90.o: | ||||||
| 	${G95} ${CPPFLAGS} ${FFLAGS} -c -o ${<:.f90=.o} $< | 	${G95} ${CPPFLAGS} ${FFLAGS} -c -o ${<:.F90=.o} $< | ||||||
| 
 | 
 | ||||||
| OS=@OS@ | OS=@OS@ | ||||||
| G95=@G95@ | G95=@G95@ | ||||||
| @ -44,11 +45,11 @@ OBJS1 = JT65code.o nchar.o grid2deg.o packmsg.o packtext.o \ | |||||||
| 
 | 
 | ||||||
| F2PYONLY = ftn_init ftn_quit audio_init spec getfile azdist0 astro0 | F2PYONLY = ftn_init ftn_quit audio_init spec getfile azdist0 astro0 | ||||||
| 
 | 
 | ||||||
| SRCS2F90 = abc441.f90 astro0.f90 audio_init.f90 azdist0.f90 \
 | SRCS2F90 = abc441.F90 astro0.F90 audio_init.F90 azdist0.f90 \
 | ||||||
| 	blanker.f90 decode1.f90 decode2.f90 decode3.f90 ftn_init.f90 \
 | 	blanker.f90 decode1.F90 decode2.f90 decode3.F90 ftn_init.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 | ||||||
| OBJS2F90 = ${SRCS2F90:.f90=.o} | OBJS2F90 = ${SRCS2F90:.f90=.o} | ||||||
| 
 | 
 | ||||||
| SRCS2F77 = wsjt1.f astro.f azdist.f coord.f dcoord.f deg2grid.f \
 | SRCS2F77 = wsjt1.f astro.f azdist.f coord.f dcoord.f deg2grid.f \
 | ||||||
| @ -64,7 +65,7 @@ SRCS2F77 = wsjt1.f astro.f azdist.f coord.f dcoord.f deg2grid.f \ | |||||||
|         interleave63.f k2grid.f limit.f lpf1.f deep65.f morse.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 \
 |         nchar.f packcall.f packgrid.f packmsg.f packtext.f setup65.f \
 | ||||||
|         short65.f slope.f spec2d65.f sync65.f unpackcall.f \
 |         short65.f slope.f spec2d65.f sync65.f unpackcall.f \
 | ||||||
|         unpackgrid.f unpackmsg.f unpacktext.f xcor.f xfft.f wsjt65.f |         unpackgrid.f unpackmsg.f unpacktext.f xcor.f xfft.f xfft2.f wsjt65.f | ||||||
| OBJS2F77 = ${SRCS2F77:.f=.o} | OBJS2F77 = ${SRCS2F77:.f=.o} | ||||||
| 
 | 
 | ||||||
| SRCS2C	= init_rs.c encode_rs.c decode_rs.c | SRCS2C	= init_rs.c encode_rs.c decode_rs.c | ||||||
| @ -101,7 +102,7 @@ wsjt6:	Audio.so #wsjt.spec | |||||||
| # 
 | # 
 | ||||||
| #
 | #
 | ||||||
| Audio.so: $(OBJS2C) $(OBJS3C) $(OBJS2F77) $(SRCS2F90) $(AUDIOSRCS) | Audio.so: $(OBJS2C) $(OBJS3C) $(OBJS2F77) $(SRCS2F90) $(AUDIOSRCS) | ||||||
| 	 ${F2PY} -c --quiet --opt="-O -cpp -D${CFLAGS} \
 | 	 ${F2PY} -c --quiet --opt="-O ${CFLAGS} \
 | ||||||
| 	-fno-second-underscore"	$(OBJS2C) $(OBJS2F77) -m Audio \
 | 	-fno-second-underscore"	$(OBJS2C) $(OBJS2F77) -m Audio \
 | ||||||
| 	--f77exec=${G95} --f90exec=${G95} ${CPPFLAGS} ${LDFLAGS} \
 | 	--f77exec=${G95} --f90exec=${G95} ${CPPFLAGS} ${LDFLAGS} \
 | ||||||
| 	only: $(F2PYONLY) \
 | 	only: $(F2PYONLY) \
 | ||||||
|  | |||||||
							
								
								
									
										121
									
								
								Makefile.linux.g95
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								Makefile.linux.g95
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,121 @@ | |||||||
|  | CC ?= gcc | ||||||
|  | FFLAGS	= -g -O2 | ||||||
|  | LDFLAGS	= -L/usr/local/lib -lpthread  -lasound | ||||||
|  | CPPFLAGS = -I/usr/local/include -I/usr/include/alsa  | ||||||
|  | CFLAGS	=  -Wall -O0 -g  -Wall -O0 -g | ||||||
|  | # WSJT specific C flags
 | ||||||
|  | CFLAGS	+= -DBIGSYM=1 | ||||||
|  | DEFS = -DPACKAGE_NAME=\"wsjt\" -DPACKAGE_TARNAME=\"wsjt\" -DPACKAGE_VERSION=\"5.9.2\" -DPACKAGE_STRING=\"wsjt\ 5.9.2\" -DPACKAGE_BUGREPORT=\"\" -DG95_LIB_PATH=\"/u/g95/g95-install/bin/../lib/gcc-lib/i686-pc-linux-gnu/4.0.1//\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_ERRNO_H=1 -DHAVE_SYS_SYSLOG_H=1 -DHAVE_STDDEF_H=1 -DHAVE_LIBGEN_H=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_WAIT_H=1 -DHAVE_STDIO_H=1 -DHAVE_TERMIOS_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_LINUX_PPDEV_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_FCNTL_H=1 -DHAVE_SYS_IOCTL_H=1 -DTIME_WITH_SYS_TIME=1 -DSTRING_WITH_STRINGS=1 -DSIZEOF_INT64_T=8 -DSIZEOF_LONG_LONG=8 -DNDEBUG=1 -DPREFIX=\"/usr/local/\" -DUSE_SERIAL=1 -DUSE_ALSA=1 -DHAS_ASOUNDLIB_H=1 -DHAS_SOUNDCARD_H=1 -DHAS_SAMPLERATE_H=1  | ||||||
|  | CFLAGS += ${DEFS} | ||||||
|  | CPPFLAGS += ${DEFS} | ||||||
|  | 
 | ||||||
|  | # WSJT specific Fortran flags
 | ||||||
|  | #FFLAGS += -Wall -fbounds-check -fno-second-underscore -ffixed-line-length-none
 | ||||||
|  | FFLAGS += -Wall -fbounds-check -fno-second-underscore  | ||||||
|  | #FFLAGS += -cpp -fno-second-underscore
 | ||||||
|  | # The default rules
 | ||||||
|  | .c.o: | ||||||
|  | 	${CC} ${CPPFLAGS} ${CFLAGS} -c -o ${<:.c=.o} $< | ||||||
|  | 
 | ||||||
|  | .f.o: | ||||||
|  | 	${G95} ${CPPFLAGS} ${FFLAGS} -c -o ${<:.f=.o} $< | ||||||
|  | 
 | ||||||
|  | .F90.o: | ||||||
|  | 	${G95} ${CPPFLAGS} ${FFLAGS} -c -o ${<:.F90=.o} $< | ||||||
|  | 
 | ||||||
|  | OS=Linux | ||||||
|  | G95=/usr/X11R6/bin/g95 | ||||||
|  | COMPILER=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6// | ||||||
|  | #COMPILER=/u/g95/g95-install/bin/../lib/gcc-lib/i686-pc-linux-gnu/4.0.1//
 | ||||||
|  | FC=/usr/X11R6/bin/g95 | ||||||
|  | 
 | ||||||
|  | LDFLAGS	+= -L${COMPILER} | ||||||
|  | LDFLAGS	+= -lg2c | ||||||
|  | 
 | ||||||
|  | PYTHON	?= /usr/X11R6/bin/python | ||||||
|  | RM	?= /usr/X11R6/bin/rm | ||||||
|  | F2PY	= /usr/X11R6/bin/f2py | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | OBJS1 = JT65code.o nchar.o grid2deg.o packmsg.o packtext.o \
 | ||||||
|  | 	packcall.o packgrid.o unpackmsg.o unpacktext.o unpackcall.o \
 | ||||||
|  | 	unpackgrid.o deg2grid.o packdxcc.o chkmsg.o getpfx1.o \
 | ||||||
|  | 	getpfx2.o k2grid.o grid2k.o interleave63.o graycode.o set.o \
 | ||||||
|  | 	igray.o init_rs_int.o encode_rs_int.o decode_rs_int.o \
 | ||||||
|  | 	wrapkarn.o | ||||||
|  | 
 | ||||||
|  | F2PYONLY = ftn_init ftn_quit audio_init spec getfile azdist0 astro0 | ||||||
|  | 
 | ||||||
|  | SRCS2F90 = abc441.F90 astro0.F90 audio_init.F90 azdist0.f90 \
 | ||||||
|  | 	blanker.f90 decode1.F90 decode2.f90 decode3.F90 ftn_init.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 \
 | ||||||
|  | 	wsjtgen.F90 runqqq.F90 fivehz.F90 | ||||||
|  | OBJS2F90 = ${SRCS2F90:.f90=.o} | ||||||
|  | 
 | ||||||
|  | SRCS2F77 = wsjt1.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 pfxdump.f \
 | ||||||
|  |         avesp2.f bzap.f spec441.f spec2d.f mtdecode.f 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 rfile2.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 xfft2.f wsjt65.f | ||||||
|  | OBJS2F77 = ${SRCS2F77:.f=.o} | ||||||
|  | 
 | ||||||
|  | SRCS2C	= init_rs.c encode_rs.c decode_rs.c | ||||||
|  | OBJS2C  = ${SRCS2C:.c=.o} | ||||||
|  | 
 | ||||||
|  | # ok, so far for now
 | ||||||
|  | # Windows start_alsa.c will be a2d.f90 jtaudio.c since it uses portaudio
 | ||||||
|  | #            for *nix start_alsa.c will also be a2d.f90, jtaudio.c
 | ||||||
|  | #               and start_portaudio.c for systems using portaudio
 | ||||||
|  | #            for *nix start_alsa.c will be start_alsa.c for alsa
 | ||||||
|  | #            for *nix start_alsa.c will be start_oss.c for oss
 | ||||||
|  | #
 | ||||||
|  | # ptt_unix.c vs. ptt.c I'll sort out later. 
 | ||||||
|  | # ditto for cutil.c (only used on *nix)
 | ||||||
|  | # --db
 | ||||||
|  | # jtaudio.c/start_threads.c mess will have to be sorted out later
 | ||||||
|  | # to minimise #ifdef's 
 | ||||||
|  | # --db
 | ||||||
|  | # and mostly sorted
 | ||||||
|  | # --db
 | ||||||
|  | #
 | ||||||
|  | SRCS3C	= ptt_unix.c igray.c wrapkarn.c cutil.c | ||||||
|  | OBJS3C  = ${SRCS3C:.c=.o} | ||||||
|  | AUDIOSRCS = start_alsa.c | ||||||
|  | 
 | ||||||
|  | all:	wsjt6 | ||||||
|  | JT65code: $(OBJS1) | ||||||
|  | 	$(FC) -o JT65code $(OBJS1) | ||||||
|  | 
 | ||||||
|  | wsjt6:	Audio.so #wsjt.spec
 | ||||||
|  | #	${PYTHON} c:\python23\installer\Build.py wsjt.spec
 | ||||||
|  | #	${RM} wsjt6
 | ||||||
|  | 
 | ||||||
|  | # 
 | ||||||
|  | #
 | ||||||
|  | Audio.so: $(OBJS2C) $(OBJS3C) $(OBJS2F77) $(SRCS2F90) $(AUDIOSRCS) | ||||||
|  | 	 ${F2PY} -c --quiet --opt="-O -D${CFLAGS} \
 | ||||||
|  | 	-fno-second-underscore"	$(OBJS2C) $(OBJS2F77) -m Audio \
 | ||||||
|  | 	--f77exec=${G95} --f90exec=${G95} ${CPPFLAGS} ${LDFLAGS} \
 | ||||||
|  | 	only: $(F2PYONLY) \
 | ||||||
|  | 	: $(SRCS2F90) \
 | ||||||
|  | 	${SRCS3C} ${AUDIOSRCS} | ||||||
|  | 
 | ||||||
|  | wsjt.spec: wsjt.py astro.py g.py options.py palettes.py smeter.py specjt.py | ||||||
|  | #	${PYTHON} c:\python23\installer\makespec.py --icon wsjt.ico \
 | ||||||
|  | #	--tk --onefile wsjt.py
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | .PHONY : clean | ||||||
|  | clean: | ||||||
|  | 	${RM} -f *.o *.so *~ JT65code wsjt6 | ||||||
|  | 
 | ||||||
							
								
								
									
										120
									
								
								Makefile.linux.gfortran
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								Makefile.linux.gfortran
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,120 @@ | |||||||
|  | CC ?= gcc | ||||||
|  | FFLAGS	= -g -O2 -fPIC | ||||||
|  | LDFLAGS	= -L/usr/local/lib -lpthread  -lasound | ||||||
|  | CPPFLAGS = -I/usr/local/include -I/usr/include/alsa -I. | ||||||
|  | CFLAGS	=  -Wall -O0 -g  -Wall -O0 -g -fPIC | ||||||
|  | # WSJT specific C flags
 | ||||||
|  | CFLAGS	+= -DBIGSYM=1 | ||||||
|  | DEFS = -DPACKAGE_NAME=\"wsjt\" -DPACKAGE_TARNAME=\"wsjt\" -DPACKAGE_VERSION=\"5.9.2\" -DPACKAGE_STRING=\"wsjt\ 5.9.2\" -DPACKAGE_BUGREPORT=\"\" -DG95_LIB_PATH=\"/usr/lib/gcc/x86_64-linux-gnu/4.0.3/\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_ERRNO_H=1 -DHAVE_SYS_SYSLOG_H=1 -DHAVE_STDDEF_H=1 -DHAVE_LIBGEN_H=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_WAIT_H=1 -DHAVE_STDIO_H=1 -DHAVE_TERMIOS_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_LINUX_PPDEV_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_FCNTL_H=1 -DHAVE_SYS_IOCTL_H=1 -DTIME_WITH_SYS_TIME=1 -DSTRING_WITH_STRINGS=1 -DSIZEOF_INT64_T=8 -DSIZEOF_LONG_LONG=8 -DNDEBUG=1 -DPREFIX=\"/usr/local/\" -DUSE_SERIAL=1 -DUSE_ALSA=1 -DHAS_ASOUNDLIB_H=1 -DHAS_SOUNDCARD_H=1  | ||||||
|  | CFLAGS += ${DEFS} | ||||||
|  | CPPFLAGS += ${DEFS} | ||||||
|  | 
 | ||||||
|  | # WSJT specific Fortran flags
 | ||||||
|  | FFLAGS += -Wall -fbounds-check -fno-second-underscore -ffixed-line-length-none | ||||||
|  | #FFLAGS += -Wall -fbounds-check -fno-second-underscore 
 | ||||||
|  | #FFLAGS += -cpp -fno-second-underscore
 | ||||||
|  | # The default rules
 | ||||||
|  | .c.o: | ||||||
|  | 	${CC} ${CPPFLAGS} ${CFLAGS} -c -o ${<:.c=.o} $< | ||||||
|  | 
 | ||||||
|  | .f.o: | ||||||
|  | 	${G95} ${CPPFLAGS} ${FFLAGS} -c -o ${<:.f=.o} $< | ||||||
|  | 
 | ||||||
|  | .F90.o: | ||||||
|  | 	${G95} ${CPPFLAGS} ${FFLAGS} -c -o ${<:.F90=.o} $< | ||||||
|  | 
 | ||||||
|  | OS=Linux | ||||||
|  | G95=/usr/bin/g95 | ||||||
|  | COMPILER=/usr/lib/gcc/x86_64-linux-gnu/4.0.3/ | ||||||
|  | FC=/usr/bin/g95 | ||||||
|  | 
 | ||||||
|  | LDFLAGS	+= -L${COMPILER} | ||||||
|  | LDFLAGS	+= -lg2c | ||||||
|  | 
 | ||||||
|  | PYTHON	?= /usr/bin/python | ||||||
|  | RM	?= /bin/rm | ||||||
|  | F2PY	= /usr/bin/f2py | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | OBJS1 = JT65code.o nchar.o grid2deg.o packmsg.o packtext.o \
 | ||||||
|  | 	packcall.o packgrid.o unpackmsg.o unpacktext.o unpackcall.o \
 | ||||||
|  | 	unpackgrid.o deg2grid.o packdxcc.o chkmsg.o getpfx1.o \
 | ||||||
|  | 	getpfx2.o k2grid.o grid2k.o interleave63.o graycode.o set.o \
 | ||||||
|  | 	igray.o init_rs_int.o encode_rs_int.o decode_rs_int.o \
 | ||||||
|  | 	wrapkarn.o | ||||||
|  | 
 | ||||||
|  | F2PYONLY = ftn_init ftn_quit audio_init spec getfile azdist0 astro0 | ||||||
|  | 
 | ||||||
|  | SRCS2F90 = abc441.F90 astro0.F90 audio_init.F90 azdist0.f90 \
 | ||||||
|  | 	blanker.f90 decode1.F90 decode2.f90 decode3.F90 ftn_init.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 \
 | ||||||
|  | 	wsjtgen.F90 runqqq.F90 fivehz.F90 | ||||||
|  | OBJS2F90 = ${SRCS2F90:.f90=.o} | ||||||
|  | 
 | ||||||
|  | SRCS2F77 = wsjt1.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 pfxdump.f \
 | ||||||
|  |         avesp2.f bzap.f spec441.f spec2d.f mtdecode.f 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 rfile2.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 xfft2.f wsjt65.f | ||||||
|  | OBJS2F77 = ${SRCS2F77:.f=.o} | ||||||
|  | 
 | ||||||
|  | SRCS2C	= init_rs.c encode_rs.c decode_rs.c | ||||||
|  | OBJS2C  = ${SRCS2C:.c=.o} | ||||||
|  | 
 | ||||||
|  | # ok, so far for now
 | ||||||
|  | # Windows start_alsa.c will be a2d.f90 jtaudio.c since it uses portaudio
 | ||||||
|  | #            for *nix start_alsa.c will also be a2d.f90, jtaudio.c
 | ||||||
|  | #               and start_portaudio.c for systems using portaudio
 | ||||||
|  | #            for *nix start_alsa.c will be start_alsa.c for alsa
 | ||||||
|  | #            for *nix start_alsa.c will be start_oss.c for oss
 | ||||||
|  | #
 | ||||||
|  | # ptt_unix.c vs. ptt.c I'll sort out later. 
 | ||||||
|  | # ditto for cutil.c (only used on *nix)
 | ||||||
|  | # --db
 | ||||||
|  | # jtaudio.c/start_threads.c mess will have to be sorted out later
 | ||||||
|  | # to minimise #ifdef's 
 | ||||||
|  | # --db
 | ||||||
|  | # and mostly sorted
 | ||||||
|  | # --db
 | ||||||
|  | #
 | ||||||
|  | SRCS3C	= ptt_unix.c igray.c wrapkarn.c cutil.c | ||||||
|  | OBJS3C  = ${SRCS3C:.c=.o} | ||||||
|  | AUDIOSRCS = start_alsa.c | ||||||
|  | 
 | ||||||
|  | all:	wsjt6 | ||||||
|  | JT65code: $(OBJS1) | ||||||
|  | 	$(FC) -o JT65code $(OBJS1) | ||||||
|  | 
 | ||||||
|  | wsjt6:	Audio.so #wsjt.spec
 | ||||||
|  | #	${PYTHON} c:\python23\installer\Build.py wsjt.spec
 | ||||||
|  | #	${RM} wsjt6
 | ||||||
|  | 
 | ||||||
|  | # 
 | ||||||
|  | #
 | ||||||
|  | Audio.so: $(OBJS2C) $(OBJS3C) $(OBJS2F77) $(SRCS2F90) $(AUDIOSRCS) | ||||||
|  | 	 ${F2PY} -c --opt="-O ${CFLAGS} -fPIC \
 | ||||||
|  | 	-fno-second-underscore"	$(OBJS2C) $(OBJS2F77) -m Audio \
 | ||||||
|  | 	--f77exec=${G95} --f90exec=${G95} ${CPPFLAGS} ${LDFLAGS} \
 | ||||||
|  | 	only: $(F2PYONLY) \
 | ||||||
|  | 	: $(SRCS2F90) \
 | ||||||
|  | 	${SRCS3C} ${AUDIOSRCS} | ||||||
|  | 
 | ||||||
|  | wsjt.spec: wsjt.py astro.py g.py options.py palettes.py smeter.py specjt.py | ||||||
|  | #	${PYTHON} c:\python23\installer\makespec.py --icon wsjt.ico \
 | ||||||
|  | #	--tk --onefile wsjt.py
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | .PHONY : clean | ||||||
|  | clean: | ||||||
|  | 	${RM} -f *.o *.so *~ JT65code wsjt6 | ||||||
|  | 
 | ||||||
							
								
								
									
										2
									
								
								bzap.f
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								bzap.f
									
									
									
									
									
								
							| @ -32,7 +32,7 @@ C  This is a kludge: | |||||||
|          ib=(fzap(izap)+tol)/df |          ib=(fzap(izap)+tol)/df | ||||||
|          smax=0. |          smax=0. | ||||||
|          do i=ia+1,ib+1 |          do i=ia+1,ib+1 | ||||||
|             s=real(c(i))**2 + imag(c(i))**2 |             s=real(c(i))**2 + aimag(c(i))**2 | ||||||
|             if(s.gt.smax) then |             if(s.gt.smax) then | ||||||
|                smax=s |                smax=s | ||||||
|                ipk=i |                ipk=i | ||||||
|  | |||||||
| @ -81,7 +81,7 @@ AC_PATH_PROG(LD, ld) | |||||||
| AC_PATH_PROG(TEST, [test], [test]) | AC_PATH_PROG(TEST, [test], [test]) | ||||||
| AC_PATH_PROG(PYTHON, python) | AC_PATH_PROG(PYTHON, python) | ||||||
| AC_PATH_PROG(F2PY, f2py) | AC_PATH_PROG(F2PY, f2py) | ||||||
| AC_PATH_PROG(G95, g95) | AC_PATH_PROG(G95, gfortran) | ||||||
| 
 | 
 | ||||||
| AC_MSG_CHECKING([g95 lib path]) | AC_MSG_CHECKING([g95 lib path]) | ||||||
| G95_LIB_PATH=`${G95} -print-file-name=` | G95_LIB_PATH=`${G95} -print-file-name=` | ||||||
| @ -324,7 +324,7 @@ AC_SUBST(LDFLAGS, "${LDFLAGS}") | |||||||
| AC_SUBST(CFLAGS) | AC_SUBST(CFLAGS) | ||||||
| 
 | 
 | ||||||
| AC_OUTPUT | AC_OUTPUT | ||||||
| AC_CONFIG_FILES(Makefile) | dnl AC_CONFIG_FILES(Makefile) | ||||||
| 
 | 
 | ||||||
| dnl do summary | dnl do summary | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										57
									
								
								cutil.c
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								cutil.c
									
									
									
									
									
								
							| @ -1,46 +1,45 @@ | |||||||
|  | #include <stdio.h> | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include <unistd.h> | ||||||
|  | #include <sys/types.h> | ||||||
|  | #include <sys/stat.h> | ||||||
|  | #include <fcntl.h> | ||||||
|  | #include <sys/times.h> | ||||||
|  | #include <time.h> | ||||||
|  | #include <sys/time.h> | ||||||
|  | 
 | ||||||
| /*  FORTRAN:  fd = close(filedes)      */ | /*  FORTRAN:  fd = close(filedes)      */ | ||||||
| close_(filedes) | int close_(int *filedes) | ||||||
| int *filedes; |  | ||||||
| { | { | ||||||
| return(close(*filedes)); | return(close(*filedes)); | ||||||
| } | } | ||||||
| /*  FORTRAN:  fd = open(filnam,mode)  */ | /*  FORTRAN:  fd = open(filnam,mode)  */ | ||||||
| open_(filnam,mode) | int open_(char filnam[], int *mode) | ||||||
| char filnam[]; |  | ||||||
| int *mode; |  | ||||||
| { | { | ||||||
|   return(open(filnam,*mode)); |   return(open(filnam,*mode)); | ||||||
| } | } | ||||||
| /* FORTRAN:  fd = creat(filnam,mode) */ | /* FORTRAN:  fd = creat(filnam,mode) */ | ||||||
| creat_(filnam,mode) | int creat_(char filnam[],int *mode) | ||||||
| char filnam[]; |  | ||||||
| int *mode; |  | ||||||
| { | { | ||||||
|   return(creat(filnam,*mode)); |   return(creat(filnam,*mode)); | ||||||
| } | } | ||||||
| /* FORTRAN:  nread = read(fd,buf,n) */ | /* FORTRAN:  nread = read(fd,buf,n) */ | ||||||
| read_(fd,buf,n) | int read_(int *fd, char buf[], int *n) | ||||||
| int *fd,*n; |  | ||||||
| char buf[]; |  | ||||||
| { | { | ||||||
|   return(read(*fd,buf,*n)); |   return(read(*fd,buf,*n)); | ||||||
| } | } | ||||||
| /* FORTRAN:  nwrt = write(fd,buf,n) */ | /* FORTRAN:  nwrt = write(fd,buf,n) */ | ||||||
| write_(fd,buf,n) | int write_(int *fd, char buf[], int *n) | ||||||
| int *fd,*n; |  | ||||||
| char buf[]; |  | ||||||
| { | { | ||||||
|   return(write(*fd,buf,*n)); |   return(write(*fd,buf,*n)); | ||||||
| } | } | ||||||
| /* FORTRAN: ns = lseek(fd,offset,origin) */ | /* FORTRAN: ns = lseek(fd,offset,origin) */ | ||||||
| lseek_(fd,offset,origin) | int lseek_(int *fd,int *offset, int *origin) | ||||||
| int *fd,*offset,*origin; |  | ||||||
| { | { | ||||||
|   return(lseek(*fd,*offset,*origin)); |   return(lseek(*fd,*offset,*origin)); | ||||||
| } | } | ||||||
| /* times(2) */ | /* times(2) */ | ||||||
| times_(buf) | int times_(struct tms *buf) | ||||||
| int buf[]; |  | ||||||
| { | { | ||||||
|   return (times(buf)); |   return (times(buf)); | ||||||
| } | } | ||||||
| @ -53,34 +52,32 @@ int buf[]; | |||||||
| //}
 | //}
 | ||||||
| 
 | 
 | ||||||
| /* usleep(3) */ | /* usleep(3) */ | ||||||
| usleep_(microsec) | int usleep_(unsigned long *microsec) | ||||||
| unsigned long *microsec; |  | ||||||
| { | { | ||||||
|   return (usleep(*microsec)); |   return (usleep(*microsec)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* returns random numbers between 0 and 32767 to FORTRAN program */ | /* returns random numbers between 0 and 32767 to FORTRAN program */ | ||||||
| iran_(arg) | int iran_(int *arg) | ||||||
| int *arg; |  | ||||||
| { | { | ||||||
|   return (rand()); |   return (rand()); | ||||||
| } | } | ||||||
| exit_(n) | int exit_(int *n) | ||||||
| int *n; |  | ||||||
| { | { | ||||||
|   printf("\n\n"); |   printf("\n\n"); | ||||||
|   exit(*n); |   exit(*n); | ||||||
| } | } | ||||||
| #include <time.h> | 
 | ||||||
| time_t time_() | time_t time_(void) | ||||||
| { | { | ||||||
|      return time(0); |      return time(0); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* hrtime() */ | /* hrtime() */ | ||||||
| double hrtime_() | double hrtime_(void) | ||||||
| { | { | ||||||
|   int tv[2],tz[2]; |   struct timeval tv; | ||||||
|   gettimeofday(tv,tz); |   struct timezone tz; | ||||||
|   return(tv[0]+1.e-6*tv[1]); |   gettimeofday(&tv,&tz); | ||||||
|  |   return(tv.tv_sec+1.e-6*tv.tv_usec); | ||||||
| } | } | ||||||
|  | |||||||
| @ -24,7 +24,7 @@ c      real s2(128,646) | |||||||
|       data pua/'0123456789., /#?$ABCDEFGHIJKLMNOPQRSTUVWXYZ'/ |       data pua/'0123456789., /#?$ABCDEFGHIJKLMNOPQRSTUVWXYZ'/ | ||||||
|       data offset/20.6/ |       data offset/20.6/ | ||||||
| 
 | 
 | ||||||
|       ps(zz)=real(zz)**2 + imag(zz)**2          !Power spectrum function |       ps(zz)=real(zz)**2 + aimag(zz)**2          !Power spectrum function | ||||||
| 
 | 
 | ||||||
| C  Convert data to baseband (complex result) using quadrature LO. | C  Convert data to baseband (complex result) using quadrature LO. | ||||||
|       twopi=8*atan(1.d0) |       twopi=8*atan(1.d0) | ||||||
|  | |||||||
| @ -8,7 +8,7 @@ | |||||||
|       character*22 decoded,deepmsg |       character*22 decoded,deepmsg | ||||||
|       character*22 testmsg(2*MAXCALLS + 2 + MAXRPT) |       character*22 testmsg(2*MAXCALLS + 2 + MAXRPT) | ||||||
|       character*15 callgrid(MAXCALLS) |       character*15 callgrid(MAXCALLS) | ||||||
|       character*80 line |       character*180 line | ||||||
|       character*4 rpt(MAXRPT) |       character*4 rpt(MAXRPT) | ||||||
|       logical first |       logical first | ||||||
|       integer ncode(63,2*MAXCALLS) |       integer ncode(63,2*MAXCALLS) | ||||||
| @ -42,8 +42,12 @@ | |||||||
|             if(ichar(grid(3:3)).eq.0) grid(3:3)=' ' |             if(ichar(grid(3:3)).eq.0) grid(3:3)=' ' | ||||||
|             if(ichar(grid(4:4)).eq.0) grid(4:4)=' ' |             if(ichar(grid(4:4)).eq.0) grid(4:4)=' ' | ||||||
|          else |          else | ||||||
|             read(23,1002,end=20) line | C            read(23,'A80',END=20) line    !FIXME: Segfault happened here. | ||||||
|  1002       format(a80) |             read(23,1002,end=20) line    !FIXME: Segfault happened here. | ||||||
|  |  1002       format (A80) | ||||||
|  | C Probably due to line only being 80 chars long, and the read not | ||||||
|  | C limiting the read. | ||||||
|  | C 1002       format(A80) | ||||||
|             if(line(1:2).eq.'//') go to 10 |             if(line(1:2).eq.'//') go to 10 | ||||||
|             i1=index(line,',') |             i1=index(line,',') | ||||||
|             if(i1.lt.4) go to 10 |             if(i1.lt.4) go to 10 | ||||||
							
								
								
									
										4
									
								
								detect.f
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								detect.f
									
									
									
									
									
								
							| @ -19,10 +19,10 @@ C  Compute powers at the tone frequencies using 1-sample steps. | |||||||
|          csum=csum+c(i) |          csum=csum+c(i) | ||||||
|       enddo |       enddo | ||||||
|           |           | ||||||
|       y(1)=real(csum)**2 + imag(csum)**2 |       y(1)=real(csum)**2 + aimag(csum)**2 | ||||||
|       do i=2,npts-(NSPD-1) |       do i=2,npts-(NSPD-1) | ||||||
|          csum=csum-c(i-1)+c(i+NSPD-1) |          csum=csum-c(i-1)+c(i+NSPD-1) | ||||||
|          y(i)=real(csum)**2 + imag(csum)**2 |          y(i)=real(csum)**2 + aimag(csum)**2 | ||||||
|       enddo |       enddo | ||||||
| 
 | 
 | ||||||
|       return |       return | ||||||
|  | |||||||
							
								
								
									
										5
									
								
								fivehz.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								fivehz.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | #include <inttypes.h> | ||||||
|  | 
 | ||||||
|  | void addnoise_(int16_t *n2); | ||||||
|  | void fivehztx_(void); | ||||||
|  | void fivehz_(void); | ||||||
| @ -2,8 +2,8 @@ | |||||||
| !--------------------------------------------------------------------------- | !--------------------------------------------------------------------------- | ||||||
| integer NRXMAX         !Max length of Rx ring buffers | integer NRXMAX         !Max length of Rx ring buffers | ||||||
| integer NTXMAX         !Max length of Tx waveform in samples | integer NTXMAX         !Max length of Tx waveform in samples | ||||||
| parameter(NRXMAX=2048*1024) | parameter(NRXMAX=2097152)  ! =2048*1024 | ||||||
| parameter(NTXMAX=150*11025) | parameter(NTXMAX=1653750)  ! =150*11025 | ||||||
| real*8 tbuf            !Tsec at time of input callback          SoundIn | real*8 tbuf            !Tsec at time of input callback          SoundIn | ||||||
| integer ntrbuf         !(obsolete?) | integer ntrbuf         !(obsolete?) | ||||||
| real*8 Tsec            !Present time                       SoundIn,SoundOut | real*8 Tsec            !Present time                       SoundIn,SoundOut | ||||||
|  | |||||||
| @ -6,7 +6,7 @@ subroutine getfile(fname,len) | |||||||
|   use dflib |   use dflib | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|   parameter (NDMAX=60*11025) |   parameter (NDMAX=661500)  ! =60*11025 | ||||||
|   character*(*) fname |   character*(*) fname | ||||||
|   include 'gcom1.f90' |   include 'gcom1.f90' | ||||||
|   include 'gcom2.f90' |   include 'gcom2.f90' | ||||||
| @ -39,7 +39,7 @@ subroutine horizspec(x,brightness,contrast,a) | |||||||
|      call xfft2(y,nfft) |      call xfft2(y,nfft) | ||||||
|      nq=nfft/4 |      nq=nfft/4 | ||||||
|      do i=1,nq |      do i=1,nq | ||||||
|         ss(i)=real(c(i))**2 + imag(c(i))**2 |         ss(i)=real(c(i))**2 + aimag(c(i))**2 | ||||||
|      enddo |      enddo | ||||||
| 
 | 
 | ||||||
|      p=0. |      p=0. | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								ps.f
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								ps.f
									
									
									
									
									
								
							| @ -16,7 +16,7 @@ | |||||||
|       call xfft(x,nfft) |       call xfft(x,nfft) | ||||||
|       fac=1.0/nfft |       fac=1.0/nfft | ||||||
|       do i=1,nh |       do i=1,nh | ||||||
|          s(i)=fac*(real(c(i))**2 + imag(c(i))**2) |          s(i)=fac*(real(c(i))**2 + aimag(c(i))**2) | ||||||
|       enddo |       enddo | ||||||
| 
 | 
 | ||||||
|       return |       return | ||||||
|  | |||||||
| @ -63,15 +63,18 @@ int fd;			/* Used for both serial and parallel */ | |||||||
| #define TTYNAME "/dev/cuad%d"	/* Use non blocking form */ | #define TTYNAME "/dev/cuad%d"	/* Use non blocking form */ | ||||||
| #else | #else | ||||||
| #include <sys/io.h> | #include <sys/io.h> | ||||||
| #define TTYNAME	"/dev/ttyS%d" | #define TTYNAME	"/dev/ttyUSB%d" | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| /* Not quite right for size but '%d + 1' should be plenty enough -db */ | /* Not quite right for size but '%d + 1' should be plenty enough -db */ | ||||||
| #define TTYNAME_SIZE	sizeof(TTYNAME)+1 | /* As TTYNAME is a string, just at 20 chars do udevd is happier. */ | ||||||
|  | /* E.g. USB serial ports appear as /dev/ttyUSB0 */ | ||||||
|  | #define TTYNAME_SIZE	sizeof(TTYNAME)+20 | ||||||
| 
 | 
 | ||||||
| int | int | ||||||
| ptt_(int *nport, int *ntx, int *iptt) | ptt_(int *nport, int *ntx, int *iptt) | ||||||
| { | { | ||||||
|  |   /* Fixme, nport should be a sting and not a number */ | ||||||
|   static int nopen=0; |   static int nopen=0; | ||||||
|   int control = TIOCM_RTS | TIOCM_DTR; |   int control = TIOCM_RTS | TIOCM_DTR; | ||||||
| 
 | 
 | ||||||
| @ -87,6 +90,7 @@ ptt_(int *nport, int *ntx, int *iptt) | |||||||
|     s[TTYNAME_SIZE] = '\0'; |     s[TTYNAME_SIZE] = '\0'; | ||||||
| 
 | 
 | ||||||
|     /* open the device */ |     /* open the device */ | ||||||
|  |     printf("Opening %s\n", s); | ||||||
|     if ((fd = open(s, O_RDWR | O_NDELAY)) < 0) { |     if ((fd = open(s, O_RDWR | O_NDELAY)) < 0) { | ||||||
|       fprintf(stderr, "Can't open %s.\n", s); |       fprintf(stderr, "Can't open %s.\n", s); | ||||||
|       return(1); |       return(1); | ||||||
|  | |||||||
							
								
								
									
										16
									
								
								setup65.f
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								setup65.f
									
									
									
									
									
								
							| @ -52,13 +52,17 @@ C  Determine the reference symbols for each data symbol. | |||||||
|          m=mdat(k) |          m=mdat(k) | ||||||
|          mref(k,1)=mr1 |          mref(k,1)=mr1 | ||||||
|          do n=1,10                     !Get ref symbol before data |          do n=1,10                     !Get ref symbol before data | ||||||
|             if((m-n.gt.0) .and. pr(m-n).gt.0.0) go to 10 |             if((m-n).gt.0) then | ||||||
|  |                if (pr(m-n).gt.0.0) go to 10 | ||||||
|  |             endif | ||||||
|          enddo |          enddo | ||||||
|          go to 12 |          go to 12 | ||||||
|  10      mref(k,1)=m-n |  10      mref(k,1)=m-n | ||||||
|  12      mref(k,2)=mr2 |  12      mref(k,2)=mr2 | ||||||
|          do n=1,10                     !Get ref symbol after data |          do n=1,10                     !Get ref symbol after data | ||||||
|             if((m+n).le.nsym .and. pr(m+n).gt.0.0) go to 20 |             if((m+n).le.nsym) then | ||||||
|  |                if (pr(m+n).gt.0.0) go to 20 | ||||||
|  |             endif | ||||||
|          enddo |          enddo | ||||||
|          go to 22 |          go to 22 | ||||||
|  20      mref(k,2)=m+n |  20      mref(k,2)=m+n | ||||||
| @ -82,13 +86,17 @@ C  Now do it all again, using opposite logic on pr(i) | |||||||
|          m=mdat2(k) |          m=mdat2(k) | ||||||
|          mref2(k,1)=mr1 |          mref2(k,1)=mr1 | ||||||
|          do n=1,10 |          do n=1,10 | ||||||
|             if((m-n.gt.0) .and. pr(m-n).lt.0.0) go to 110 |             if((m-n).gt.0) then | ||||||
|  |                if (pr(m-n).lt.0.0) go to 110 | ||||||
|  |             endif | ||||||
|          enddo |          enddo | ||||||
|          go to 112 |          go to 112 | ||||||
|  110      mref2(k,1)=m-n |  110      mref2(k,1)=m-n | ||||||
|  112      mref2(k,2)=mr2 |  112      mref2(k,2)=mr2 | ||||||
|          do n=1,10 |          do n=1,10 | ||||||
|             if((m+n).le.nsym .and. pr(m+n).lt.0.0) go to 120 |             if((m+n).le.nsym) then | ||||||
|  |                if (pr(m+n).lt.0.0) go to 120 | ||||||
|  |             endif | ||||||
|          enddo |          enddo | ||||||
|          go to 122 |          go to 122 | ||||||
|  120     mref2(k,2)=m+n |  120     mref2(k,2)=m+n | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								spec.f90
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								spec.f90
									
									
									
									
									
								
							| @ -141,7 +141,7 @@ subroutine spec(brightness,contrast,logmap,ngain,nspeed,a) | |||||||
|   call xfft2(x,nfft) |   call xfft2(x,nfft) | ||||||
| 
 | 
 | ||||||
|   do i=1,nq                               !Accumulate power spectrum |   do i=1,nq                               !Accumulate power spectrum | ||||||
|      ss(i)=ss(i) + real(c(i))**2 + imag(c(i))**2 |      ss(i)=ss(i) + real(c(i))**2 + aimag(c(i))**2 | ||||||
|   enddo |   enddo | ||||||
|   nsum=nsum+1 |   nsum=nsum+1 | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								spec2d.f
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								spec2d.f
									
									
									
									
									
								
							| @ -34,14 +34,14 @@ C  bins are shifted down 5 bins from their natural positions. | |||||||
| 
 | 
 | ||||||
| 	   sum=0. | 	   sum=0. | ||||||
| 	   do i=1,NQ | 	   do i=1,NQ | ||||||
| 	      s2(i,n)=real(c(5+i))**2 + imag(c(5+i))**2 | 	      s2(i,n)=real(c(5+i))**2 + aimag(c(5+i))**2 | ||||||
| 	      sum=sum+s2(i,n) | 	      sum=sum+s2(i,n) | ||||||
| 	   enddo | 	   enddo | ||||||
| 	   s(n)=sum/NQ | 	   s(n)=sum/NQ | ||||||
| 
 | 
 | ||||||
| C  Accumulate average spectrum for the whole file. | C  Accumulate average spectrum for the whole file. | ||||||
| 	   do i=1,nh | 	   do i=1,nh | ||||||
| 	      psavg0(i) = psavg0(i)+ real(c(i))**2 + imag(c(i))**2 | 	      psavg0(i) = psavg0(i)+ real(c(i))**2 + aimag(c(i))**2 | ||||||
| 	   enddo | 	   enddo | ||||||
| 	enddo | 	enddo | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -43,7 +43,7 @@ C  Mix sync tone down to f=5*df (==> bin 6 of array cx, after FFT) | |||||||
| 
 | 
 | ||||||
|                call four2a(cx,nfft,1,-1,1) |                call four2a(cx,nfft,1,-1,1) | ||||||
|                do i=1,77 |                do i=1,77 | ||||||
|                   s(i)=s(i) + real(cx(i))**2 + imag(cx(i))**2 |                   s(i)=s(i) + real(cx(i))**2 + aimag(cx(i))**2 | ||||||
|                enddo |                enddo | ||||||
| 
 | 
 | ||||||
|             else |             else | ||||||
|  | |||||||
| @ -18,7 +18,7 @@ C  Returns spectral array and frequency of peak value. | |||||||
| 	   call move(dat(j),x,NFFT) | 	   call move(dat(j),x,NFFT) | ||||||
| 	   call xfft(x,NFFT) | 	   call xfft(x,NFFT) | ||||||
| 	   do i=1,NH | 	   do i=1,NH | ||||||
| 	      s(i)=s(i)+real(c(i))**2 + imag(c(i))**2 | 	      s(i)=s(i)+real(c(i))**2 + aimag(c(i))**2 | ||||||
| 	   enddo | 	   enddo | ||||||
| 	enddo | 	enddo | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								ssort.f
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								ssort.f
									
									
									
									
									
								
							| @ -19,7 +19,7 @@ c            = -1  means sort x in decreasing order (ignoring y) | |||||||
| c            = -2  means sort x in decreasing order and carry y along. | c            = -2  means sort x in decreasing order and carry y along. | ||||||
| 
 | 
 | ||||||
|       integer kflag, n |       integer kflag, n | ||||||
|       real x(*), y(*) |       real x(n), y(n) | ||||||
|       real r, t, tt, tty, ty |       real r, t, tt, tty, ty | ||||||
|       integer i, ij, j, k, kk, l, m, nn |       integer i, ij, j, k, kk, l, m, nn | ||||||
|       integer il(21), iu(21) |       integer il(21), iu(21) | ||||||
|  | |||||||
							
								
								
									
										40
									
								
								start_alsa.c
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								start_alsa.c
									
									
									
									
									
								
							| @ -4,9 +4,13 @@ | |||||||
| #include <alsa/asoundlib.h> | #include <alsa/asoundlib.h> | ||||||
| #include <inttypes.h> | #include <inttypes.h> | ||||||
| #include <time.h> | #include <time.h> | ||||||
|  | #include <sys/time.h> | ||||||
|  | #include "fivehz.h" | ||||||
| 
 | 
 | ||||||
| #if 0 | #if 1 | ||||||
| #define ALSA_LOG | #define ALSA_LOG | ||||||
|  | #endif | ||||||
|  | #if 0 | ||||||
| #define ALSA_LOG_BUFFERS | #define ALSA_LOG_BUFFERS | ||||||
| #endif | #endif | ||||||
| #if 0 | #if 0 | ||||||
| @ -22,7 +26,7 @@ typedef struct alsa_driver_s { | |||||||
| 	int		 open_mode; | 	int		 open_mode; | ||||||
| 	int		 has_pause_resume; | 	int		 has_pause_resume; | ||||||
| 	int		 is_paused; | 	int		 is_paused; | ||||||
| 	int32_t		 output_sample_rate, input_sample_rate; | 	uint32_t		 output_sample_rate, input_sample_rate; | ||||||
| 	double		 sample_rate_factor; | 	double		 sample_rate_factor; | ||||||
| 	uint32_t	 num_channels; | 	uint32_t	 num_channels; | ||||||
| 	uint32_t	 bits_per_sample; | 	uint32_t	 bits_per_sample; | ||||||
| @ -75,7 +79,7 @@ static int ao_alsa_open(alsa_driver_t *this_gen, int32_t *input_rate, snd_pcm_st | |||||||
|   int                   err, dir; |   int                   err, dir; | ||||||
|   int                 open_mode=1; /* NONBLOCK */ |   int                 open_mode=1; /* NONBLOCK */ | ||||||
|   /* int                   open_mode=0;  BLOCK */ |   /* int                   open_mode=0;  BLOCK */ | ||||||
|   int32_t            rate=*input_rate; |   uint32_t            rate=*input_rate; | ||||||
|   this->input_sample_rate=*input_rate; |   this->input_sample_rate=*input_rate; | ||||||
| 
 | 
 | ||||||
|   snd_pcm_hw_params_alloca(¶ms); |   snd_pcm_hw_params_alloca(¶ms); | ||||||
| @ -83,7 +87,12 @@ static int ao_alsa_open(alsa_driver_t *this_gen, int32_t *input_rate, snd_pcm_st | |||||||
|   err = snd_output_stdio_attach(&jcd_out, stdout, 0); |   err = snd_output_stdio_attach(&jcd_out, stdout, 0); | ||||||
|    |    | ||||||
|   this->num_channels = 2; |   this->num_channels = 2; | ||||||
|   pcm_device="default"; |   if (direction == SND_PCM_STREAM_PLAYBACK) { | ||||||
|  |     pcm_device="plug:front"; | ||||||
|  |   } else { | ||||||
|  |     pcm_device="default"; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
| #ifdef ALSA_LOG | #ifdef ALSA_LOG | ||||||
|   printf("audio_alsa_out: Audio Device name = %s\n",pcm_device); |   printf("audio_alsa_out: Audio Device name = %s\n",pcm_device); | ||||||
|   printf("audio_alsa_out: Number of channels = %d\n",this->num_channels); |   printf("audio_alsa_out: Number of channels = %d\n",this->num_channels); | ||||||
| @ -114,8 +123,8 @@ static int ao_alsa_open(alsa_driver_t *this_gen, int32_t *input_rate, snd_pcm_st | |||||||
|    */ |    */ | ||||||
|   err = snd_pcm_hw_params_any(this->audio_fd, params); |   err = snd_pcm_hw_params_any(this->audio_fd, params); | ||||||
|   if (err < 0) { |   if (err < 0) { | ||||||
|     printf ("audio_alsa_out: broken configuration for this PCM: no configurations available: %s\n"), |     printf ("audio_alsa_out: broken configuration for this PCM: no configurations available: %s\n", | ||||||
| 	     snd_strerror(err); | 	     snd_strerror(err)); | ||||||
|     goto close; |     goto close; | ||||||
|   } |   } | ||||||
|   /* set interleaved access */ |   /* set interleaved access */ | ||||||
| @ -378,7 +387,7 @@ int playback_callback(alsa_driver_t *alsa_driver_playback) { | |||||||
| 	result = snd_pcm_writen(this->audio_fd, alsa_playback_buffers, this->period_size); | 	result = snd_pcm_writen(this->audio_fd, alsa_playback_buffers, this->period_size); | ||||||
| 	this->tx_offset += this->period_size; | 	this->tx_offset += this->period_size; | ||||||
| 	if (result != this->period_size) { | 	if (result != this->period_size) { | ||||||
| 		printf("Playback write failed. Expected %d samples, sent only %d\n", this->period_size, result); | 		printf("Playback write failed. Expected %lu samples, sent only %d\n", this->period_size, result); | ||||||
| #ifdef ALSA_PLAYBACK_LOG | #ifdef ALSA_PLAYBACK_LOG | ||||||
| 		snd_pcm_status_t *pcm_stat; | 		snd_pcm_status_t *pcm_stat; | ||||||
| 		snd_pcm_status_alloca(&pcm_stat); | 		snd_pcm_status_alloca(&pcm_stat); | ||||||
| @ -387,6 +396,7 @@ int playback_callback(alsa_driver_t *alsa_driver_playback) { | |||||||
| #endif | #endif | ||||||
| 	} | 	} | ||||||
|   	fivehztx_();                             //Call fortran routine
 |   	fivehztx_();                             //Call fortran routine
 | ||||||
|  | 	return result; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int capture_callback(alsa_driver_t *alsa_driver_capture) { | int capture_callback(alsa_driver_t *alsa_driver_capture) { | ||||||
| @ -431,6 +441,7 @@ int capture_callback(alsa_driver_t *alsa_driver_capture) { | |||||||
|         snd_pcm_status_dump(pcm_stat, jcd_out); |         snd_pcm_status_dump(pcm_stat, jcd_out); | ||||||
| #endif | #endif | ||||||
| 	fivehz_();                             //Call fortran routine
 | 	fivehz_();                             //Call fortran routine
 | ||||||
|  | 	return result; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int playback_xrun(alsa_driver_t *alsa_driver_playback) { | int playback_xrun(alsa_driver_t *alsa_driver_playback) { | ||||||
| @ -441,6 +452,7 @@ int playback_xrun(alsa_driver_t *alsa_driver_playback) { | |||||||
| 	snd_pcm_status(this->audio_fd, pcm_stat); | 	snd_pcm_status(this->audio_fd, pcm_stat); | ||||||
|         snd_pcm_status_dump(pcm_stat, jcd_out); |         snd_pcm_status_dump(pcm_stat, jcd_out); | ||||||
| 	snd_pcm_prepare(this->audio_fd); | 	snd_pcm_prepare(this->audio_fd); | ||||||
|  | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int capture_xrun(alsa_driver_t *alsa_driver_capture) { | int capture_xrun(alsa_driver_t *alsa_driver_capture) { | ||||||
| @ -450,6 +462,7 @@ int capture_xrun(alsa_driver_t *alsa_driver_capture) { | |||||||
| 	printf("capture xrun\n"); | 	printf("capture xrun\n"); | ||||||
| 	snd_pcm_status(this->audio_fd, pcm_stat); | 	snd_pcm_status(this->audio_fd, pcm_stat); | ||||||
|         snd_pcm_status_dump(pcm_stat, jcd_out); |         snd_pcm_status_dump(pcm_stat, jcd_out); | ||||||
|  | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ao_alsa_loop(void *iarg) { | void ao_alsa_loop(void *iarg) { | ||||||
| @ -478,9 +491,9 @@ void ao_alsa_loop(void *iarg) { | |||||||
| 	capture_index = nfds; | 	capture_index = nfds; | ||||||
| 	nfds += capture_nfds; | 	nfds += capture_nfds; | ||||||
| 	while(1) { | 	while(1) { | ||||||
| 		if (poll (pfd, nfds, 100000) < 0) { | 		if (poll (pfd, nfds, 200000) < 0) { | ||||||
| 			printf("poll failed\n"); | 			printf("poll failed\n"); | ||||||
| 			return; | 			continue; | ||||||
| 		} | 		} | ||||||
| 		snd_pcm_poll_descriptors_revents(alsa_driver_playback.audio_fd, &pfd[0], playback_nfds, &playback_revents); | 		snd_pcm_poll_descriptors_revents(alsa_driver_playback.audio_fd, &pfd[0], playback_nfds, &playback_revents); | ||||||
| 		snd_pcm_poll_descriptors_revents(alsa_driver_capture.audio_fd, &pfd[capture_index], capture_nfds, &capture_revents); | 		snd_pcm_poll_descriptors_revents(alsa_driver_capture.audio_fd, &pfd[capture_index], capture_nfds, &capture_revents); | ||||||
| @ -506,7 +519,7 @@ void ao_alsa_loop(void *iarg) { | |||||||
| 	return; | 	return; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| extern void decode1_(int *iarg); | void decode1_(void *iarg); | ||||||
| 
 | 
 | ||||||
| int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[], | int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[], | ||||||
| 	int *nbuflen, int *iwrite, short iwave[], | 	int *nbuflen, int *iwrite, short iwave[], | ||||||
| @ -517,7 +530,7 @@ int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[], | |||||||
| { | { | ||||||
|   pthread_t thread1,thread2; |   pthread_t thread1,thread2; | ||||||
|   int iret1,iret2; |   int iret1,iret2; | ||||||
|   int iarg1 = 1,iarg2 = 2; |   int iarg1 = 1; | ||||||
|   //int32_t rate=11025;
 |   //int32_t rate=11025;
 | ||||||
|   int32_t rate=*nfsample; |   int32_t rate=*nfsample; | ||||||
|   alsa_driver_capture.app_buffer_y1 = y1; |   alsa_driver_capture.app_buffer_y1 = y1; | ||||||
| @ -537,7 +550,7 @@ int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[], | |||||||
|   alsa_driver_playback.transmitting = Transmitting; |   alsa_driver_playback.transmitting = Transmitting; | ||||||
|   alsa_driver_playback.ndsec = ndsec; |   alsa_driver_playback.ndsec = ndsec; | ||||||
|   //  printf("start_threads: creating thread for decode1\n");
 |   //  printf("start_threads: creating thread for decode1\n");
 | ||||||
|   iret1 = pthread_create(&thread1,NULL,decode1_,&iarg1); |   iret1 = pthread_create(&thread1,NULL,(void*)&decode1_,&iarg1); | ||||||
| /* Open audio card. */ | /* Open audio card. */ | ||||||
|   printf("Using ALSA sound.\n"); |   printf("Using ALSA sound.\n"); | ||||||
|   ao_alsa_open(&alsa_driver_playback, &rate, SND_PCM_STREAM_PLAYBACK); |   ao_alsa_open(&alsa_driver_playback, &rate, SND_PCM_STREAM_PLAYBACK); | ||||||
| @ -546,9 +559,10 @@ int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[], | |||||||
| /*
 | /*
 | ||||||
|  * Start audio io thread |  * Start audio io thread | ||||||
|  */ |  */ | ||||||
|   iret2 = pthread_create(&thread2, NULL, ao_alsa_loop, NULL); |   iret2 = pthread_create(&thread2, NULL, (void *)&ao_alsa_loop, NULL); | ||||||
|   snd_pcm_prepare(alsa_driver_capture.audio_fd); |   snd_pcm_prepare(alsa_driver_capture.audio_fd); | ||||||
|   snd_pcm_start(alsa_driver_capture.audio_fd); |   snd_pcm_start(alsa_driver_capture.audio_fd); | ||||||
|   snd_pcm_prepare(alsa_driver_playback.audio_fd); |   snd_pcm_prepare(alsa_driver_playback.audio_fd); | ||||||
|   //snd_pcm_start(alsa_driver_playback.audio_fd);
 |   //snd_pcm_start(alsa_driver_playback.audio_fd);
 | ||||||
|  |   return 0; | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								sync.f
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								sync.f
									
									
									
									
									
								
							| @ -9,6 +9,8 @@ C  before decimation by NSPD. | |||||||
|       real y3(npts) |       real y3(npts) | ||||||
|       real y4(npts) |       real y4(npts) | ||||||
|       real zf(NSPD) |       real zf(NSPD) | ||||||
|  |       real tmp1 | ||||||
|  |       real tmp2 | ||||||
|       complex csum |       complex csum | ||||||
|       integer nsum(NSPD) |       integer nsum(NSPD) | ||||||
|       real z(65538)                            !Ready for FSK110 |       real z(65538)                            !Ready for FSK110 | ||||||
| @ -51,7 +53,7 @@ C  Now find the apparent baud rate. | |||||||
|       ia=391.0/df                                !Was 341/df |       ia=391.0/df                                !Was 341/df | ||||||
|       ib=491.0/df                                !Was 541/df |       ib=491.0/df                                !Was 541/df | ||||||
|       do i=ia,ib |       do i=ia,ib | ||||||
|          z(i)=real(cz(i))**2 + imag(cz(i))**2 |          z(i)=real(cz(i))**2 + aimag(cz(i))**2 | ||||||
|          if(z(i).gt.zmax) then |          if(z(i).gt.zmax) then | ||||||
|             zmax=z(i) |             zmax=z(i) | ||||||
|             baud=df*i |             baud=df*i | ||||||
| @ -64,7 +66,9 @@ C  Find phase of signal at 441 Hz. | |||||||
|          pha=j*twopi/NSPD |          pha=j*twopi/NSPD | ||||||
|          csum=csum+zf(j)*cmplx(cos(pha),-sin(pha)) |          csum=csum+zf(j)*cmplx(cos(pha),-sin(pha)) | ||||||
|       enddo |       enddo | ||||||
|       pha=-atan2(imag(csum),real(csum)) |       tmp1=aimag(csum) | ||||||
|  |       tmp2=real(csum) | ||||||
|  |       pha=-atan2(tmp1,tmp2) | ||||||
|       jpk=nint(NSPD*pha/twopi) |       jpk=nint(NSPD*pha/twopi) | ||||||
|       if(jpk.lt.1) jpk=jpk+NSPD |       if(jpk.lt.1) jpk=jpk+NSPD | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								syncf0.f
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								syncf0.f
									
									
									
									
									
								
							| @ -10,7 +10,7 @@ C  Finds sync tone and determines aproximate values for jstart and f0. | |||||||
|       complex z |       complex z | ||||||
|       equivalence (x,cx) |       equivalence (x,cx) | ||||||
| 
 | 
 | ||||||
|       ps(z)=real(z)**2 + imag(z)**2          !Power spectrum function |       ps(z)=real(z)**2 + aimag(z)**2          !Power spectrum function | ||||||
| 
 | 
 | ||||||
|       call zero(s2,6*128)                    !Clear average |       call zero(s2,6*128)                    !Clear average | ||||||
|       df=11025./512. |       df=11025./512. | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								syncf1.f
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								syncf1.f
									
									
									
									
									
								
							| @ -17,7 +17,7 @@ C  Returns a refined value of f0, the sync-tone frequency. | |||||||
|       complex z |       complex z | ||||||
|       equivalence (x,c) |       equivalence (x,c) | ||||||
| 
 | 
 | ||||||
|       ps(z)=real(z)**2 + imag(z)**2          !Power spectrum ASF |       ps(z)=real(z)**2 + aimag(z)**2          !Power spectrum ASF | ||||||
| 
 | 
 | ||||||
| C  Accumulate a high-resolution average spectrum | C  Accumulate a high-resolution average spectrum | ||||||
|       df=11025.0/NFFT |       df=11025.0/NFFT | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								synct.f
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								synct.f
									
									
									
									
									
								
							| @ -10,7 +10,7 @@ C  Gets a refined value of jstart. | |||||||
|       complex c,c1,zz |       complex c,c1,zz | ||||||
|       common/hcom/c(NMAX) |       common/hcom/c(NMAX) | ||||||
| 
 | 
 | ||||||
|       ps(zz)=real(zz)**2 + imag(zz)**2          !Power spectrum function |       ps(zz)=real(zz)**2 + aimag(zz)**2          !Power spectrum function | ||||||
| 
 | 
 | ||||||
| C  Convert data to baseband (complex result) using quadrature LO. | C  Convert data to baseband (complex result) using quadrature LO. | ||||||
|       twopi=8*atan(1.d0) |       twopi=8*atan(1.d0) | ||||||
|  | |||||||
							
								
								
									
										17
									
								
								wsjt.py
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								wsjt.py
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | |||||||
| #------------------------------------------------------------------ WSJT | #------------------------------------------------------------------- WSJT | ||||||
| from Tkinter import * | from Tkinter import * | ||||||
| from tkFileDialog import * | from tkFileDialog import * | ||||||
| import Pmw | import Pmw | ||||||
| @ -1279,13 +1279,14 @@ def update(): | |||||||
|         azdist() |         azdist() | ||||||
|         g.nfreq=nfreq.get() |         g.nfreq=nfreq.get() | ||||||
| 
 | 
 | ||||||
|         g.AzSun,g.ElSun,g.AzMoon,g.ElMoon,g.AzMoonB,g.ElMoonB,g.ntsky, \ |         if Audio.gcom2.ndecoding==0: | ||||||
|             g.ndop,g.ndop00,g.dbMoon,g.RAMoon,g.DecMoon,g.HA8,g.Dgrd,  \ |             g.AzSun,g.ElSun,g.AzMoon,g.ElMoon,g.AzMoonB,g.ElMoonB,g.ntsky, \ | ||||||
|             g.sd,g.poloffset,g.MaxNR,g.dfdt,g.dfdt0,g.RaAux,g.DecAux, \ |                 g.ndop,g.ndop00,g.dbMoon,g.RAMoon,g.DecMoon,g.HA8,g.Dgrd,  \ | ||||||
|             g.AzAux,g.ElAux = Audio.astro0(utc[0],utc[1],utc[2],  \ |                 g.sd,g.poloffset,g.MaxNR,g.dfdt,g.dfdt0,g.RaAux,g.DecAux, \ | ||||||
|             utchours,nfreq.get(),options.MyGrid.get().upper(), \ |                 g.AzAux,g.ElAux = Audio.astro0(utc[0],utc[1],utc[2],  \ | ||||||
|                 options.auxra.get()+'         '[:9],     \ |                 utchours,nfreq.get(),options.MyGrid.get().upper(), \ | ||||||
|                 options.auxdec.get()+'         '[:9]) |                     options.auxra.get()+'         '[:9],     \ | ||||||
|  |                     options.auxdec.get()+'         '[:9]) | ||||||
| 
 | 
 | ||||||
|         if mode.get()[:4]=='JT65' or mode.get()[:2]=='CW' : |         if mode.get()[:4]=='JT65' or mode.get()[:2]=='CW' : | ||||||
|             graph2.delete(ALL) |             graph2.delete(ALL) | ||||||
|  | |||||||
| @ -12,7 +12,7 @@ subroutine wsjtgen | |||||||
|   parameter (NMSGMAX=28)             !Max characters per message |   parameter (NMSGMAX=28)             !Max characters per message | ||||||
|   parameter (NSPD=25)                !Samples per dit |   parameter (NSPD=25)                !Samples per dit | ||||||
|   parameter (NDPC=3)                 !Dits per character |   parameter (NDPC=3)                 !Dits per character | ||||||
|   parameter (NWMAX=60*11025)         !Max length of waveform |   parameter (NWMAX=661500)         !Max length of waveform = 60*11025 | ||||||
|   parameter (NTONES=4)               !Number of FSK tones |   parameter (NTONES=4)               !Number of FSK tones | ||||||
| 
 | 
 | ||||||
|   integer   itone(84) |   integer   itone(84) | ||||||
| @ -74,10 +74,13 @@ subroutine wsjtgen | |||||||
|            go to 999 |            go to 999 | ||||||
| 14         read(18) hdr | 14         read(18) hdr | ||||||
|            if(ndata.gt.NTxMax) ndata=NTxMax |            if(ndata.gt.NTxMax) ndata=NTxMax | ||||||
|            nwave=ndata |            call rfile(18,iwave,ndata,ierr) | ||||||
|            call rfile(18,iwave,2*nwave,ierr) |  | ||||||
|            close(18) |            close(18) | ||||||
|            if(ierr.ne.0) print*,'Error reading test file ',msg(2:) |            if(ierr.ne.0) print*,'Error reading test file ',msg(2:) | ||||||
|  |            nwave=ndata/2 | ||||||
|  |            do i=nwave,NTXMAX | ||||||
|  |               iwave(i)=0 | ||||||
|  |            enddo | ||||||
|         endif |         endif | ||||||
|         go to 999 |         go to 999 | ||||||
|      endif |      endif | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user