From c81af0bbe571a7d2cc1120a060bc03d9728d9c24 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 18 Jan 2019 08:57:46 -0500 Subject: [PATCH] Updates to code for stand-alone ft2[.exe]. --- lib/ft2/ft2.f90 | 61 +++++++++++++++++++++++++++++++++++------ lib/ft2/g4.cmd | 3 +- lib/ft2/gcom1.f90 | 6 ++-- lib/ft2/libwsjt_fort.a | Bin 1699796 -> 1699980 bytes 4 files changed, 58 insertions(+), 12 deletions(-) diff --git a/lib/ft2/ft2.f90 b/lib/ft2/ft2.f90 index 129655feb..e5c389f90 100644 --- a/lib/ft2/ft2.f90 +++ b/lib/ft2/ft2.f90 @@ -6,8 +6,21 @@ program ft2 logical allok character*20 pttport character*8 arg -! integer*2 iwave2(30000) + character*80 fname + integer*2 id2(30000) + open(12,file='all_ft2.txt',status='unknown',position='append') + nargs=iargc() + if(nargs.eq.1) then + call getarg(1,fname) + open(10,file=fname,status='old',access='stream') + read(10) id2(1:22) !Read (and ignore) the header + read(10) id2 !Read the Rx data + close(10) + call ft2_decode(fname(1:17),nfqso,id2,ndecodes,mycall,hiscall,nrx) + go to 999 + endif + allok=.true. ! Get home-station details open(10,file='ft2.ini',status='old',err=1) @@ -26,13 +39,13 @@ program ft2 call padevsub(idevin,idevout) if(idevin.ne.ndevin .or. idevout.ne.ndevout) allok=.false. i1=0 + i1=ptt(nport,1,1,iptt) i1=ptt(nport,1,0,iptt) if(i1.lt.0 .and. nport.ne.0) allok=.false. if(.not.allok) then write(*,"('Please fix setup error(s) and restart.')") go to 999 endif - open(12,file='all_ft2.txt',status='unknown',position='append') nright=1 iwrite=0 @@ -52,7 +65,6 @@ program ft2 QSO_in_progress=.false. ntxed=0 - nargs=iargc() if(nargs.eq.3) then call getarg(1,txmsg) call getarg(2,arg) @@ -67,7 +79,7 @@ program ft2 ! Start the audio streams ierr=ft2audio(idevin,idevout,npabuf,nright,y1,y2,NRING,iwrite,itx, & - iwave,nwave,nfsample,nTxOK,nTransmitting,ngo) + iwave,nwave+3*1152,nfsample,nTxOK,nTransmitting,ngo) if(ierr.ne.0) then print*,'Error',ierr,' starting audio input and/or output.' endif @@ -76,13 +88,15 @@ program ft2 subroutine update(total_time,ic1,ic2) + use wavhdr + type(hdr) h real*8 total_time integer*8 count0,count1,clkfreq integer ptt integer*2 id(30000) - logical transmitted,level + logical transmitted,level,ok character*70 line - character cdatetime*17 + character cdatetime*17,fname*17,mode*8,band*6 include 'gcom1.f90' data nt0/-1/,transmitted/.false./,snr/-99.0/ data level/.false./ @@ -157,9 +171,39 @@ subroutine update(total_time,ic1,ic2) call ft2_decode(cdatetime(),nfqso,id,ndecodes,mycall,hiscall,nrx) call system_clock(count1,clkfreq) ! tdecode=float(count1-count0)/float(clkfreq) -! write(*,3001) trun -!3001 format(f10.3) + if(ndecodes.ge.1) then + fMHz=7.074 + mode='FT2' + nsubmode=1 + ntrperiod=0 + h=default_header(12000,30000) + k=0 + do i=1,250 + sq=0 + do n=1,120 + k=k+1 + x=id(k) + sq=sq + x*x + enddo + write(43,3043) i,0.01*i,1.e-4*sq +3043 format(i7,f12.6,f12.3) + enddo + call set_wsjtx_wav_params(fMHz,mode,nsubmode,ntrperiod,id) + band="" + mode="" + nsubmode=-1 + ntrperiod=-1 + call get_wsjtx_wav_params(id,band,mode,nsubmode,ntrperiod,ok) +! write(*,1010) band,ntrperiod,mode,char(ichar('A')-1+id(3)) +!1010 format('Band: ',a6,' T/R period:',i4,' Mode: ',a8,1x,a1) + + fname=cdatetime() + fname(14:17)='.wav' + open(13,file=fname,status='unknown',access='stream') + write(13) h,id + close(13) + endif if(autoseq .and.nrx.eq.2) QSO_in_progress=.true. if(autoseq .and. QSO_in_progress .and. nrx.ge.1 .and. nrx.le.4) then lrx(nrx)=.true. @@ -220,6 +264,7 @@ subroutine transmit(nfunc,ftx,iptt) if(nfunc.eq.4) txmsg=trim(hiscall)//' '//trim(mycall)//' RR73' if(nfunc.eq.5) txmsg='TNX 73 GL' call ft2_iwave(txmsg,ftx,snrdb,iwave) + iwave(23041:)=0 i1=ptt(nport,1,1,iptt) ntxok=1 n=len(trim(txmsg)) diff --git a/lib/ft2/g4.cmd b/lib/ft2/g4.cmd index 5abf200e6..0894dbebe 100644 --- a/lib/ft2/g4.cmd +++ b/lib/ft2/g4.cmd @@ -1,6 +1,7 @@ gcc -c ft2audio.c gcc -c ptt.c gfortran -c ../77bit/packjt77.f90 +gfortran -c ../wavhdr.f90 gfortran -c ../crc.f90 -gfortran -o ft2 -fbounds-check -fno-second-underscore -ffpe-trap=invalid,zero -Wall -Wno-conversion -Wno-character-truncation ft2.f90 ft2_iwave.f90 ft2_decode.f90 getcandidates2.f90 ft2audio.o ptt.o libwsjt_fort.a libwsjt_cxx.a libportaudio.a ../libfftw3f_win.a -lwinmm +gfortran -o ft2 -fbounds-check -fno-second-underscore -ffpe-trap=invalid,zero -Wall -Wno-conversion -Wno-character-truncation ft2.f90 ft2_iwave.f90 ft2_decode.f90 getcandidates2.f90 ft2audio.o ptt.o /JTSDK/wsjtx-output/qt55/2.1.0/Release/build/libwsjt_fort.a /JTSDK/wsjtx-output/qt55/2.1.0/Release/build/libwsjt_cxx.a libportaudio.a ../libfftw3f_win.a -lwinmm rm *.o *.mod diff --git a/lib/ft2/gcom1.f90 b/lib/ft2/gcom1.f90 index 48bf391c6..9402f9d9e 100644 --- a/lib/ft2/gcom1.f90 +++ b/lib/ft2/gcom1.f90 @@ -29,6 +29,6 @@ character*4 mygrid character*3 exch character*37 txmsg -common/gcom1/snrdb,ndevin,ndevout,iwrite,itx,ngo,nTransmitting,nTxOK,nport, & - ntxed,tx_once, y1(NRING),y2(NRING),iwave(NTZ),ltx(5),lrx(5),autoseq, & - QSO_in_progress,mycall,hiscall,hiscall_next,mygrid,exch,txmsg +common/gcom1/snrdb,ndevin,ndevout,iwrite,itx,ngo,nTransmitting,nTxOK,nport, & + ntxed,tx_once,y1(NRING),y2(NRING),iwave(NTZ+3*1152),ltx(5),lrx(5), & + autoseq,QSO_in_progress,mycall,hiscall,hiscall_next,mygrid,exch,txmsg diff --git a/lib/ft2/libwsjt_fort.a b/lib/ft2/libwsjt_fort.a index 53b9c28788462ae1b90759ef98ece412ef8abd85..7884c85bb645b2967400426a8c95083b78f366e3 100644 GIT binary patch delta 2182 zcmb8w4{(#^9S895n*<9`O$>fNvg*1)>tNmw@qSn(39J7(qy{`C;n zJq97x2ch*KgoFWs9WHNgKZN~_5c=969I1kEY$JrzW(a?)fXx(};Mfb>b?drdd$b&J z+m;^Ko({pb=RMdCWnmkB6SlKDY?q_3{c|Qny$|BlXCcmf2jXo-Gj9de;I(7 zh(O#WLELu$;^CDLUwseakQ3tPL5Slz#O%2|$&rOLeQ3h$SRB&qSiyo;NXxzt>8I6@ z9)Ekn<$lOz=OEwG3AxS-IkFFOdk8YEfSkSr`Pj>lk7o+L)S*Z*DBeLRHEW=Reh=l& zH=#tTpfsI_(tHrgh6I#H*}Oypl=k>bP_V1E+8RPNfab(jUNCyY5DHPB_D?_6t+N8x?Toe9~QTVi3;1OK>?3 z!!_-~cZq-3g#TUtpaQOujc|<-xXuUQx^faadZ3F7p;wxq&+3Ezqekef2cSO?nDDF9 z&~tXgBhY_cTQD#N{Z!Y4ub0AIeH8AtstLPB;NG_x?%@pFW5Y14>tU3~U{sI7Xgv+% z$V)KZ_#KRQ2Vo3tf^mE!j58q^SLVSZ$KdhY4Ns-Fpl&xj(;hhs&$k^Kf@h$*;3U~O zKF^b^v&RUx6G}bKc|MC`n1$=%?|{;`4+W>IUc#TS)DA2&+>P)0Je?V}QjK0b*&R2pYHq(Z(G{U)~VV|;8uN&4a>@&f1U z2>P~V-U|7wR#rL8rh$Dh8?0AD=g+bZ{bt%SnK*fGKD$8wJeeeE?_}bpKfj60G4+f2 zGJ9*eB^UBbZrqd|Grwt+^?%CU>GhpcVPE66j2gO z65(E@P4`*Kxem(hmv#Ew3}WSm)4!cTzToa3V<*o&btnG8M!Ba%K-j*8Y!Vw4GJi2! zSj?6cv(?3HZ83X-p1GOazT~T7>0+@YTdr?g#zuup{f3R~`OEJwj{1tDSLhvnvWGiK zKlPI(ra=pBdEZiIiLvi-Xy=BxQ|OvXvXnE^J60*K_SY&&`n5{F#be3;xznk~Wp{hS zBA&4_0%K!DMoKpQ>k8n42rjKTAKN7RA%9 sZ+9@IjFWLOdRpJ^E?2KjVmlh`%Xhic%Xb;|P1nNQdC~_i8@_M;1(ZKCtN;K2 delta 1998 zcmb8w3rrJt90&0475cySuD!dKYkTD-Xca`n2V@upXB6F3M6-~|6knTyZir|Y5;Rr^ zmMLg_Ab;bG(FGHenfPF#3&Ghr;*4{?hMNzDGd`zNi85u3js4q3h-TTcOFsSo?)&@S zFaM^OwE9MV%k}&%k+eNY({ss3`Y+MBT_8i4bOmIZJt(IJ~wM)!Oe z+2I1}bTA&QgR#CD#$&}Wo^6Ejb|#Eng%G%gK9*l0ypVqxLg_-dg>@YeHdjOVM1@d4 z9zu%*;qF`rza4<^*9wTXZiq3h5EHBrlL^EzEPG+jYKR|}L3HnhSd$HLe6kK2`F)qP=+0Vl92;tx(UiV2~gbg-iEU9K9p6bpsZUBA6&3RpMho37FgVO zVA-`9md`$hrRj3elQvjKX2CjhFRbftz3f~mtd|b{qp-J%@G5s8_%Rz{Kb=BYdk4Zg z)<89MLNzx-wR)f?AAVU{F4U>4S3D)Cxe%(~m0Lk=8q`0sVY33Z{-ghk`@c5)d;ek~ zY?m5gyO{;s<1*Nu$HUgs0lTmf_V_8V59@|~N*(Mo?Xc&T^;ww&yI(bXbL~4<2c1oX z{pZVl+PA=wWP)Q=ai1O0aO^(`M~eZDTanQCqtGH6pe4DWl_o(u_6%BcJG5^#XcwBG zU2TMRryAO`wQ!mm;M8`(8NWCvtqsop%Z9`Gs`_v^zbgs4p0)kaC}(*(UzyHxjE)Im zLK(d`ohRv*?S+X^YHISRn7}n($mDqVuah)3kwjQx2$0AD@#a8^arDSA&Y}0QD3flz zV;oQ$&c_pk045`yao#wcTIPxB_GKevp_M(6X#x(&)aNAQIe~_R6AvfSjp4+_U8aY^ ziI3eCMUbMf6gHqL!!@H(#~!+ZEBa2I_h|&#$LShFXi*eVIgQSUCQ))I>wlBs3XNf_ zoY79dk0Ry%4=XK*CaLbKY*+4j-*GX}eO{I6iXY*t8qLzg@*cfh<16nGyq#7Pw6J*mP_v!KS7-e?|B7Bb~HmP-r~;GKS;? zD(~1>vO9#fxkzN_=_iwy(=Gd*i|MBWNe)*+7tGQ}a$_m?*r3wHK}6sxys3l8ZEp5G zb_k74RH0+v!2hEV2&@Wb{d%*+-fU8Dmerfh?#({v&DPVE@np<^S$e<{82fH-wWPON z!72wme#q&h_Q7Ng*GhK`CU0At(>2z@krS;lQ&p4yK_CXhF|ZhGT5Z>uazAl|YB zzQ{>u