diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d22d2b67..f641f6445 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,7 +45,7 @@ if (POLICY CMP0075) endif () project (wsjtx - VERSION 2.6.1.0 + VERSION 2.7.0.0 LANGUAGES C CXX Fortran ) set (PROJECT_DESCRIPTION "WSJT-X: Digital Modes for Weak Signal Communications in Amateur Radio") @@ -71,7 +71,7 @@ message (STATUS "******************************************************") include (set_build_type) # RC 0 or omitted is a development build, GA is a General Availability release build -set_build_type (GA) +set_build_type (RC 1) set (wsjtx_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${BUILD_TYPE_REVISION}") # @@ -327,6 +327,7 @@ set (wsjt_FSRCS lib/ft8_decode.f90 lib/ft4_decode.f90 lib/fst4_decode.f90 + lib/get_q3list.f90 lib/jt9_decode.f90 lib/options.f90 lib/packjt.f90 @@ -509,6 +510,7 @@ set (wsjt_FSRCS lib/qra/q65/q65_ap.f90 lib/qra/q65/q65_loops.f90 lib/qra/q65/q65_set_list.f90 + lib/qra/q65/q65_set_list2.f90 lib/refspectrum.f90 lib/savec2.f90 lib/save_dxbase.f90 @@ -973,7 +975,10 @@ if (Fortran_COMPILER_NAME MATCHES "gfortran.*") set (CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -fbounds-check -funroll-all-loops -fno-f2c -ffpe-summary=invalid,zero,overflow,underflow ${General_FFLAGS}") -set (CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -g -fbacktrace -fbounds-check -fno-f2c -ffpe-summary=invalid,zero,overflow,underflow ${General_FFLAGS}") +### TEMPORARY: Let Fortran use RElEASE flags for DEBUG builds +#set (CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -g -fbacktrace -fbounds-check -fno-f2c -ffpe-summary=invalid,zero,overflow,underflow ${General_FFLAGS}") + set (CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_RELEASE} -fbounds-check -funroll-all-loops -fno-f2c -ffpe-summary=invalid,zero,overflow,underflow ${General_FFLAGS}") + # FPE traps currently disabled in Debug configuration builds until # we decide if they are meaningful, without these FP instructions @@ -1424,9 +1429,10 @@ else (${OPENMP_FOUND} OR APPLE) endif (${OPENMP_FOUND} OR APPLE) if (WIN32) - # build map65 find_package (Portaudio REQUIRED) - add_subdirectory (map65) +# build map65 OR qmap +# add_subdirectory (map65) + add_subdirectory (qmap) endif () # build the main application diff --git a/Configuration.cpp b/Configuration.cpp index ee67abc77..632537b8e 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -997,6 +997,15 @@ void Configuration::set_location (QString const& grid_descriptor) m_->dynamic_grid_ = grid_descriptor.trimmed (); } +void Configuration::setSpecial_Q65_Pileup() +{ + m_->bSpecialOp_=true; + m_->ui_->gbSpecialOpActivity->setChecked(m_->bSpecialOp_); + m_->ui_->rbQ65pileup->setChecked(true); + m_->SelectedActivity_ = static_cast (SpecialOperatingActivity::Q65_PILEUP); + m_->write_settings(); +} + void Configuration::setSpecial_Hound() { m_->bSpecialOp_=true; @@ -1227,6 +1236,7 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network ui_->special_op_activity_button_group->setId (ui_->rbARRL_Digi, static_cast (SpecialOperatingActivity::ARRL_DIGI)); ui_->special_op_activity_button_group->setId (ui_->rbFox, static_cast (SpecialOperatingActivity::FOX)); ui_->special_op_activity_button_group->setId (ui_->rbHound, static_cast (SpecialOperatingActivity::HOUND)); + ui_->special_op_activity_button_group->setId (ui_->rbQ65pileup, static_cast (SpecialOperatingActivity::Q65_PILEUP)); // // setup PTT port combo box drop down content diff --git a/Configuration.hpp b/Configuration.hpp index dbf6b9124..13c54372b 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -183,6 +183,7 @@ public: bool highlight_only_fields () const; bool include_WAE_entities () const; bool highlight_73 () const; + void setSpecial_Q65_Pileup(); void setSpecial_Hound(); void setSpecial_Fox(); void setSpecial_None(); @@ -190,8 +191,8 @@ public: bool highlight_DXgrid () const; bool Individual_Contest_Name() const; -// 0 1 2 3 4 5 6 7 8 - enum class SpecialOperatingActivity {NONE, NA_VHF, EU_VHF, FIELD_DAY, RTTY, WW_DIGI, FOX, HOUND, ARRL_DIGI}; +// 0 1 2 3 4 5 6 7 8 9 + enum class SpecialOperatingActivity {NONE, NA_VHF, EU_VHF, FIELD_DAY, RTTY, WW_DIGI, FOX, HOUND, ARRL_DIGI, Q65_PILEUP}; SpecialOperatingActivity special_op_id () const; struct CalibrationParams diff --git a/Configuration.ui b/Configuration.ui index acf225f5d..836b1b635 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -2923,6 +2923,25 @@ Right click for insert and delete options. + + + + + 0 + 18 + + + + <html><head/><body><p>Exchange 4-character locator instead of signal report. Provides q3-level sensitivities for the DX operator. Especially useful for 6m EME DXpeditions.</p></body></html> + + + Q65 Pileup + + + special_op_activity_button_group + + + @@ -3337,12 +3356,12 @@ Right click for insert and delete options. + + + - - - diff --git a/doc/common/links.adoc b/doc/common/links.adoc index 605849a0e..095fc6afd 100644 --- a/doc/common/links.adoc +++ b/doc/common/links.adoc @@ -80,7 +80,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes. :jtalert: https://hamapps.com/[JTAlert] :launchpadki7mt: https://launchpad.net/~ki7mt[KI7MT PPA's] :log4om: https://www.log4om.com[Log4OM] -:lunarEchoes: https://sourceforge.net/projects/wsjt/files/wsjtx-{VERSION}/LunarEchoes_QEX.pdf[QEX] +:lunarEchoes: https://wsjt.sourceforge.io/LunarEchoes_QEX.pdf[QEX] :msk144: https://wsjt.sourceforge.io/MSK144_Protocol_QEX.pdf[QEX] :msvcpp_redist: https://www.microsoft.com/en-ph/download/details.aspx?id=40784[Microsoft VC++ 2013 Redistributable] :msys_url: https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/[MSYS Download] diff --git a/lib/decoder.f90 b/lib/decoder.f90 index f9fddf3e6..d105093d5 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -46,6 +46,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) logical baddata,newdat65,newdat9,single_decode,bVHF,bad0,newdat,ex logical lprinthash22 integer*2 id2(NTMAX*12000) + integer nqf(20) type(params_block) :: params real*4 dd(NTMAX*12000) character(len=20) :: datetime @@ -212,7 +213,28 @@ subroutine multimode_decoder(ss,id2,params,nfsample) params%nfa,params%nfb,logical(params%nclearave), & single_decode,logical(params%nagain),params%max_drift, & logical(params%newdat),params%emedelay,mycall,hiscall,hisgrid, & - params%nQSOProgress,ncontest,logical(params%lapcqonly),navg0) + params%nQSOProgress,ncontest,logical(params%lapcqonly),navg0,nqf) + params%nclearave=.false. + + if(.not.params%nagain) then +! Go through identified candidates again, treating each as if it had been +! double-clicked on the waterfall. + do k=1,20 + if(nqf(k).eq.0) exit + if(params%nagain .and. abs(nqf(k)-params%nfqso).gt.params%ntol) cycle + nqd=1 + navg0=0 + ntol=5 + call my_q65%decode(q65_decoded,id2,nqd,params%nutc,params%ntr, & + params%nsubmode,nqf(k),ntol,params%ndepth, & + params%nfa,params%nfb,logical(params%nclearave), & + .true.,.true.,params%max_drift, & + .false.,params%emedelay,mycall,hiscall,hisgrid, & + params%nQSOProgress,ncontest,logical(params%lapcqonly), & + navg0,nqf) + enddo + endif + call timer('dec_q65 ',1) close(17) go to 800 diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 4132704dc..18e9c5c07 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -610,6 +610,7 @@ contains case(1800) snr_calfac=320.0 case default + snr_calfac=430.0 end select arg=snr_calfac*xsig/base - 1.0 if(arg.gt.0.0) then diff --git a/lib/ft8/sync8.f90 b/lib/ft8/sync8.f90 index f93afe75a..7aff8f091 100644 --- a/lib/ft8/sync8.f90 +++ b/lib/ft8/sync8.f90 @@ -1,5 +1,4 @@ -subroutine sync8(dd,nfa,nfb,syncmin,nfqso,maxcand,nzhsym,candidate, & - ncand,sbase) +subroutine sync8(dd,nfa,nfb,syncmin,nfqso,maxcand,candidate,ncand,sbase) include 'ft8_params.f90' parameter (MAXPRECAND=1000) diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index a19d0b83c..9d3ae75f8 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -46,7 +46,6 @@ contains procedure(ft8_decode_callback) :: callback parameter (MAXCAND=600,MAX_EARLY=100) real*8 tsec,tseq - real s(NH1,NHSYM) real sbase(NH1) real candidate(3,MAXCAND) real dd(15*12000),dd1(15*12000) @@ -68,7 +67,7 @@ contains real xdt_save(MAX_EARLY) data nutc0/-1/ - save s,dd,dd1,nutc0,ndec_early,itone_save,f1_save,xdt_save,lsubtracted,& + save dd,dd1,nutc0,ndec_early,itone_save,f1_save,xdt_save,lsubtracted, & allmessages this%callback => callback @@ -193,8 +192,7 @@ contains endif call timer('sync8 ',0) maxc=MAXCAND - call sync8(dd,ifa,ifb,syncmin,nfqso,maxc,nzhsym,candidate, & - ncand,sbase) + call sync8(dd,ifa,ifb,syncmin,nfqso,maxc,candidate,ncand,sbase) call timer('sync8 ',1) do icand=1,ncand sync=candidate(3,icand) diff --git a/lib/get_q3list.f90 b/lib/get_q3list.f90 new file mode 100644 index 000000000..6109cf66c --- /dev/null +++ b/lib/get_q3list.f90 @@ -0,0 +1,67 @@ +subroutine get_q3list(fname,nlist,list) + + type q3list + character*6 call + character*4 grid + integer nsec + integer nfreq + end type q3list + + parameter (MAX_CALLERS=40) + character*(*) fname + character*36 list(40) + character*8 grid6 + integer time + integer nt(8) + integer indx(MAX_CALLERS) + type(q3list) callers(MAX_CALLERS) + character*256 jpleph_file_name + common/jplcom/jpleph_file_name + + nhist2=0 + open(24,file=fname,status='unknown',form='unformatted') + read(24,end=1) nhist2 + if(nhist2.ge.1 .and. nhist2.le.40) then + read(24,end=1) callers(1:nhist2) + else + nhist2=0 + endif +1 close(24) + + now=time() + call date_and_time(values=nt) + uth=nt(5) + (nt(6)-nt(4))/60.0 + nt(7)/3600.0 + nlist=nhist2 + call indexx(callers(1:nlist)%nfreq,nlist,indx) + do i=1,nlist + age=(now - callers(i)%nsec)/3600.0 + j=indx(i) + grid6=callers(j)%grid//'mm' + call grid2deg(grid6,xlon,xlat) + call sun(nt(1),nt(2),nt(3),uth,-xlon,xlat,RASun,DecSun,xLST, & + AzSun,ElSun,mjd,day) + call moondopjpl(nt(1),nt(2),nt(3),uth,-xlon,xlat,RAMoon,DecMoon, & + xLST,HA,AzMoon,ElMoon,vr,techo) + moon_el=nint(ElMoon) + write(list(i),1000) i,callers(j)%nfreq,callers(j)%call, & + callers(j)%grid,moon_el,age,char(0) +1000 format(i2,'.',i6,2x,a6,2x,a4,i5,f7.1,a1) + + h1=mod(now,86400)/3600.0 + h2=mod(callers(i)%nsec,86400)/3600.0 + hd=h1-h2 + if(hd.lt.0.0) hd=hd+24.0 +! write(*,3301) i,callers(i)%call,now,callers(i)%nsec,h1,h2,hd +!3301 format(i3,2x,a6,2i12,3f10.6) + + enddo + + return +end subroutine get_q3list + +subroutine jpl_setup(fname) + character*256 fname,jpleph_file_name + common/jplcom/jpleph_file_name + jpleph_file_name=fname + return +end subroutine jpl_setup diff --git a/lib/map65_mmdec.f90 b/lib/map65_mmdec.f90 index ca9f959ed..52b70a4d7 100644 --- a/lib/map65_mmdec.f90 +++ b/lib/map65_mmdec.f90 @@ -1,5 +1,5 @@ subroutine map65_mmdec(nutc,id2,nqd,nsubmode,nfa,nfb,nfqso,ntol,newdat, & - nagain,max_drift,mycall,hiscall,hisgrid) + nagain,max_drift,ndepth,mycall,hiscall,hisgrid) use prog_args use timer_module, only: timer @@ -14,8 +14,8 @@ subroutine map65_mmdec(nutc,id2,nqd,nsubmode,nfa,nfb,nfqso,ntol,newdat, & logical single_decode,bVHF,lnewdat,lagain,lclearave,lapcqonly integer*2 id2(300*12000) + integer nqf(20) ! type(params_block) :: params - character(len=20) :: datetime character(len=12) :: mycall, hiscall character(len=6) :: hisgrid data ntr0/-1/ @@ -28,8 +28,7 @@ subroutine map65_mmdec(nutc,id2,nqd,nsubmode,nfa,nfb,nfqso,ntol,newdat, & ! hiscall=transfer(params%hiscall,hiscall) ! mygrid=transfer(params%mygrid,mygrid) ! hisgrid=transfer(params%hisgrid,hisgrid) - datetime=' ' - + my_q65%decoded = 0 ncontest=0 nQSOprogress=0 @@ -40,16 +39,12 @@ subroutine map65_mmdec(nutc,id2,nqd,nsubmode,nfa,nfb,nfqso,ntol,newdat, & lagain=(nagain.ne.0) bVHF=.true. emedelay=2.5 - ndepth=1 ntrperiod=60 - open(17,file=trim(temp_dir)//'/red.dat',status='unknown') - open(14,file=trim(temp_dir)//'/avemsg.txt',status='unknown') - call timer('dec_q65 ',0) call my_q65%decode(q65_decoded,id2,nqd,nutc,ntrperiod,nsubmode,nfqso, & ntol,ndepth,nfa,nfb,lclearave,single_decode,lagain,max_drift,lnewdat, & - emedelay,mycall,hiscall,hisgrid,nQSOProgress,ncontest,lapcqonly,navg0) + emedelay,mycall,hiscall,hisgrid,nQSOProgress,ncontest,lapcqonly,navg0,nqf) call timer('dec_q65 ',1) return diff --git a/lib/q65_decode.f90 b/lib/q65_decode.f90 index 04e58eb86..95c7d91f7 100644 --- a/lib/q65_decode.f90 +++ b/lib/q65_decode.f90 @@ -33,7 +33,7 @@ contains subroutine decode(this,callback,iwave,nqd0,nutc,ntrperiod,nsubmode,nfqso, & ntol,ndepth,nfa0,nfb0,lclearave,single_decode,lagain,max_drift0, & lnewdat0,emedelay,mycall,hiscall,hisgrid,nQSOprogress,ncontest, & - lapcqonly,navg0) + lapcqonly,navg0,nqf) ! Top-level routine that organizes the decoding of Q65 signals ! Input: iwave Raw data, i*2 @@ -55,9 +55,13 @@ contains use, intrinsic :: iso_c_binding use q65 !Shared variables use prog_args + use types - parameter (NMAX=300*12000) !Max TRperiod is 300 s + parameter (NMAX=300*12000) !Max TRperiod is 300 s + parameter (MAX_CALLERS=40) !For multiple q3 decodes in NA VHf Contest mode + class(q65_decoder), intent(inout) :: this + procedure(q65_decode_callback) :: callback character(len=12) :: mycall, hiscall !Used for AP decoding character(len=6) :: hisgrid @@ -70,19 +74,26 @@ contains character*80 fmt integer*2 iwave(NMAX) !Raw data real, allocatable :: dd(:) !Raw data + real xdtdecodes(100) + real f0decodes(100) integer dat4(13) !Decoded message as 12 6-bit integers integer dgen(13) + integer nqf(20) + integer stageno !Added by W3SZ + integer time logical lclearave,lnewdat0,lapcqonly,unpk77_success logical single_decode,lagain complex, allocatable :: c00(:) !Analytic signal, 6000 Sa/s complex, allocatable :: c0(:) !Analytic signal, 6000 Sa/s - integer stageno !Added by W3SZ - stageno=0 + type(q3list) callers(MAX_CALLERS) ! Start by setting some parameters and allocating storage for large arrays call sec0(0,tdecode) + stageno=0 ndecodes=0 decodes=' ' + f0decodes=0. + xdtdecodes=0. nfa=nfa0 nfb=nfb0 nqd=nqd0 @@ -97,9 +108,30 @@ contains nfft1=ntrperiod*12000 nfft2=ntrperiod*6000 npasses=1 + nhist2=0 if(lagain) ndepth=ior(ndepth,3) !Use 'Deep' for manual Q65 decodes dxcall13=hiscall ! initialize for use in packjt77 mycall13=mycall + if(ncontest.eq.1) then +! NA VHF, WW-Digi, or ARRL Digi Contest + open(24,file=trim(data_dir)//'/tsil.3q',status='unknown', & + form='unformatted') + read(24,end=2) nhist2 + if(nhist2.ge.1 .and. nhist2.le.40) then + read(24,end=2) callers(1:nhist2) + now=time() + do i=1,nhist2 + hours=(now - callers(i)%nsec)/3600.0 + if(hours.gt.24.0) then + callers(i:nhist2-1)=callers(i+1:nhist2) + nhist2=nhist2-1 + endif + enddo + else + nhist2=0 + endif +2 close(24) + endif ! Determine the T/R sequence: iseq=0 (even), or iseq=1 (odd) n=nutc @@ -132,25 +164,37 @@ contains baud=12000.0/nsps this%callback => callback nFadingModel=1 - maxiters=33 - ibwa=max(1,int(1.8*log(baud*mode_q65)) + 1) - ibwb=min(10,ibwa+2) - if(iand(ndepth,3).ge.2) then - ibwa=max(1,int(1.8*log(baud*mode_q65)) + 1) - ibwb=min(10,ibwa+5) - maxiters=67 - endif + +! ibwa=max(1,int(1.8*log(baud*mode_q65)) + 5) +!### This needs work! + ibwa=1 !Q65-60A + if(mode_q65.eq.2) ibwa=3 !Q65-60B + if(mode_q65.eq.4) ibwa=8 !Q65-60C + if(mode_q65.eq.2) ibwa=9 !Q65-60D + if(mode_q65.eq.2) ibwa=10 !Q65-60E +!### + +! ibwb=min(15,ibwa+4) + ibwb=min(15,ibwa+6) + maxiters=40 + if(iand(ndepth,3).eq.2) maxiters=60 if(iand(ndepth,3).eq.3) then - ibwa=max(1,ibwa-1) - ibwb=min(10,ibwb+1) + ibwa=max(1,ibwa-2) + ibwb=ibwb+2 maxiters=100 endif + ! Generate codewords for full-AP list decoding if(ichar(hiscall(1:1)).eq.0) hiscall=' ' if(ichar(hisgrid(1:1)).eq.0) hisgrid=' ' ncw=0 - if(nqd.eq.1 .or. lagain) then - call q65_set_list(mycall,hiscall,hisgrid,codewords,ncw) + if(nqd.eq.1 .or. lagain .or. ncontest.eq.1) then + if(ncontest.eq.1) then + call q65_set_list2(mycall,hiscall,hisgrid,callers,nhist2, & + codewords,ncw) + else + call q65_set_list(mycall,hiscall,hisgrid,codewords,ncw) + endif endif dgen=0 call q65_enc(dgen,codewords) !Initialize the Q65 codec @@ -166,11 +210,9 @@ contains call timer('q65_dec0',0) ! Call top-level routine in q65 module: establish sync and try for a ! q3 or q0 decode. - call q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & + call q65_dec0(iavg,iwave,ntrperiod,nfqso,ntol,lclearave, & emedelay,xdt,f0,snr1,width,dat4,snr2,idec,stageno) call timer('q65_dec0',1) -! write(*,3001) '=a',nfqso,ntol,ndepth,xdt,f0,idec -!3001 format(a2,3i5,f7.2,f7.1,i5) if(idec.ge.0) then dtdec=xdt !We have a q3 or q0 decode at nfqso @@ -178,6 +220,9 @@ contains go to 100 endif + if(ncontest.eq.1 .and. lagain .and. iand(ndepth,16).eq.16) go to 50 + if(ncontest.eq.1 .and. lagain .and. iand(ndepth,16).eq.0) go to 100 + ! Prepare for a single-period decode with iaptype = 0, 1, 2, or 4 jpk0=(xdt+1.0)*6000 !Index of nominal start of signal if(ntrperiod.le.30) jpk0=(xdt+0.5)*6000 !For shortest sequences @@ -200,11 +245,10 @@ contains read(c78,1060) apsymbols endif - call timer('q65loops',0) + call timer('q65loop1',0) call q65_loops(c00,npts/2,nsps/2,nsubmode,ndepth,jpk0, & xdt,f0,iaptype,xdt1,f1,snr2,dat4,idec) - call timer('q65loops',1) -! write(*,3001) '=b',nfqso,ntol,ndepth,xdt,f0,idec + call timer('q65loop1',1) if(idec.ge.0) then dtdec=xdt1 f0dec=f1 @@ -215,11 +259,11 @@ contains if(iand(ndepth,16).eq.0 .or. navg(iseq).lt.2) go to 100 ! There was no single-transmission decode. Try for an average 'q3n' decode. -50 call timer('list_avg',0) +50 iavg=1 + call timer('list_avg',0) ! Call top-level routine in q65 module: establish sync and try for a q3 ! decode, this time using the cumulative 's1a' symbol spectra. - iavg=1 - call q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & + call q65_dec0(iavg,iwave,ntrperiod,nfqso,ntol,lclearave, & emedelay,xdt,f0,snr1,width,dat4,snr2,idec,stageno) call timer('list_avg',1) @@ -236,7 +280,7 @@ contains call timer('q65_avg ',0) iavg=2 - call q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & + call q65_dec0(iavg,iwave,ntrperiod,nfqso,ntol,lclearave, & emedelay,xdt,f0,snr1,width,dat4,snr2,idec,stageno) call timer('q65_avg ',1) if(idec.ge.0) then @@ -250,7 +294,7 @@ contains call timer('q65_dec0',0) ! Call top-level routine in q65 module: establish sync and try for a ! q3 or q0 decode. - call q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & + call q65_dec0(iavg,iwave,ntrperiod,nfqso,ntol,lclearave, & emedelay,xdt,f0,snr1,width,dat4,snr2,idec,stageno) call timer('q65_dec0',1) if(idec.ge.0) then @@ -280,15 +324,24 @@ contains if(idupe.eq.0) then ndecodes=min(ndecodes+1,100) decodes(ndecodes)=decoded - call q65_snr(dat4,dtdec,f0dec,mode_q65,nused,snr2) + f0decodes(ndecodes)=f0dec + xdtdecodes(ndecodes)=dtdec + call q65_snr(dat4,dtdec,f0dec,mode_q65,snr2) nsnr=nint(snr2) call this%callback(nutc,snr1,nsnr,dtdec,f0dec,decoded, & idec,nused,ntrperiod) - call q65_hist(nint(f0dec),msg0=decoded) + if(ncontest.eq.1) then + open(24,file=trim(data_dir)//'/tsil.3q',status='unknown', & + form='unformatted') + call q65_hist2(nint(f0dec),decoded,callers,nhist2) + close(24) + else + call q65_hist(nint(f0dec),msg0=decoded) + endif if(iand(ndepth,128).ne.0 .and. .not.lagain .and. & int(abs(f0dec-nfqso)).le.ntol ) call q65_clravg !AutoClrAvg call sec0(1,tdecode) - open(22,file=trim(data_dir)//'/q65_decodes.dat',status='unknown', & + open(22,file=trim(data_dir)//'/q65_decodes.txt',status='unknown', & position='append',iostat=ios) if(ios.eq.0) then ! Save decoding parameters to q65_decoded.dat, for later analysis. @@ -298,13 +351,13 @@ contains if(c6.eq.' ') c6=' ' c4=hisgrid(1:4) if(c4.eq.' ') c4=' ' - fmt='(i6.4,1x,a4,i5,4i2,6i3,i4,f6.2,f7.1,f6.1,f7.1,f6.2,'// & + fmt='(i6.4,1x,a4,i5,4i2,8i3,i4,f6.2,f7.1,f6.1,f7.1,f6.2,'// & '1x,a6,1x,a6,1x,a4,1x,a)' if(ntrperiod.le.30) fmt(5:5)='6' if(idec.eq.3) nrc=0 write(22,fmt) nutc,cmode,nfqso,nQSOprogress,idec,idfbest,idtbest, & - ibw,ndistbest,nused,icand,ncand,nrc,ndepth,xdt,f0,snr2,plog, & - tdecode,mycall(1:6),c6,c4,trim(decoded) + ibwa,ibwb,ibw,ndistbest,nused,icand,ncand,nrc,ndepth,xdt, & + f0,snr2,plog,tdecode,mycall(1:6),c6,c4,trim(decoded) close(22) endif endif @@ -317,6 +370,26 @@ contains snr1=candidates(icand,1) xdt= candidates(icand,2) f0 = candidates(icand,3) + do i=1,ndecodes + fdiff=f0-f0decodes(i) + if(fdiff.gt.-baud*mode_q65 .and. fdiff.lt.65*baud*mode_q65) go to 800 + enddo + +!### TEST REGION + if(ncontest.eq.-1) then + call timer('q65_dec0',0) +! Call top-level routine in q65 module: establish sync and try for a +! q3 or q0 decode. + call q65_dec0(iavg,iwave,ntrperiod,nint(f0),ntol,lclearave, & + emedelay,xdt,f0,snr1,width,dat4,snr2,idec,stageno) + call timer('q65_dec0',1) + if(idec.ge.0) then + dtdec=xdt !We have a q3 or q0 decode at f0 + f0dec=f0 + go to 200 + endif + endif +!### jpk0=(xdt+1.0)*6000 !Index of nominal start of signal if(ntrperiod.le.30) jpk0=(xdt+0.5)*6000 !For shortest sequences if(jpk0.lt.0) jpk0=0 @@ -329,6 +402,8 @@ contains if(lapcqonly) npasses=1 iaptype=0 do ipass=0,npasses !Loop over AP passes +! write(*,3001) nutc,icand,ipass,f0,xdt,snr1 +!3001 format('a',i5.4,2i3,3f7.1) apmask=0 !Try first with no AP information apsymbols=0 if(ipass.ge.1) then @@ -341,10 +416,10 @@ contains read(c78,1060) apsymbols endif - call timer('q65loops',0) + call timer('q65loop2',0) call q65_loops(c00,npts/2,nsps/2,nsubmode,ndepth,jpk0, & xdt,f0,iaptype,xdt1,f1,snr2,dat4,idec) - call timer('q65loops',1) + call timer('q65loop2',1) ! write(*,3001) '=e',nfqso,ntol,ndepth,xdt,f0,idec if(idec.ge.0) then dtdec=xdt1 @@ -365,15 +440,24 @@ contains if(idupe.eq.0) then ndecodes=min(ndecodes+1,100) decodes(ndecodes)=decoded - call q65_snr(dat4,dtdec,f0dec,mode_q65,nused,snr2) + f0decodes(ndecodes)=f0dec + call q65_snr(dat4,dtdec,f0dec,mode_q65,snr2) nsnr=nint(snr2) call this%callback(nutc,snr1,nsnr,dtdec,f0dec,decoded, & idec,nused,ntrperiod) - call q65_hist(nint(f0dec),msg0=decoded) + if(ncontest.eq.1) then + open(24,file=trim(data_dir)//'/tsil.3q',status='unknown', & + form='unformatted') + call q65_hist2(nint(f0dec),decoded,callers,nhist2) + close(24) + else + call q65_hist(nint(f0dec),msg0=decoded) + endif if(iand(ndepth,128).ne.0 .and. .not.lagain .and. & int(abs(f0dec-nfqso)).le.ntol ) call q65_clravg !AutoClrAvg call sec0(1,tdecode) - open(22,file=trim(data_dir)//'/q65_decodes.dat',status='unknown', & + ios=1 + open(22,file=trim(data_dir)//'/q65_decodes.txt',status='unknown',& position='append',iostat=ios) if(ios.eq.0) then ! Save decoding parameters to q65_decoded.dat, for later analysis. @@ -383,20 +467,45 @@ contains if(c6.eq.' ') c6=' ' c4=hisgrid(1:4) if(c4.eq.' ') c4=' ' - fmt='(i6.4,1x,a4,i5,4i2,6i3,i4,f6.2,f7.1,f6.1,f7.1,f6.2,'// & + fmt='(i6.4,1x,a4,i5,4i2,8i3,i4,f6.2,f7.1,f6.1,f7.1,f6.2,'// & '1x,a6,1x,a6,1x,a4,1x,a)' if(ntrperiod.le.30) fmt(5:5)='6' if(idec.eq.3) nrc=0 - write(22,fmt) nutc,cmode,nfqso,nQSOprogress,idec,idfbest,idtbest, & - ibw,ndistbest,nused,icand,ncand,nrc,ndepth,xdt,f0,snr2,plog, & - tdecode,mycall(1:6),c6,c4,trim(decoded) + write(22,fmt) nutc,cmode,nfqso,nQSOprogress,idec,idfbest, & + idtbest,ibwa,ibwb,ibw,ndistbest,nused,icand,ncand,nrc, & + ndepth,xdt,f0,snr2,plog,tdecode,mycall(1:6),c6,c4, & + trim(decoded) close(22) endif endif endif +800 continue enddo ! icand if(iavg.eq.0 .and.navg(iseq).ge.2 .and. iand(ndepth,16).ne.0) go to 50 -900 return + +900 if(ncontest.ne.1 .or. lagain) go to 999 + if(ntrperiod.ne.60 .or. nsubmode.ne.0) go to 999 + +! This is first time here, and we're running Q65-60A in NA VHF Contest mode. +! Return a list of potential sync frequencies at which to try q3 decoding. + + k=0 + nqf=0 + bw=baud*mode_q65*65 + do i=1,ncand +! snr1=candidates(i,1) +! xdt= candidates(i,2) + f0 = candidates(i,3) + do j=1,ndecodes ! Already decoded one at or near this frequency? + fj=f0decodes(j) + if(f0.gt.fj-5.0 .and. f0.lt.fj+bw+5.0) go to 990 + enddo + k=k+1 + nqf(k)=nint(f0) +990 continue + enddo + +999 return end subroutine decode end module q65_decode diff --git a/lib/qra/q65/q65.f90 b/lib/qra/q65/q65.f90 index 2133294ef..a93b12719 100644 --- a/lib/qra/q65/q65.f90 +++ b/lib/qra/q65/q65.f90 @@ -2,8 +2,8 @@ module q65 parameter (NSTEP=8) !Number of time bins per symbol in s1, s1a, s1b parameter (PLOG_MIN=-242.0) !List decoding threshold - integer nsave,nlist,LL0,iz0,jz0 - integer listutc(10) + integer iz0,jz0 +! integer listutc(10) integer apsym0(58),aph10(10) integer apmask1(78),apsymbols1(78) integer apmask(13),apsymbols(13) @@ -12,23 +12,23 @@ module q65 integer codewords(63,206) integer ibwa,ibwb,ncw,nsps,mode_q65,nfa,nfb,nqd integer idfbest,idtbest,ibw,ndistbest,maxiters,max_drift - integer istep,nsmo,lag1,lag2,npasses,nused,iseq,ncand,nrc + integer istep,nsmo,lag1,lag2,npasses,iseq,ncand,nrc integer i0,j0 integer navg(0:1) logical lnewdat real candidates(20,3) !snr, xdt, and f0 of top candidates real, allocatable :: s1raw(:,:) !Symbol spectra, 1/8-symbol steps real, allocatable :: s1(:,:) !Symbol spectra w/suppressed peaks - real, allocatable :: s1w(:,:) !Symbol spectra w/suppressed peaks !w3sz added + real, allocatable :: s1w(:,:) !Symbol spectra w/suppressed peaks (W3SZ) real, allocatable,save :: s1a(:,:,:) !Cumulative symbol spectra - real, allocatable,save :: ccf2(:) !Max CCF(freq) at any lag, single seq - real, allocatable,save :: ccf2_avg(:) !Like ccf2, but for accumulated average + real, allocatable,save :: ccf2(:) !Max CCF(freq) at any lag (orange curve) + real, allocatable,save :: ccf2_avg(:) !Like ccf2, but for avg (red curve) real sync(85) !sync vector real df,dtstep,dtdec,f0dec,ftol,plog,drift contains -subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & +subroutine q65_dec0(iavg,iwave,ntrperiod,nfqso,ntol,lclearave, & emedelay,xdt,f0,snr1,width,dat4,snr2,idec,stageno) ! Top-level routine in q65 module @@ -41,7 +41,6 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & ! ntrperiod T/R sequence length (s) ! nfqso Target frequency (Hz) ! ntol Search range around nfqso (Hz) -! ndepth Requested decoding depth ! lclearave Flag to clear the accumulating array ! emedelay Extra delay for EME signals ! Output: xdt Time offset from nominal (s) @@ -68,7 +67,7 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & real, allocatable :: s3(:,:) !Data-symbol energies s3(LL,63) real, allocatable :: ccf1(:) !CCF(freq) at fixed lag (red) data first/.true./ - save first + save first,LL0 integer w3t integer w3f @@ -76,7 +75,6 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & integer stageno NN=63 - if(nutc+ndepth.eq.-999) stop !Silence compiler warnings ! Set some parameters and allocate storage for large arrays irc=-2 @@ -95,7 +93,8 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & ftol=ntol ia=ntol/df ia2=max(ia,10*mode_q65,nint(100.0/df)) - nsmo=int(0.7*mode_q65*mode_q65) +! nsmo=int(0.7*mode_q65*mode_q65) + nsmo=int(0.5*mode_q65*mode_q65) if(nsmo.lt.1) nsmo=1 if(first) then !Generate the sync vector sync=-22.0/63.0 !Sync tone OFF @@ -126,7 +125,7 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & lclearave=.false. endif ccf1=0. - if(iavg.eq.0) ccf2_avg=0. + if(iavg.eq.0) ccf2=0. dtstep=nsps/(NSTEP*12000.0) !Step size in seconds lag1=-1.0/dtstep lag2=1.0/dtstep + 0.9999 @@ -135,11 +134,13 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & if(nsps.ge.7200) j0=1.0/dtstep !Nominal start-signal index s3=0. +! if(iavg.eq.0 .and. lnewdat) then if(iavg.eq.0) then call timer('q65_syms',0) ! Compute symbol spectra with NSTEP time bins per symbol call q65_symspec(iwave,ntrperiod*12000,iz,jz,s1) call timer('q65_syms',1) +! lnewdat=.false. else s1=s1a(:,:,iseq) endif @@ -148,15 +149,15 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & ii1=max(1,i0-64) ii2=i0-65+LL call pctile(s1(ii1:ii2,1:jz),ii2-ii1+1*jz,45,base) - s1=s1/base +! s1=s1/base s1raw=s1 ! Apply fast AGC to the symbol spectra - s1max=20.0 !Empirical choice - do j=1,jz !### Maybe wrong way? ### - smax=maxval(s1(ii1:ii2,j)) - if(smax.gt.s1max) s1(ii1:ii2,j)=s1(ii1:ii2,j)*s1max/smax - enddo +! s1max=20.0 !Empirical choice +! do j=1,jz !### Maybe wrong way? ### +! smax=maxval(s1(ii1:ii2,j)) +! if(smax.gt.s1max) s1(ii1:ii2,j)=s1(ii1:ii2,j)*s1max/smax +! enddo dat4=0 if(ncw.gt.0 .and. iavg.le.1) then @@ -178,7 +179,7 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & ! Get 2d CCF and ccf2 using sync symbols only if(iavg.eq.0) then call timer('ccf_22a ',0) - call q65_ccf_22(s1,iz,jz,nfqso,ntol,ndepth,ntrperiod,iavg,ipk,jpk, & + call q65_ccf_22(s1,iz,jz,nfqso,ntol,iavg,ipk,jpk, & f0a,xdta,ccf2) call timer('ccf_22a ',1) endif @@ -186,7 +187,7 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & ! Get 2d CCF and ccf2_avg using sync symbols only if(iavg.ge.1) then call timer('ccf_22b ',0) - call q65_ccf_22(s1,iz,jz,nfqso,ntol,ndepth,ntrperiod,iavg,ipk,jpk, & + call q65_ccf_22(s1,iz,jz,nfqso,ntol,iavg,ipk,jpk, & f0a,xdta,ccf2_avg) call timer('ccf_22b ',1) endif @@ -217,10 +218,8 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & if(i2.eq.-9999 .and. ccf1(-i).ge.0.5*smax) i2=-i enddo width=df*(i2-i1) - if(ncw.eq.0) ccf1=0. - - call q65_write_red(iz,xdt,ccf2_avg,ccf2) + call q65_write_red(iz,xdt,ccf2_avg,ccf2) !### Need this call for WSJT-X if(idec.lt.0 .and. (iavg.eq.0 .or. iavg.eq.2)) then call q65_dec_q012(s3,LL,snr2,dat4,idec,decoded) @@ -291,7 +290,7 @@ subroutine q65_symspec(iwave,nmax,iz,jz,s1) allocate(c0(0:nsps-1)) nfft=nsps fac=1/32767.0 - do j=1,jz !Compute symbol spectra at step size + do j=1,jz,2 !Compute symbol spectra at 2*step size i1=(j-1)*istep i2=i1+nsps-1 k=-1 @@ -311,6 +310,8 @@ subroutine q65_symspec(iwave,nmax,iz,jz,s1) do i=1,nsmo call smo121(s1(1:iz,j),iz) enddo +! Interpolate to fill in the skipped-over spectra. + if(j.ge.3) s1(1:iz,j-1)=0.5*(s1(1:iz,j-2)+s1(1:iz,j)) enddo if(lnewdat) then navg(iseq)=navg(iseq) + 1 @@ -481,7 +482,7 @@ subroutine q65_ccf_85(s1,iz,jz,nfqso,ia,ia2,ipk,jpk,f0,xdt,imsg_best, & return end subroutine q65_ccf_85 -subroutine q65_ccf_22(s1,iz,jz,nfqso,ntol,ndepth,ntrperiod,iavg,ipk,jpk, & +subroutine q65_ccf_22(s1,iz,jz,nfqso,ntol,iavg,ipk,jpk, & f0,xdt,ccf2) ! Attempt synchronization using only the 22 sync symbols. Return ccf2 @@ -489,6 +490,7 @@ subroutine q65_ccf_22(s1,iz,jz,nfqso,ntol,ndepth,ntrperiod,iavg,ipk,jpk, & real s1(iz,jz) real ccf2(iz) !Orange sync curve + real tmp(20,3) real, allocatable :: xdt2(:) real, allocatable :: s1avg(:) integer, allocatable :: indx(:) @@ -509,11 +511,14 @@ subroutine q65_ccf_22(s1,iz,jz,nfqso,ntol,ndepth,ntrperiod,iavg,ipk,jpk, & s1avg(i)=sum(s1(i,1:jz)) enddo + call pctile(s1avg(ia:ib),ib-ia+1,40,base0) ccfbest=0. ibest=0 lagpk=0 lagbest=0 + idrift_max=0 idrift_best=0 + do i=ia,ib ccfmax=0. do lag=lag1,lag2 @@ -535,10 +540,13 @@ subroutine q65_ccf_22(s1,iz,jz,nfqso,ntol,ndepth,ntrperiod,iavg,ipk,jpk, & endif enddo ! idrift enddo ! lag + ccf2(i)=ccfmax xdt2(i)=lagpk*dtstep + if(ccfmax.gt.ccfbest .and. abs(i*df-nfqso).le.ftol) then ccfbest=ccfmax + snrbest=snr ibest=i lagbest=lagpk idrift_best=idrift_max @@ -556,28 +564,39 @@ subroutine q65_ccf_22(s1,iz,jz,nfqso,ntol,ndepth,ntrperiod,iavg,ipk,jpk, & ! Save parameters for best candidates jzz=ib-ia+1 - call pctile(ccf2(ia:ib),jzz,40,base) - ccf2=ccf2/base call indexx(ccf2(ia:ib),jzz,indx) + + call pctile(ccf2(ia:ib),jzz,50,ave) + call pctile(ccf2(ia:ib),jzz,84,base) + rms=base-ave ncand=0 maxcand=20 do j=1,20 k=jzz-j+1 if(k.lt.1 .or. k.gt.iz) cycle i=indx(k)+ia-1 - if(ccf2(i).lt.3.3) exit !Candidate limit f=i*df i3=max(1, i-mode_q65) i4=min(iz,i+mode_q65) biggest=maxval(ccf2(i3:i4)) if(ccf2(i).ne.biggest) cycle + snr=(ccf2(i)-ave)/rms + if(snr.lt.6.0) exit ncand=ncand+1 - candidates(ncand,1)=ccf2(i) + candidates(ncand,1)=snr candidates(ncand,2)=xdt2(i) candidates(ncand,3)=f if(ncand.ge.maxcand) exit enddo +! Resort the candidates back into frequency order + tmp(1:ncand,1:3)=candidates(1:ncand,1:3) + candidates=0. + call indexx(tmp(1:ncand,3),ncand,indx) + do i=1,ncand + candidates(i,1:3)=tmp(indx(i),1:3) + enddo + return end subroutine q65_ccf_22 @@ -591,7 +610,7 @@ subroutine q65_dec1(s3,nsubmode,b90ts,esnodb,irc,dat4,decoded) integer dat4(13) character c77*77,decoded*37 logical unpk77_success - + nFadingModel=1 decoded=' ' call q65_intrinsics_ff(s3,nsubmode,b90ts,nFadingModel,s3prob) @@ -605,7 +624,7 @@ subroutine q65_dec1(s3,nsubmode,b90ts,esnodb,irc,dat4,decoded) irc=-1 endif nrc=irc - + return end subroutine q65_dec1 @@ -672,16 +691,21 @@ subroutine q65_write_red(iz,xdt,ccf2_avg,ccf2) call q65_sync_curve(ccf2_avg,1,iz,rms1) call q65_sync_curve(ccf2,1,iz,rms2) + i1=max(1,nint(nfa/df)) + i2=min(iz,int(nfb/df)) + y0=minval(ccf2(i1:i2)) + y0_avg=minval(ccf2_avg(i1:i2)) + g=0.4 + g_avg=0. + if(navg(iseq).ge.2) g_avg=g rewind 17 - write(17,1000) xdt,minval(ccf2_avg),maxval(ccf2_avg) - do i=max(1,nint(nfa/df)),min(iz,int(nfb/df)) + write(17,1000) xdt,g_avg*minval(ccf2_avg),g_avg*maxval(ccf2_avg) + do i=i1,i2 freq=i*df - y1=ccf2_avg(i) - if(y1.gt.10.0) y1=10.0 + 2.0*log10(y1/10.0) - y2=ccf2(i) - if(y2.gt.10.0) y2=10.0 + 2.0*log10(y2/10.0) + y1=g_avg*(ccf2_avg(i)-y0_avg) + y2=g*(ccf2(i)-y0) write(17,1000) freq,y1,y2 -1000 format(3f10.3) +1000 format(f10.3,2f15.6) enddo flush(17) @@ -733,7 +757,7 @@ subroutine q65_bzap(s3,LL) return end subroutine q65_bzap -subroutine q65_snr(dat4,dtdec,f0dec,mode_q65,nused,snr2) +subroutine q65_snr(dat4,dtdec,f0dec,mode_q65,snr2) ! Estimate SNR of a decoded transmission by aligning the spectra of ! all 85 symbols. @@ -781,8 +805,6 @@ subroutine q65_snr(dat4,dtdec,f0dec,mode_q65,nused,snr2) sig_area=sum(spec(ia+nsum:ib-nsum)-1.0) w_equiv=sig_area/(smax-1.0) snr2=db(max(1.0,sig_area)) - db(2500.0/df) -! NB: No adjustment to SNR is now made for nused>1, because that process did -! not seem to work as expected. return end subroutine q65_snr @@ -841,4 +863,65 @@ subroutine q65_hist(if0,msg0,dxcall,dxgrid) 900 return end subroutine q65_hist +subroutine q65_hist2(nfreq,msg0,callers,nhist2) + + use types + use prog_args + parameter (MAX_CALLERS=40) !For multiple q3 decodes in NA VHf Contest mode + character*37 msg0,msg + type(q3list) callers(MAX_CALLERS) + character*6 c6 + character*4 g4 + logical newcall,isgrid + + isgrid(g4)=g4(1:1).ge.'A' .and. g4(1:1).le.'R' .and. g4(2:2).ge.'A' .and. & + g4(2:2).le.'R' .and. g4(3:3).ge.'0' .and. g4(3:3).le.'9' .and. & + g4(4:4).ge.'0' .and. g4(4:4).le.'9' .and. g4(1:4).ne.'RR73' + + msg=msg0 + if(index(msg,'/').gt.0) goto 900 !Ignore messages withcompound calls + i0=index(msg,' R ') + if(i0.ge.7) msg=msg(1:i0)//msg(i0+3:) + i1=index(msg,' ') + c6=' ' + g4=' ' + if(i1.ge.4 .and. i1.le.13) then + i2=index(msg(i1+1:),' ') + i1 + c6=msg(i1+1:i2-1) !Extract DX call + g4=msg(i2+1:i2+4) !Extract DX grid + endif + + newcall=.true. + do i=1,nhist2 + if(callers(i)%call .eq. c6) then + newcall=.false. + callers(i)%nsec=time() + exit + endif + enddo + + if(newcall .and. isgrid(g4)) then + if(nhist2.eq.MAX_CALLERS) then +! Purge the oldest caller + callers(1:MAX_CALLERS-1)=callers(2:MAX_CALLERS) + nhist2=nhist2-1 + endif + nhist2=nhist2+1 + callers(nhist2)%call=c6 + callers(nhist2)%grid=g4 + callers(nhist2)%nsec=time() + callers(nhist2)%nfreq=nfreq + endif + + if(nhist2.ge.1 .and. nhist2.le.40) then + open(24,file=trim(data_dir)//'/tsil.3q',status='unknown', & + form='unformatted') + write(24) nhist2 + write(24) callers(1:nhist2) + close(24) + endif + +900 return +end subroutine q65_hist2 + end module q65 diff --git a/lib/qra/q65/q65_encoding_modules.f90 b/lib/qra/q65/q65_encoding_modules.f90 index b55c7f27b..4988dd4d4 100644 --- a/lib/qra/q65/q65_encoding_modules.f90 +++ b/lib/qra/q65/q65_encoding_modules.f90 @@ -135,10 +135,9 @@ end subroutine get_q65crc12(mc2,ncrc1,ncrc2) ! - character c12*12,c6*6 + character c6*6 integer*1 mc(90),mc2(90),tmp(6) integer*1 r(13),p(13) - integer ncrc ! polynomial for 12-bit CRC 0xF01 data p/1,1,0,0,0,0,0,0,0,1,1,1,1/ @@ -170,7 +169,6 @@ subroutine get_q65_tones(msg37,codeword,itone) implicit none character*37 msg37 character*77 c77 - character*12 c12 character*6 c6 integer codeword(65) integer sync(22) diff --git a/lib/qra/q65/q65_loops.f90 b/lib/qra/q65/q65_loops.f90 index ec93adb09..3220648e6 100644 --- a/lib/qra/q65/q65_loops.f90 +++ b/lib/qra/q65/q65_loops.f90 @@ -37,7 +37,7 @@ subroutine q65_loops(c00,npts2,nsps2,nsubmode,ndepth,jpk0, & if(iand(ndepth,3).eq.3) then idfmax=5 idtmax=5 - maxdist=15 + maxdist=5 endif napmin=99 diff --git a/lib/qra/q65/q65_set_list.f90 b/lib/qra/q65/q65_set_list.f90 index 22d501a5f..0b836bdeb 100644 --- a/lib/qra/q65/q65_set_list.f90 +++ b/lib/qra/q65/q65_set_list.f90 @@ -3,7 +3,7 @@ subroutine q65_set_list(mycall,hiscall,hisgrid,codewords,ncw) parameter (MAX_NCW=206) character*12 mycall,hiscall character*6 hisgrid - character*37 msg0,msg,msgsent + character*37 msg,msgsent logical my_std,his_std integer codewords(63,MAX_NCW) integer itone(85) @@ -45,7 +45,7 @@ subroutine q65_set_list(mycall,hiscall,hisgrid,codewords,ncw) endif endif -10 call genq65(msg,0,msgsent,itone,i3,n3) + call genq65(msg,0,msgsent,itone,i3,n3) i0=1 j=0 do k=1,85 diff --git a/lib/qra/q65/q65_set_list2.f90 b/lib/qra/q65/q65_set_list2.f90 new file mode 100644 index 000000000..a01681e6d --- /dev/null +++ b/lib/qra/q65/q65_set_list2.f90 @@ -0,0 +1,70 @@ +subroutine q65_set_list2(mycall,hiscall,hisgrid,callers,nhist2,codewords,ncw) + + use types + parameter (MAX_NCW=206) + parameter (MAX_CALLERS=40) !For multiple q3 decodes in NA VHf Contest mode + character*12 mycall,hiscall + character*6 hisgrid,c6 + character*4 g4 + character*37 msg,msgsent + logical std,isgrid + integer codewords(63,MAX_NCW) + integer itone(85) + integer isync(22) + type(q3list) callers(MAX_CALLERS) + + data isync/1,9,12,13,15,22,23,26,27,33,35,38,46,50,55,60,62,66,69,74,76,85/ + + isgrid(g4)=g4(1:1).ge.'A' .and. g4(1:1).le.'R' .and. g4(2:2).ge.'A' .and. & + g4(2:2).le.'R' .and. g4(3:3).ge.'0' .and. g4(3:3).le.'9' .and. & + g4(4:4).ge.'0' .and. g4(4:4).le.'9' .and. g4(1:4).ne.'RR73' + + call stdcall(hiscall,std) + jmax=nhist2 + if(std .and. isgrid(hisgrid(1:4))) then + jmax=nhist2+1 + do j=1,nhist2 + if(callers(j)%call .eq. hiscall(1:6)) then + jmax=nhist2 + exit + endif + enddo + endif + + codewords(:,1)=0 + i=1 + do j=1,jmax + c6=callers(j)%call + g4=callers(j)%grid + if(j.eq.nhist2+1) then + c6=hiscall(1:6) + g4=hisgrid(1:4) + endif + do k=1,5 + i=i+1 + msg=trim(mycall)//' '//trim(c6) + j0=len(trim(msg))+1 + if(k.eq.1) msg=msg(1:j0)//g4 + if(k.eq.2) msg=msg(1:j0)//'R '//g4 + if(k.eq.3) msg(j0:j0+3)=' RRR' + if(k.eq.4) msg(j0:j0+4)=' RR73' + if(k.eq.5) msg(j0:j0+2)=' 73' + call genq65(msg,0,msgsent,itone,i3,n3) + i0=1 + jj=0 + do kk=1,85 + if(kk.eq.isync(i0)) then + i0=i0+1 + cycle + endif + jj=jj+1 + codewords(jj,i)=itone(kk) - 1 + enddo +! write(71,3001) i,j,k,codewords(1:13,i),trim(msg) +!3001 format(3i3,2x,13i3,2x,a) + enddo + enddo + ncw=i + + return +end subroutine q65_set_list2 diff --git a/lib/qra/q65/q65sim.f90 b/lib/qra/q65/q65sim.f90 index f3db7b9d6..8007a55a9 100644 --- a/lib/qra/q65/q65sim.f90 +++ b/lib/qra/q65/q65sim.f90 @@ -8,6 +8,7 @@ program q65sim type(hdr) h !Header for .wav file integer*2 iwave(NMAX) !Generated waveform integer itone(85) !Channel symbols (values 0-65) + integer ntone(85,10) !Channel symbols for up to 10 messages integer y(63) !Codeword integer istart !averaging compatible start seconds integer imins !minutes for 15s period timestamp @@ -17,19 +18,20 @@ program q65sim complex cdat(NMAX) !Generated complex waveform complex cspread(0:NMAX-1) !Complex amplitude for Rayleigh fading complex z - real*8 f0,dt,twopi,phi,dphi,baud,fsample,freq - character msg*37,fname*17,csubmode*1,arg*12 - character msgsent*37 + real*8 f00,f0,dt,twopi,phi,dphi,baud,fsample,freq + character fname*17,csubmode*1,arg*12,c2*2 + character*37 msg,msgsent,imsg(10) nargs=iargc() - if(nargs.ne.10) then - print*,'Usage: q65sim "msg" A-E freq fDop DT f1 Stp TRp Nfile SNR' - print*,'Example: q65sim "K1ABC W9XYZ EN37" A 1500 0.0 0.0 0.0 1 60 1 -26' + if(nargs.ne.11) then + print*,'Usage: q65sim "msg" A-E freq fDop DT f1 Stp TRp Nsig Nfile SNR' + print*,'Example: q65sim "K1ABC W9XYZ EN37" A 1500 0.0 0.0 0.0 1 60 1 1 -26' print*,'Example: q65sim "ST" A 1500 0.0 0.0 0.0 1 60 1 -26' print*,' fDop = Doppler spread' print*,' f1 = Drift or Doppler rate (Hz/min)' print*,' Stp = Step size (Hz)' print*,' Stp = 0 implies no Doppler tracking' + print*,' Nsig = number of generated signals, 1 - 10' print*,' Creates filenames which increment to permit averaging in first period' print*,' If msg = ST program produces a single tone at freq' go to 999 @@ -38,7 +40,7 @@ program q65sim call getarg(2,csubmode) mode65=2**(ichar(csubmode)-ichar('A')) call getarg(3,arg) - read(arg,*) f0 + read(arg,*) f00 call getarg(4,arg) read(arg,*) fspread call getarg(5,arg) @@ -50,8 +52,10 @@ program q65sim call getarg(8,arg) read(arg,*) ntrperiod call getarg(9,arg) - read(arg,*) nfiles + read(arg,*) nsig call getarg(10,arg) + read(arg,*) nfiles + call getarg(11,arg) read(arg,*) snrdb if(ntrperiod.eq.15) then @@ -79,22 +83,39 @@ program q65sim nsym=85 !Number of channel symbols mode65=2**(ichar(csubmode) - ichar('A')) - ichk=0 - call genq65(msg,ichk,msgsent,itone,i3,n3) + + imsg(1)=msg + if(nsig.ge.2) then + i0=index(msg,' ') + i0=i0 + index(msg(i0+1:),' ')-2 + do i=1,nsig + c2=char(ichar('A')+i-1)//char(ichar('A')+i-1) + imsg(i)=msg(1:i0-1)//c2//msg(i0+2:) + enddo + endif - j=0 - do i=1,85 - if(itone(i).gt.0) then - j=j+1 - y(j)=itone(i)-1 - endif + ichk=0 + do i=1,nsig + msg=imsg(i) + call genq65(msg,ichk,msgsent,itone,i3,n3) + ntone(:,i)=itone enddo - write(*,1001) y(1:13),y(1:13) + + if(nsig.eq.1) then + j=0 + do i=1,85 + if(itone(i).gt.0) then + j=j+1 + y(j)=itone(i)-1 + endif + enddo + write(*,1001) y(1:13),y(1:13) 1001 format('Generated message'/'6-bit: ',13i3/'binary: ',13b6.6) - write(*,1002) y + write(*,1002) y 1002 format(/'Codeword:'/(20i3)) - write(*,1003) itone + write(*,1003) itone 1003 format(/'Channel symbols:'/(20i3)) + endif baud=12000.d0/nsps !Keying rate (6.67 baud fot 15-s sequences) h=default_header(12000,npts) @@ -116,43 +137,54 @@ program q65sim open(10,file=trim(fname),access='stream',status='unknown') xnoise=0. - cdat=0. if(snrdb.lt.90) then do i=1,npts xnoise(i)=gran() !Generate gaussian noise enddo endif + cdat=0. bandwidth_ratio=2500.0/6000.0 sig=sqrt(2*bandwidth_ratio)*10.0**(0.05*snrdb) if(snrdb.gt.90.0) sig=1.0 - write(*,1020) ifile,ntrperiod,f0,csubmode,snrdb,fspread,xdt,f1,nstp,trim(msgsent) -1020 format(i4,i6,f7.1,2x,a1,2x,f5.1,1x,f6.2,2f6.1,i4,2x,a) - phi=0.d0 - dphi=0.d0 - k=(xdt+0.5)*12000 !Start audio at t=xdt+0.5 s (TR=15 and 30 s) - if(ntrperiod.ge.60) k=(xdt+1.0)*12000 !TR 60+ at t = xdt + 1.0 s - isym0=-99 - do i=1,npts !Add this signal into cdat() - isym=i/nsps + 1 - if(isym.gt.nsym) exit - if(isym.ne.isym0) then - freq_drift=f1*i*dt/60.0 - if(nstp.ne.0) freq_drift=freq_drift - nstp*nint(freq_drift/nstp) - if (msg(1:2).eq.'ST') then - freq = f0 + freq_drift - else - freq = f0 + freq_drift + itone(isym)*baud*mode65 - endif - dphi=twopi*freq*dt - isym0=isym + write(*,1020) ifile,ntrperiod,f00,csubmode,snrdb,fspread,xdt,f1,nstp,trim(msgsent) +1020 format(i4,i6,f7.1,2x,a1,2x,f5.1,1x,f6.2,2f6.1,i4,2x,a) + + n=65.0*baud*mode65/100.0 + 0.9999 + nfstep=100*n + nf1=1500 - nfstep*(nsig-1)/2 + do n=1,nsig + if(nsig.ge.2) then + f0=f00 + f0=nf1 + (n-1)*nfstep + itone=ntone(:,n) endif - phi=phi + dphi - if(phi.gt.twopi) phi=phi-twopi - xphi=phi - z=cmplx(cos(xphi),sin(xphi)) - k=k+1 - if(k.ge.1) cdat(k)=cdat(k) + sig*z + phi=0.d0 + dphi=0.d0 + k=(xdt+0.5)*12000 !Start audio at t=xdt+0.5 s (TR=15 and 30 s) + if(ntrperiod.ge.60) k=(xdt+1.0)*12000 !TR 60+ at t = xdt + 1.0 s + isym0=-99 + do i=1,npts !Add this signal into cdat() + isym=i/nsps + 1 + if(isym.gt.nsym) exit + if(isym.ne.isym0) then + freq_drift=f1*i*dt/60.0 + if(nstp.ne.0) freq_drift=freq_drift - nstp*nint(freq_drift/nstp) + if (msg(1:2).eq.'ST') then + freq = f0 + freq_drift + else + freq = f0 + freq_drift + itone(isym)*baud*mode65 + endif + dphi=twopi*freq*dt + isym0=isym + endif + phi=phi + dphi + if(phi.gt.twopi) phi=phi-twopi + xphi=phi + z=cmplx(cos(xphi),sin(xphi)) + k=k+1 + if(k.ge.1) cdat(k)=cdat(k) + sig*z + enddo enddo if(fspread.ne.0) then !Apply specified Doppler spread diff --git a/lib/sumsim.f90 b/lib/sumsim.f90 index dba801470..594b8b207 100644 --- a/lib/sumsim.f90 +++ b/lib/sumsim.f90 @@ -35,7 +35,7 @@ program sumsim fac=1.0/nargs iwave(1:npts)=nint(fac*wave(1:npts)) - open(12,file='000000_0000.wav',access='stream',status='unknown') + open(12,file='000001_0000.wav',access='stream',status='unknown') write(12) h,iwave(1:npts) close(12) diff --git a/lib/test_qra64.f90 b/lib/test_qra64.f90 deleted file mode 100644 index 632dbdf66..000000000 --- a/lib/test_qra64.f90 +++ /dev/null @@ -1,129 +0,0 @@ -program test_qra64 - - character*71 cmd1,cmd2,line - character*22 msg - character*8 arg - character*1 csubmode - integer nretcode(0:11) - logical decok - - nargs=iargc() - if(nargs.ne.9) then - print*,'Usage: test_qra64 "msg" A-D depth freq DT fDop TRp nfiles SNR' - print*,'Example: test_qra64 "K1ABC W9XYZ EN37" A 3 1000 0.0 5.0 60 100 -20' - print*,' SNR = 0 to loop over all relevant SNRs' - go to 999 - endif - call getarg(1,msg) - call getarg(2,csubmode) - call getarg(3,arg) - read(arg,*) ndepth - call getarg(4,arg) - read(arg,*) nf0 - call getarg(5,arg) - read(arg,*) dt - call getarg(6,arg) - read(arg,*) fDop - call getarg(7,arg) - read(arg,*) ntrperiod - call getarg(8,arg) - read(arg,*) nfiles - call getarg(9,arg) - read(arg,*) nsnr - - nsps=6192 - i50=-28 - ia=-20 - ib=-33 - if(nsnr.ne.0) then - ia=nsnr - ib=nsnr - endif - - baud=12000.0/nsps - tsym=1.0/baud - -! 1 2 3 4 5 6 7 -! 12345678901234567890123456789012345678901234567890123456789012345678901' - cmd1='qra64sim "K1ABC W9XYZ EN37 " A 1 0.2 0.00 100 F -20 > junk0' - - cmd2='jt9 -q -L 300 -H 3000 -f 1000 -d 3 -b A *.wav > junk' - - write(cmd1(10:33),'(a)') '"'//msg//'"' - cmd1(35:35)=csubmode - write(cmd1(40:43),'(f4.1)') fDop - write(cmd1(44:48),'(f5.2)') dt - write(cmd1(49:53),'(i5)') nfiles - - write(cmd2(26:29),'(i4)') nf0 - write(cmd2(34:34),'(i1)') ndepth - cmd2(39:39)=csubmode - - call system('rm -f *.wav') - - write(*,1000) (j,j=0,11) - write(12,1000) (j,j=0,11) -1000 format(/'SNR d Dop Sync Dec Bad',i6,11i4,' tdec'/80('-')) - - dterr=tsym/4.0 - nferr=max(1,nint(0.5*baud),nint(fdop/3.0)) - ndecodes0=nfiles - - do nsnr=ia,ib,-1 - nsync=0 - ndecodes=0 - nfalse=0 - nretcode=0 - write(cmd1(57:59),'(i3)') nsnr - call system(cmd1) - call sec0(0,tdec) - call system(cmd2) - call sec0(1,tdec) - open(10,file='junk',status='unknown') - n=0 - do iline=1,9999 - read(10,'(a71)',end=10) line - if(index(line,' 50000) nfreq=144; +// if(nfreq<10 or nfreq > 50000) nfreq=144; astrosub_(&nyear, &month, &nday, &uth, &nfreq, mygrid.toLatin1(), hisgrid.toLatin1(), &azsun, &elsun, &azmoon, &elmoon, &azmoondx, &elmoondx, &ntsky, &ndop, &ndop00,&ramoon, &decmoon, &dgrd, &poloffset, &xnr, 6, 6); + datcom_.nfast=ndop00; //Send self Doppler to decoder, via datcom sprintf(cc, "Az: %6.1f\n" "El: %6.1f\n" diff --git a/map65/libm65/astrosub.f90 b/map65/libm65/astrosub.f90 index 64dddb00c..ce25a0d94 100644 --- a/map65/libm65/astrosub.f90 +++ b/map65/libm65/astrosub.f90 @@ -12,3 +12,15 @@ subroutine astrosub(nyear,month,nday,uth8,nfreq,mygrid,hisgrid, & return end subroutine astrosub + +subroutine astrosub00(nyear,month,nday,uth8,nfreq,mygrid,ndop00) + + implicit real*8 (a-h,o-z) + character*6 mygrid + + call astrosub(nyear,month,nday,uth8,nfreq,mygrid,mygrid, & + AzSun8,ElSun8,AzMoon8,ElMoon8,AzMoonB8,ElMoonB8,ntsky,ndop,ndop00, & + RAMoon8,DecMoon8,Dgrd8,poloffset8,xnr8) + + return +end subroutine astrosub00 diff --git a/map65/libm65/decode0.f90 b/map65/libm65/decode0.f90 index ba167cddf..438079f1d 100644 --- a/map65/libm65/decode0.f90 +++ b/map65/libm65/decode0.f90 @@ -12,7 +12,7 @@ subroutine decode0(dd,ss,savg,nstandalone) common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, & ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & - nfast,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid,datetime + ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid,datetime common/early/nhsym1,nhsym2,ldecoded(32768) common/decodes/ndecodes data neme0/-99/,mcall3b/1/ @@ -56,7 +56,7 @@ subroutine decode0(dd,ss,savg,nstandalone) mousedf,mousefqso,nagain,ndecdone,nfshift,ndphi,max_drift, & nfcal,nkeep,mcall3b,nsum,nsave,nxant,mycall,mygrid, & neme,ndepth,nstandalone,hiscall,hisgrid,nhsym,nfsample, & - ndiskdat,nxpol,nmode) + ndiskdat,nxpol,nmode,ndop00) call timer('map65a ',1) call timer('decode0 ',1) diff --git a/map65/libm65/ftninit.f90 b/map65/libm65/ftninit.f90 index 90468319c..f97705942 100644 --- a/map65/libm65/ftninit.f90 +++ b/map65/libm65/ftninit.f90 @@ -10,6 +10,7 @@ subroutine ftninit(appd) addpfx=' ' call pfxdump(appd//'/prefixes.txt') + open(12,file=appd//'/wb_q65.txt',status='unknown') open(13,file=appd//'/map65.log',status='unknown') open(19,file=appd//'/livecq.txt',status='unknown') open(21,file=appd//'/map65_rx.log',status='unknown',access='append',err=950) diff --git a/map65/libm65/m65.f90 b/map65/libm65/m65.f90 index d878a3b49..c93357c7e 100644 --- a/map65/libm65/m65.f90 +++ b/map65/libm65/m65.f90 @@ -7,9 +7,9 @@ program m65 ! ! 10 binary input data, *.tf2 files ! 11 prefixes.txt -! 12 +! 12 wb_w65.txt ! 13 map65.log -! 14 +! 14 ! 15 ! 16 tquick log ! 17 saved *.tf2 files @@ -41,7 +41,7 @@ program m65 common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, & ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & - nfast,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid,datetime + ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid,datetime common/early/nhsym1,nhsym2,ldecoded(32768) nargs=iargc() diff --git a/map65/libm65/m65a.f90 b/map65/libm65/m65a.f90 index 5e9adc464..ffeb176a3 100644 --- a/map65/libm65/m65a.f90 +++ b/map65/libm65/m65a.f90 @@ -82,7 +82,7 @@ subroutine m65c(dd,ss,savg,nparams0) common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, & ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & - nfast,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid, & + ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid, & datetime,junk1,junk2 common/early/nhsym1,nhsym2,ldecoded(32768) equivalence (nparams,fcenter) diff --git a/map65/libm65/map65a.f90 b/map65/libm65/map65a.f90 index 87afa48cd..1861467ad 100644 --- a/map65/libm65/map65a.f90 +++ b/map65/libm65/map65a.f90 @@ -2,7 +2,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & mousedf,mousefqso,nagain,ndecdone,nfshift,ndphi,max_drift, & nfcal,nkeep,mcall3b,nsum,nsave,nxant,mycall,mygrid, & neme,ndepth,nstandalone,hiscall,hisgrid,nhsym,nfsample, & - ndiskdat,nxpol,nmode) + ndiskdat,nxpol,nmode,ndop00) ! Processes timf2 data from Linrad to find and decode JT65 signals. @@ -41,6 +41,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & data nfile/0/,nutc0/-999/,nid/0/,ip000/1/,ip001/1/,mousefqso0/-999/ save + rewind 12 ndecodes=0 ! Clean start for Q65 at early decode @@ -68,11 +69,11 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & endif !### ! do k=1,ncand -! freq=cand(k)%f+nkhz_center-48.0-1.27046 +! freq=cand(k)%f+nkhz_center-48.0 ! ipk=cand(k)%indx -! write(*,3010) nutc,k,db(cand(k)%snr),freq,cand(k)%xdt, & +! write(71,3071) k,db(cand(k)%snr),freq,cand(k)%xdt, & ! cand(k)%ipol,cand(k)%iflip,ipk,ldecoded(ipk) -!3010 format('=a',i5.4,i5,f8.2,f10.3,f8.2,2i3,i6,L4) +!3071 format(i3,f8.2,f10.3,f8.2,2i3,i6,L4) ! enddo !### @@ -365,7 +366,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & call timer('q65b ',0) call q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf, & ntol,xpol,mycall,mygrid, hiscall,hisgrid,mode_q65,f0,fqso, & - newdat,nagain,max_drift,nhsym,idec) + newdat,nagain,max_drift,nhsym,ndop00,idec) call timer('q65b ',1) if(idec.ge.0) candec(icand)=.true. enddo @@ -376,7 +377,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & call timer('q65b ',0) call q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf, & ntol,xpol,mycall,mygrid,hiscall,hisgrid,mode_q65,f0,fqso, & - newdat,nagain,max_drift,nhsym,idec) + newdat,nagain,max_drift,nhsym,ndop00,idec) call timer('q65b ',1) endif endif @@ -420,7 +421,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & call timer('q65b ',0) call q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, & xpol,mycall,mygrid,hiscall,hisgrid,mode_q65,f0,fqso,newdat, & - nagain,max_drift,nhsym,idec) + nagain,max_drift,nhsym,ndop00,idec) call timer('q65b ',1) if(idec.ge.0) candec(icand)=.true. enddo ! icand @@ -520,6 +521,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & ndecdone=2 900 close(23) + call flush(12) ndphi=0 mcall3b=mcall3a diff --git a/map65/libm65/q65b.f90 b/map65/libm65/q65b.f90 index 92be6528a..7cf455edf 100644 --- a/map65/libm65/q65b.f90 +++ b/map65/libm65/q65b.f90 @@ -1,6 +1,6 @@ subroutine q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, & mycall0,mygrid,hiscall0,hisgrid,mode_q65,f0,fqso,newdat,nagain, & - max_drift,nhsym,idec) + max_drift,nhsym,ndop00,idec) ! This routine provides an interface between MAP65 and the Q65 decoder ! in WSJT-X. All arguments are input data obtained from the MAP65 GUI. @@ -181,11 +181,16 @@ subroutine q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, & if(nutc.ne.nutc00 .or. msg0(1:28).ne.msg00 .or. freq1.ne.freq1_00) then ! Write to file map65_rx.log: ndecodes=ndecodes+1 - write(21,1110) freq1,ndf,xdt0,npol,nsnr0,nutc,msg0(1:28),cq0 -1110 format(f8.3,i5,f5.1,2i4,i5.4,2x,a28,': A',2x,a3) + write(21,1110) freq1,ndf,xdt0,npol,nsnr0,nutc,msg0(1:28), & + cmode(2:2),cq0 +1110 format(f8.3,i5,f5.1,2i4,i5.4,2x,a28,': ',a1,2x,a3) nutc00=nutc msg00=msg0(1:28) freq1_00=freq1 + frx=0.001*k0*df+nkhz_center-48.0+1.0 - 0.001*nfcal + fsked=frx - 0.001*ndop00/2.0 - 1.5 + write(12,1120) nutc,fsked,xdt0,nsnr0,trim(msg0) +1120 format(i4.4,f9.3,f7.2,i5,2x,a,i6) endif endif diff --git a/map65/libm65/wideband_sync.f90 b/map65/libm65/wideband_sync.f90 index 90689ed1f..31a96d2cb 100644 --- a/map65/libm65/wideband_sync.f90 +++ b/map65/libm65/wideband_sync.f90 @@ -41,7 +41,7 @@ subroutine get_candidates(ss,savg,xpol,jz,nfa,nfb,nts_jt65,nts_q65,cand,ncand) type(candidate) :: cand(MAX_CANDIDATES) common/early/nhsym1,nhsym2,ldecoded(32768) - call wb_sync(ss,savg,xpol,jz,nfa,nfb) + call wb_sync(ss,savg,xpol,jz,nfa,nfb) !Output to sync() array tstep=2048.0/11025.0 !0.185760 s: 0.5*tsym_jt65, 0.3096*tsym_q65 df3=96000.0/NFFT @@ -89,8 +89,6 @@ subroutine get_candidates(ss,savg,xpol,jz,nfa,nfb,nts_jt65,nts_q65,cand,ncand) if(diffhz.gt.-0.03*bw .and. diffhz.lt.1.03*bw) skip=.true. enddo if(skip) cycle -! write(*,3301) i,k,m,f0,diffhz,bw,db(snr1) -!3301 format('=A',3i5,f8.3,2f8.0,f8.2) k=k+1 cand(k)%snr=snr1 cand(k)%f=f0 @@ -99,6 +97,8 @@ subroutine get_candidates(ss,savg,xpol,jz,nfa,nfb,nts_jt65,nts_q65,cand,ncand) cand(k)%ipol=sync(n)%ipol cand(k)%iflip=nint(flip) cand(k)%indx=n +! write(50,3050) i,k,m,f0+32.0,diffhz,bw,snr1,db(snr1) +!3050 format(3i5,f8.3,2f8.0,2f8.2) if(k.ge.MAX_CANDIDATES) exit enddo ncand=k @@ -251,15 +251,30 @@ subroutine wb_sync(ss,savg,xpol,jz,nfa,nfb) enddo ! i (frequency bin) -! do i=ia,ib -! write(15,3015) 0.001*(i-1)*df3,sync(i)%ccfmax,sync(i)%xdt,sync(i)%ipol, & -! sync(i)%iflip,sync(i)%birdie -!3015 format(3f10.3,2i6,L5) -! enddo - call pctile(sync(ia:ib)%ccfmax,ib-ia+1,50,base) sync(ia:ib)%ccfmax=sync(ia:ib)%ccfmax/base + bw=65*4*1.66666667 !Q65-60C bandwidth + nbw=bw/df3 + 1 !Number of bins to blank + syncmin=2.0 + nguard=10 + do i=ia,ib + if(sync(i)%ccfmax.lt.syncmin) cycle + spk=maxval(sync(i:i+nbw)%ccfmax) + ip =maxloc(sync(i:i+nbw)%ccfmax) + i0=ip(1)+i-1 + ja=min(i,i0-nguard) + jb=i0+nbw+nguard + sync(ja:jb)%ccfmax=0. + sync(i0)%ccfmax=spk + enddo + +! do i=ia,ib +! write(15,3015) 0.001*(i-1)*df3+32.0,sync(i)%ccfmax,sync(i)%xdt, & +! sync(i)%ipol,sync(i)%iflip,sync(i)%birdie +!3015 format(3f10.3,2i6,L5) +! enddo + return end subroutine wb_sync diff --git a/map65/mainwindow.cpp b/map65/mainwindow.cpp index ae3f938af..1ff6fe1fe 100644 --- a/map65/mainwindow.cpp +++ b/map65/mainwindow.cpp @@ -1293,7 +1293,25 @@ void MainWindow::decode() //decode() datcom_.mousefqso=m_wide_graph_window->QSOfreq(); datcom_.ndepth=m_ndepth; datcom_.ndiskdat=0; - if(m_diskData) datcom_.ndiskdat=1; + if(m_diskData) { + datcom_.ndiskdat=1; + int i0=m_path.indexOf(".tf2"); + if(i0<0) i0=m_path.indexOf(".iq"); + if(i0>0) { + // Compute self Doppler using the filename for Date and Time + int nyear=m_path.mid(i0-11,2).toInt()+2000; + int month=m_path.mid(i0-9,2).toInt(); + int nday=m_path.mid(i0-7,2).toInt(); + int nhr=m_path.mid(i0-4,2).toInt(); + int nmin=m_path.mid(i0-2,2).toInt(); + double uth=nhr + nmin/60.0; + int nfreq=(int)datcom_.fcenter; + int ndop00; + + astrosub00_(&nyear, &month, &nday, &uth, &nfreq, m_myGrid.toLatin1(),&ndop00,6); + datcom_.nfast=ndop00; //Send self Doppler to decoder, via datcom + } + } datcom_.neme=0; if(ui->actionOnly_EME_calls->isChecked()) datcom_.neme=1; @@ -1322,7 +1340,7 @@ void MainWindow::decode() //decode() datcom_.nxpol=0; if(m_xpol) datcom_.nxpol=1; datcom_.nmode=10*m_modeQ65 + m_modeJT65; - datcom_.nfast=1; //No longer used +// datcom_.nfast=1; //No longer used datcom_.nsave=m_nsave; datcom_.max_drift=ui->sbMaxDrift->value(); diff --git a/map65/mainwindow.h b/map65/mainwindow.h index ebee97403..efe58b866 100644 --- a/map65/mainwindow.h +++ b/map65/mainwindow.h @@ -322,6 +322,9 @@ extern "C" { int len1, int len2); int ptt_(int* nport, int* itx, int* iptt); + + void astrosub00_ (int* nyear, int* month, int* nday, double* uth, int* nfreq, + const char* mygrid, int* ndop00, int len1); } #endif // MAINWINDOW_H diff --git a/map65/plotter.cpp b/map65/plotter.cpp index 3c42051a4..ab53a4efb 100644 --- a/map65/plotter.cpp +++ b/map65/plotter.cpp @@ -776,7 +776,7 @@ void CPlotter::mouseMoveEvent (QMouseEvent * event) if(lower) { QToolTip::showText(event->globalPos(),QString::number(ndf)); } else { - QToolTip::showText(event->globalPos(),QString::number(freq)); + QToolTip::showText(event->globalPos(),QString::number(freq,'f',3)); } QWidget::mouseMoveEvent(event); } diff --git a/qmap/.gitignore b/qmap/.gitignore new file mode 100644 index 000000000..74b59e474 --- /dev/null +++ b/qmap/.gitignore @@ -0,0 +1 @@ +~* diff --git a/qmap/CMakeLists.txt b/qmap/CMakeLists.txt new file mode 100644 index 000000000..3494f54ba --- /dev/null +++ b/qmap/CMakeLists.txt @@ -0,0 +1,65 @@ +set (qmap_CXXSRCS + about.cpp + astro.cpp + devsetup.cpp + displaytext.cpp + getfile.cpp + main.cpp + mainwindow.cpp + meterwidget.cpp + plotter.cpp + signalmeter.cpp + soundin.cpp + widegraph.cpp + ) + +if (WIN32) + set (qmap_CXXSRCS ${qmap_CXXSRCS}) +endif (WIN32) + +set (qmap_UISRCS + about.ui + astro.ui + devsetup.ui + mainwindow.ui + widegraph.ui +) + +set (qmap_C_and_CXXSRCS + ${qmap_CSRCS} + ${qmap_CXXSRCS} + ) +set_property (SOURCE ${qmap_C_and_CXXSRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -include wsjtx_config.h") +set_property (SOURCE ${qmap_C_and_CXXSRCS} APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/wsjtx_config.h) + +# build the subdirectories +add_subdirectory (libqmap) + +# UI generation +qt5_wrap_ui (qmap_GENUISRCS ${qmap_UISRCS}) + +add_executable (qmap ${qmap_CXXSRCS} ${qmap_CSRCS} ${qmap_GENUISRCS} qmap.rc) +target_include_directories (qmap PRIVATE ${CMAKE_SOURCE_DIR} ${FFTW3_INCLUDE_DIRS}) +target_link_libraries (qmap wsjt_qt m65impl ${FFTW3_LIBRARIES} Qt5::Widgets Qt5::Network Usb::Usb) + +if (WSJT_CREATE_WINMAIN) + set_target_properties (qmap PROPERTIES WIN32_EXECUTABLE ON) +endif (WSJT_CREATE_WINMAIN) + +if (WIN32) + install ( + CODE "get_filename_component (_path \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/wsjtx_dir.txt\" REALPATH) + if (WIN32) + set (_separator \"\\\\\") + else () + set (_separator \"/\") + endif () + file (WRITE \"\${_path}\" \".\${_separator}\\n\")" + ) + + install ( + TARGETS qmap + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime + BUNDLE DESTINATION . COMPONENT runtime + ) +endif () diff --git a/qmap/LICENSE_WHEATLEY.TXT b/qmap/LICENSE_WHEATLEY.TXT new file mode 100644 index 000000000..8adb5204b --- /dev/null +++ b/qmap/LICENSE_WHEATLEY.TXT @@ -0,0 +1,30 @@ ++ + + This Software is released under the "Simplified BSD License" + + + +Copyright 2010 Moe Wheatley. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY Moe Wheatley ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Moe Wheatley OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation +are those of the authors and should not be interpreted as representing +official policies, either expressed or implied, of Moe Wheatley. diff --git a/qmap/MAP65_Beta_Release.docx b/qmap/MAP65_Beta_Release.docx new file mode 100644 index 000000000..acdc02773 Binary files /dev/null and b/qmap/MAP65_Beta_Release.docx differ diff --git a/qmap/about.cpp b/qmap/about.cpp new file mode 100644 index 000000000..508e9692a --- /dev/null +++ b/qmap/about.cpp @@ -0,0 +1,23 @@ +#include "about.h" +#include "revision_utils.hpp" +#include "ui_about.h" + +CAboutDlg::CAboutDlg(QWidget *parent) : + QDialog(parent), + ui(new Ui::CAboutDlg) +{ + ui->setupUi(this); + ui->labelTxt->setText("

" + QString {"QMAP v" + + QCoreApplication::applicationVersion () + + " " + revision ()}.simplified () + "


" + "QMAP is a wideband receiver for the Q65 protocol, intnded
" + "primarily for amateur radio EME communication. It works
" + "in close cooperation with WSJT-X, versions 2.7 and later.

" + "Copyright 2001-2023 by Joe Taylor, K1JT. Additional
" + "acknowledgments are contained in the source code."); +} + +CAboutDlg::~CAboutDlg() +{ + delete ui; +} diff --git a/qmap/about.h b/qmap/about.h new file mode 100644 index 000000000..a5206661a --- /dev/null +++ b/qmap/about.h @@ -0,0 +1,23 @@ +#ifndef ABOUTDLG_H +#define ABOUTDLG_H + +#include + +namespace Ui { + class CAboutDlg; +} + +class CAboutDlg : public QDialog +{ + Q_OBJECT + +public: + explicit CAboutDlg(QWidget *parent = nullptr); + ~CAboutDlg(); + +private: + Ui::CAboutDlg *ui; + QString m_Str; +}; + +#endif // ABOUTDLG_H diff --git a/qmap/about.ui b/qmap/about.ui new file mode 100644 index 000000000..fb20f48db --- /dev/null +++ b/qmap/about.ui @@ -0,0 +1,37 @@ + + + CAboutDlg + + + Qt::NonModal + + + + 0 + 0 + 374 + 164 + + + + + 0 + 0 + + + + About MAP65 + + + + + + + + + + + + + + diff --git a/qmap/afmhot.dat b/qmap/afmhot.dat new file mode 100644 index 000000000..7599d4aa8 --- /dev/null +++ b/qmap/afmhot.dat @@ -0,0 +1,257 @@ + 0 0.0000 0.0000 0.0000 + 1 0.0000 0.0000 0.0000 + 2 0.0078 0.0000 0.0000 + 3 0.0157 0.0000 0.0000 + 4 0.0235 0.0000 0.0000 + 5 0.0314 0.0000 0.0000 + 6 0.0392 0.0000 0.0000 + 7 0.0471 0.0000 0.0000 + 8 0.0549 0.0000 0.0000 + 9 0.0627 0.0000 0.0000 + 10 0.0706 0.0000 0.0000 + 11 0.0784 0.0000 0.0000 + 12 0.0863 0.0000 0.0000 + 13 0.0941 0.0000 0.0000 + 14 0.1020 0.0000 0.0000 + 15 0.1098 0.0000 0.0000 + 16 0.1176 0.0000 0.0000 + 17 0.1255 0.0000 0.0000 + 18 0.1333 0.0000 0.0000 + 19 0.1412 0.0000 0.0000 + 20 0.1490 0.0000 0.0000 + 21 0.1569 0.0000 0.0000 + 22 0.1647 0.0000 0.0000 + 23 0.1725 0.0000 0.0000 + 24 0.1804 0.0000 0.0000 + 25 0.1882 0.0000 0.0000 + 26 0.1961 0.0000 0.0000 + 27 0.2039 0.0000 0.0000 + 28 0.2118 0.0000 0.0000 + 29 0.2196 0.0000 0.0000 + 30 0.2275 0.0000 0.0000 + 31 0.2353 0.0000 0.0000 + 32 0.2431 0.0000 0.0000 + 33 0.2510 0.0000 0.0000 + 34 0.2588 0.0000 0.0000 + 35 0.2667 0.0000 0.0000 + 36 0.2745 0.0000 0.0000 + 37 0.2824 0.0000 0.0000 + 38 0.2902 0.0000 0.0000 + 39 0.2980 0.0000 0.0000 + 40 0.3059 0.0000 0.0000 + 41 0.3137 0.0000 0.0000 + 42 0.3216 0.0000 0.0000 + 43 0.3294 0.0000 0.0000 + 44 0.3373 0.0000 0.0000 + 45 0.3451 0.0000 0.0000 + 46 0.3529 0.0000 0.0000 + 47 0.3608 0.0000 0.0000 + 48 0.3686 0.0000 0.0000 + 49 0.3765 0.0000 0.0000 + 50 0.3843 0.0000 0.0000 + 51 0.3922 0.0000 0.0000 + 52 0.4000 0.0000 0.0000 + 53 0.4078 0.0000 0.0000 + 54 0.4157 0.0000 0.0000 + 55 0.4235 0.0000 0.0000 + 56 0.4314 0.0000 0.0000 + 57 0.4392 0.0000 0.0000 + 58 0.4471 0.0000 0.0000 + 59 0.4549 0.0000 0.0000 + 60 0.4627 0.0000 0.0000 + 61 0.4706 0.0000 0.0000 + 62 0.4784 0.0000 0.0000 + 63 0.4863 0.0000 0.0000 + 64 0.4941 0.0000 0.0000 + 65 0.5020 0.0000 0.0000 + 66 0.5098 0.0098 0.0000 + 67 0.5176 0.0176 0.0000 + 68 0.5255 0.0255 0.0000 + 69 0.5333 0.0333 0.0000 + 70 0.5412 0.0412 0.0000 + 71 0.5490 0.0490 0.0000 + 72 0.5569 0.0569 0.0000 + 73 0.5647 0.0647 0.0000 + 74 0.5725 0.0725 0.0000 + 75 0.5804 0.0804 0.0000 + 76 0.5882 0.0882 0.0000 + 77 0.5961 0.0961 0.0000 + 78 0.6039 0.1039 0.0000 + 79 0.6118 0.1118 0.0000 + 80 0.6196 0.1196 0.0000 + 81 0.6275 0.1275 0.0000 + 82 0.6353 0.1353 0.0000 + 83 0.6431 0.1431 0.0000 + 84 0.6510 0.1510 0.0000 + 85 0.6588 0.1588 0.0000 + 86 0.6667 0.1667 0.0000 + 87 0.6745 0.1745 0.0000 + 88 0.6824 0.1824 0.0000 + 89 0.6902 0.1902 0.0000 + 90 0.6980 0.1980 0.0000 + 91 0.7059 0.2059 0.0000 + 92 0.7137 0.2137 0.0000 + 93 0.7216 0.2216 0.0000 + 94 0.7294 0.2294 0.0000 + 95 0.7373 0.2373 0.0000 + 96 0.7451 0.2451 0.0000 + 97 0.7529 0.2529 0.0000 + 98 0.7608 0.2608 0.0000 + 99 0.7686 0.2686 0.0000 + 100 0.7765 0.2765 0.0000 + 101 0.7843 0.2843 0.0000 + 102 0.7922 0.2922 0.0000 + 103 0.8000 0.3000 0.0000 + 104 0.8078 0.3078 0.0000 + 105 0.8157 0.3157 0.0000 + 106 0.8235 0.3235 0.0000 + 107 0.8314 0.3314 0.0000 + 108 0.8392 0.3392 0.0000 + 109 0.8471 0.3471 0.0000 + 110 0.8549 0.3549 0.0000 + 111 0.8627 0.3627 0.0000 + 112 0.8706 0.3706 0.0000 + 113 0.8784 0.3784 0.0000 + 114 0.8863 0.3863 0.0000 + 115 0.8941 0.3941 0.0000 + 116 0.9020 0.4020 0.0000 + 117 0.9098 0.4098 0.0000 + 118 0.9176 0.4176 0.0000 + 119 0.9255 0.4255 0.0000 + 120 0.9333 0.4333 0.0000 + 121 0.9412 0.4412 0.0000 + 122 0.9490 0.4490 0.0000 + 123 0.9569 0.4569 0.0000 + 124 0.9647 0.4647 0.0000 + 125 0.9725 0.4725 0.0000 + 126 0.9804 0.4804 0.0000 + 127 0.9882 0.4882 0.0000 + 128 0.9961 0.4961 0.0000 + 129 1.0000 0.5039 0.0000 + 130 1.0000 0.5118 0.0118 + 131 1.0000 0.5196 0.0196 + 132 1.0000 0.5275 0.0275 + 133 1.0000 0.5353 0.0353 + 134 1.0000 0.5431 0.0431 + 135 1.0000 0.5510 0.0510 + 136 1.0000 0.5588 0.0588 + 137 1.0000 0.5667 0.0667 + 138 1.0000 0.5745 0.0745 + 139 1.0000 0.5824 0.0824 + 140 1.0000 0.5902 0.0902 + 141 1.0000 0.5980 0.0980 + 142 1.0000 0.6059 0.1059 + 143 1.0000 0.6137 0.1137 + 144 1.0000 0.6216 0.1216 + 145 1.0000 0.6294 0.1294 + 146 1.0000 0.6373 0.1373 + 147 1.0000 0.6451 0.1451 + 148 1.0000 0.6529 0.1529 + 149 1.0000 0.6608 0.1608 + 150 1.0000 0.6686 0.1686 + 151 1.0000 0.6765 0.1765 + 152 1.0000 0.6843 0.1843 + 153 1.0000 0.6922 0.1922 + 154 1.0000 0.7000 0.2000 + 155 1.0000 0.7078 0.2078 + 156 1.0000 0.7157 0.2157 + 157 1.0000 0.7235 0.2235 + 158 1.0000 0.7314 0.2314 + 159 1.0000 0.7392 0.2392 + 160 1.0000 0.7471 0.2471 + 161 1.0000 0.7549 0.2549 + 162 1.0000 0.7627 0.2627 + 163 1.0000 0.7706 0.2706 + 164 1.0000 0.7784 0.2784 + 165 1.0000 0.7863 0.2863 + 166 1.0000 0.7941 0.2941 + 167 1.0000 0.8020 0.3020 + 168 1.0000 0.8098 0.3098 + 169 1.0000 0.8176 0.3176 + 170 1.0000 0.8255 0.3255 + 171 1.0000 0.8333 0.3333 + 172 1.0000 0.8412 0.3412 + 173 1.0000 0.8490 0.3490 + 174 1.0000 0.8569 0.3569 + 175 1.0000 0.8647 0.3647 + 176 1.0000 0.8725 0.3725 + 177 1.0000 0.8804 0.3804 + 178 1.0000 0.8882 0.3882 + 179 1.0000 0.8961 0.3961 + 180 1.0000 0.9039 0.4039 + 181 1.0000 0.9118 0.4118 + 182 1.0000 0.9196 0.4196 + 183 1.0000 0.9275 0.4275 + 184 1.0000 0.9353 0.4353 + 185 1.0000 0.9431 0.4431 + 186 1.0000 0.9510 0.4510 + 187 1.0000 0.9588 0.4588 + 188 1.0000 0.9667 0.4667 + 189 1.0000 0.9745 0.4745 + 190 1.0000 0.9824 0.4824 + 191 1.0000 0.9902 0.4902 + 192 1.0000 0.9980 0.4980 + 193 1.0000 1.0000 0.5059 + 194 1.0000 1.0000 0.5137 + 195 1.0000 1.0000 0.5216 + 196 1.0000 1.0000 0.5294 + 197 1.0000 1.0000 0.5373 + 198 1.0000 1.0000 0.5451 + 199 1.0000 1.0000 0.5529 + 200 1.0000 1.0000 0.5608 + 201 1.0000 1.0000 0.5686 + 202 1.0000 1.0000 0.5765 + 203 1.0000 1.0000 0.5843 + 204 1.0000 1.0000 0.5922 + 205 1.0000 1.0000 0.6000 + 206 1.0000 1.0000 0.6078 + 207 1.0000 1.0000 0.6157 + 208 1.0000 1.0000 0.6235 + 209 1.0000 1.0000 0.6314 + 210 1.0000 1.0000 0.6392 + 211 1.0000 1.0000 0.6471 + 212 1.0000 1.0000 0.6549 + 213 1.0000 1.0000 0.6627 + 214 1.0000 1.0000 0.6706 + 215 1.0000 1.0000 0.6784 + 216 1.0000 1.0000 0.6863 + 217 1.0000 1.0000 0.6941 + 218 1.0000 1.0000 0.7020 + 219 1.0000 1.0000 0.7098 + 220 1.0000 1.0000 0.7176 + 221 1.0000 1.0000 0.7255 + 222 1.0000 1.0000 0.7333 + 223 1.0000 1.0000 0.7412 + 224 1.0000 1.0000 0.7490 + 225 1.0000 1.0000 0.7569 + 226 1.0000 1.0000 0.7647 + 227 1.0000 1.0000 0.7725 + 228 1.0000 1.0000 0.7804 + 229 1.0000 1.0000 0.7882 + 230 1.0000 1.0000 0.7961 + 231 1.0000 1.0000 0.8039 + 232 1.0000 1.0000 0.8118 + 233 1.0000 1.0000 0.8196 + 234 1.0000 1.0000 0.8275 + 235 1.0000 1.0000 0.8353 + 236 1.0000 1.0000 0.8431 + 237 1.0000 1.0000 0.8510 + 238 1.0000 1.0000 0.8588 + 239 1.0000 1.0000 0.8667 + 240 1.0000 1.0000 0.8745 + 241 1.0000 1.0000 0.8824 + 242 1.0000 1.0000 0.8902 + 243 1.0000 1.0000 0.8980 + 244 1.0000 1.0000 0.9059 + 245 1.0000 1.0000 0.9137 + 246 1.0000 1.0000 0.9216 + 247 1.0000 1.0000 0.9294 + 248 1.0000 1.0000 0.9373 + 249 1.0000 1.0000 0.9451 + 250 1.0000 1.0000 0.9529 + 251 1.0000 1.0000 0.9608 + 252 1.0000 1.0000 0.9686 + 253 1.0000 1.0000 0.9765 + 254 1.0 0.0 0.0 + 255 1.0 1.0 0.0 + 256 0.0 1.000 0.0 diff --git a/qmap/astro.cpp b/qmap/astro.cpp new file mode 100644 index 000000000..65b6519d9 --- /dev/null +++ b/qmap/astro.cpp @@ -0,0 +1,199 @@ +#include "astro.h" +#include +#include "ui_astro.h" +#include +#include +#include +#include +#include "SettingsGroup.hpp" +#include "commons.h" +#include + +extern "C" { + void astrosub_ (int* nyear, int* month, int* nday, double* uth, int* nfreq, + const char* mygrid, const char* hisgrid, double* azsun, + double* elsun, double* azmoon, double* elmoon, double* azmoondx, + double* elmoondx, int* ntsky, int* ndop, int* ndop00, + double* ramoon, double* decmoon, double* dgrd, double* poloffset, + double* xnr, int len1, int len2); +} + +Astro::Astro (QString const& settings_filename, QWidget *parent) : + QWidget(parent), + ui(new Ui::Astro), + m_settings_filename {settings_filename} +{ + ui->setupUi (this); + setWindowTitle ("Astronomical Data"); + setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint); + QSettings settings {m_settings_filename, QSettings::IniFormat}; + SettingsGroup g {&settings, "MainWindow"}; // MainWindow group for + // historical reasons + setGeometry (settings.value ("AstroGeom", QRect {71, 390, 227, 403}).toRect ()); + ui->astroTextBrowser->setStyleSheet( + "QTextBrowser { background-color : cyan; color : black; }"); + ui->astroTextBrowser->clear(); + m_AzElDir0=""; +} + +Astro::~Astro() +{ + QSettings settings {m_settings_filename, QSettings::IniFormat}; + SettingsGroup g {&settings, "MainWindow"}; + settings.setValue ("AstroGeom", geometry ()); + delete ui; +} + +void Astro::astroUpdate(QDateTime t, QString mygrid, QString hisgrid, + int fQSO, int nsetftx, int ntxFreq, QString azelDir, double xavg) +{ + static int ntxFreq0=-99; + char cc[300]; + double azsun,elsun,azmoon,elmoon,azmoondx,elmoondx; + double ramoon,decmoon,dgrd,poloffset,xnr; + int ntsky,ndop,ndop00; + QString date = t.date().toString("yyyy MMM dd"); + QString utc = t.time().toString(); + int nyear=t.date().year(); + int month=t.date().month(); + int nday=t.date().day(); + int nhr=t.time().hour(); + int nmin=t.time().minute(); + double sec=t.time().second() + 0.001*t.time().msec(); + int isec=sec; + double uth=nhr + nmin/60.0 + sec/3600.0; + int nfreq=(int)datcom_.fcenter; +// if(nfreq<10 or nfreq > 50000) nfreq=144; + + astrosub_(&nyear, &month, &nday, &uth, &nfreq, mygrid.toLatin1(), + hisgrid.toLatin1(), &azsun, &elsun, &azmoon, &elmoon, + &azmoondx, &elmoondx, &ntsky, &ndop, &ndop00,&ramoon, &decmoon, + &dgrd, &poloffset, &xnr, 6, 6); + + datcom_.ndop00=ndop00; //Send self Doppler to decoder, via datcom + sprintf(cc, + "Az: %6.1f\n" + "El: %6.1f\n" + "MyDop: %6d\n" + "DxAz: %6.1f\n" + "DxEl: %6.1f\n" + "DxDop: %6d\n" + "Dec: %6.1f\n" + "SunAz: %6.1f\n" + "SunEl: %6.1f\n" + "Tsky: %6d\n" + "MNR: %6.1f\n" + "Dgrd: %6.1f", + azmoon,elmoon,ndop00,azmoondx,elmoondx,ndop,decmoon,azsun,elsun, + ntsky,xnr,dgrd); + ui->astroTextBrowser->setText(" "+ date + "\nUTC: " + utc + "\n" + cc); + + double azOffset=0.0; + double elOffset=0.0; + double rad=57.2957795131; + int iCycle=2; +// Are we doing pointing tests? + bool bPointing=ui->cbPointingTests->isChecked(); + ui->gbPointing->setVisible(bPointing); + if(bPointing) { + int nDwell=int(ui->sbDwell->value()); + if(ui->cbAutoCycle->isChecked()) { + iCycle=(t.currentSecsSinceEpoch()%(6*nDwell))/nDwell + 1; + if(iCycle==1) { + azOffset = -ui->sbOffset->value()/cos(elsun/rad); + ui->rb1->setChecked(true); + } + if(iCycle==2 or iCycle==5) { + ui->rb2->setChecked(true); + } + if(iCycle==3) { + azOffset = +ui->sbOffset->value()/cos(elsun/rad); + ui->rb3->setChecked(true); + } + if(iCycle==4) { + elOffset = -ui->sbOffset->value(); + ui->rb4->setChecked(true); + } + if(iCycle==6) { + elOffset = +ui->sbOffset->value(); + ui->rb6->setChecked(true); + } + } else if(ui->cbOnOff->isChecked()) { + iCycle=(t.currentSecsSinceEpoch()%(2*nDwell))/nDwell + 1; + if(iCycle==1) { + azOffset = -ui->sbOffset->value()/cos(elsun/rad); + ui->rb1->setChecked(true); + } + if(iCycle==2) { + ui->rb2->setChecked(true); + } + } else { + if(ui->rb1->isChecked()) azOffset = -ui->sbOffset->value()/cos(elsun/rad); + if(ui->rb3->isChecked()) azOffset = ui->sbOffset->value()/cos(elsun/rad); + if(ui->rb4->isChecked()) elOffset = -ui->sbOffset->value(); + if(ui->rb6->isChecked()) elOffset = ui->sbOffset->value(); + } + if(ui->cbAutoCycle->isChecked() or ui->cbOnOff->isChecked()) { + QFile f("pointing.out"); + if(f.open(QIODevice::WriteOnly | QIODevice::Append)) { + QTextStream out(&f); + out << t.toString("yyyy-MMM-dd hh:mm:ss"); + sprintf(cc,"%7.1f %7.1f %d %7.1f %7.1f %10.1f %7.2f\n", + azsun,elsun,iCycle,azOffset,elOffset,xavg,10.0*log10(xavg)); + out << cc; + f.close(); + } + } + } else { + ui->rb2->setChecked(true); + ui->cbAutoCycle->setChecked(false); + ui->cbOnOff->setChecked(false); + } + +// Write pointing data to azel.dat + QString fname=azelDir+"/azel.dat"; +// qDebug() << "aa" << fname << isec << bPointing << azOffset << elOffset; + QFile f(fname); + if(!f.open(QIODevice::WriteOnly | QIODevice::Text)) { + if(azelDir==m_AzElDir0) return; + m_AzElDir0=azelDir; + QMessageBox mb; + mb.setText("Cannot open " + fname + "\nCorrect the setting of AzEl Directory in Setup?"); + mb.exec(); + return; + } + int ndiff=0; + if(ntxFreq != ntxFreq0) ndiff=1; + ntxFreq0=ntxFreq; + QTextStream out(&f); + sprintf(cc,"%2.2d:%2.2d:%2.2d,%5.1f,%5.1f,Moon\n" + "%2.2d:%2.2d:%2.2d,%5.1f,%5.1f,Sun\n" + "%2.2d:%2.2d:%2.2d,%5.1f,%5.1f,Source\n" + "%4d,%6d,%6d,Doppler\n" + "%3d,%1d,fQSO\n" + "%3d,%1d,fQSO2\n", + nhr,nmin,isec,azmoon,elmoon, + nhr,nmin,isec,azsun+azOffset,elsun+elOffset, + nhr,nmin,isec,0.0,0.0, + nfreq,ndop,ndop00, + fQSO,nsetftx, + ntxFreq,ndiff); + out << cc; + f.close(); +} + +void Astro::setFontSize(int n) +{ + ui->astroTextBrowser->setFontPointSize(n); +} + +void Astro::on_cbAutoCycle_clicked(bool checked) +{ + if(checked) ui->cbOnOff->setChecked(false); +} + +void Astro::on_cbOnOff_clicked(bool checked) +{ + if(checked) ui->cbAutoCycle->setChecked(false); +} + diff --git a/qmap/astro.h b/qmap/astro.h new file mode 100644 index 000000000..6b574237f --- /dev/null +++ b/qmap/astro.h @@ -0,0 +1,32 @@ +#ifndef ASTRO_H +#define ASTRO_H + +#include +#include + +namespace Ui { + class Astro; +} + +class Astro : public QWidget +{ + Q_OBJECT + +public: + explicit Astro (QString const& settings_filename, QWidget *parent = 0); + void astroUpdate(QDateTime t, QString mygrid, QString hisgrid, + int fQSO, int nsetftx, int ntxFreq, QString azelDir, double xavg); + void setFontSize(int n); + ~Astro (); + +private slots: + void on_cbOnOff_clicked(bool checked); + void on_cbAutoCycle_clicked(bool checked); + +private: + Ui::Astro *ui; + QString m_settings_filename; + QString m_AzElDir0; +}; + +#endif diff --git a/qmap/astro.ui b/qmap/astro.ui new file mode 100644 index 000000000..991a002f4 --- /dev/null +++ b/qmap/astro.ui @@ -0,0 +1,249 @@ + + + Astro + + + + 0 + 0 + 441 + 483 + + + + Form + + + + + 269 + 19 + 151 + 431 + + + + + + + + + 10 + 100 + 30 + 17 + + + + 1 + + + + + + 60 + 100 + 40 + 17 + + + + 2, 5 + + + true + + + + + + 110 + 100 + 30 + 17 + + + + 3 + + + + + + 60 + 150 + 30 + 17 + + + + 4 + + + + + + 60 + 50 + 30 + 17 + + + + 6 + + + + + + 10 + 230 + 130 + 22 + + + + Qt::AlignCenter + + + Offset + + + deg + + + 1 + + + 0.500000000000000 + + + 20.000000000000000 + + + 0.500000000000000 + + + 2.500000000000000 + + + + + + 30 + 330 + 91 + 17 + + + + Auto Cycle + + + + + + 30 + 380 + 70 + 17 + + + + On Off + + + + + + 10 + 280 + 130 + 22 + + + + Qt::AlignCenter + + + s + + + Dwell + + + 10 + + + 300 + + + 10 + + + + + + + 0 + 10 + 258 + 471 + + + + + + + + Courier New + 20 + 75 + true + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Pointing Tests + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + diff --git a/qmap/blue.dat b/qmap/blue.dat new file mode 100644 index 000000000..852295114 --- /dev/null +++ b/qmap/blue.dat @@ -0,0 +1,256 @@ + 0 0.0000 0.0000 0.0000 + 1 0.0902 0.0902 0.2558 + 2 0.1176 0.1176 0.2694 + 3 0.1412 0.1412 0.2820 + 4 0.1569 0.1569 0.2938 + 5 0.1725 0.1725 0.3049 + 6 0.1843 0.1843 0.3154 + 7 0.1961 0.1961 0.3254 + 8 0.2039 0.2039 0.3349 + 9 0.2157 0.2157 0.3440 + 10 0.2235 0.2235 0.3528 + 11 0.2314 0.2314 0.3612 + 12 0.2392 0.2392 0.3693 + 13 0.2471 0.2471 0.3772 + 14 0.2549 0.2549 0.3848 + 15 0.2588 0.2588 0.3921 + 16 0.2667 0.2667 0.3992 + 17 0.2706 0.2706 0.4061 + 18 0.2784 0.2784 0.4129 + 19 0.2824 0.2824 0.4194 + 20 0.2902 0.2902 0.4258 + 21 0.2941 0.2941 0.4319 + 22 0.2980 0.2980 0.4380 + 23 0.3059 0.3059 0.4439 + 24 0.3098 0.3098 0.4496 + 25 0.3137 0.3137 0.4553 + 26 0.3176 0.3176 0.4608 + 27 0.3216 0.3216 0.4661 + 28 0.3294 0.3294 0.4714 + 29 0.3333 0.3333 0.4765 + 30 0.3373 0.3373 0.4815 + 31 0.3412 0.3412 0.4865 + 32 0.3451 0.3451 0.4913 + 33 0.3490 0.3490 0.4960 + 34 0.3529 0.3529 0.5006 + 35 0.3569 0.3569 0.5052 + 36 0.3608 0.3608 0.5096 + 37 0.3647 0.3647 0.5140 + 38 0.3686 0.3686 0.5183 + 39 0.3725 0.3725 0.5225 + 40 0.3765 0.3765 0.5266 + 41 0.3804 0.3804 0.5306 + 42 0.3843 0.3843 0.5346 + 43 0.3843 0.3843 0.5385 + 44 0.3882 0.3882 0.5423 + 45 0.3922 0.3922 0.5460 + 46 0.3961 0.3961 0.5497 + 47 0.4000 0.4000 0.5533 + 48 0.4039 0.4039 0.5569 + 49 0.4078 0.4078 0.5603 + 50 0.4118 0.4118 0.5638 + 51 0.4118 0.4118 0.5671 + 52 0.4157 0.4157 0.5704 + 53 0.4196 0.4196 0.5736 + 54 0.4235 0.4235 0.5768 + 55 0.4275 0.4275 0.5799 + 56 0.4314 0.4314 0.5829 + 57 0.4314 0.4314 0.5859 + 58 0.4353 0.4353 0.5889 + 59 0.4392 0.4392 0.5917 + 60 0.4431 0.4431 0.5946 + 61 0.4471 0.4471 0.5973 + 62 0.4471 0.4471 0.6001 + 63 0.4510 0.4510 0.6027 + 64 0.4549 0.4549 0.6053 + 65 0.4588 0.4588 0.6079 + 66 0.4627 0.4627 0.6104 + 67 0.4627 0.4627 0.6129 + 68 0.4667 0.4667 0.6153 + 69 0.4706 0.4706 0.6176 + 70 0.4745 0.4745 0.6199 + 71 0.4745 0.4745 0.6222 + 72 0.4784 0.4784 0.6244 + 73 0.4824 0.4824 0.6266 + 74 0.4863 0.4863 0.6287 + 75 0.4863 0.4863 0.6308 + 76 0.4902 0.4902 0.6328 + 77 0.4941 0.4941 0.6348 + 78 0.4980 0.4980 0.6367 + 79 0.5020 0.5020 0.6386 + 80 0.5020 0.5020 0.6404 + 81 0.5059 0.5059 0.6422 + 82 0.5098 0.5098 0.6440 + 83 0.5098 0.5098 0.6457 + 84 0.5137 0.5137 0.6474 + 85 0.5176 0.5176 0.6490 + 86 0.5216 0.5216 0.6506 + 87 0.5216 0.5216 0.6521 + 88 0.5255 0.5255 0.6536 + 89 0.5294 0.5294 0.6551 + 90 0.5333 0.5333 0.6565 + 91 0.5333 0.5333 0.6578 + 92 0.5373 0.5373 0.6591 + 93 0.5412 0.5412 0.6604 + 94 0.5451 0.5451 0.6617 + 95 0.5451 0.5451 0.6629 + 96 0.5490 0.5490 0.6640 + 97 0.5529 0.5529 0.6651 + 98 0.5569 0.5569 0.6662 + 99 0.5569 0.5569 0.6672 + 100 0.5608 0.5608 0.6682 + 101 0.5647 0.5647 0.6692 + 102 0.5647 0.5647 0.6701 + 103 0.5686 0.5686 0.6710 + 104 0.5725 0.5725 0.6718 + 105 0.5765 0.5765 0.6726 + 106 0.5765 0.5765 0.6733 + 107 0.5804 0.5804 0.6740 + 108 0.5843 0.5843 0.6747 + 109 0.5843 0.5843 0.6753 + 110 0.5882 0.5882 0.6759 + 111 0.5922 0.5922 0.6765 + 112 0.5961 0.5961 0.6770 + 113 0.5961 0.5961 0.6774 + 114 0.6000 0.6000 0.6779 + 115 0.6039 0.6039 0.6783 + 116 0.6039 0.6039 0.6786 + 117 0.6078 0.6078 0.6789 + 118 0.6118 0.6118 0.6792 + 119 0.6157 0.6157 0.6794 + 120 0.6157 0.6157 0.6796 + 121 0.6196 0.6196 0.6798 + 122 0.6235 0.6235 0.6799 + 123 0.6235 0.6235 0.6800 + 124 0.6275 0.6275 0.6800 + 125 0.6314 0.6314 0.6800 + 126 0.6353 0.6353 0.6799 + 127 0.6353 0.6353 0.6799 + 128 0.6392 0.6392 0.6797 + 129 0.6431 0.6431 0.6796 + 130 0.6431 0.6431 0.6794 + 131 0.6471 0.6471 0.6791 + 132 0.6510 0.6510 0.6789 + 133 0.6549 0.6549 0.6785 + 134 0.6549 0.6549 0.6782 + 135 0.6588 0.6588 0.6778 + 136 0.6627 0.6627 0.6773 + 137 0.6627 0.6627 0.6769 + 138 0.6667 0.6667 0.6763 + 139 0.6706 0.6706 0.6758 + 140 0.6745 0.6745 0.6752 + 141 0.6745 0.6745 0.6746 + 142 0.6784 0.6784 0.6739 + 143 0.6824 0.6824 0.6732 + 144 0.6824 0.6824 0.6724 + 145 0.6863 0.6863 0.6716 + 146 0.6902 0.6902 0.6708 + 147 0.6941 0.6941 0.6699 + 148 0.6941 0.6941 0.6690 + 149 0.6980 0.6980 0.6680 + 150 0.7020 0.7020 0.6670 + 151 0.7020 0.7020 0.6660 + 152 0.7059 0.7059 0.6649 + 153 0.7098 0.7098 0.6638 + 154 0.7098 0.7098 0.6626 + 155 0.7137 0.7137 0.6614 + 156 0.7176 0.7176 0.6601 + 157 0.7216 0.7216 0.6589 + 158 0.7216 0.7216 0.6575 + 159 0.7255 0.7255 0.6561 + 160 0.7294 0.7294 0.6547 + 161 0.7294 0.7294 0.6533 + 162 0.7333 0.7333 0.6518 + 163 0.7373 0.7373 0.6502 + 164 0.7412 0.7412 0.6486 + 165 0.7412 0.7412 0.6470 + 166 0.7451 0.7451 0.6453 + 167 0.7490 0.7490 0.6436 + 168 0.7490 0.7490 0.6418 + 169 0.7529 0.7529 0.6400 + 170 0.7569 0.7569 0.6382 + 171 0.7608 0.7608 0.6363 + 172 0.7608 0.7608 0.6343 + 173 0.7647 0.7647 0.6324 + 174 0.7686 0.7686 0.6303 + 175 0.7686 0.7686 0.6282 + 176 0.7725 0.7725 0.6261 + 177 0.7765 0.7765 0.6239 + 178 0.7804 0.7804 0.6217 + 179 0.7804 0.7804 0.6194 + 180 0.7843 0.7843 0.6171 + 181 0.7882 0.7882 0.6147 + 182 0.7882 0.7882 0.6123 + 183 0.7922 0.7922 0.6098 + 184 0.7961 0.7961 0.6073 + 185 0.8000 0.8000 0.6047 + 186 0.8000 0.8000 0.6021 + 187 0.8039 0.8039 0.5994 + 188 0.8078 0.8078 0.5967 + 189 0.8078 0.8078 0.5939 + 190 0.8118 0.8118 0.5911 + 191 0.8157 0.8157 0.5882 + 192 0.8196 0.8196 0.5853 + 193 0.8196 0.8196 0.5823 + 194 0.8235 0.8235 0.5792 + 195 0.8275 0.8275 0.5761 + 196 0.8275 0.8275 0.5729 + 197 0.8314 0.8314 0.5697 + 198 0.8353 0.8353 0.5664 + 199 0.8392 0.8392 0.5630 + 200 0.8392 0.8392 0.5596 + 201 0.8431 0.8431 0.5561 + 202 0.8471 0.8471 0.5525 + 203 0.8471 0.8471 0.5489 + 204 0.8510 0.8510 0.5452 + 205 0.8549 0.8549 0.5414 + 206 0.8588 0.8588 0.5376 + 207 0.8588 0.8588 0.5337 + 208 0.8627 0.8627 0.5297 + 209 0.8667 0.8667 0.5257 + 210 0.8667 0.8667 0.5215 + 211 0.8706 0.8706 0.5173 + 212 0.8745 0.8745 0.5130 + 213 0.8784 0.8784 0.5086 + 214 0.8784 0.8784 0.5042 + 215 0.8824 0.8824 0.4996 + 216 0.8863 0.8863 0.4950 + 217 0.8863 0.8863 0.4902 + 218 0.8902 0.8902 0.4854 + 219 0.8941 0.8941 0.4804 + 220 0.8980 0.8980 0.4754 + 221 0.8980 0.8980 0.4702 + 222 0.9020 0.9020 0.4649 + 223 0.9059 0.9059 0.4595 + 224 0.9098 0.9098 0.4540 + 225 0.9098 0.9098 0.4484 + 226 0.9137 0.9137 0.4426 + 227 0.9176 0.9176 0.4366 + 228 0.9176 0.9176 0.4306 + 229 0.9216 0.9216 0.4243 + 230 0.9255 0.9255 0.4179 + 231 0.9294 0.9294 0.4114 + 232 0.9294 0.9294 0.4046 + 233 0.9333 0.9333 0.3977 + 234 0.9373 0.9373 0.3905 + 235 0.9373 0.9373 0.3831 + 236 0.9412 0.9412 0.3754 + 237 0.9451 0.9451 0.3675 + 238 0.9490 0.9490 0.3594 + 239 0.9490 0.9490 0.3509 + 240 0.9529 0.9529 0.3420 + 241 0.9569 0.9569 0.3328 + 242 0.9608 0.9608 0.3232 + 243 0.9608 0.9608 0.3131 + 244 0.9647 0.9647 0.3024 + 245 0.9686 0.9686 0.2912 + 246 0.9686 0.9686 0.2792 + 247 0.9725 0.9725 0.2664 + 248 0.9765 0.9765 0.2526 + 249 0.9804 0.9804 0.2375 + 250 0.9804 0.9804 0.2208 + 251 0.9843 0.9843 0.2020 + 252 0.9882 0.9882 0.1800 + 253 1.0 0.0 0.0 + 254 1.0 1.0 0.0 + 255 0.0 1.000 0.0 diff --git a/qmap/commons.h b/qmap/commons.h new file mode 100644 index 000000000..511ab7ae8 --- /dev/null +++ b/qmap/commons.h @@ -0,0 +1,97 @@ +#ifndef COMMONS_H +#define COMMONS_H + +#define NFFT 32768 + +extern "C" { + +extern struct { //This is "common/datcom/..." in Fortran + float d4[2*5760000]; //Raw I/Q data from Linrad + float ss[322*NFFT]; //Half-symbol spectra at 0,45,90,135 deg pol + float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol + double fcenter; //Center freq from Linrad (MHz) + int nutc; //UTC as integer, HHMM + float fselected; //Selected frequency for nagain decodes + int mousedf; //User-selected DF + int mousefqso; //User-selected QSO freq (kHz) + int nagain; //1 ==> decode only at fQSO +/- Tol + int ndepth; //How much hinted decoding to do? + int ndiskdat; //1 ==> data read from *.iq file + int neme; //Hinted decoding tries only for EME calls + int newdat; //1 ==> new data, must do long FFT + int nfa; //Low decode limit (kHz) + int nfb; //High decode limit (kHz) + int nfcal; //Frequency correction, for calibration (Hz) + int nfshift; //Shift of displayed center freq (kHz) + int mcall3; //1 ==> CALL3.TXT has been modified + int ntimeout; //Max for timeouts in Messages and BandMap + int ntol; //+/- decoding range around fQSO (Hz) + int nxant; //1 ==> add 45 deg to measured pol angle + int junk_1; + int nfsample; //Input sample rate + int nxpol; //1 if using xpol antennas, 0 otherwise + int nmode; //nmode = 10*m_modeQ65 + m_modeJT65 + int ndop00; //EME Self Doppler + int nsave; //Number of s3(64,63) spectra saved + int max_drift; //Maximum Q65 drift: units symbol_rate/TxT + int nhsym; //Number of available JT65 half-symbols + char mycall[12]; + char mygrid[6]; + char hiscall[12]; + char hisgrid[6]; + char datetime[20]; + int junk1; //Used to test extent of copy to shared memory + int junk2; +} datcom_; + +extern struct { //This is "common/datcom/..." in Fortran + float d4[2*5760000]; //Raw I/Q data from Linrad + float ss[322*NFFT]; //Half-symbol spectra at 0,45,90,135 deg pol + float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol + double fcenter; //Center freq from Linrad (MHz) + int nutc; //UTC as integer, HHMM + float fselected; //Selected frequency for nagain decodes + int mousedf; //User-selected DF + int mousefqso; //User-selected QSO freq (kHz) + int nagain; //1 ==> decode only at fQSO +/- Tol + int ndepth; //How much hinted decoding to do? + int ndiskdat; //1 ==> data read from *.iq file + int neme; //Hinted decoding tries only for EME calls + int newdat; //1 ==> new data, must do long FFT + int nfa; //Low decode limit (kHz) + int nfb; //High decode limit (kHz) + int nfcal; //Frequency correction, for calibration (Hz) + int nfshift; //Shift of displayed center freq (kHz) + int mcall3; //1 ==> CALL3.TXT has been modified + int ntimeout; //Max for timeouts in Messages and BandMap + int ntol; //+/- decoding range around fQSO (Hz) + int nxant; //1 ==> add 45 deg to measured pol angle + int junk_1; + int nfsample; //Input sample rate + int nxpol; //1 if using xpol antennas, 0 otherwise + int nmode; //nmode = 10*m_modeQ65 + m_modeJT65 + int ndop00; //EME Self Doppler + int nsave; //Number of s3(64,63) spectra saved + int max_drift; //Maximum Q65 drift: units symbol_rate/TxT + int nhsym; //Number of available JT65 half-symbols + char mycall[12]; + char mygrid[6]; + char hiscall[12]; + char hisgrid[6]; + char datetime[20]; + int junk1; //Used to test extent of copy to shared memory + int junk2; +} datcom2_; + +extern struct { + int ndecodes; //These are flags for inter-process communication + int ncand; //between QMAP and WSJT-X + int nQDecoderDone; //1 for real-time decodes, 2 for data from disk + int nWDecoderBusy; //Set to 1 when WSJT-X decoder is busy + int nWTransmitting; //Set to 1 when WSJT-X is transmitting + char result[50][60]; //Staging area for QMAP decodes +} decodes_; + +} + +#endif // COMMONS_H diff --git a/qmap/devsetup.cpp b/qmap/devsetup.cpp new file mode 100644 index 000000000..4657d1458 --- /dev/null +++ b/qmap/devsetup.cpp @@ -0,0 +1,48 @@ +#include "devsetup.h" +#include "mainwindow.h" +#include +#include +#include + +//----------------------------------------------------------- DevSetup() +DevSetup::DevSetup(QWidget *parent) : QDialog(parent) +{ + ui.setupUi(this); //setup the dialog form + m_restartSoundIn=false; +} + +DevSetup::~DevSetup() +{ +} + +void DevSetup::initDlg() +{ + ui.myCallEntry->setText(m_myCall); + ui.myGridEntry->setText(m_myGrid); + ui.astroFont->setValue(m_astroFont); + ui.saveDirEntry->setText(m_saveDir); + ui.azelDirEntry->setText(m_azelDir); + ui.fCalSpinBox->setValue(m_fCal); + ui.faddEntry->setText(QString::number(m_fAdd,'f',3)); + ui.sbPort->setValue(m_udpPort); + ui.sb_dB->setValue(m_dB); +} + +//------------------------------------------------------- accept() +void DevSetup::accept() +{ + // Called when OK button is clicked. + // Check to see whether SoundInThread must be restarted, + // and save user parameters. + + m_myCall=ui.myCallEntry->text(); + m_myGrid=ui.myGridEntry->text(); + m_astroFont=ui.astroFont->value(); + m_saveDir=ui.saveDirEntry->text(); + m_azelDir=ui.azelDirEntry->text(); + m_fCal=ui.fCalSpinBox->value(); + m_fAdd=ui.faddEntry->text().toDouble(); + m_udpPort=ui.sbPort->value(); + m_dB=ui.sb_dB->value(); + QDialog::accept(); +} diff --git a/qmap/devsetup.h b/qmap/devsetup.h new file mode 100644 index 000000000..e3b2e9e0c --- /dev/null +++ b/qmap/devsetup.h @@ -0,0 +1,45 @@ +#ifndef DEVSETUP_H +#define DEVSETUP_H + +#include +#include "ui_devsetup.h" + +class DevSetup : public QDialog +{ + Q_OBJECT +public: + DevSetup(QWidget *parent=0); + ~DevSetup(); + + void initDlg(); + qint32 m_idInt; + qint32 m_pttPort; + qint32 m_timeout; + qint32 m_dPhi; + qint32 m_fCal; + qint32 m_udpPort; + qint32 m_astroFont; + qint32 m_dB; + + double m_fAdd; + double m_TxOffset; + + bool m_network; + bool m_fs96000; + bool m_restartSoundIn; + + QString m_myCall; + QString m_myGrid; + QString m_saveDir; + QString m_azelDir; + QString m_editorCommand; + +public slots: + void accept(); + +private: + int r,g,b,r0,g0,b0,r1,g1,b1,r2,g2,b2,r3,g3,b3; + Ui::DialogSndCard ui; +}; + +#endif // DEVSETUP_H diff --git a/qmap/devsetup.ui b/qmap/devsetup.ui new file mode 100644 index 000000000..5bccece7d --- /dev/null +++ b/qmap/devsetup.ui @@ -0,0 +1,444 @@ + + + DialogSndCard + + + + 0 + 0 + 463 + 390 + + + + Settings + + + + + + 0 + + + + Station + + + + + 10 + 34 + 421 + 275 + + + + + + + + + + + + 0 + 20 + + + + My Call: + + + + + + + + 0 + 20 + + + + My Grid: + + + + + + + Astro Font Size: + + + + + + + + + + + + 60 + 16777215 + + + + K1JT + + + + + + + + 60 + 16777215 + + + + FN20qi + + + + + + + 12 + + + 32 + + + 20 + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + + + 0 + 20 + + + + Fcal (Hz): + + + + + + + + 0 + 20 + + + + Fadd (MHz) + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + + + + -20000 + + + 20000 + + + + + + + 0.0 + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + + + + + + + 80 + 20 + + + + Save Directory: + + + + + + + + + + + + + + + + + + + 80 + 20 + + + + AzEl Directory: + + + + + + + + + + + + + + + + + + true + + + I/O Devices + + + + + 0 + 10 + 361 + 291 + + + + + + + Input from Linrad + + + + + 13 + 14 + 341 + 211 + + + + + + + + + true + + + <html><head/><body><p>Adjust to scale digital I/Q data.</p></body></html> + + + dB + + + Gain + + + -50 + + + 10 + + + 1 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 57 + 0 + + + + 20000 + + + 51000 + + + 50004 + + + + + + + + 0 + 0 + + + + + 26 + 0 + + + + + 16777215 + 20 + + + + Port + + + + + + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + DialogSndCard + accept() + + + 257 + 380 + + + 157 + 274 + + + + + buttonBox + rejected() + DialogSndCard + reject() + + + 325 + 380 + + + 286 + 274 + + + + + diff --git a/qmap/displaytext.cpp b/qmap/displaytext.cpp new file mode 100644 index 000000000..4d7286d3b --- /dev/null +++ b/qmap/displaytext.cpp @@ -0,0 +1,15 @@ +#include "displaytext.h" +#include +#include + +DisplayText::DisplayText(QWidget *parent) : + QTextBrowser(parent) +{ +} + +void DisplayText::mouseDoubleClickEvent(QMouseEvent *e) +{ + bool ctrl = (e->modifiers() & 0x4000000); + emit(selectCallsign(ctrl)); + QTextBrowser::mouseDoubleClickEvent(e); +} diff --git a/qmap/displaytext.h b/qmap/displaytext.h new file mode 100644 index 000000000..4553d53fb --- /dev/null +++ b/qmap/displaytext.h @@ -0,0 +1,22 @@ +#ifndef DISPLAYTEXT_H +#define DISPLAYTEXT_H + +#include + +class DisplayText : public QTextBrowser +{ + Q_OBJECT +public: + explicit DisplayText(QWidget *parent = 0); + +signals: + void selectCallsign(bool ctrl); + +public slots: + +protected: + void mouseDoubleClickEvent(QMouseEvent *e); + +}; + +#endif // DISPLAYTEXT_H diff --git a/qmap/ffft.f b/qmap/ffft.f new file mode 100644 index 000000000..9c3c091a7 --- /dev/null +++ b/qmap/ffft.f @@ -0,0 +1,69 @@ + subroutine ffft(d,npts,isign,ireal) + +C Fourier transform of length npts=2**k, performed in place. +C Input data in array d, treated as complex if ireal=0, and as real if ireal=1. +C In either case the transform values are returned in array d, treated as +C complex. The DC term is d(1), and d(npts/2+1) is the term at the Nyquist +C frequency. The basic algorithm is the same as Norm Brenner's FOUR1, and +C uses radix-2 transforms. + +C J. H. Taylor, Princeton University. + + complex d(npts),t,w,wstep,tt,uu + data pi/3.14159265359/ + +C Shuffle the data to bit-reversed order. + + imax=npts/(ireal+1) + irev=1 + do 5 i=1,imax + if(i.ge.irev) go to 2 + t=d(i) + d(i)=d(irev) + d(irev)=t +2 mmax=imax/2 +3 if(irev.le.mmax) go to 5 + irev=irev-mmax + mmax=mmax/2 + if(mmax.ge.1) go to 3 +5 irev=irev+mmax + +C The radix-2 transform begins here. + + api=isign*pi/2. + mmax=1 +6 istep=2*mmax + wstep=cmplx(-2.*sin(api/mmax)**2,sin(2.*api/mmax)) + w=1. + do 9 m=1,mmax + +C This in the inner-most loop -- optimization here is important! + do 8 i=m,imax,istep + t=w*d(i+mmax) + d(i+mmax)=d(i)-t +8 d(i)=d(i)+t + +9 w=w*(1.+wstep) + mmax=istep + if(mmax.lt.imax) go to 6 + + if(ireal.eq.0) return + +C Now complete the last stage of a doubled-up real transform. + + jmax=imax/2 + 1 + wstep=cmplx(-2.*sin(isign*pi/npts)**2,sin(isign*pi/imax)) + w=1.0 + d(imax+1)=d(1) + + do 10 j=1,jmax + uu=cmplx(real(d(j))+real(d(2+imax-j)),aimag(d(j)) - + + aimag(d(2+imax-j))) + tt=w*cmplx(aimag(d(j))+aimag(d(2+imax-j)),-real(d(j)) + + + real(d(2+imax-j))) + d(j)=uu+tt + d(2+imax-j)=conjg(uu-tt) +10 w=w*(1.+wstep) + + return + end diff --git a/qmap/ft2000_freq.sh b/qmap/ft2000_freq.sh new file mode 100644 index 000000000..8bf9d07e9 --- /dev/null +++ b/qmap/ft2000_freq.sh @@ -0,0 +1 @@ +rigctl-wsjtx -m 129 -r COM1 -s 38400 -C data_bits=8 -C stop_bits=2 -C serial_handshake=Hardware f diff --git a/qmap/getfile.cpp b/qmap/getfile.cpp new file mode 100644 index 000000000..c43fa8397 --- /dev/null +++ b/qmap/getfile.cpp @@ -0,0 +1,106 @@ +#include "getfile.h" +#include +#include +#include +#include + +extern qint16 id[2*60*96000]; + +void getfile(QString fname, bool xpol, int dbDgrd) +{ + int npts=2*56*96000; + if(xpol) npts=2*npts; + +// Degrade S/N by dbDgrd dB -- for tests only!! + float dgrd=0.0; + if(dbDgrd<0) dgrd = 23.0*sqrt(pow(10.0,-0.1*(double)dbDgrd) - 1.0); + float fac=23.0/sqrt(dgrd*dgrd + 23.0*23.0); + + memset(id,0,2*npts); + char name[80]; + strcpy(name,fname.toLocal8Bit()); + FILE* fp=fopen(name,"rb"); + + if(fp != NULL) { + auto n = fread(&datcom_.fcenter,sizeof(datcom_.fcenter),1,fp); +// qDebug() << "aa0" << sizeof(datcom_.fcenter) << n << datcom_.fcenter; + n = fread(id,2,npts,fp); + Q_UNUSED (n); + int j=0; + + if(dbDgrd<0) { + for(int i=0; i0) { + datcom_.nutc=100*fname.mid(i0-4,2).toInt() + fname.mid(i0-2,2).toInt(); + } + } +} + +void savetf2(QString fname, bool xpol) +{ + int npts=2*56*96000; + if(xpol) npts=2*npts; + + qint16* buf=(qint16*)malloc(2*npts); + char name[80]; + strcpy(name,fname.toLocal8Bit()); + FILE* fp=fopen(name,"wb"); + + if(fp != NULL) { + fwrite(&datcom_.fcenter,sizeof(datcom_.fcenter),1,fp); + int j=0; + for(int i=0; i= 1.0 || rsq == 0.0); + fac = sqrt(-2.0*log(rsq)/rsq); + gset = v1*fac; + iset++; + return v2*fac; +} diff --git a/qmap/getfile.h b/qmap/getfile.h new file mode 100644 index 000000000..796c31e5c --- /dev/null +++ b/qmap/getfile.h @@ -0,0 +1,12 @@ +#ifndef GETFILE_H +#define GETFILE_H +#include +#include +#include +#include "commons.h" + +void getfile(QString fname, bool xpol, int dbDgrd); +void savetf2(QString fname, bool xpol); +float gran(); + +#endif // GETFILE_H diff --git a/qmap/getsvn.cmake b/qmap/getsvn.cmake new file mode 100644 index 000000000..d1007b2c4 --- /dev/null +++ b/qmap/getsvn.cmake @@ -0,0 +1,16 @@ +find_package (Subversion) +if (Subversion_FOUND AND EXISTS ${PROJECT_SOURCE_DIR}/.svn) + # the FindSubversion.cmake module is part of the standard distribution + include (FindSubversion) + # extract working copy information for SOURCE_DIR into MY_XXX variables + Subversion_WC_INFO (${SOURCE_DIR} MY) + # write a file with the SVNVERSION define + file (WRITE svnversion.h.txt "#define SVNVERSION ${MY_WC_REVISION}\n") +else (Subversion_FOUND AND EXISTS ${PROJECT_SOURCE_DIR}/.svn) + file (WRITE svnversion.h.txt "#define SVNVERSION local\n") +endif (Subversion_FOUND AND EXISTS ${PROJECT_SOURCE_DIR}/.svn) + +# copy the file to the final header only if the version changes +# reduces needless rebuilds +execute_process (COMMAND ${CMAKE_COMMAND} -E copy_if_different + svnversion.h.txt svnversion.h) diff --git a/qmap/in.dat b/qmap/in.dat new file mode 100644 index 000000000..5294129cb --- /dev/null +++ b/qmap/in.dat @@ -0,0 +1,16 @@ + 35 36 22 8 31 11 14 55 20 36 55 13 24 15 56 38 16 28 61 58 + 15 26 45 8 41 53 37 57 59 60 29 29 41 46 44 35 52 61 24 26 + 16 20 53 35 2 6 9 27 47 28 57 6 15 9 16 10 56 9 63 46 + 9 15 3 + 74 61 44 233 29 245 254 64 119 64 250 111 38 145 53 29 140 194 119 99 + 55 86 48 110 142 95 48 120 61 66 252 252 245 88 62 41 124 249 246 68 + 250 249 65 64 140 142 88 190 237 90 240 52 79 216 55 31 112 135 66 44 + 99 57 68 + 54 61 26 5 13 60 3 56 30 58 57 4 16 43 28 43 6 61 13 19 + 56 8 4 9 45 32 9 7 14 52 4 38 40 27 3 26 51 54 40 29 + 36 63 34 43 3 48 36 49 46 30 8 20 40 59 29 28 17 11 8 19 + 11 63 5 + 38 25 35 8 28 0 0 60 60 25 0 31 28 52 14 24 9 30 18 54 + 49 55 48 15 27 54 26 22 30 27 1 1 4 31 35 29 23 2 2 27 + 0 1 25 32 21 84 28 19 5 60 2 27 15 9 39 23 42 12 29 17 + 16 50 49 diff --git a/qmap/libqmap/CMakeLists.txt b/qmap/libqmap/CMakeLists.txt new file mode 100644 index 000000000..15c62716e --- /dev/null +++ b/qmap/libqmap/CMakeLists.txt @@ -0,0 +1,54 @@ +set (libq65_FSRCS +# Modules come first: + +# Non-module Fortran routines: + astro.f90 + astro0.f90 + astrosub.f90 + dcoord.f90 + decode0.f90 + dot.f90 + fchisq0.f90 + filbig.f90 + four2a.f90 + ftninit.f90 + ftnquit.f90 + geocentric.f90 + getcand2.f90 + grid2deg.f90 + indexx.f90 + lorentzian.f90 + moon2.f90 + moondop.f90 + q65b.f90 + q65c.f90 + q65_sync.f90 + qmapa.f90 + recvpkt.f90 + sun.f90 + symspec.f90 + timf2.f90 + tm2.f90 + toxyz.f90 + + f77_wisdom.f + ) + +#set (libq65_CXXSRCS +# ipcomm.cpp +# ) + +set (libq65_C_and_CXXSRCS + ${libq65_CSRCS} + ${libq65_CXXSRCS} + ) +set_property (SOURCE ${libq65_C_and_CXXSRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -include wsjtx_config.h") +set_property (SOURCE ${libq65_C_and_CXXSRCS} APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/wsjtx_config.h) + + +# +# build our targets +# +add_library (m65impl STATIC ${libq65_FSRCS} ${libq65_CSRCS} ${libq65_CXXSRCS}) +target_link_libraries (m65impl wsjt_fort wsjt_cxx Qt5::Core) + diff --git a/qmap/libqmap/astro.f90 b/qmap/libqmap/astro.f90 new file mode 100644 index 000000000..cf59bf27f --- /dev/null +++ b/qmap/libqmap/astro.f90 @@ -0,0 +1,105 @@ +subroutine astro(nyear,month,nday,uth,nfreq,Mygrid,NStation,MoonDX, & + AzSun,ElSun,AzMoon0,ElMoon0,ntsky,doppler00,doppler,dbMoon,RAMoon, & + DecMoon,HA,Dgrd,sd,poloffset,xnr,day,lon,lat,LST) + +! Computes astronomical quantities for display and tracking. +! NB: may want to smooth the Tsky map to 10 degrees or so. + + character*6 MyGrid,HisGrid + real LST + real lat,lon + integer*2 nt144(180) + +! common/echo/xdop(2),techo,AzMoon,ElMoon,mjd + real xdop(2) + + data rad/57.2957795/ + data nt144/ & + 234, 246, 257, 267, 275, 280, 283, 286, 291, 298, & + 305, 313, 322, 331, 341, 351, 361, 369, 376, 381, & + 383, 382, 379, 374, 370, 366, 363, 361, 363, 368, & + 376, 388, 401, 415, 428, 440, 453, 467, 487, 512, & + 544, 579, 607, 618, 609, 588, 563, 539, 512, 482, & + 450, 422, 398, 379, 363, 349, 334, 319, 302, 282, & + 262, 242, 226, 213, 205, 200, 198, 197, 196, 197, & + 200, 202, 204, 205, 204, 203, 202, 201, 203, 206, & + 212, 218, 223, 227, 231, 236, 240, 243, 247, 257, & + 276, 301, 324, 339, 346, 344, 339, 331, 323, 316, & + 312, 310, 312, 317, 327, 341, 358, 375, 392, 407, & + 422, 437, 451, 466, 480, 494, 511, 530, 552, 579, & + 612, 653, 702, 768, 863,1008,1232,1557,1966,2385, & + 2719,2924,3018,3038,2986,2836,2570,2213,1823,1461, & + 1163, 939, 783, 677, 602, 543, 494, 452, 419, 392, & + 373, 360, 353, 350, 350, 350, 350, 350, 350, 348, & + 344, 337, 329, 319, 307, 295, 284, 276, 272, 272, & + 273, 274, 274, 271, 266, 260, 252, 245, 238, 231/ + save + + call grid2deg(MyGrid,elon,lat) + lon=-elon + call sun(nyear,month,nday,uth,lon,lat,RASun,DecSun,LST,AzSun,ElSun,mjd,day) + + freq=nfreq*1.e6 + if(nfreq.eq.2) freq=1.8e6 + if(nfreq.eq.4) freq=3.5e6 + + call moondop(nyear,month,nday,uth,lon,lat,RAMoon,DecMoon,LST,HA, & + AzMoon,ElMoon,vr,dist) + +! Compute spatial polarization offset + xx=sin(lat/rad)*cos(ElMoon/rad) - cos(lat/rad)*cos(AzMoon/rad)*sin(ElMoon/rad) + yy=cos(lat/rad)*sin(AzMoon/rad) + if(NStation.eq.1) poloffset1=rad*atan2(yy,xx) + if(NStation.eq.2) poloffset2=rad*atan2(yy,xx) + + techo=2.0 * dist/2.99792458e5 !Echo delay time + doppler=-freq*vr/2.99792458e5 !One-way Doppler + + call coord(0.,0.,-1.570796,1.161639,RAMoon/rad,DecMoon/rad,el,eb) + longecl_half=nint(rad*el/2.0) + if(longecl_half.lt.1 .or. longecl_half.gt.180) longecl_half=180 + t144=nt144(longecl_half) + tsky=(t144-2.7)*(144.0/nfreq)**2.6 + 2.7 !Tsky for obs freq + + xdop(NStation)=doppler + if(NStation.eq.2) then + HisGrid=MyGrid + go to 900 + endif + + doppler00=2.0*xdop(1) + doppler=xdop(1)+xdop(2) +! if(mode.eq.3) doppler=2.0*xdop(1) + dBMoon=-40.0*log10(dist/356903.) + sd=16.23*370152.0/dist + +! if(NStation.eq.1 .and. MoonDX.ne.0 .and. +! + (mode.eq.2 .or. mode.eq.5)) then + if(NStation.eq.1 .and. MoonDX.ne.0) then + poloffset=mod(poloffset2-poloffset1+720.0,180.0) + if(poloffset.gt.90.0) poloffset=poloffset-180.0 + x1=abs(cos(2*poloffset/rad)) + if(x1.lt.0.056234) x1=0.056234 + xnr=-20.0*log10(x1) + if(HisGrid(1:1).lt.'A' .or. HisGrid(1:1).gt.'R') xnr=0 + endif + + tr=80.0 !Good preamp + tskymin=13.0*(408.0/nfreq)**2.6 !Cold sky temperature + tsysmin=tskymin+tr + tsys=tsky+tr + dgrd=-10.0*log10(tsys/tsysmin) + dbMoon +900 AzMoon0=Azmoon + ElMoon0=Elmoon + ntsky=nint(tsky) + +! auxHA = 15.0*(LST-auxra) !HA in degrees +! pi=3.14159265 +! pio2=0.5*pi +! call coord(pi,pio2-lat/rad,0.0,lat/rad,auxha*pi/180.0, +! + auxdec/rad,azaux,elaux) +! AzAux=azaux*rad +! ElAux=ElAux*rad + + return +end subroutine astro diff --git a/qmap/libqmap/astro0.f90 b/qmap/libqmap/astro0.f90 new file mode 100644 index 000000000..ec234215e --- /dev/null +++ b/qmap/libqmap/astro0.f90 @@ -0,0 +1,81 @@ +subroutine astro0(nyear,month,nday,uth8,nfreq,mygrid,hisgrid, & + AzSun8,ElSun8,AzMoon8,ElMoon8,AzMoonB8,ElMoonB8,ntsky,ndop,ndop00, & + dbMoon8,RAMoon8,DecMoon8,HA8,Dgrd8,sd8,poloffset8,xnr8,dfdt,dfdt0, & + width1,width2,w501,w502,xlst8) + + parameter (DEGS=57.2957795130823d0) + character*6 mygrid,hisgrid + real*8 AzSun8,ElSun8,AzMoon8,ElMoon8,AzMoonB8,ElMoonB8 + real*8 dbMoon8,RAMoon8,DecMoon8,HA8,Dgrd8,xnr8,dfdt,dfdt0,dt + real*8 sd8,poloffset8,day8,width1,width2,w501,w502,xlst8 + real*8 uth8 + data uth8z/0.d0/ + save + + uth=uth8 + call astro(nyear,month,nday,uth,nfreq,hisgrid,2,1, & + AzSun,ElSun,AzMoon,ElMoon,ntsky,doppler00,doppler, & + dbMoon,RAMoon,DecMoon,HA,Dgrd,sd,poloffset,xnr, & + day,xlon2,xlat2,xlst) + AzMoonB8=AzMoon + ElMoonB8=ElMoon + call astro(nyear,month,nday,uth,nfreq,mygrid,1,1, & + AzSun,ElSun,AzMoon,ElMoon,ntsky,doppler00,doppler, & + dbMoon,RAMoon,DecMoon,HA,Dgrd,sd,poloffset,xnr, & + day,xlon1,xlat1,xlst) + + day8=day + xlst8=xlst + call tm2(day8,xlat1,xlon1,xl1,b1) + call tm2(day8,xlat2,xlon2,xl2,b2) + call tm2(day8+1.d0/1440.0,xlat1,xlon1,xl1a,b1a) + call tm2(day8+1.d0/1440.0,xlat2,xlon2,xl2a,b2a) + fghz=0.001*nfreq + dldt1=DEGS*(xl1a-xl1) + dbdt1=DEGS*(b1a-b1) + dldt2=DEGS*(xl2a-xl2) + dbdt2=DEGS*(b2a-b2) + rate1=2.0*sqrt(dldt1**2 + dbdt1**2) + width1=0.5*6741*fghz*rate1 + rate2=sqrt((dldt1+dldt2)**2 + (dbdt1+dbdt2)**2) + width2=0.5*6741*fghz*rate2 + + fbend=0.7 + a2=0.0045*log(fghz/fbend)/log(1.05) + if(fghz.lt.fbend) a2=0.0 + f50=0.19 * (fghz/fbend)**a2 + if(f50.gt.1.0) f50=1.0 + w501=f50*width1 + w502=f50*width2 + + AzSun8=AzSun + ElSun8=ElSun + AzMoon8=AzMoon + ElMoon8=ElMoon + dbMoon8=dbMoon + RAMoon8=RAMoon/15.0 + DecMoon8=DecMoon + HA8=HA + Dgrd8=Dgrd + sd8=sd + poloffset8=poloffset + xnr8=xnr + ndop=nint(doppler) + ndop00=nint(doppler00) + + if(uth8z.eq.0.d0) then + uth8z=uth8-1.d0/3600.d0 + dopplerz=doppler + doppler00z=doppler00 + endif + + dt=60.0*(uth8-uth8z) + if(dt.le.0) dt=1.d0/60.d0 + dfdt=(doppler-dopplerz)/dt + dfdt0=(doppler00-doppler00z)/dt + uth8z=uth8 + dopplerz=doppler + doppler00z=doppler00 + + return +end subroutine astro0 diff --git a/qmap/libqmap/astrosub.f90 b/qmap/libqmap/astrosub.f90 new file mode 100644 index 000000000..ce25a0d94 --- /dev/null +++ b/qmap/libqmap/astrosub.f90 @@ -0,0 +1,26 @@ +subroutine astrosub(nyear,month,nday,uth8,nfreq,mygrid,hisgrid, & + AzSun8,ElSun8,AzMoon8,ElMoon8,AzMoonB8,ElMoonB8,ntsky,ndop,ndop00, & + RAMoon8,DecMoon8,Dgrd8,poloffset8,xnr8) + + implicit real*8 (a-h,o-z) + character*6 mygrid,hisgrid + + call astro0(nyear,month,nday,uth8,nfreq,mygrid,hisgrid, & + AzSun8,ElSun8,AzMoon8,ElMoon8,AzMoonB8,ElMoonB8,ntsky,ndop,ndop00, & + dbMoon8,RAMoon8,DecMoon8,HA8,Dgrd8,sd8,poloffset8,xnr8,dfdt,dfdt0, & + width1,width2,w501,w502,xlst8) + + return +end subroutine astrosub + +subroutine astrosub00(nyear,month,nday,uth8,nfreq,mygrid,ndop00) + + implicit real*8 (a-h,o-z) + character*6 mygrid + + call astrosub(nyear,month,nday,uth8,nfreq,mygrid,mygrid, & + AzSun8,ElSun8,AzMoon8,ElMoon8,AzMoonB8,ElMoonB8,ntsky,ndop,ndop00, & + RAMoon8,DecMoon8,Dgrd8,poloffset8,xnr8) + + return +end subroutine astrosub00 diff --git a/qmap/libqmap/dcoord.f90 b/qmap/libqmap/dcoord.f90 new file mode 100644 index 000000000..5ef6877aa --- /dev/null +++ b/qmap/libqmap/dcoord.f90 @@ -0,0 +1,40 @@ +SUBROUTINE DCOORD(A0,B0,AP,BP,A1,B1,A2,B2) + + implicit real*8 (a-h,o-z) +! Examples: +! 1. From ha,dec to az,el: +! call coord(pi,pio2-lat,0.,lat,ha,dec,az,el) +! 2. From az,el to ha,dec: +! call coord(pi,pio2-lat,0.,lat,az,el,ha,dec) +! 3. From ra,dec to l,b +! call coord(4.635594495,-0.504691042,3.355395488,0.478220215, +! ra,dec,l,b) +! 4. From l,b to ra,dec +! call coord(1.705981071d0,-1.050357016d0,2.146800277d0, +! 0.478220215d0,l,b,ra,dec) +! 5. From ecliptic latitude (eb) and longitude (el) to ra, dec: +! call coord(0.d0,0.d0,-pio2,pio2-23.443*pi/180,ra,dec,el,eb) + + SB0=sin(B0) + CB0=cos(B0) + SBP=sin(BP) + CBP=cos(BP) + SB1=sin(B1) + CB1=cos(B1) + SB2=SBP*SB1 + CBP*CB1*cos(AP-A1) + CB2=SQRT(1.D0-SB2**2) + B2=atan(SB2/CB2) + SAA=sin(AP-A1)*CB1/CB2 + CAA=(SB1-SB2*SBP)/(CB2*CBP) + CBB=SB0/CBP + SBB=sin(AP-A0)*CB0 + SA2=SAA*CBB-CAA*SBB + CA2=CAA*CBB+SAA*SBB + TA2O2=0.0 !Shut up compiler warnings. -db + IF(CA2.LE.0.D0) TA2O2=(1.D0-CA2)/SA2 + IF(CA2.GT.0.D0) TA2O2=SA2/(1.D0+CA2) + A2=2.D0*atan(TA2O2) + IF(A2.LT.0.D0) A2=A2+6.2831853071795864D0 + + RETURN +END SUBROUTINE DCOORD diff --git a/qmap/libqmap/decode0.f90 b/qmap/libqmap/decode0.f90 new file mode 100644 index 000000000..56bf392bf --- /dev/null +++ b/qmap/libqmap/decode0.f90 @@ -0,0 +1,52 @@ +subroutine decode0(dd,ss,savg) + + use timer_module, only: timer + parameter (NSMAX=60*96000) + + real*4 dd(2,NSMAX),ss(322,NFFT),savg(NFFT) + real*8 fcenter + integer hist(0:32768) + character mycall*12,hiscall*12,mygrid*6,hisgrid*6,datetime*20 + character mycall0*12,hiscall0*12,hisgrid0*6 + character*60 result + common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, & + nWTransmitting,result(50) + common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, & + ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & + mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & + ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid,datetime + data neme0/-99/ + save + + nQDecoderDone=0 + if(newdat.ne.0) then + nz=96000*nhsym/5.3833 + hist=0 + do i=1,nz + j1=min(abs(dd(1,i)),32768.0) + hist(j1)=hist(j1)+1 + j2=min(abs(dd(2,i)),32768.0) + hist(j2)=hist(j2)+1 + enddo + m=0 + do i=0,32768 + m=m+hist(i) + if(m.ge.2*nz) go to 10 + enddo +10 rmsdd=1.5*i + endif + + mycall0=mycall + hiscall0=hiscall + hisgrid0=hisgrid + neme0=neme + + call timer('qmapa ',0) + call qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, & + mousedf,mousefqso,nagain,nfshift,max_drift, & + nfcal,mycall,hiscall,hisgrid,nfsample,nmode,ndepth, & + datetime,ndop00,fselected) + call timer('qmapa ',1) + + return +end subroutine decode0 diff --git a/qmap/libqmap/dot.f90 b/qmap/libqmap/dot.f90 new file mode 100644 index 000000000..5829e8787 --- /dev/null +++ b/qmap/libqmap/dot.f90 @@ -0,0 +1,11 @@ +real*8 function dot(x,y) + + real*8 x(3),y(3) + + dot=0.d0 + do i=1,3 + dot=dot+x(i)*y(i) + enddo + + return +end function dot diff --git a/qmap/libqmap/f77_wisdom.f b/qmap/libqmap/f77_wisdom.f new file mode 100644 index 000000000..b0a72585e --- /dev/null +++ b/qmap/libqmap/f77_wisdom.f @@ -0,0 +1,45 @@ + subroutine write_char(c, iunit) + character c + integer iunit + write(iunit,1000) c + 1000 format(a,$) + end + + subroutine export_wisdom_to_file(iunit) + integer iunit + external write_char +c call dfftw_export_wisdom(write_char, iunit) + call sfftw_export_wisdom(write_char, iunit) + end + + subroutine read_char(ic, iunit) + integer ic + integer iunit + character*256 buf + save buf + integer ibuf + data ibuf/257/ + save ibuf + if (ibuf .lt. 257) then + ic = ichar(buf(ibuf:ibuf)) + ibuf = ibuf + 1 + return + endif + read(iunit,1000,end=10) buf + 1000 format(a256) + ic = ichar(buf(1:1)) + ibuf = 2 + return + 10 ic = -1 + ibuf = 257 + rewind iunit + return + end + + subroutine import_wisdom_from_file(isuccess, iunit) + integer isuccess + integer iunit + external read_char +c call dfftw_import_wisdom(isuccess, read_char, iunit) + call sfftw_import_wisdom(isuccess, read_char, iunit) + end diff --git a/qmap/libqmap/fchisq0.f90 b/qmap/libqmap/fchisq0.f90 new file mode 100644 index 000000000..2c62f2757 --- /dev/null +++ b/qmap/libqmap/fchisq0.f90 @@ -0,0 +1,23 @@ +real function fchisq0(y,npts,a) + + real y(npts),a(4) + +! rewind 51 + chisq = 0. + do i=1,npts + x=i + z=(x-a(3))/(0.5*a(4)) + yfit=a(1) + if(abs(z).lt.3.0) then + d=1.0 + z*z + yfit=a(1) + a(2) * (1.0/d - 0.1) + endif + chisq=chisq + (y(i) - yfit)**2 +! write(51,3001) i,y(i),yfit,y(i)-yfit +!3001 format(i5,3f10.4) + enddo + fchisq0=chisq + + return +end function fchisq0 + diff --git a/qmap/libqmap/fftw3.f b/qmap/libqmap/fftw3.f new file mode 100644 index 000000000..3410184ca --- /dev/null +++ b/qmap/libqmap/fftw3.f @@ -0,0 +1,64 @@ + INTEGER FFTW_R2HC + PARAMETER (FFTW_R2HC=0) + INTEGER FFTW_HC2R + PARAMETER (FFTW_HC2R=1) + INTEGER FFTW_DHT + PARAMETER (FFTW_DHT=2) + INTEGER FFTW_REDFT00 + PARAMETER (FFTW_REDFT00=3) + INTEGER FFTW_REDFT01 + PARAMETER (FFTW_REDFT01=4) + INTEGER FFTW_REDFT10 + PARAMETER (FFTW_REDFT10=5) + INTEGER FFTW_REDFT11 + PARAMETER (FFTW_REDFT11=6) + INTEGER FFTW_RODFT00 + PARAMETER (FFTW_RODFT00=7) + INTEGER FFTW_RODFT01 + PARAMETER (FFTW_RODFT01=8) + INTEGER FFTW_RODFT10 + PARAMETER (FFTW_RODFT10=9) + INTEGER FFTW_RODFT11 + PARAMETER (FFTW_RODFT11=10) + INTEGER FFTW_FORWARD + PARAMETER (FFTW_FORWARD=-1) + INTEGER FFTW_BACKWARD + PARAMETER (FFTW_BACKWARD=+1) + INTEGER FFTW_MEASURE + PARAMETER (FFTW_MEASURE=0) + INTEGER FFTW_DESTROY_INPUT + PARAMETER (FFTW_DESTROY_INPUT=1) + INTEGER FFTW_UNALIGNED + PARAMETER (FFTW_UNALIGNED=2) + INTEGER FFTW_CONSERVE_MEMORY + PARAMETER (FFTW_CONSERVE_MEMORY=4) + INTEGER FFTW_EXHAUSTIVE + PARAMETER (FFTW_EXHAUSTIVE=8) + INTEGER FFTW_PRESERVE_INPUT + PARAMETER (FFTW_PRESERVE_INPUT=16) + INTEGER FFTW_PATIENT + PARAMETER (FFTW_PATIENT=32) + INTEGER FFTW_ESTIMATE + PARAMETER (FFTW_ESTIMATE=64) + INTEGER FFTW_ESTIMATE_PATIENT + PARAMETER (FFTW_ESTIMATE_PATIENT=128) + INTEGER FFTW_BELIEVE_PCOST + PARAMETER (FFTW_BELIEVE_PCOST=256) + INTEGER FFTW_DFT_R2HC_ICKY + PARAMETER (FFTW_DFT_R2HC_ICKY=512) + INTEGER FFTW_NONTHREADED_ICKY + PARAMETER (FFTW_NONTHREADED_ICKY=1024) + INTEGER FFTW_NO_BUFFERING + PARAMETER (FFTW_NO_BUFFERING=2048) + INTEGER FFTW_NO_INDIRECT_OP + PARAMETER (FFTW_NO_INDIRECT_OP=4096) + INTEGER FFTW_ALLOW_LARGE_GENERIC + PARAMETER (FFTW_ALLOW_LARGE_GENERIC=8192) + INTEGER FFTW_NO_RANK_SPLITS + PARAMETER (FFTW_NO_RANK_SPLITS=16384) + INTEGER FFTW_NO_VRANK_SPLITS + PARAMETER (FFTW_NO_VRANK_SPLITS=32768) + INTEGER FFTW_NO_VRECURSE + PARAMETER (FFTW_NO_VRECURSE=65536) + INTEGER FFTW_NO_SIMD + PARAMETER (FFTW_NO_SIMD=131072) diff --git a/qmap/libqmap/fftw3.f90 b/qmap/libqmap/fftw3.f90 new file mode 100644 index 000000000..440ccc28c --- /dev/null +++ b/qmap/libqmap/fftw3.f90 @@ -0,0 +1,64 @@ + INTEGER FFTW_R2HC + PARAMETER (FFTW_R2HC=0) + INTEGER FFTW_HC2R + PARAMETER (FFTW_HC2R=1) + INTEGER FFTW_DHT + PARAMETER (FFTW_DHT=2) + INTEGER FFTW_REDFT00 + PARAMETER (FFTW_REDFT00=3) + INTEGER FFTW_REDFT01 + PARAMETER (FFTW_REDFT01=4) + INTEGER FFTW_REDFT10 + PARAMETER (FFTW_REDFT10=5) + INTEGER FFTW_REDFT11 + PARAMETER (FFTW_REDFT11=6) + INTEGER FFTW_RODFT00 + PARAMETER (FFTW_RODFT00=7) + INTEGER FFTW_RODFT01 + PARAMETER (FFTW_RODFT01=8) + INTEGER FFTW_RODFT10 + PARAMETER (FFTW_RODFT10=9) + INTEGER FFTW_RODFT11 + PARAMETER (FFTW_RODFT11=10) + INTEGER FFTW_FORWARD + PARAMETER (FFTW_FORWARD=-1) + INTEGER FFTW_BACKWARD + PARAMETER (FFTW_BACKWARD=+1) + INTEGER FFTW_MEASURE + PARAMETER (FFTW_MEASURE=0) + INTEGER FFTW_DESTROY_INPUT + PARAMETER (FFTW_DESTROY_INPUT=1) + INTEGER FFTW_UNALIGNED + PARAMETER (FFTW_UNALIGNED=2) + INTEGER FFTW_CONSERVE_MEMORY + PARAMETER (FFTW_CONSERVE_MEMORY=4) + INTEGER FFTW_EXHAUSTIVE + PARAMETER (FFTW_EXHAUSTIVE=8) + INTEGER FFTW_PRESERVE_INPUT + PARAMETER (FFTW_PRESERVE_INPUT=16) + INTEGER FFTW_PATIENT + PARAMETER (FFTW_PATIENT=32) + INTEGER FFTW_ESTIMATE + PARAMETER (FFTW_ESTIMATE=64) + INTEGER FFTW_ESTIMATE_PATIENT + PARAMETER (FFTW_ESTIMATE_PATIENT=128) + INTEGER FFTW_BELIEVE_PCOST + PARAMETER (FFTW_BELIEVE_PCOST=256) + INTEGER FFTW_DFT_R2HC_ICKY + PARAMETER (FFTW_DFT_R2HC_ICKY=512) + INTEGER FFTW_NONTHREADED_ICKY + PARAMETER (FFTW_NONTHREADED_ICKY=1024) + INTEGER FFTW_NO_BUFFERING + PARAMETER (FFTW_NO_BUFFERING=2048) + INTEGER FFTW_NO_INDIRECT_OP + PARAMETER (FFTW_NO_INDIRECT_OP=4096) + INTEGER FFTW_ALLOW_LARGE_GENERIC + PARAMETER (FFTW_ALLOW_LARGE_GENERIC=8192) + INTEGER FFTW_NO_RANK_SPLITS + PARAMETER (FFTW_NO_RANK_SPLITS=16384) + INTEGER FFTW_NO_VRANK_SPLITS + PARAMETER (FFTW_NO_VRANK_SPLITS=32768) + INTEGER FFTW_NO_VRECURSE + PARAMETER (FFTW_NO_VRECURSE=65536) + INTEGER FFTW_NO_SIMD + PARAMETER (FFTW_NO_SIMD=131072) diff --git a/qmap/libqmap/filbig.f90 b/qmap/libqmap/filbig.f90 new file mode 100644 index 000000000..4a265d2df --- /dev/null +++ b/qmap/libqmap/filbig.f90 @@ -0,0 +1,123 @@ +subroutine filbig(dd,nmax,f0,newdat,nfsample,c4a,n4) + +! Filter and downsample complex data stored in array dd(2,nmax). +! Output is downsampled from 96000 Hz to 1375.125 Hz. + + use timer_module, only: timer + parameter (MAXFFT1=5376000,MAXFFT2=77175) + real*4 dd(2,nmax) !Input data + complex ca(MAXFFT1) !FFT of input + complex c4a(MAXFFT2) !Output data + real*8 df + real halfpulse(8) !Impulse response of filter (one sided) + complex cfilt(MAXFFT2) !Filter (complex; imag = 0) + real rfilt(MAXFFT2) !Filter (real) + integer*8 plan1,plan2,plan3,plan4,plan5 + logical first + include 'fftw3.f' + common/cacb/ca + equivalence (rfilt,cfilt) + data first/.true./,npatience/1/ + data halfpulse/114.97547150,36.57879257,-20.93789101, & + 5.89886379,1.59355187,-2.49138308,0.60910773,-0.04248129/ + save + + if(nmax.lt.0) go to 900 + + nfft1=MAXFFT1 + nfft2=MAXFFT2 + if(nfsample.eq.95238) then + nfft1=5120000 + nfft2=74088 + endif + + if(first) then + nflags=FFTW_ESTIMATE + if(npatience.eq.1) nflags=FFTW_ESTIMATE_PATIENT + if(npatience.eq.2) nflags=FFTW_MEASURE + if(npatience.eq.3) nflags=FFTW_PATIENT + if(npatience.eq.4) nflags=FFTW_EXHAUSTIVE + +! Plan the FFTs just once + call timer('FFTplans ',0) + call sfftw_plan_dft_1d(plan1,nfft1,ca,ca,FFTW_BACKWARD,nflags) + call sfftw_plan_dft_1d(plan3,nfft2,c4a,c4a,FFTW_FORWARD,nflags) + call sfftw_plan_dft_1d(plan5,nfft2,cfilt,cfilt,FFTW_BACKWARD,nflags) + call timer('FFTplans ',1) + +! Convert impulse response to filter function + do i=1,nfft2 + cfilt(i)=0. + enddo + fac=0.00625/nfft1 + cfilt(1)=fac*halfpulse(1) + do i=2,8 + cfilt(i)=fac*halfpulse(i) + cfilt(nfft2+2-i)=fac*halfpulse(i) + enddo + call sfftw_execute(plan5) + + base=cfilt(nfft2/2+1) + do i=1,nfft2 + rfilt(i)=real(cfilt(i))-base + enddo + + df=96000.d0/nfft1 + if(nfsample.eq.95238) df=95238.1d0/nfft1 + first=.false. + endif + +! When new data comes along, we need to compute a new "big FFT" +! If we just have a new f0, continue with the existing ca. + + if(newdat.ne.0 .or. sum(abs(ca)).eq.0.0) then !### Test on ca should be unnecessary? + nz=min(nmax,nfft1) + do i=1,nz + ca(i)=cmplx(dd(1,i),dd(2,i)) + enddo + + if(nmax.lt.nfft1) then + do i=nmax+1,nfft1 + ca(i)=0. + enddo + endif + call timer('FFTbig ',0) + call sfftw_execute(plan1) + call timer('FFTbig ',1) +!### newdat=0 + endif + +! NB: f0 is the frequency at which we want our filter centered. +! i0 is the bin number in ca closest to f0. + + i0=nint(f0/df) + 1 + nh=nfft2/2 + do i=1,nh !Copy data into c4a + j=i0+i-1 !and apply the filter function + if(j.ge.1 .and. j.le.nfft1) then + c4a(i)=rfilt(i)*ca(j) + else + c4a(i)=0. + endif + enddo + do i=nh+1,nfft2 + j=i0+i-1-nfft2 + if(j.lt.1) j=j+nfft1 + c4a(i)=rfilt(i)*ca(j) + enddo + +! Do the short reverse transform, to go back to time domain. + call timer('FFTsmall',0) + call sfftw_execute(plan3) + call timer('FFTsmall',1) + n4=min(nmax/64,nfft2) + go to 999 + +900 call sfftw_destroy_plan(plan1) + call sfftw_destroy_plan(plan2) + call sfftw_destroy_plan(plan3) + call sfftw_destroy_plan(plan4) + call sfftw_destroy_plan(plan5) + +999 return +end subroutine filbig diff --git a/qmap/libqmap/four2a.f90 b/qmap/libqmap/four2a.f90 new file mode 100644 index 000000000..fc46109e5 --- /dev/null +++ b/qmap/libqmap/four2a.f90 @@ -0,0 +1,115 @@ +subroutine four2a(a,nfft,ndim,isign,iform) + +! IFORM = 1, 0 or -1, as data is +! complex, real, or the first half of a complex array. Transform +! values are returned in array DATA. They are complex, real, or +! the first half of a complex array, as IFORM = 1, -1 or 0. + +! The transform of a real array (IFORM = 0) dimensioned N(1) by N(2) +! by ... will be returned in the same array, now considered to +! be complex of dimensions N(1)/2+1 by N(2) by .... Note that if +! IFORM = 0 or -1, N(1) must be even, and enough room must be +! reserved. The missing values may be obtained by complex conjugation. + +! The reverse transformation of a half complex array dimensioned +! N(1)/2+1 by N(2) by ..., is accomplished by setting IFORM +! to -1. In the N array, N(1) must be the true N(1), not N(1)/2+1. +! The transform will be real and returned to the input array. + +! This version of four2a makes calls to the FFTW library to do the +! actual computations. + + use fftw3 + parameter (NPMAX=2100) !Max numberf of stored plans + parameter (NSMALL=16384) !Max size of "small" FFTs + complex a(nfft+1) !Array to be transformed + complex aa(NSMALL) !Local copy of "small" a() + integer nn(NPMAX),ns(NPMAX),nf(NPMAX) !Params of stored plans + integer*8 nl(NPMAX),nloc !More params of plans + integer*8 plan(NPMAX) !Pointers to stored plans + logical found_plan + data nplan/0/ !Number of stored plans + common/patience/npatience,nthreads !Patience and threads for FFTW plans + save plan,nplan,nn,ns,nf,nl + + if(nfft.lt.0) go to 999 + + nloc=loc(a) + + found_plan = .false. + !$omp critical(four2a_setup) + do i=1,nplan + if(nfft.eq.nn(i) .and. isign.eq.ns(i) .and. & + iform.eq.nf(i) .and. nloc.eq.nl(i)) then + found_plan = .true. + exit + end if + enddo + + if(i.ge.NPMAX) stop 'Too many FFTW plans requested.' + + if (.not. found_plan) then + nplan=nplan+1 + i=nplan + + nn(i)=nfft + ns(i)=isign + nf(i)=iform + nl(i)=nloc + +! Planning: FFTW_ESTIMATE, FFTW_ESTIMATE_PATIENT, FFTW_MEASURE, +! FFTW_PATIENT, FFTW_EXHAUSTIVE + nflags=FFTW_ESTIMATE + if(npatience.eq.1) nflags=FFTW_ESTIMATE_PATIENT + if(npatience.eq.2) nflags=FFTW_MEASURE + if(npatience.eq.3) nflags=FFTW_PATIENT + if(npatience.eq.4) nflags=FFTW_EXHAUSTIVE + + if(nfft.le.NSMALL) then + jz=nfft + if(iform.eq.0) jz=nfft/2 + aa(1:jz)=a(1:jz) + endif + + !$omp critical(fftw) ! serialize non thread-safe FFTW3 calls + if(isign.eq.-1 .and. iform.eq.1) then + call sfftw_plan_dft_1d(plan(i),nfft,a,a,FFTW_FORWARD,nflags) + else if(isign.eq.1 .and. iform.eq.1) then + call sfftw_plan_dft_1d(plan(i),nfft,a,a,FFTW_BACKWARD,nflags) + else if(isign.eq.-1 .and. iform.eq.0) then + call sfftw_plan_dft_r2c_1d(plan(i),nfft,a,a,nflags) + else if(isign.eq.1 .and. iform.eq.-1) then + call sfftw_plan_dft_c2r_1d(plan(i),nfft,a,a,nflags) + else + stop 'Unsupported request in four2a' + endif + !$omp end critical(fftw) + + if(nfft.le.NSMALL) then + jz=nfft + if(iform.eq.0) jz=nfft/2 + a(1:jz)=aa(1:jz) + endif + end if + !$omp end critical(four2a_setup) + + call sfftw_execute(plan(i)) + return + +999 continue + + !$omp critical(four2a) + do i=1,nplan +! The test is only to silence a compiler warning: + if(ndim.ne.-999) then + !$omp critical(fftw) ! serialize non thread-safe FFTW3 calls + call sfftw_destroy_plan(plan(i)) + !$omp end critical(fftw) + end if + enddo + + nplan=0 + !$omp end critical(four2a) + + return +end subroutine four2a diff --git a/qmap/libqmap/ftninit.f90 b/qmap/libqmap/ftninit.f90 new file mode 100644 index 000000000..35f358922 --- /dev/null +++ b/qmap/libqmap/ftninit.f90 @@ -0,0 +1,33 @@ +subroutine ftninit + + use timer_impl, only: init_timer !,fini_timer, limtrace + use, intrinsic :: iso_c_binding, only: C_NULL_CHAR + use FFTW3 +! character*(*) appd + character*1 appd + character addpfx*8 + character wisfile*256 + common/pfxcom/addpfx + + lu=8 + call init_timer('./timer.out') + + appd='.' + addpfx=' ' + open(12,file=appd//'/all_qmap.txt',status='unknown',position='append') + open(17,file=appd//'/red.dat',status='unknown') + open(19,file=appd//'/livecq.txt',status='unknown') + open(71,file=appd//'/fort.71',status='unknown') + open(72,file=appd//'/fort.72',status='unknown') + open(73,file=appd//'/fort.73',status='unknown') + +! Import FFTW wisdom, if available: + iret=fftwf_init_threads() !Initialize FFTW threading +! Default to 1 thread, but use nthreads for the big ones + call fftwf_plan_with_nthreads(1) +! Import FFTW wisdom, if available + wisfile=trim(appd)//'/m65_wisdom.dat'// C_NULL_CHAR + iret=fftwf_import_wisdom_from_filename(wisfile) + + return +end subroutine ftninit diff --git a/qmap/libqmap/ftnquit.f90 b/qmap/libqmap/ftnquit.f90 new file mode 100644 index 000000000..fe64fac29 --- /dev/null +++ b/qmap/libqmap/ftnquit.f90 @@ -0,0 +1,8 @@ +subroutine ftnquit + +! Destroy the FFTW plans + call four2a(a,-1,1,1,1) + call filbig(id,-1,f0,newdat,nfsample,c4a,n4) + + return +end subroutine ftnquit diff --git a/qmap/libqmap/geocentric.f90 b/qmap/libqmap/geocentric.f90 new file mode 100644 index 000000000..59ed90b51 --- /dev/null +++ b/qmap/libqmap/geocentric.f90 @@ -0,0 +1,17 @@ +subroutine geocentric(alat,elev,hlt,erad) + + implicit real*8 (a-h,o-z) + +! IAU 1976 flattening f, equatorial radius a + f = 1.d0/298.257d0 + a = 6378140.d0 + c = 1.d0/sqrt(1.d0 + (-2.d0 + f)*f*sin(alat)*sin(alat)) + arcf = (a*c + elev)*cos(alat) + arsf = (a*(1.d0 - f)*(1.d0 - f)*c + elev)*sin(alat) + hlt = datan2(arsf,arcf) + erad = sqrt(arcf*arcf + arsf*arsf) + erad = 0.001d0*erad + + return +end subroutine geocentric + diff --git a/qmap/libqmap/getcand2.f90 b/qmap/libqmap/getcand2.f90 new file mode 100644 index 000000000..5c9e083f1 --- /dev/null +++ b/qmap/libqmap/getcand2.f90 @@ -0,0 +1,67 @@ +subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,cand,ncand) + +! Get candidates for Q65 decodes, based on presence of sync tone. + + type candidate + real :: snr !Relative S/N of sync detection + real :: f !Freq of sync tone, 0 to 96000 Hz + real :: xdt !DT of matching sync pattern, -1.0 to +4.0 s + end type candidate + + parameter (NFFT=32768) !FFTs done in symspec() + parameter (MAX_CANDIDATES=50) + type(candidate) :: cand(MAX_CANDIDATES) + real ss(322,NFFT) !Symbol spectra + real savg0(NFFT),savg(NFFT) !Average spectra over whole Rx sequence + integer ipk1(1) !Peak index of local portion of spectrum + logical sync_ok !True if sync pattern is present + data nseg/16/,npct/40/ + + savg=savg0 !Save the original spectrum + nlen=NFFT/nseg + do iseg=1,nseg !Normalize spectrum with nearby baseline + ja=(iseg-1)*nlen + 1 + jb=ja + nlen - 1 + call pctile(savg(ja),nlen,npct,base) + savg(ja:jb)=savg(ja:jb)/(1.015*base) + savg0(ja:jb)=savg0(ja:jb)/(1.015*base) + enddo + + df=96000.0/NFFT + bw=65*nts_q65*1.666666667 !Bandwidth of Q65 signal + nbw=bw/df + 1 !Bandwidth in bins + nb0=2*nts_q65 !Range of peak search, in bins + smin=1.4 !First threshold + nguard=5 !Guard range in bins + i1=1 + i2=NFFT-nbw-nguard + if(nagain.eq.1) then + i1=nint((1000.0*f0_selected-ntol)/df) + i2=nint((1000.0*f0_selected+ntol)/df) + endif + + j=0 + do i=i1,i2 !Look for local peaks in average spectrum + if(savg(i).lt.smin) cycle + spk=maxval(savg(i:i+nb0)) + ipk1=maxloc(savg(i:i+nb0)) + i0=ipk1(1) + i - 1 !Index of local peak in savg() + fpk=0.001*i0*df !Frequency of peak (kHz) +! Check to see if sync tone is present. + call q65_sync(ss,i0,nts_q65,sync_ok,snr_sync,xdt) + if(.not.sync_ok) cycle + +! Sync tone is present, we have a candidate for decoding + j=j+1 + cand(j)%f=fpk + cand(j)%xdt=xdt + cand(j)%snr=snr_sync + ia=max(1,min(i,i0-nguard)) + ib=min(i0+nbw+nguard,32768) + savg(ia:ib)=0. + if(j.ge.MAX_CANDIDATES) exit + enddo + ncand=j !Total number of candidates found + + return +end subroutine getcand2 diff --git a/qmap/libqmap/getdphi.f90 b/qmap/libqmap/getdphi.f90 new file mode 100644 index 000000000..e55d7120d --- /dev/null +++ b/qmap/libqmap/getdphi.f90 @@ -0,0 +1,18 @@ +subroutine getdphi(qphi) + + real qphi(12) + + s=0. + c=0. + do i=1,12 + th=i*30/57.2957795 + s=s+qphi(i)*sin(th) + c=c+qphi(i)*cos(th) + enddo + + dphi=57.2957795*atan2(s,c) + write(*,1010) nint(dphi) +1010 format('!Best-fit Dphi =',i4,' deg') + + return + end diff --git a/qmap/libqmap/grid2deg.f90 b/qmap/libqmap/grid2deg.f90 new file mode 100644 index 000000000..344351dd7 --- /dev/null +++ b/qmap/libqmap/grid2deg.f90 @@ -0,0 +1,38 @@ +subroutine grid2deg(grid0,dlong,dlat) + +! Converts Maidenhead grid locator to degrees of West longitude +! and North latitude. + + character*6 grid0,grid + character*1 g1,g2,g3,g4,g5,g6 + + grid=grid0 + i=ichar(grid(5:5)) + if(grid(5:5).eq.' ' .or. i.le.64 .or. i.ge.128) grid(5:6)='mm' + + if(grid(1:1).ge.'a' .and. grid(1:1).le.'z') grid(1:1)= & + char(ichar(grid(1:1))+ichar('A')-ichar('a')) + if(grid(2:2).ge.'a' .and. grid(2:2).le.'z') grid(2:2)= & + char(ichar(grid(2:2))+ichar('A')-ichar('a')) + if(grid(5:5).ge.'A' .and. grid(5:5).le.'Z') grid(5:5)= & + char(ichar(grid(5:5))-ichar('A')+ichar('a')) + if(grid(6:6).ge.'A' .and. grid(6:6).le.'Z') grid(6:6)= & + char(ichar(grid(6:6))-ichar('A')+ichar('a')) + + g1=grid(1:1) + g2=grid(2:2) + g3=grid(3:3) + g4=grid(4:4) + g5=grid(5:5) + g6=grid(6:6) + + nlong = 180 - 20*(ichar(g1)-ichar('A')) + n20d = 2*(ichar(g3)-ichar('0')) + xminlong = 5*(ichar(g5)-ichar('a')+0.5) + dlong = nlong - n20d - xminlong/60.0 + nlat = -90+10*(ichar(g2)-ichar('A')) + ichar(g4)-ichar('0') + xminlat = 2.5*(ichar(g6)-ichar('a')+0.5) + dlat = nlat + xminlat/60.0 + + return +end subroutine grid2deg diff --git a/qmap/libqmap/indexx.f90 b/qmap/libqmap/indexx.f90 new file mode 100644 index 000000000..7a35f53b8 --- /dev/null +++ b/qmap/libqmap/indexx.f90 @@ -0,0 +1,91 @@ +subroutine indexx(arr,n,indx) + + parameter (M=7,NSTACK=50) + integer n,indx(n) + real arr(n) + integer i,indxt,ir,itemp,j,jstack,k,l,istack(NSTACK) + real a + + do j=1,n + indx(j)=j + enddo + + jstack=0 + l=1 + ir=n +1 if(ir-l.lt.M) then + do j=l+1,ir + indxt=indx(j) + a=arr(indxt) + do i=j-1,1,-1 + if(arr(indx(i)).le.a) goto 2 + indx(i+1)=indx(i) + enddo + i=0 +2 indx(i+1)=indxt + enddo + if(jstack.eq.0) return + + ir=istack(jstack) + l=istack(jstack-1) + jstack=jstack-2 + + else + k=(l+ir)/2 + itemp=indx(k) + indx(k)=indx(l+1) + indx(l+1)=itemp + + if(arr(indx(l+1)).gt.arr(indx(ir))) then + itemp=indx(l+1) + indx(l+1)=indx(ir) + indx(ir)=itemp + endif + + if(arr(indx(l)).gt.arr(indx(ir))) then + itemp=indx(l) + indx(l)=indx(ir) + indx(ir)=itemp + endif + + if(arr(indx(l+1)).gt.arr(indx(l))) then + itemp=indx(l+1) + indx(l+1)=indx(l) + indx(l)=itemp + endif + + i=l+1 + j=ir + indxt=indx(l) + a=arr(indxt) +3 continue + i=i+1 + if(arr(indx(i)).lt.a) goto 3 + +4 continue + j=j-1 + if(arr(indx(j)).gt.a) goto 4 + if(j.lt.i) goto 5 + itemp=indx(i) + indx(i)=indx(j) + indx(j)=itemp + goto 3 + +5 indx(l)=indx(j) + indx(j)=indxt + jstack=jstack+2 + if(jstack.gt.NSTACK) stop 'NSTACK too small in indexx' + if(ir-i+1.ge.j-l)then + istack(jstack)=ir + istack(jstack-1)=i + ir=j-1 + else + istack(jstack)=j-1 + istack(jstack-1)=l + l=i + endif + endif + goto 1 + +end subroutine indexx + diff --git a/qmap/libqmap/lorentzian.f90 b/qmap/libqmap/lorentzian.f90 new file mode 100644 index 000000000..cd2257a75 --- /dev/null +++ b/qmap/libqmap/lorentzian.f90 @@ -0,0 +1,102 @@ +subroutine lorentzian(y,npts,a) + +! Input: y(npts); assume x(i)=i, i=1,npts +! Output: a(5) +! a(1) = baseline +! a(2) = amplitude +! a(3) = x0 +! a(4) = width +! a(5) = chisqr + + real y(npts) + real a(5) + real deltaa(4) + + a=0. + df=12000.0/8192.0 !df = 1.465 Hz + width=0. + ipk=0 + ymax=-1.e30 + do i=1,npts + if(y(i).gt.ymax) then + ymax=y(i) + ipk=i + endif +! write(50,3001) i,i*df,y(i) +!3001 format(i6,2f12.3) + enddo +! base=(sum(y(ipk-149:ipk-50)) + sum(y(ipk+51:ipk+150)))/200.0 + base=(sum(y(1:20)) + sum(y(npts-19:npts)))/40.0 + stest=ymax - 0.5*(ymax-base) + ssum=y(ipk) + do i=1,50 + if(ipk+i.gt.npts) exit + if(y(ipk+i).lt.stest) exit + ssum=ssum + y(ipk+i) + enddo + do i=1,50 + if(ipk-i.lt.1) exit + if(y(ipk-i).lt.stest) exit + ssum=ssum + y(ipk-i) + enddo + ww=ssum/y(ipk) + width=2 + t=ww*ww - 5.67 + if(t.gt.0.0) width=sqrt(t) + a(1)=base + a(2)=ymax-base + a(3)=ipk + a(4)=width + +! Now find Lorentzian parameters + + deltaa(1)=0.1 + deltaa(2)=0.1 + deltaa(3)=1.0 + deltaa(4)=1.0 + nterms=4 + +! Start the iteration + chisqr=0. + chisqr0=1.e6 + do iter=1,5 + do j=1,nterms + chisq1=fchisq0(y,npts,a) + fn=0. + delta=deltaa(j) +10 a(j)=a(j)+delta + chisq2=fchisq0(y,npts,a) + if(chisq2.eq.chisq1) go to 10 + if(chisq2.gt.chisq1) then + delta=-delta !Reverse direction + a(j)=a(j)+delta + tmp=chisq1 + chisq1=chisq2 + chisq2=tmp + endif +20 fn=fn+1.0 + a(j)=a(j)+delta + chisq3=fchisq0(y,npts,a) + if(chisq3.lt.chisq2) then + chisq1=chisq2 + chisq2=chisq3 + go to 20 + endif + +! Find minimum of parabola defined by last three points + delta=delta*(1./(1.+(chisq1-chisq2)/(chisq3-chisq2))+0.5) + a(j)=a(j)-delta + deltaa(j)=deltaa(j)*fn/3. +! write(*,4000) iter,j,a,chisq2 +!4000 format(i1,i2,4f10.4,f11.3) + enddo + chisqr=fchisq0(y,npts,a) +! write(*,4000) 0,0,a,chisqr + if(chisqr/chisqr0.gt.0.99) exit + chisqr0=chisqr + enddo + a(5)=chisqr + + return +end subroutine lorentzian + diff --git a/qmap/libqmap/moon2.f90 b/qmap/libqmap/moon2.f90 new file mode 100644 index 000000000..9fa72f1df --- /dev/null +++ b/qmap/libqmap/moon2.f90 @@ -0,0 +1,163 @@ +subroutine moon2(y,m,Day,UT,lon,lat,RA,Dec,topRA,topDec,LST,HA,Az,El,dist) + + implicit none + + integer y !Year + integer m !Month + integer Day !Day + real*8 UT !UTC in hours + real*8 RA,Dec !RA and Dec of moon + +! NB: Double caps are single caps in the writeup. + + real*8 NN !Longitude of ascending node + real*8 i !Inclination to the ecliptic + real*8 w !Argument of perigee + real*8 a !Semi-major axis + real*8 e !Eccentricity + real*8 MM !Mean anomaly + + real*8 v !True anomaly + real*8 EE !Eccentric anomaly + real*8 ecl !Obliquity of the ecliptic + + real*8 d !Ephemeris time argument in days + real*8 r !Distance to sun, AU + real*8 xv,yv !x and y coords in ecliptic + real*8 lonecl,latecl !Ecliptic long and lat of moon + real*8 xg,yg,zg !Ecliptic rectangular coords + real*8 Ms !Mean anomaly of sun + real*8 ws !Argument of perihelion of sun + real*8 Ls !Mean longitude of sun (Ns=0) + real*8 Lm !Mean longitude of moon + real*8 DD !Mean elongation of moon + real*8 FF !Argument of latitude for moon + real*8 xe,ye,ze !Equatorial geocentric coords of moon + real*8 mpar !Parallax of moon (r_E / d) + real*8 lat,lon !Station coordinates on earth + real*8 gclat !Geocentric latitude + real*8 rho !Earth radius factor + real*8 GMST0,LST,HA + real*8 g + real*8 topRA,topDec !Topocentric coordinates of Moon + real*8 Az,El + real*8 dist + + real*8 rad,twopi,pi,pio2 + data rad/57.2957795131d0/,twopi/6.283185307d0/ + + d=367*y - 7*(y+(m+9)/12)/4 + 275*m/9 + Day - 730530 + UT/24.d0 + ecl = 23.4393d0 - 3.563d-7 * d + +! Orbital elements for Moon: + NN = 125.1228d0 - 0.0529538083d0 * d + i = 5.1454d0 + w = mod(318.0634d0 + 0.1643573223d0 * d + 360000.d0,360.d0) + a = 60.2666d0 + e = 0.054900d0 + MM = mod(115.3654d0 + 13.0649929509d0 * d + 360000.d0,360.d0) + + EE = MM + e*rad*sin(MM/rad) * (1.d0 + e*cos(MM/rad)) + EE = EE - (EE - e*rad*sin(EE/rad)-MM) / (1.d0 - e*cos(EE/rad)) + EE = EE - (EE - e*rad*sin(EE/rad)-MM) / (1.d0 - e*cos(EE/rad)) + + xv = a * (cos(EE/rad) - e) + yv = a * (sqrt(1.d0-e*e) * sin(EE/rad)) + + v = mod(rad*atan2(yv,xv)+720.d0,360.d0) + r = sqrt(xv*xv + yv*yv) + +! Get geocentric position in ecliptic rectangular coordinates: + + xg = r * (cos(NN/rad)*cos((v+w)/rad)-sin(NN/rad)*sin((v+w)/rad)*cos(i/rad)) + yg = r * (sin(NN/rad)*cos((v+w)/rad)+cos(NN/rad)*sin((v+w)/rad)*cos(i/rad)) + zg = r * (sin((v+w)/rad)*sin(i/rad)) + +! Ecliptic longitude and latitude of moon: + lonecl = mod(rad*atan2(yg/rad,xg/rad)+720.d0,360.d0) + latecl = rad*atan2(zg/rad,sqrt(xg*xg + yg*yg)/rad) + +! Now include orbital perturbations: + Ms = mod(356.0470d0 + 0.9856002585d0 * d + 3600000.d0,360.d0) + ws = 282.9404d0 + 4.70935d-5*d + Ls = mod(Ms + ws + 720.d0,360.d0) + Lm = mod(MM + w + NN+720.d0,360.d0) + DD = mod(Lm - Ls + 360.d0,360.d0) + FF = mod(Lm - NN + 360.d0,360.d0) + + lonecl = lonecl & + - 1.274d0 * sin((MM-2.d0*DD)/rad) & + + 0.658d0 * sin(2.d0*DD/rad) & + - 0.186d0 * sin(Ms/rad) & + - 0.059d0 * sin((2.d0*MM-2.d0*DD)/rad) & + - 0.057d0 * sin((MM-2.d0*DD+Ms)/rad) & + + 0.053d0 * sin((MM+2.d0*DD)/rad) & + + 0.046d0 * sin((2.d0*DD-Ms)/rad) & + + 0.041d0 * sin((MM-Ms)/rad) & + - 0.035d0 * sin(DD/rad) & + - 0.031d0 * sin((MM+Ms)/rad) & + - 0.015d0 * sin((2.d0*FF-2.d0*DD)/rad) & + + 0.011d0 * sin((MM-4.d0*DD)/rad) + + latecl = latecl & + - 0.173d0 * sin((FF-2.d0*DD)/rad) & + - 0.055d0 * sin((MM-FF-2.d0*DD)/rad) & + - 0.046d0 * sin((MM+FF-2.d0*DD)/rad) & + + 0.033d0 * sin((FF+2.d0*DD)/rad) & + + 0.017d0 * sin((2.d0*MM+FF)/rad) + + r = 60.36298d0 & + - 3.27746d0*cos(MM/rad) & + - 0.57994d0*cos((MM-2.d0*DD)/rad) & + - 0.46357d0*cos(2.d0*DD/rad) & + - 0.08904d0*cos(2.d0*MM/rad) & + + 0.03865d0*cos((2.d0*MM-2.d0*DD)/rad) & + - 0.03237d0*cos((2.d0*DD-Ms)/rad) & + - 0.02688d0*cos((MM+2.d0*DD)/rad) & + - 0.02358d0*cos((MM-2.d0*DD+Ms)/rad) & + - 0.02030d0*cos((MM-Ms)/rad) & + + 0.01719d0*cos(DD/rad) & + + 0.01671d0*cos((MM+Ms)/rad) + + dist=r*6378.140d0 + +! Geocentric coordinates: +! Rectangular ecliptic coordinates of the moon: + + xg = r * cos(lonecl/rad)*cos(latecl/rad) + yg = r * sin(lonecl/rad)*cos(latecl/rad) + zg = r * sin(latecl/rad) + +! Rectangular equatorial coordinates of the moon: + xe = xg + ye = yg*cos(ecl/rad) - zg*sin(ecl/rad) + ze = yg*sin(ecl/rad) + zg*cos(ecl/rad) + +! Right Ascension, Declination: + RA = mod(rad*atan2(ye,xe)+360.d0,360.d0) + Dec = rad*atan2(ze,sqrt(xe*xe + ye*ye)) + +! Now convert to topocentric system: + mpar=rad*asin(1.d0/r) +! alt_topoc = alt_geoc - mpar*cos(alt_geoc) + gclat = lat - 0.1924d0*sin(2.d0*lat/rad) + rho = 0.99883d0 + 0.00167d0*cos(2.d0*lat/rad) + GMST0 = (Ls + 180.d0)/15.d0 + LST = mod(GMST0+UT+lon/15.d0+48.d0,24.d0) !LST in hours + HA = 15.d0*LST - RA !HA in degrees + g = rad*atan(tan(gclat/rad)/cos(HA/rad)) + topRA = RA - mpar*rho*cos(gclat/rad)*sin(HA/rad)/cos(Dec/rad) + topDec = Dec - mpar*rho*sin(gclat/rad)*sin((g-Dec)/rad)/sin(g/rad) + + HA = 15.d0*LST - topRA !HA in degrees + if(HA.gt.180.d0) HA=HA-360.d0 + if(HA.lt.-180.d0) HA=HA+360.d0 + + pi=0.5d0*twopi + pio2=0.5d0*pi + call dcoord(pi,pio2-lat/rad,0.d0,lat/rad,ha*twopi/360,topDec/rad,az,el) + Az=az*rad + El=El*rad + + return +end subroutine moon2 diff --git a/qmap/libqmap/moondop.f90 b/qmap/libqmap/moondop.f90 new file mode 100644 index 000000000..096c3128e --- /dev/null +++ b/qmap/libqmap/moondop.f90 @@ -0,0 +1,72 @@ +subroutine MoonDop(nyear,month,nday,uth4,lon4,lat4,RAMoon4,DecMoon4, & + LST4,HA4,AzMoon4,ElMoon4,vr4,dist4) + + implicit real*8 (a-h,o-z) + real*4 uth4 !UT in hours + real*4 lon4 !West longitude, degrees + real*4 lat4 !Latitude, degrees + real*4 RAMoon4 !Topocentric RA of moon, hours + real*4 DecMoon4 !Topocentric Dec of Moon, degrees + real*4 LST4 !Locat sidereal time, hours + real*4 HA4 !Local Hour angle, degrees + real*4 AzMoon4 !Topocentric Azimuth of moon, degrees + real*4 ElMoon4 !Topocentric Elevation of moon, degrees + real*4 vr4 !Radial velocity of moon wrt obs, km/s + real*4 dist4 !Echo time, seconds + + real*8 LST + real*8 RME(6) !Vector from Earth center to Moon + real*8 RAE(6) !Vector from Earth center to Obs + real*8 RMA(6) !Vector from Obs to Moon + real*8 rme0(6) + logical km + + data rad/57.2957795130823d0/,twopi/6.28310530717959d0/ + + km=.true. + dlat=lat4/rad + dlong1=lon4/rad + elev1=200.d0 + call geocentric(dlat,elev1,dlat1,erad1) + + dt=100.d0 !For numerical derivative, in seconds + UT=uth4 + +! NB: geodetic latitude used here, but geocentric latitude used when +! determining Earth-rotation contribution to Doppler. + + call moon2(nyear,month,nDay,UT-dt/3600.d0,dlong1*rad,dlat*rad, & + RA,Dec,topRA,topDec,LST,HA,Az0,El0,dist) + call toxyz(RA/rad,Dec/rad,dist,rme0) !Convert to rectangular coords + + call moon2(nyear,month,nDay,UT,dlong1*rad,dlat*rad, & + RA,Dec,topRA,topDec,LST,HA,Az,El,dist) + call toxyz(RA/rad,Dec/rad,dist,rme) !Convert to rectangular coords + + phi=LST*twopi/24.d0 + call toxyz(phi,dlat1,erad1,rae) !Gencentric numbers used here! + radps=twopi/(86400.d0/1.002737909d0) + rae(4)=-rae(2)*radps !Vel of Obs wrt Earth center + rae(5)=rae(1)*radps + rae(6)=0.d0 + + do i=1,3 + rme(i+3)=(rme(i)-rme0(i))/dt + rma(i)=rme(i)-rae(i) + rma(i+3)=rme(i+3)-rae(i+3) + enddo + + call fromxyz(rma,alpha1,delta1,dtopo0) !Get topocentric coords + vr=dot(rma(4),rma)/dtopo0 + + RAMoon4=topRA + DecMoon4=topDec + LST4=LST + HA4=HA + AzMoon4=Az + ElMoon4=El + vr4=vr + dist4=dist + + return +end subroutine MoonDop diff --git a/qmap/libqmap/msgs.txt b/qmap/libqmap/msgs.txt new file mode 100644 index 000000000..cb0630423 --- /dev/null +++ b/qmap/libqmap/msgs.txt @@ -0,0 +1,60 @@ +W1AAA K2BBB EM00 +W2CCC K3DDD EM01 +W3EEE K4FFF EM02 +W5GGG K6HHH EM03 +W7III K8JJJ EM04 +W9KKK K0LLL EM05 +G0MMM F1NNN JN06 +G2OOO F3PPP JN07 +G4QQQ F5RRR JN08 +G6SSS F7TTT JN09 +W1XAA K2XBB EM10 +W2XCC K3XDD EM11 +W3XEE K4XFF EM12 +W5XGG K6XHH EM13 +W7XII K8XJJ EM14 +W9XKK K0XLL EM15 +G0XMM F1XNN JN16 +G2XOO F3XPP JN17 +G4XQQ F5XRR JN18 +G6XSS F7XTT JN19 +W1YAA K2YBB EM20 +W2YCC K3YDD EM21 +W3YEE K4YFF EM22 +W5YGG K6YHH EM23 +W7YII K8YJJ EM24 +W9YKK K0YLL EM25 +G0YMM F1YNN JN26 +G2YOO F3YPP JN27 +G4YQQ F5YRR JN28 +G6YSS F7YTT JN29 +W1ZAA K2ZBB EM30 +W2ZCC K3ZDD EM31 +W3ZEE K4ZFF EM32 +W5ZGG K6ZHH EM33 +W7ZII K8ZJJ EM34 +W9ZKK K0ZLL EM35 +G0ZMM F1ZNN JN36 +G2ZOO F3ZPP JN37 +G4ZQQ F5ZRR JN38 +G6ZSS F7ZTT JN39 +W1AXA K2BXB EM40 +W2CXC K3DXD EM41 +W3EXE K4FXF EM42 +W5GXG K6HXH EM43 +W7IXI K8JXJ EM44 +W9KXK K0LXL EM45 +G0MXM F1NXN JN46 +G2OXO F3PXP JN47 +G4QXQ F5RXR JN48 +G6SXS F7TXT JN49 +W1AYA K2BYB EM50 +W2CYC K3DYD EM51 +W3EYE K4FYF EM52 +W5GYG K6HYH EM53 +W7IYI K8JYJ EM54 +W9KYK K0LYL EM55 +G0MYM F1NYN JN56 +G2OYO F3PYP JN57 +G4QYQ F5RYR JN58 +G6SYS F7TYT JN59 diff --git a/qmap/libqmap/njunk.f90 b/qmap/libqmap/njunk.f90 new file mode 100644 index 000000000..319fb5ab7 --- /dev/null +++ b/qmap/libqmap/njunk.f90 @@ -0,0 +1 @@ + parameter(NJUNK=40) diff --git a/qmap/libqmap/pfx.f90 b/qmap/libqmap/pfx.f90 new file mode 100644 index 000000000..724b0f8a3 --- /dev/null +++ b/qmap/libqmap/pfx.f90 @@ -0,0 +1,50 @@ + parameter (NZ=339) !Total number of prefixes + parameter (NZ2=12) !Total number of suffixes + character*1 sfx(NZ2) + character*5 pfx(NZ) + + data sfx/'P','0','1','2','3','4','5','6','7','8','9','A'/ + data pfx/ & + '1A ','1S ','3A ','3B6 ','3B8 ','3B9 ','3C ','3C0 ', & + '3D2 ','3D2C ','3D2R ','3DA ','3V ','3W ','3X ','3Y ', & + '3YB ','3YP ','4J ','4L ','4S ','4U1I ','4U1U ','4W ', & + '4X ','5A ','5B ','5H ','5N ','5R ','5T ','5U ', & + '5V ','5W ','5X ','5Z ','6W ','6Y ','7O ','7P ', & + '7Q ','7X ','8P ','8Q ','8R ','9A ','9G ','9H ', & + '9J ','9K ','9L ','9M2 ','9M6 ','9N ','9Q ','9U ', & + '9V ','9X ','9Y ','A2 ','A3 ','A4 ','A5 ','A6 ', & + 'A7 ','A9 ','AP ','BS7 ','BV ','BV9 ','BY ','C2 ', & + 'C3 ','C5 ','C6 ','C9 ','CE ','CE0X ','CE0Y ','CE0Z ', & + 'CE9 ','CM ','CN ','CP ','CT ','CT3 ','CU ','CX ', & + 'CY0 ','CY9 ','D2 ','D4 ','D6 ','DL ','DU ','E3 ', & + 'E4 ','EA ','EA6 ','EA8 ','EA9 ','EI ','EK ','EL ', & + 'EP ','ER ','ES ','ET ','EU ','EX ','EY ','EZ ', & + 'F ','FG ','FH ','FJ ','FK ','FKC ','FM ','FO ', & + 'FOA ','FOC ','FOM ','FP ','FR ','FRG ','FRJ ','FRT ', & + 'FT5W ','FT5X ','FT5Z ','FW ','FY ','M ','MD ','MI ', & + 'MJ ','MM ', 'MU ','MW ','H4 ','H40 ','HA ', & + 'HB ','HB0 ','HC ','HC8 ','HH ','HI ','HK ','HK0 ', & + 'HK0M ','HL ','HM ','HP ','HR ','HS ','HV ','HZ ', & + 'I ','IS ','IS0 ', 'J2 ','J3 ','J5 ','J6 ', & + 'J7 ','J8 ','JA ','JDM ','JDO ','JT ','JW ', & + 'JX ','JY ','K ','KG4 ','KH0 ','KH1 ','KH2 ','KH3 ', & + 'KH4 ','KH5 ','KH5K ','KH6 ','KH7 ','KH8 ','KH9 ','KL ', & + 'KP1 ','KP2 ','KP4 ','KP5 ','LA ','LU ','LX ','LY ', & + 'LZ ','OA ','OD ','OE ','OH ','OH0 ','OJ0 ','OK ', & + 'OM ','ON ','OX ','OY ','OZ ','P2 ','P4 ','PA ', & + 'PJ2 ','PJ7 ','PY ','PY0F ','PT0S ','PY0T ','PZ ','R1F ', & + 'R1M ','S0 ','S2 ','S5 ','S7 ','S9 ','SM ','SP ', & + 'ST ','SU ','SV ','SVA ','SV5 ','SV9 ','T2 ','T30 ', & + 'T31 ','T32 ','T33 ','T5 ','T7 ','T8 ','T9 ','TA ', & + 'TF ','TG ','TI ','TI9 ','TJ ','TK ','TL ', & + 'TN ','TR ','TT ','TU ','TY ','TZ ','UA ','UA2 ', & + 'UA9 ','UK ','UN ','UR ','V2 ','V3 ','V4 ','V5 ', & + 'V6 ','V7 ','V8 ','VE ','VK ','VK0H ','VK0M ','VK9C ', & + 'VK9L ','VK9M ','VK9N ','VK9W ','VK9X ','VP2E ','VP2M ','VP2V ', & + 'VP5 ','VP6 ','VP6D ','VP8 ','VP8G ','VP8H ','VP8O ','VP8S ', & + 'VP9 ','VQ9 ','VR ','VU ','VU4 ','VU7 ','XE ','XF4 ', & + 'XT ','XU ','XW ','XX9 ','XZ ','YA ','YB ','YI ', & + 'YJ ','YK ','YL ','YN ','YO ','YS ','YU ','YV ', & + 'YV0 ','Z2 ','Z3 ','ZA ','ZB ','ZC4 ','ZD7 ','ZD8 ', & + 'ZD9 ','ZF ','ZK1N ','ZK1S ','ZK2 ','ZK3 ','ZL ','ZL7 ', & + 'ZL8 ','ZL9 ','ZP ','ZS ','ZS8 ','KC4 ','E5 '/ diff --git a/qmap/libqmap/q65_sync.f90 b/qmap/libqmap/q65_sync.f90 new file mode 100644 index 000000000..06caffd74 --- /dev/null +++ b/qmap/libqmap/q65_sync.f90 @@ -0,0 +1,60 @@ +subroutine q65_sync(ss,i0,nts_q65,sync_ok,snr,xdt) + +! Test for presence of Q65 sync tone + + parameter (NFFT=32768) + parameter (LAGMAX=33) + real ss(322,NFFT) !Symbol spectra + real ccf(0:LAGMAX) !The WSJT "blue curve", peak at DT + logical sync_ok + logical first + integer isync(22),ipk(1) + +! Q65 sync symbols + data isync/1,9,12,13,15,22,23,26,27,33,35,38,46,50,55,60,62,66,69,74,76,85/ + data first/.true./ + save first,isync + + tstep=2048.0/11025.0 !0.185760 s: 0.5*tsym_jt65, 0.3096*tsym_q65 + if(first) then + fac=0.6/tstep !3.230 + do i=1,22 !Expand the Q65 sync stride + isync(i)=nint((isync(i)-1)*fac) + 1 + enddo + first=.false. + endif + + m=nts_q65/2 + i1=max(1,i0-m) + i2=min(NFFT,i0+m) + ccf=0. + do lag=0,LAGMAX !Search over range of DT + do j=1,22 !Test for Q65 sync + k=isync(j) + lag + ccf(lag)=ccf(lag) + sum(ss(k,i1:i2)) + sum(ss(k+1,i1:i2)) & + + sum(ss(k+2,i1:i2)) +! Q: Should we use weighted sums, perhaps a Lorentzian peak? + enddo + enddo + ccfmax=maxval(ccf) + ipk=maxloc(ccf) + lagbest=ipk(1)-1 + xdt=lagbest*tstep - 1.0 + + xsum=0. + sq=0. + nsum=0 + do i=0,lagmax !Compute ave and rms of "blue curve" + if(abs(i-lagbest).gt.2) then + xsum=xsum+ccf(i) + sq=sq+ccf(i)**2 + nsum=nsum+1 + endif + enddo + ave=xsum/nsum + rms=sqrt(sq/nsum - ave*ave) + snr=(ccfmax-ave)/rms + sync_ok=snr.ge.5.0 !Require snr > 5.0 for sync detection + + return +end subroutine q65_sync diff --git a/qmap/libqmap/q65b.f90 b/qmap/libqmap/q65b.f90 new file mode 100644 index 000000000..84b9485a3 --- /dev/null +++ b/qmap/libqmap/q65b.f90 @@ -0,0 +1,125 @@ +subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, & + mycall0,hiscall0,hisgrid,mode_q65,f0,fqso,nkhz_center, newdat,nagain, & + max_drift,ndepth,datetime,ndop00,idec) + +! This routine provides an interface between QMAP and the Q65 decoder +! in WSJT-X. All arguments are input data obtained from the QMAP GUI. +! Raw Rx data are available as the 96 kHz complex spectrum ca(MAXFFT1) +! in common/cacb. Decoded messages are sent back to the GUI. + + use q65_decode + use timer_module, only: timer + + parameter (MAXFFT1=5376000) !56*96000 + parameter (MAXFFT2=336000) !56*6000 (downsampled by 1/16) + parameter (NMAX=60*12000) + parameter (RAD=57.2957795) + integer*2 iwave(60*12000) + complex ca(MAXFFT1) !FFT of raw I/Q data from Linrad + complex cx(0:MAXFFT2-1),cz(0:MAXFFT2) + real*8 fcenter,freq0,freq1 + character*12 mycall0,hiscall0 + character*12 mycall,hiscall + character*6 hisgrid + character*4 grid4 + character*60 result + character*20 datetime + common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, & + nWTransmitting,result(50) + common/cacb/ca + save + + if(mycall0(1:1).ne.' ') mycall=mycall0 + if(hiscall0(1:1).ne.' ') hiscall=hiscall0 + if(hisgrid(1:4).ne.' ') grid4=hisgrid(1:4) + +! Find best frequency from sync_dat, the "orange sync curve". + df3=96000.0/32768.0 + ipk=(1000.0*f0-1.0)/df3 + nfft1=MAXFFT1 + nfft2=MAXFFT2 + df=96000.0/NFFT1 + if(nfsample.eq.95238) then + nfft1=5120000 + nfft2=322560 + df=96000.0/nfft1 + endif + nh=nfft2/2 + f_mouse=1000.0*(fqso+48.0) + mousedf + k0=nint((ipk*df3-1000.0)/df) + if(nagain.eq.1) k0=nint((f_mouse-1000.0)/df) + + if(k0.lt.nh .or. k0.gt.MAXFFT1-nfft2+1) go to 900 + fac=1.0/nfft2 + cx(0:nfft2-1)=ca(k0:k0+nfft2-1) + cx=fac*cx + +! Here cx is frequency-domain data around the selected +! QSO frequency, taken from the full-length FFT computed in filbig(). +! Values for fsample, nfft1, nfft2, df, and the downsampled data rate +! are as follows: + +! fSample nfft1 df nfft2 fDownSampled +! (Hz) (Hz) (Hz) +!---------------------------------------------------- +! 96000 5376000 0.017857143 336000 6000.000 + + cz(0:MAXFFT2-1)=cx + cz(MAXFFT2)=0. +! Roll off below 500 Hz and above 2500 Hz. + ja=nint(500.0/df) + jb=nint(2500.0/df) + do i=0,ja + r=0.5*(1.0+cos(i*3.14159/ja)) + cz(ja-i)=r*cz(ja-i) + cz(jb+i)=r*cz(jb+i) + enddo + cz(ja+jb+1:)=0. + +!Transform to time domain (real), fsample=12000 Hz + call four2a(cz,2*nfft2,1,1,-1) + do i=0,nfft2-1 + j=nfft2-1-i + iwave(2*i+2)=nint(real(cz(j))) !Note the reversed order! + iwave(2*i+1)=nint(aimag(cz(j))) + enddo + iwave(2*nfft2+1:)=0 + + nsubmode=mode_q65-1 + nfa=990 !Tight limits around ipk for the wideband decode + nfb=1010 + if(nagain.eq.1) then !For nagain=1, use limits of +/- ntol + nfa=max(100,1000-ntol) + nfb=min(2500,1000+ntol) + endif + nsnr0=-99 !Default snr for no decode + +! NB: Frequency of ipk is now shifted to 1000 Hz. + call map65_mmdec(nutc,iwave,nqd,nsubmode,nfa,nfb,1000,ntol, & + newdat,nagain,max_drift,ndepth,mycall,hiscall,hisgrid) + MHz=fcenter + freq0=MHz + 0.001d0*ikhz + + if(nsnr0.gt.-99) then + nq65df=nint(1000*(0.001*k0*df+nkhz_center-48.0+1.000-1.27046-ikhz))-nfcal + nq65df=nq65df + nfreq0 - 1000 + ikhz1=ikhz + ndf=nq65df + if(ndf.gt.500) ikhz1=ikhz + (nq65df+500)/1000 + if(ndf.lt.-500) ikhz1=ikhz + (nq65df-500)/1000 + ndf=nq65df - 1000*(ikhz1-ikhz) + freq1=freq0 + 0.001d0*(ikhz1-ikhz) + ndecodes=ndecodes+1 + frx=0.001*k0*df+nkhz_center-48.0+1.0 - 0.001*nfcal + fsked=frx - 0.001*ndop00/2.0 - 1.5 + write(result(ndecodes),1120) nutc,frx,fsked,xdt0,nsnr0,trim(msg0) +1120 format(i4.4,f9.3,f7.1,f7.2,i5,2x,a) + write(12,1130) datetime,trim(result(ndecodes)(5:)) +1130 format(a11,1x,a) + result(ndecodes)=trim(result(ndecodes))//char(0) + idec=0 + endif + +900 flush(12) + return +end subroutine q65b diff --git a/qmap/libqmap/q65c.f90 b/qmap/libqmap/q65c.f90 new file mode 100644 index 000000000..dc2ba2c4a --- /dev/null +++ b/qmap/libqmap/q65c.f90 @@ -0,0 +1,51 @@ +subroutine q65c(itimer) + + use timer_module, only: timer + use timer_impl, only: fini_timer !, limtrace + use, intrinsic :: iso_c_binding, only: C_NULL_CHAR + use FFTW3 + use q65 + use q65_decode + + parameter (NFFT=32768) + include 'njunk.f90' + real*8 fcenter + integer nparams0(NJUNK+3),nparams(NJUNK+3) + logical first + character*12 mycall,hiscall + character*6 mygrid,hisgrid + character*20 datetime + + common/datcom2/dd(2,5760000),ss(322,NFFT),savg(NFFT),nparams0 + +!### REMEMBER that /npar/ is not updated until nparams=nparams0 is executed. ### + common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, & + ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & + mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & + ndop00,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid, & + datetime,junk1,junk2 + equivalence (nparams,fcenter) + data first/.true./ + save first + + nparams=nparams0 !Copy parameters into common/npar/ + if(itimer.ne.0) then + call timer('decode0 ',101) + call fini_timer + return + endif + + datetime(18:20)=':00' + npatience=1 + newdat=1 !Always on ?? + +! write(*,3001) 'aa',newdat,nagain,nfa,nfb,ntol,fselected +!3001 format(a2,5i6,f10.3) +! write(*,3001) 'bb',newdat,nagain,nfa,nfb,ntol,fselected + + call timer('decode0 ',0) + call decode0(dd,ss,savg) + call timer('decode0 ',1) + + return +end subroutine q65c diff --git a/qmap/libqmap/qmapa.f90 b/qmap/libqmap/qmapa.f90 new file mode 100644 index 000000000..0515487a7 --- /dev/null +++ b/qmap/libqmap/qmapa.f90 @@ -0,0 +1,74 @@ +subroutine qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, & + mousedf,mousefqso,nagain,nfshift,max_drift,nfcal,mycall, & + hiscall,hisgrid,nfsample,nmode,ndepth,datetime,ndop00,fselected) + +! Processes timf2 data received from Linrad to find and decode Q65 signals. + + use timer_module, only: timer + + type candidate + real :: snr !Relative S/N of sync detection + real :: f !Freq of sync tone, 0 to 96000 Hz + real :: xdt !DT of matching sync pattern, -1.0 to +4.0 s + end type candidate + + parameter (NFFT=32768) !Size of FFTs done in symspec() + parameter (MAX_CANDIDATES=50) + parameter (MAXMSG=1000) !Size of decoded message list + parameter (NSMAX=60*96000) + complex cx(NSMAX/64) !Data at 1378.125 samples/s + real dd(2,NSMAX) !I/Q data from Linrad + real ss(322,NFFT) !Symbol spectra + real savg(NFFT) !Average spectrum + real*8 fcenter !Center RF frequency, MHz + character mycall*12,hiscall*12,hisgrid*6 + type(candidate) :: cand(MAX_CANDIDATES) + character*60 result + character*20 datetime + common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, & + nWTransmitting,result(50) + save + + tsec0=sec_midn() + if(nagain.eq.1) ndepth=3 !Use full depth for click-to-decode + nkhz_center=nint(1000.0*(fcenter-int(fcenter))) + mfa=nfa-nkhz_center+48 + mfb=nfb-nkhz_center+48 + mode_q65=nmode/10 + nts_q65=2**(mode_q65-1) !Q65 tone separation factor + f0_selected=fselected - nkhz_center + 48.0 + + call timer('get_cand',0) +! Get a list of decoding candidates + call getcand2(ss,savg,nts_q65,nagain,ntol,f0_selected,cand,ncand) + call timer('get_cand',1) + + nwrite_q65=0 + df=96000.0/NFFT !df = 96000/NFFT = 2.930 Hz + if(nfsample.eq.95238) df=95238.1/NFFT + ftol=0.010 !Frequency tolerance (kHz) + foffset=0.001*(1270 + nfcal) !Offset from sync tone, plus CAL + fqso=mousefqso + foffset - 0.5*(nfa+nfb) + nfshift !fqso at baseband (khz) + nqd=0 + nagain2=0 + + call timer('filbig ',0) + call filbig(dd,NSMAX,f0,newdat,nfsample,cx,n5) !Do the full-length FFT + call timer('filbig ',1) + + do icand=1,ncand !Attempt to decode each candidate + f0=cand(icand)%f + freq=cand(icand)%f+nkhz_center-48.0-1.27046 + ikhz=nint(freq) + idec=-1 + call timer('q65b ',0) + call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, & + mycall,hiscall,hisgrid,mode_q65,f0,fqso,nkhz_center,newdat, & + nagain2,max_drift,ndepth,datetime,ndop00,idec) + call timer('q65b ',1) + tsec=sec_midn() - tsec0 + if(tsec.gt.30.0) exit !Don't start another decode attempt after t=30 s. + enddo ! icand + + return +end subroutine qmapa diff --git a/qmap/libqmap/recvpkt.f90 b/qmap/libqmap/recvpkt.f90 new file mode 100644 index 000000000..e0c434440 --- /dev/null +++ b/qmap/libqmap/recvpkt.f90 @@ -0,0 +1,53 @@ +subroutine recvpkt(nsam,nblock2,userx_no,k,buf4,buf8) + +! Reformat timf2 data from Linrad and stuff data into r*4 array dd(). + + include 'njunk.f90' + parameter (NSMAX=60*96000) !Total sample intervals per minute + parameter (NFFT=32768) + integer*1 userx_no + real*4 d4,buf4(*) !(348) + real*8 d8,buf8(*) !(174) + integer*2 jd(4),kd(2),nblock2 + real*4 yd(2) + real*8 fcenter + common/datcom/dd(2,5760000),ss(322,NFFT),savg(NFFT),fcenter,nutc, & + junk(NJUNK) + equivalence (kd,d4) + equivalence (jd,d8,yd) + + if(nblock2.eq.-9999) nblock2=-9998 !Silence a compiler warning + if(nsam.eq.-1) then +! Move data from the UDP packet buffer into array dd(). + if(userx_no.eq.-1) then + do i=1,174 !One RF channel, r*4 data + k=k+1 + d8=buf8(i) + dd(1,k)=yd(1) + dd(2,k)=yd(2) + enddo + else if(userx_no.eq.1) then + do i=1,348 !One RF channel, i*2 data + k=k+1 + d4=buf4(i) + dd(1,k)=kd(1) + dd(2,k)=kd(2) + enddo + endif + else + if(userx_no.eq.1) then + do i=1,nsam !One RF channel, r*4 data + k=k+1 + d4=buf4(i) + dd(1,k)=kd(1) + dd(2,k)=kd(2) + + k=k+1 + dd(1,k)=kd(1) + dd(2,k)=kd(2) + enddo + endif + endif + + return +end subroutine recvpkt diff --git a/qmap/libqmap/rfile3a.f90 b/qmap/libqmap/rfile3a.f90 new file mode 100644 index 000000000..7e2266513 --- /dev/null +++ b/qmap/libqmap/rfile3a.f90 @@ -0,0 +1,14 @@ +subroutine rfile3a(infile,ibuf,n,fcenter,ierr) + + character*(*) infile + integer*8 ibuf(n) + real*8 fcenter + + open(10,file=infile,access='stream',status='old',err=998) + read(10,end=998) (ibuf(i),i=1,n/8),fcenter + ierr=0 + go to 999 +998 ierr=1002 +999 close(10) + return +end subroutine rfile3a diff --git a/qmap/libqmap/set.f90 b/qmap/libqmap/set.f90 new file mode 100644 index 000000000..ff7679889 --- /dev/null +++ b/qmap/libqmap/set.f90 @@ -0,0 +1,31 @@ +subroutine set(a,y,n) + real y(n) + do i=1,n + y(i)=a + enddo + return +end subroutine set + +subroutine move(x,y,n) + real x(n),y(n) + do i=1,n + y(i)=x(i) + enddo + return +end subroutine move + +subroutine zero(x,n) + real x(n) + do i=1,n + x(i)=0.0 + enddo + return +end subroutine zero + +subroutine add(a,b,c,n) + real a(n),b(n),c(n) + do i=1,n + c(i)=a(i)+b(i) + enddo + return +end subroutine add diff --git a/qmap/libqmap/shell.f90 b/qmap/libqmap/shell.f90 new file mode 100644 index 000000000..d7365bfc9 --- /dev/null +++ b/qmap/libqmap/shell.f90 @@ -0,0 +1,27 @@ +subroutine shell(n,a) + integer n + real a(n) + integer i,j,inc + real v + + inc=1 +1 inc=3*inc+1 + if(inc.le.n) go to 1 +2 inc=inc/3 + + do i=inc+1,n + v=a(i) + j=i +3 if(a(j-inc).gt.v) then + a(j)=a(j-inc) + j=j-inc + if(j.le.inc) go to 4 + go to 3 + endif +4 a(j)=v + enddo + + if(inc.gt.1) go to 2 + + return +end subroutine shell diff --git a/qmap/libqmap/sleep_msec.f90 b/qmap/libqmap/sleep_msec.f90 new file mode 100644 index 000000000..1a8dbe4f9 --- /dev/null +++ b/qmap/libqmap/sleep_msec.f90 @@ -0,0 +1,4 @@ +subroutine sleep_msec(n) + call usleep(n*1000) + return +end subroutine sleep_msec diff --git a/qmap/libqmap/smo.f90 b/qmap/libqmap/smo.f90 new file mode 100644 index 000000000..c42de7c60 --- /dev/null +++ b/qmap/libqmap/smo.f90 @@ -0,0 +1,19 @@ +subroutine smo(x,npts,y,nadd) + + real x(npts) + real y(npts) + + nh=nadd/2 + do i=1+nh,npts-nh + sum=0. + do j=-nh,nh + sum=sum + x(i+j) + enddo + y(i)=sum + enddo + x=y + x(:nh)=0. + x(npts-nh+1:)=0. + + return +end subroutine smo diff --git a/qmap/libqmap/sort.f90 b/qmap/libqmap/sort.f90 new file mode 100644 index 000000000..8a05da288 --- /dev/null +++ b/qmap/libqmap/sort.f90 @@ -0,0 +1,6 @@ +subroutine sort(n,arr) + + call ssort(arr,tmp,n,1) + + return +end subroutine sort diff --git a/qmap/libqmap/ssort.f b/qmap/libqmap/ssort.f new file mode 100644 index 000000000..fa508ace6 --- /dev/null +++ b/qmap/libqmap/ssort.f @@ -0,0 +1,287 @@ + subroutine ssort (x,y,n,kflag) +c***purpose sort an array and optionally make the same interchanges in +c an auxiliary array. the array may be sorted in increasing +c or decreasing order. a slightly modified quicksort +c algorithm is used. +c +c ssort sorts array x and optionally makes the same interchanges in +c array y. the array x may be sorted in increasing order or +c decreasing order. a slightly modified quicksort algorithm is used. +c +c description of parameters +c x - array of values to be sorted +c y - array to be (optionally) carried along +c n - number of values in array x to be sorted +c kflag - control parameter +c = 2 means sort x in increasing order and carry y along. +c = 1 means sort x in increasing order (ignoring y) +c = -1 means sort x in decreasing order (ignoring y) +c = -2 means sort x in decreasing order and carry y along. + + integer kflag, n +! real x(n), y(n) +! real r, t, tt, tty, ty + integer x(n), y(n) + integer r, t, tt, tty, ty + integer i, ij, j, k, kk, l, m, nn + integer il(21), iu(21) + + nn = n + if (nn .lt. 1) then +! print*,'ssort: The number of sort elements is not positive.' +! print*,'ssort: n = ',nn,' kflag = ',kflag + return + endif +c + kk = abs(kflag) + if (kk.ne.1 .and. kk.ne.2) then + print *, + + 'the sort control parameter, k, is not 2, 1, -1, or -2.' + return + endif +c +c alter array x to get decreasing order if needed +c + if (kflag .le. -1) then + do 10 i=1,nn + x(i) = -x(i) + 10 continue + endif +c + if (kk .eq. 2) go to 100 +c +c sort x only +c + m = 1 + i = 1 + j = nn + r = 0.375e0 +c + 20 if (i .eq. j) go to 60 + if (r .le. 0.5898437e0) then + r = r+3.90625e-2 + else + r = r-0.21875e0 + endif +c + 30 k = i +c +c select a central element of the array and save it in location t +c + ij = i + int((j-i)*r) + t = x(ij) +c +c if first element of array is greater than t, interchange with t +c + if (x(i) .gt. t) then + x(ij) = x(i) + x(i) = t + t = x(ij) + endif + l = j +c +c if last element of array is less than than t, interchange with t +c + if (x(j) .lt. t) then + x(ij) = x(j) + x(j) = t + t = x(ij) +c +c if first element of array is greater than t, interchange with t +c + if (x(i) .gt. t) then + x(ij) = x(i) + x(i) = t + t = x(ij) + endif + endif +c +c find an element in the second half of the array which is smaller +c than t +c + 40 l = l-1 + if (x(l) .gt. t) go to 40 +c +c find an element in the first half of the array which is greater +c than t +c + 50 k = k+1 + if (x(k) .lt. t) go to 50 +c +c interchange these elements +c + if (k .le. l) then + tt = x(l) + x(l) = x(k) + x(k) = tt + go to 40 + endif +c +c save upper and lower subscripts of the array yet to be sorted +c + if (l-i .gt. j-k) then + il(m) = i + iu(m) = l + i = k + m = m+1 + else + il(m) = k + iu(m) = j + j = l + m = m+1 + endif + go to 70 +c +c begin again on another portion of the unsorted array +c + 60 m = m-1 + if (m .eq. 0) go to 190 + i = il(m) + j = iu(m) +c + 70 if (j-i .ge. 1) go to 30 + if (i .eq. 1) go to 20 + i = i-1 +c + 80 i = i+1 + if (i .eq. j) go to 60 + t = x(i+1) + if (x(i) .le. t) go to 80 + k = i +c + 90 x(k+1) = x(k) + k = k-1 + if (t .lt. x(k)) go to 90 + x(k+1) = t + go to 80 +c +c sort x and carry y along +c + 100 m = 1 + i = 1 + j = nn + r = 0.375e0 +c + 110 if (i .eq. j) go to 150 + if (r .le. 0.5898437e0) then + r = r+3.90625e-2 + else + r = r-0.21875e0 + endif +c + 120 k = i +c +c select a central element of the array and save it in location t +c + ij = i + int((j-i)*r) + t = x(ij) + ty = y(ij) +c +c if first element of array is greater than t, interchange with t +c + if (x(i) .gt. t) then + x(ij) = x(i) + x(i) = t + t = x(ij) + y(ij) = y(i) + y(i) = ty + ty = y(ij) + endif + l = j +c +c if last element of array is less than t, interchange with t +c + if (x(j) .lt. t) then + x(ij) = x(j) + x(j) = t + t = x(ij) + y(ij) = y(j) + y(j) = ty + ty = y(ij) +c +c if first element of array is greater than t, interchange with t +c + if (x(i) .gt. t) then + x(ij) = x(i) + x(i) = t + t = x(ij) + y(ij) = y(i) + y(i) = ty + ty = y(ij) + endif + endif +c +c find an element in the second half of the array which is smaller +c than t +c + 130 l = l-1 + if (x(l) .gt. t) go to 130 +c +c find an element in the first half of the array which is greater +c than t +c + 140 k = k+1 + if (x(k) .lt. t) go to 140 +c +c interchange these elements +c + if (k .le. l) then + tt = x(l) + x(l) = x(k) + x(k) = tt + tty = y(l) + y(l) = y(k) + y(k) = tty + go to 130 + endif +c +c save upper and lower subscripts of the array yet to be sorted +c + if (l-i .gt. j-k) then + il(m) = i + iu(m) = l + i = k + m = m+1 + else + il(m) = k + iu(m) = j + j = l + m = m+1 + endif + go to 160 +c +c begin again on another portion of the unsorted array +c + 150 m = m-1 + if (m .eq. 0) go to 190 + i = il(m) + j = iu(m) +c + 160 if (j-i .ge. 1) go to 120 + if (i .eq. 1) go to 110 + i = i-1 +c + 170 i = i+1 + if (i .eq. j) go to 150 + t = x(i+1) + ty = y(i+1) + if (x(i) .le. t) go to 170 + k = i +c + 180 x(k+1) = x(k) + y(k+1) = y(k) + k = k-1 + if (t .lt. x(k)) go to 180 + x(k+1) = t + y(k+1) = ty + go to 170 +c +c clean up +c + 190 if (kflag .le. -1) then + do 200 i=1,nn + x(i) = -x(i) + 200 continue + endif + return + end diff --git a/qmap/libqmap/sun.f90 b/qmap/libqmap/sun.f90 new file mode 100644 index 000000000..ec011b66c --- /dev/null +++ b/qmap/libqmap/sun.f90 @@ -0,0 +1,88 @@ +subroutine sun(y,m,DD,UT,lon,lat,RA,Dec,LST,Az,El,mjd,day) + + implicit none + + integer y !Year + integer m !Month + integer DD !Day + integer mjd !Modified Julian Date + real UT !UTC in hours + real RA,Dec !RA and Dec of sun + +! NB: Double caps here are single caps in the writeup. + +! Orbital elements of the Sun (also N=0, i=0, a=1): + real w !Argument of perihelion + real e !Eccentricity + real MM !Mean anomaly + real Ls !Mean longitude + +! Other standard variables: + real v !True anomaly + real EE !Eccentric anomaly + real ecl !Obliquity of the ecliptic + real d !Ephemeris time argument in days + real r !Distance to sun, AU + real xv,yv !x and y coords in ecliptic + real lonsun !Ecliptic long and lat of sun +! Ecliptic coords of sun (geocentric) + real xs,ys +! Equatorial coords of sun (geocentric) + real xe,ye,ze + real lon,lat + real GMST0,LST,HA + real xx,yy,zz + real xhor,yhor,zhor + real Az,El + + real day + real rad + data rad/57.2957795/ + +! Time in days, with Jan 0, 2000 equal to 0.0: + d=367*y - 7*(y+(m+9)/12)/4 + 275*m/9 + DD - 730530 + UT/24.0 + mjd=d + 51543 + ecl = 23.4393 - 3.563e-7 * d + +! Compute updated orbital elements for Sun: + w = 282.9404 + 4.70935e-5 * d + e = 0.016709 - 1.151e-9 * d + MM = mod(356.0470d0 + 0.9856002585d0 * d + 360000.d0,360.d0) + Ls = mod(w+MM+720.0,360.0) + + EE = MM + e*rad*sin(MM/rad) * (1.0 + e*cos(M/rad)) + EE = EE - (EE - e*rad*sin(EE/rad)-MM) / (1.0 - e*cos(EE/rad)) + + xv = cos(EE/rad) - e + yv = sqrt(1.0-e*e) * sin(EE/rad) + v = rad*atan2(yv,xv) + r = sqrt(xv*xv + yv*yv) + lonsun = mod(v + w + 720.0,360.0) +! Ecliptic coordinates of sun (rectangular): + xs = r * cos(lonsun/rad) + ys = r * sin(lonsun/rad) + +! Equatorial coordinates of sun (rectangular): + xe = xs + ye = ys * cos(ecl/rad) + ze = ys * sin(ecl/rad) + +! RA and Dec in degrees: + RA = rad*atan2(ye,xe) + Dec = rad*atan2(ze,sqrt(xe*xe + ye*ye)) + + GMST0 = (Ls + 180.0)/15.0 + LST = mod(GMST0+UT+lon/15.0+48.0,24.0) !LST in hours + HA = 15.0*LST - RA !HA in degrees + xx = cos(HA/rad)*cos(Dec/rad) + yy = sin(HA/rad)*cos(Dec/rad) + zz = sin(Dec/rad) + xhor = xx*sin(lat/rad) - zz*cos(lat/rad) + yhor = yy + zhor = xx*cos(lat/rad) + zz*sin(lat/rad) + Az = mod(rad*atan2(yhor,xhor) + 180.0 + 360.0,360.0) + El = rad*asin(zhor) + day=d-1.5 + + return +end subroutine sun diff --git a/qmap/libqmap/symspec.f90 b/qmap/libqmap/symspec.f90 new file mode 100644 index 000000000..a1d945ddf --- /dev/null +++ b/qmap/libqmap/symspec.f90 @@ -0,0 +1,142 @@ +subroutine symspec(k,ndiskdat,nb,nbslider,nfsample, & + pxdb,ssz5a,nkhz,ihsym,nzap,slimit,lstrong) + +! k pointer to the most recent new data +! ndiskdat 0/1 to indicate if data from disk +! nb 0/1 status of noise blanker +! nfsample sample rate (Hz) +! pxdb power in x channel (0-60 dB) +! ssz5a polarized spectrum, for waterfall display +! nkhz integer kHz portion of center frequency, e.g., 125 for 144.125 +! ihsym index number of this half-symbol (1-322) +! nzap number of samples zero'ed by noise blanker + + include 'njunk.f90' + parameter (NSMAX=60*96000) !Total sample intervals per minute + parameter (NFFT=32768) !Length of FFTs + real*8 ts,hsym + real*8 fcenter + common/datcom/dd(2,5760000),ss(322,NFFT),savg(NFFT),fcenter,nutc, & + junk(NJUNK) + real*4 ssz5a(NFFT),w(NFFT),w2a(NFFT),w2b(NFFT) + complex cx(NFFT) + complex cx00(NFFT) + complex cx0(0:1023),cx1(0:1023) + logical*1 lstrong(0:1023) + data rms/999.0/,k0/99999999/,nadjx/0/,nadjy/0/ + save + + nfast=1 + if(k.gt.5751000) go to 999 + if(k.lt.NFFT) then + ihsym=0 + go to 999 !Wait for enough samples to start + endif + if(k0.eq.99999999) then + pi=4.0*atan(1.0) + w2a=0. + w2b=0. + do i=1,NFFT + w(i)=(sin(i*pi/NFFT))**2 !Window for nfast=1 + if(i.lt.17833) w2a(i)=(sin(i*pi/17832.925))**2 !Window a for nfast=2 + j=i-8916 + if(j.gt.0 .and. j.lt.17833) w2b(i)=(sin(j*pi/17832.925))**2 ! b + enddo + w2a=sqrt(2.0)*w2a + w2b=sqrt(2.0)*w2b + endif + + hsym=2048.d0*96000.d0/11025.d0 !Samples per JT65 half-symbol + if(nfsample.eq.95238) hsym=2048.d0*95238.1d0/11025.d0 + + if(k.lt.k0) then + ts=1.d0 - hsym + savg=0. + ihsym=0 + k1=0 + if(ndiskdat.eq.0) dd(1:2,k+1:5760000)=0. !### Should not be needed ??? ### + endif + k0=k + + nzap=0 + sigmas=1.5*(10.0**(0.01*nbslider)) + 0.7 + peaklimit=sigmas*max(10.0,rms) + faclim=3.0 + px=0. + + nwindow=2 + nfft2=1024 + kstep=nfft2 + if(nwindow.ne.0) kstep=nfft2/2 + nblks=(k-k1)/kstep + do nblk=1,nblks + j=k1+1 + do i=0,nfft2-1 + cx0(i)=cmplx(dd(1,j+i),dd(2,j+i)) + enddo + call timf2(k,nfft2,nwindow,nb,peaklimit, & + faclim,cx0,cx1,slimit,lstrong, & + px,nzap) + + do i=0,kstep-1 + dd(1,j+i)=real(cx1(i)) + dd(2,j+i)=aimag(cx1(i)) + enddo + k1=k1+kstep + enddo + + npts=NFFT !Samples used in each half-symbol FFT + + ts=ts+hsym + ja=ts !Index of first sample + jb=ja+npts-1 !Last sample + + i=0 + fac=0.0002 + do j=ja,jb !Copy data into cx + x1=dd(1,j) + x2=dd(2,j) + i=i+1 + cx(i)=fac*cmplx(x1,x2) + enddo + + if(nzap/178.lt.50 .and. (ndiskdat.eq.0 .or. ihsym.lt.280)) then + nsum=nblks*kstep - nzap + if(nsum.le.0) nsum=1 + rmsx=sqrt(0.5*px/nsum) + rms=rmsx + endif + pxdb=0. + if(rmsx.gt.1.0) pxdb=20.0*log10(rmsx) + if(pxdb.gt.60.0) pxdb=60.0 + + cx00=cx + + do mm=1,nfast + ihsym=ihsym+1 + if(nfast.eq.1) then + cx=w*cx00 !Apply window for 2nd forward FFT + else + if(mm.eq.1) then + cx=w2a*cx00 + else + cx=w2b*cx00 + endif + endif + + call four2a(cx,NFFT,1,1,1) !Second forward FFT (X) + + n=min(322,ihsym) + do i=1,NFFT + sx=real(cx(i))**2 + aimag(cx(i))**2 + ss(n,i)=sx ! Pol = 0 + savg(i)=savg(i) + sx + ssz5a(i)=sx + enddo + enddo + + nkhz=nint(1000.d0*(fcenter-int(fcenter))) + if(fcenter.eq.0.d0) nkhz=125 + +999 return +end subroutine symspec diff --git a/qmap/libqmap/synctst.f90 b/qmap/libqmap/synctst.f90 new file mode 100644 index 000000000..248c7e197 --- /dev/null +++ b/qmap/libqmap/synctst.f90 @@ -0,0 +1,84 @@ +program synctst + +! Tests JT65B2 sync patterns + + parameter (LAGMAX=20) + real ccf0(0:LAGMAX),ccf2(0:LAGMAX),ccf3(0:LAGMAX) + character*12 arg + integer npr(126),np0(126),np1(126),npr2(126) + data npr/1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,1,0,1,0,0, & + 0,1,0,1,1,0,0,1,0,0,0,1,1,1,0,0,1,1,1,1, & + 0,1,1,0,1,1,1,1,0,0,0,1,1,0,1,0,1,0,1,1, & + 0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,1, & + 1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1, & + 0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,1, & + 1,1,1,1,1,1/ + + nargs=iargc() + if(nargs.ne.1) then + print*,'Usage: synctst iters' + go to 999 + endif + call getarg(1,arg) + read(arg,*) iters + + worst=0. + do lag=0,LAGMAX + nsum=0 + do i=1,126-lag + nsum=nsum + npr(i)*npr(lag+i) + enddo + ccf0(lag)=2.0*nsum/(126.0-lag) + if(lag.ge.1 .and. ccf0(lag).gt.worst) worst=ccf0(lag) + enddo + + best2=1.0 + do iter=1,iters + +10 np0=0 + np1=0 + n0=0 + do i=1,126 + if(npr(i).eq.1) then + call random_number(r) + if(r.lt.0.5) then + np0(i)=1 + n0=n0+1 + else + np1(i)=1 + endif + endif + enddo + if(n0.ne.31 .and. n0.ne.32) go to 10 + + worst2=0. + do lag=0,LAGMAX + nsum=0 + do i=1,126-lag + nsum=nsum + np0(i)*np0(lag+i) + np1(i)*np1(lag+i) + enddo + ccf2(lag)=2.0*nsum/(126.0-lag) + if(lag.ge.1 .and. ccf2(lag).gt.worst2) then + worst2=ccf2(lag) + lagbad=lag + endif + enddo + if(worst2.lt.best2) then + best2=worst2 + lagbest=lagbad + n0best=n0 + ccf3=ccf2 + npr2=np0 + 2*np1 + endif + enddo + + do lag=0,LAGMAX + write(13,1100) lag,ccf0(lag),ccf3(lag) +1100 format(i3,2f10.3) + enddo + + print*,worst,best2,n0best,lagbest + write(*,1110) npr2 +1110 format((8x,20(i1,','))) + +999 end program synctst diff --git a/qmap/libqmap/synctst2.f90 b/qmap/libqmap/synctst2.f90 new file mode 100644 index 000000000..8ff4971a3 --- /dev/null +++ b/qmap/libqmap/synctst2.f90 @@ -0,0 +1,91 @@ +program synctst2 + +! Tests JT65B2 sync patterns + + parameter (LAGMAX=20) + real ccf0(0:LAGMAX),ccf1(0:LAGMAX),ccf2(0:LAGMAX),ccf3(0:LAGMAX) + character arg*12,line*64 + integer*8 n8 + integer npr(126),np0(126),np1(126),npr1(126),npr2(126) + data npr/1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,1,0,1,0,0, & + 0,1,0,1,1,0,0,1,0,0,0,1,1,1,0,0,1,1,1,1, & + 0,1,1,0,1,1,1,1,0,0,0,1,1,0,1,0,1,0,1,1, & + 0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,1, & + 1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1, & + 0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,1, & + 1,1,1,1,1,1/ + + data npr2/1,0,0,1,2,0,0,0,2,1,1,2,2,2,0,2,0,2,0,0, & + 0,1,0,2,1,0,0,1,0,0,0,2,1,1,0,0,1,1,2,2, & + 0,2,2,0,2,1,1,1,0,0,0,1,2,0,1,0,2,0,1,1, & + 0,0,2,2,0,1,0,1,0,2,0,0,2,0,0,0,0,0,0,1, & + 1,0,0,0,0,0,0,0,1,2,0,2,0,0,2,0,2,1,0,1, & + 0,2,0,1,0,0,2,2,0,0,1,0,0,2,0,0,0,0,1,1, & + 1,2,1,2,1,2/ + + data n8/x'4314f4725bb357e0'/ + + write(*,1102) n8 + write(line,1102) n8 +1102 format(b63) + read(line,1104) npr1(1:63) +1104 format(63i1) + npr1(64:126)=npr1(1:63) + + worst=0. + do lag=0,LAGMAX + nsum=0 + do i=1,126-lag + nsum=nsum + npr(i)*npr(lag+i) + enddo + ccf0(lag)=2.0*nsum/(126.0-lag) + if(lag.ge.1 .and. ccf0(lag).gt.worst) worst=ccf0(lag) + enddo + + + worst1=0. + do lag=0,LAGMAX + nsum=0 + do i=1,126-lag + nsum=nsum + npr1(i)*npr1(lag+i) + enddo + ccf1(lag)=(63.0/64.0)*2.0*nsum/(126.0-lag) + if(lag.ge.1 .and. ccf1(lag).gt.worst1) worst1=ccf1(lag) + enddo + ccf1=ccf1/ccf1(0) + worst1=worst1/ccf1(0) + + np0=0 + np1=0 + n0=0 + do i=1,126 + if(npr2(i).eq.1) then + np0(i)=1 + n0=n0+1 + else if(npr2(i).eq.2) then + np1(i)=1 + endif + enddo + + worst2=0. + do lag=0,LAGMAX + nsum=0 + do i=1,126-lag + nsum=nsum + np0(i)*np0(lag+i) + np1(i)*np1(lag+i) + enddo + ccf2(lag)=2.0*nsum/(126.0-lag) + if(lag.ge.1 .and. ccf2(lag).gt.worst2) then + worst2=ccf2(lag) + lagbad=lag + endif + enddo + + do lag=0,LAGMAX + write(13,1100) lag,ccf0(lag),ccf1(lag),ccf2(lag) +1100 format(i3,3f10.3) + enddo + + print*,worst,worst1,worst2,n0,lagbad + + +999 end program synctst2 diff --git a/qmap/libqmap/tastro.f90 b/qmap/libqmap/tastro.f90 new file mode 100644 index 000000000..fac5c8003 --- /dev/null +++ b/qmap/libqmap/tastro.f90 @@ -0,0 +1,35 @@ +program tastro + + implicit real*8 (a-h,o-z) + + character grid*6 + character*9 cauxra,cauxdec + + character*12 clock(3) + integer nt(8) + equivalence (nt(1),nyear) + + grid='FN20qi' + nfreq=144 + cauxra='00:00:00' + +10 call date_and_time(clock(1),clock(2),clock(3),nt) + ih=ihour-ntz/60 + if(ih.le.0) then + ih=ih+24 + nday=nday+1 + endif + uth8=ih + imin/60.d0 + isec/3600.d0 + ims/3600000.d0 + call astro0(nyear,month,nday,uth8,nfreq,grid,cauxra,cauxdec, & + AzSun8,ElSun8,AzMoon8,ElMoon8,AzMoonB8,ElMoonB8,ntsky,ndop,ndop00, & + dbMoon8,RAMoon8,DecMoon8,HA8,Dgrd8,sd8,poloffset8,xnr8,dfdt,dfdt0, & + RaAux8,DecAux8,AzAux8,ElAux8,width1,width2,w501,w502,xlst8) + + write(*,1010) nyear,month,nday,ih,imin,isec,AzMoon8,ElMoon8, & + AzSun8,ElSun8,ndop,dgrd8,ntsky +1010 format(i4,i3,i3,i4.2,':',i2.2,':',i2.2,4f8.1,i6,f6.1,i6) + + call system('sleep 1') + go to 10 + +end program tastro diff --git a/qmap/libqmap/timf2.f90 b/qmap/libqmap/timf2.f90 new file mode 100644 index 000000000..c22f3ce05 --- /dev/null +++ b/qmap/libqmap/timf2.f90 @@ -0,0 +1,140 @@ +subroutine timf2(k,nfft,nwindow,nb,peaklimit,faclim, & + cx0,cx1,slimit,lstrong,px,nzap) + +! Sequential processing of time-domain I/Q data, using Linrad-like +! "first FFT" and "first backward FFT". + +! cx0 - complex input data +! nfft - length of FFTs +! nwindow - 0 for no window, 2 for sin^2 window +! cx1 - output data + +! Non-windowed processing means no overlap, so kstep=nfft. +! Sin^2 window has 50% overlap, kstep=nfft/2. + +! Frequencies with strong signals are identified and separated. The back +! transforms are done separately for weak and strong signals, so that +! noise blanking can be applied to the weak-signal portion. Strong and +! weak are finally re-combined in the time domain. + + parameter (MAXFFT=1024,MAXNH=MAXFFT/2) + parameter (MAXSIGS=100) + complex cx0(0:nfft-1),cx1(0:nfft-1) + complex cx(0:MAXFFT-1),cxt(0:MAXFFT-1) + complex cxs(0:MAXFFT-1),covxs(0:MAXNH-1) !Strong X signals + complex cxw(0:MAXFFT-1),covxw(0:MAXNH-1) !Weak X signals + real*4 w(0:MAXFFT-1) + real*4 s(0:MAXFFT-1) + logical*1 lstrong(0:MAXFFT-1),lprev + integer ia(MAXSIGS),ib(MAXSIGS) + logical first + data first/.true./ + data k0/99999999/ + save + + if(faclim.eq.-9999.0) stop !Silence compiler warning. + if(first) then + pi=4.0*atan(1.0) + do i=0,nfft-1 + w(i)=(sin(i*pi/nfft))**2 + enddo + s=0. + nh=nfft/2 + kstep=nfft + if(nwindow.eq.2) kstep=nh + fac=1.0/nfft + slimit=1.e30 + first=.false. + endif + + if(k.lt.k0) then + covxs=0. + covxw=0. + covys=0. + covyw=0. + endif + k0=k + + cx(0:nfft-1)=cx0 + if(nwindow.eq.2) cx(0:nfft-1)=w(0:nfft-1)*cx(0:nfft-1) + call four2a(cx,nfft,1,1,1) !First forward FFT (X) + cxt(0:nfft-1)=cx(0:nfft-1) + +! Identify frequencies with strong signals, copy frequency-domain +! data into array cs (strong) or cw (weak). + + do i=0,nfft-1 + p=real(cxt(i))**2 + aimag(cxt(i))**2 + s(i)=p + enddo + ave=sum(s(0:nfft-1))/nfft + lstrong(0:nfft-1)=s(0:nfft-1).gt.10.0*ave + + nsigs=0 + lprev=.false. + iwid=1 + ib=-99 + do i=0,nfft-1 + if(lstrong(i) .and. (.not.lprev)) then + if(nsigs.lt.MAXSIGS) nsigs=nsigs+1 + ia(nsigs)=i-iwid + if(ia(nsigs).lt.0) ia(nsigs)=0 + endif + if(.not.lstrong(i) .and. lprev) then + ib(nsigs)=i-1+iwid + if(ib(nsigs).gt.nfft-1) ib(nsigs)=nfft-1 + endif + lprev=lstrong(i) + enddo + + if(nsigs.gt.0) then + do i=1,nsigs + ja=ia(i) + jb=ib(i) + if(ja.lt.0 .or. ja.gt.nfft-1 .or. jb.lt.0 .or. jb.gt.nfft-1) then + cycle + endif + if(jb.eq.-99) jb=ja + min(2*iwid,nfft-1) + lstrong(ja:jb)=.true. + enddo + endif + + do i=0,nfft-1 + if(lstrong(i)) then + cxs(i)=fac*cxt(i) + cxw(i)=0. + else + cxw(i)=fac*cxt(i) + cxs(i)=0. + endif + enddo + + call four2a(cxw,nfft,1,-1,1) !Transform weak and strong X + call four2a(cxs,nfft,1,-1,1) !back to time domain, separately + + if(nwindow.eq.2) then + cxw(0:nh-1)=cxw(0:nh-1)+covxw(0:nh-1) !Add previous segment's 2nd half + covxw(0:nh-1)=cxw(nh:nfft-1) !Save 2nd half + cxs(0:nh-1)=cxs(0:nh-1)+covxs(0:nh-1) !Ditto for strong signals + covxs(0:nh-1)=cxs(nh:nfft-1) + endif + +! Apply noise blanking to weak data + if(nb.ne.0) then + do i=0,kstep-1 + peak=abs(cxw(i)) + if(peak.gt.peaklimit) then + cxw(i)=0. + nzap=nzap+1 + endif + enddo + endif + +! Compute power levels from weak data only + do i=0,kstep-1 + px=px + real(cxw(i))**2 + aimag(cxw(i))**2 + enddo + cx1(0:kstep-1)=cxw(0:kstep-1) + cxs(0:kstep-1) !Weak + strong (X) + + return +end subroutine timf2 diff --git a/qmap/libqmap/tm2.f90 b/qmap/libqmap/tm2.f90 new file mode 100644 index 000000000..fb831fab6 --- /dev/null +++ b/qmap/libqmap/tm2.f90 @@ -0,0 +1,14 @@ +subroutine tm2(day,xlat4,xlon4,xl4,b4) + + implicit real*8 (a-h,o-z) + parameter (RADS=0.0174532925199433d0) + + real*4 xlat4,xlon4,xl4,b4 + + glat=xlat4*RADS + glong=xlon4*RADS + call tmoonsub(day,glat,glong,el,rv,xl,b,pax) + xl4=xl + b4=b + +end subroutine tm2 diff --git a/qmap/libqmap/toxyz.f90 b/qmap/libqmap/toxyz.f90 new file mode 100644 index 000000000..aef160c9d --- /dev/null +++ b/qmap/libqmap/toxyz.f90 @@ -0,0 +1,25 @@ +subroutine toxyz(alpha,delta,r,vec) + + implicit real*8 (a-h,o-z) + real*8 vec(3) + + vec(1)=r*cos(delta)*cos(alpha) + vec(2)=r*cos(delta)*sin(alpha) + vec(3)=r*sin(delta) + + return +end subroutine toxyz + +subroutine fromxyz(vec,alpha,delta,r) + + implicit real*8 (a-h,o-z) + real*8 vec(3) + data twopi/6.283185307d0/ + + r=sqrt(vec(1)**2 + vec(2)**2 + vec(3)**2) + alpha=atan2(vec(2),vec(1)) + if(alpha.lt.0.d0) alpha=alpha+twopi + delta=asin(vec(3)/r) + + return +end subroutine fromxyz diff --git a/qmap/libqmap/twkfreq.f90 b/qmap/libqmap/twkfreq.f90 new file mode 100644 index 000000000..be1fef0fe --- /dev/null +++ b/qmap/libqmap/twkfreq.f90 @@ -0,0 +1,26 @@ +subroutine twkfreq(c3,c4,npts,fsample,a) + + complex c3(npts) + complex c4(npts) + complex w,wstep + real a(3) + data twopi/6.283185307/ + +! Mix the complex signal + w=1.0 + wstep=1.0 + x0=0.5*(npts+1) + s=2.0/npts + do i=1,npts + x=s*(i-x0) + p2=1.5*x*x - 0.5 +! p3=2.5*(x**3) - 1.5*x +! p4=4.375*(x**4) - 3.75*(x**2) + 0.375 + dphi=(a(1) + x*a(2) + p2*a(3)) * (twopi/fsample) + wstep=cmplx(cos(dphi),sin(dphi)) + w=w*wstep + c4(i)=w*c3(i) + enddo + + return +end subroutine twkfreq diff --git a/qmap/libqmap/twkfreq_xy.f90 b/qmap/libqmap/twkfreq_xy.f90 new file mode 100644 index 000000000..a5cc3769a --- /dev/null +++ b/qmap/libqmap/twkfreq_xy.f90 @@ -0,0 +1,29 @@ +subroutine twkfreq_xy(c4aa,c4bb,n5,a) + + complex c4aa(n5) + complex c4bb(n5) + real a(5) + complex w,wstep + data twopi/6.283185307/ + +! Apply AFC corrections to the c4aa and c4bb data + w=1.0 + wstep=1.0 + x0=0.5*(n5+1) + s=2.0/n5 + do i=1,n5 + x=s*(i-x0) + if(mod(i,1000).eq.1) then + p2=1.5*x*x - 0.5 +! p3=2.5*(x**3) - 1.5*x +! p4=4.375*(x**4) - 3.75*(x**2) + 0.375 + dphi=(a(1) + x*a(2) + p2*a(3)) * (twopi/1378.125) + wstep=cmplx(cos(dphi),sin(dphi)) + endif + w=w*wstep + c4aa(i)=w*c4aa(i) + c4bb(i)=w*c4bb(i) + enddo + + return +end subroutine twkfreq_xy diff --git a/qmap/libqmap/zplot.f90 b/qmap/libqmap/zplot.f90 new file mode 100644 index 000000000..55aa3c6fa --- /dev/null +++ b/qmap/libqmap/zplot.f90 @@ -0,0 +1,34 @@ +subroutine zplot(amp,nz,jj,ave,rms) + + real amp(nz) + character*1 line(100),mark(0:6) + data mark/' ',' ','.','-','+','X','$'/ + + sum=0. + smax=0. + do i=1,nz + sum=sum+amp(i) + if(amp(i).gt.smax) then + smax=amp(i) + ipk=i + endif + enddo + ave=(sum-smax)/(nz-1) + sq=0. + do i=1,nz + if(i.ne.ipk) sq=sq+(amp(i)-ave)**2 + enddo + rms=sqrt(sq/(nz-2)) + + do i=1,nz + n=(amp(i)-ave)/rms +! n=(amp(i)-ave)/0.33 + if(n.lt.0) n=0 + if(n.gt.6) n=6 + line(i)=mark(n) + enddo + write(89,1010) jj,0.01*ave,0.01*rms,(line(i),i=1,nz) +1010 format(i3,2f6.1,1x,100a1) + + return +end subroutine zplot diff --git a/qmap/main.cpp b/qmap/main.cpp new file mode 100644 index 000000000..f3f0880fd --- /dev/null +++ b/qmap/main.cpp @@ -0,0 +1,53 @@ +#include +#ifdef QT5 +#include +#else +#include +#endif +#include + +#include "revision_utils.hpp" +#include "mainwindow.h" + +extern "C" { + // Fortran procedures we need + void four2a_ (_Complex float *, int * nfft, int * ndim, int * isign, int * iform, int len); + + void _gfortran_set_args(int argc, char *argv[]); + void _gfortran_set_convert(int conv); + void ftninit_(void); +} + +int main(int argc, char *argv[]) +{ + QApplication a {argc, argv}; + +// Initialize libgfortran: + _gfortran_set_args(argc, argv); + _gfortran_set_convert(0); + ftninit_(); + + // Override programs executable basename as application name. + a.setApplicationName ("QMAP"); + a.setApplicationVersion ("0.2"); + // switch off as we share an Info.plist file with WSJT-X + a.setAttribute (Qt::AA_DontUseNativeMenuBar); + MainWindow w; + w.show (); + QObject::connect (&a, &QApplication::lastWindowClosed, &a, &QApplication::quit); + auto result = a.exec (); + + // clean up lazily initialized FFTW3 resources + { + int nfft {-1}; + int ndim {1}; + int isign {1}; + int iform {1}; + // free FFT plan resources + four2a_ (nullptr, &nfft, &ndim, &isign, &iform, 0); + } + fftwf_forget_wisdom (); + fftwf_cleanup (); + + return result; +} diff --git a/qmap/mainwindow.cpp b/qmap/mainwindow.cpp new file mode 100644 index 000000000..7d59a8e20 --- /dev/null +++ b/qmap/mainwindow.cpp @@ -0,0 +1,1070 @@ +//------------------------------------------------------------------ MainWindow +#include "mainwindow.h" +#include +#include +#include +#include +#include +#include "revision_utils.hpp" +#include "qt_helpers.hpp" +#include "SettingsGroup.hpp" +#include "widgets/MessageBox.hpp" +#include "ui_mainwindow.h" +#include "devsetup.h" +#include "plotter.h" +#include "about.h" +#include "astro.h" +#include "widegraph.h" +#include "sleep.h" + +#define NFFT 32768 + +qint16 id[2*60*96000]; + +QSharedMemory mem_qmap("mem_qmap"); //Memory segment to be shared (optionally) with WSJT-X +int* ipc_wsjtx; + +extern const int RxDataFrequency = 96000; + +//-------------------------------------------------- MainWindow constructor +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow), + m_appDir {QApplication::applicationDirPath ()}, + m_settings_filename {m_appDir + "/qmap.ini"}, + m_astro_window {new Astro {m_settings_filename}}, + m_wide_graph_window {new WideGraph {m_settings_filename}}, + m_gui_timer {new QTimer {this}} +{ + ui->setupUi(this); +// ui->decodedTextBrowser->clear(); + ui->labUTC->setStyleSheet( \ + "QLabel { background-color : black; color : yellow; }"); + ui->labFreq->setStyleSheet( \ + "QLabel { background-color : black; color : yellow; }"); + ui->labTol1->setStyleSheet( \ + "QLabel { background-color : white; color : black; }"); + ui->labTol1->setFrameStyle(QFrame::Panel | QFrame::Sunken); + + QActionGroup* paletteGroup = new QActionGroup(this); + ui->actionCuteSDR->setActionGroup(paletteGroup); + ui->actionLinrad->setActionGroup(paletteGroup); + ui->actionAFMHot->setActionGroup(paletteGroup); + ui->actionBlue->setActionGroup(paletteGroup); + + QActionGroup* modeGroup2 = new QActionGroup(this); + ui->actionQ65A->setActionGroup(modeGroup2); + ui->actionQ65B->setActionGroup(modeGroup2); + ui->actionQ65C->setActionGroup(modeGroup2); + ui->actionQ65D->setActionGroup(modeGroup2); + ui->actionQ65E->setActionGroup(modeGroup2); + + QActionGroup* saveGroup = new QActionGroup(this); + ui->actionSave_all->setActionGroup(saveGroup); + ui->actionNone->setActionGroup(saveGroup); + + setWindowTitle (program_title ()); + + connect(&soundInThread, SIGNAL(readyForFFT(int)), this, SLOT(dataSink(int))); + connect(&soundInThread, SIGNAL(error(QString)), this, SLOT(showSoundInError(QString))); + connect(&soundInThread, SIGNAL(status(QString)), this, SLOT(showStatusMessage(QString))); + createStatusBar(); + connect(m_gui_timer, &QTimer::timeout, this, &MainWindow::guiUpdate); + + m_waterfallAvg = 1; + m_network = true; + m_restart=false; + m_myCall="K1JT"; + m_myGrid="FN20qi"; + m_saveDir=""; + m_azelDir=""; + m_loopall=false; + m_startAnother=false; + m_saveAll=false; + m_onlyEME=false; + m_sec0=-1; + m_hsym0=-1; + m_palette="CuteSDR"; + m_nutc0=9999; + m_kb8rq=false; + m_NB=false; + m_mode="Q65"; + m_fs96000=true; + m_udpPort=50004; + m_nsave=0; + m_modeQ65=0; + m_TRperiod=60; + + xSignalMeter = new SignalMeter(ui->xMeterFrame); + xSignalMeter->resize(50, 160); + +//Attach or create a memory segment to be shared with WSJT-X. + int memSize=4096; + if(!mem_qmap.attach()) { + if(!mem_qmap.create(memSize)) { + msgBox("Unable to create shared memory segment mem_qmap."); + } + } + ipc_wsjtx = (int*)mem_qmap.data(); + mem_qmap.lock(); + memset(ipc_wsjtx,0,memSize); //Zero all of shared memory + mem_qmap.unlock(); + + fftwf_import_wisdom_from_filename (QDir {m_appDir}.absoluteFilePath ("qmap_wisdom.dat").toLocal8Bit ()); + + readSettings(); //Restore user's setup params + + m_pbdecoding_style1="QPushButton{background-color: cyan; \ + border-style: outset; border-width: 1px; border-radius: 5px; \ + border-color: black; min-width: 5em; padding: 3px;}"; + m_pbmonitor_style="QPushButton{background-color: #00ff00; \ + border-style: outset; border-width: 1px; border-radius: 5px; \ + border-color: black; min-width: 5em; padding: 3px;}"; + m_pbAutoOn_style="QPushButton{background-color: red; \ + border-style: outset; border-width: 1px; border-radius: 5px; \ + border-color: black; min-width: 5em; padding: 3px;}"; + + on_actionAstro_Data_triggered(); //Create the other windows + on_actionWide_Waterfall_triggered(); + if (m_astro_window) m_astro_window->setFontSize (m_astroFont); + + if(m_modeQ65==1) on_actionQ65A_triggered(); + if(m_modeQ65==2) on_actionQ65B_triggered(); + if(m_modeQ65==3) on_actionQ65C_triggered(); + if(m_modeQ65==4) on_actionQ65D_triggered(); + if(m_modeQ65==5) on_actionQ65E_triggered(); + + future1 = new QFuture; + watcher1 = new QFutureWatcher; + connect(watcher1, SIGNAL(finished()),this,SLOT(diskDat())); + + future2 = new QFuture; + watcher2 = new QFutureWatcher; + connect(watcher2, SIGNAL(finished()),this,SLOT(diskWriteFinished())); + + connect(&watcher3, SIGNAL(finished()),this,SLOT(decoderFinished())); + +// Assign input device and start input thread + soundInThread.setRate(96000.0); + soundInThread.setBufSize(10*7056); + soundInThread.setNetwork(m_network); + soundInThread.setPort(m_udpPort); + soundInThread.setPeriod(m_TRperiod); + soundInThread.start(QThread::HighestPriority); + + m_monitoring=true; // Start with Monitoring ON + soundInThread.setMonitoring(m_monitoring); + m_diskData=false; + m_tol=500; + m_wide_graph_window->setTol(m_tol); + m_wide_graph_window->setFcal(m_fCal); + m_wide_graph_window->setFsample(96000); + +// Create "m_worked", a dictionary of all calls in wsjt.log + QFile f("wsjt.log"); + f.open(QIODevice::ReadOnly); + if(f.isOpen()) { + QTextStream in(&f); + QString line,t,callsign; + for(int i=0; i<99999; i++) { + line=in.readLine(); + if(line.length()<=0) break; + t=line.mid(18,12); + callsign=t.mid(0,t.indexOf(",")); + m_worked[callsign]=true; + } + f.close(); + } + + if(ui->actionLinrad->isChecked()) on_actionLinrad_triggered(); + if(ui->actionCuteSDR->isChecked()) on_actionCuteSDR_triggered(); + if(ui->actionAFMHot->isChecked()) on_actionAFMHot_triggered(); + if(ui->actionBlue->isChecked()) on_actionBlue_triggered(); + + connect (m_wide_graph_window.get (), &WideGraph::freezeDecode2, this, &MainWindow::freezeDecode); + connect (m_wide_graph_window.get (), &WideGraph::f11f12, this, &MainWindow::bumpDF); + + // only start the guiUpdate timer after this constructor has finished + QTimer::singleShot (0, [=] { + m_gui_timer->start(100); //Don't change the 100 ms! + }); +} + + //--------------------------------------------------- MainWindow destructor +MainWindow::~MainWindow() +{ + writeSettings(); + int itimer=1; + q65c_(&itimer); + + if (soundInThread.isRunning()) { + soundInThread.quit(); + soundInThread.wait(3000); + } + fftwf_export_wisdom_to_filename (QDir {m_appDir}.absoluteFilePath ("qmap_wisdom.dat").toLocal8Bit ()); + delete ui; +} + +//-------------------------------------------------------- writeSettings() +void MainWindow::writeSettings() +{ + QSettings settings(m_settings_filename, QSettings::IniFormat); + { + SettingsGroup g {&settings, "MainWindow"}; + settings.setValue("geometry", saveGeometry()); + settings.setValue("MRUdir", m_path); + } + + SettingsGroup g {&settings, "Common"}; + settings.setValue("MyCall",m_myCall); + settings.setValue("MyGrid",m_myGrid); + settings.setValue("IDint",m_idInt); + settings.setValue("AstroFont",m_astroFont); + settings.setValue("SaveDir",m_saveDir); + settings.setValue("AzElDir",m_azelDir); + settings.setValue("Timeout",m_timeout); + settings.setValue("Fcal",m_fCal); + settings.setValue("Fadd",m_fAdd); + settings.setValue("NetworkInput", m_network); + settings.setValue("FSam96000", m_fs96000); + settings.setValue("paInDevice",m_paInDevice); + settings.setValue("Scale_dB",m_dB); + settings.setValue("UDPport",m_udpPort); + settings.setValue("PaletteCuteSDR",ui->actionCuteSDR->isChecked()); + settings.setValue("PaletteLinrad",ui->actionLinrad->isChecked()); + settings.setValue("PaletteAFMHot",ui->actionAFMHot->isChecked()); + settings.setValue("PaletteBlue",ui->actionBlue->isChecked()); + settings.setValue("Mode",m_mode); + settings.setValue("nModeQ65",m_modeQ65); + settings.setValue("SaveNone",ui->actionNone->isChecked()); + settings.setValue("SaveAll",ui->actionSave_all->isChecked()); + settings.setValue("NEME",m_onlyEME); + settings.setValue("KB8RQ",m_kb8rq); + settings.setValue("NB",m_NB); + settings.setValue("NBslider",m_NBslider); + settings.setValue("GainX",(double)m_gainx); + settings.setValue("GainY",(double)m_gainy); + settings.setValue("PhaseX",(double)m_phasex); + settings.setValue("PhaseY",(double)m_phasey); + settings.setValue("MaxDrift",ui->sbMaxDrift->value()); +} + +//---------------------------------------------------------- readSettings() +void MainWindow::readSettings() +{ + QSettings settings(m_settings_filename, QSettings::IniFormat); + { + SettingsGroup g {&settings, "MainWindow"}; + restoreGeometry(settings.value("geometry").toByteArray()); + m_path = settings.value("MRUdir", m_appDir + "/save").toString(); + } + + SettingsGroup g {&settings, "Common"}; + m_myCall=settings.value("MyCall","").toString(); + m_myGrid=settings.value("MyGrid","").toString(); + m_idInt=settings.value("IDint",0).toInt(); + m_astroFont=settings.value("AstroFont",20).toInt(); + m_saveDir=settings.value("SaveDir",m_appDir + "/save").toString(); + m_azelDir=settings.value("AzElDir",m_appDir).toString(); + m_timeout=settings.value("Timeout",20).toInt(); + m_fCal=settings.value("Fcal",0).toInt(); + m_fAdd=settings.value("FAdd",0).toDouble(); + soundInThread.setFadd(m_fAdd); + m_network = settings.value("NetworkInput",true).toBool(); + m_fs96000 = settings.value("FSam96000",true).toBool(); + m_dB = settings.value("Scale_dB",0).toInt(); + m_udpPort = settings.value("UDPport",50004).toInt(); + soundInThread.setScale(m_dB); + soundInThread.setPort(m_udpPort); + ui->actionCuteSDR->setChecked(settings.value( + "PaletteCuteSDR",true).toBool()); + ui->actionLinrad->setChecked(settings.value( + "PaletteLinrad",false).toBool()); + + m_modeQ65=settings.value("nModeQ65",2).toInt(); + if(m_modeQ65==1) ui->actionQ65A->setChecked(true); + if(m_modeQ65==2) ui->actionQ65B->setChecked(true); + if(m_modeQ65==3) ui->actionQ65C->setChecked(true); + if(m_modeQ65==4) ui->actionQ65D->setChecked(true); + if(m_modeQ65==5) ui->actionQ65E->setChecked(true); + + ui->actionNone->setChecked(settings.value("SaveNone",true).toBool()); + ui->actionSave_all->setChecked(settings.value("SaveAll",false).toBool()); + m_saveAll=ui->actionSave_all->isChecked(); + m_onlyEME=settings.value("NEME",false).toBool(); + ui->actionOnly_EME_calls->setChecked(m_onlyEME); + m_kb8rq=settings.value("KB8RQ",false).toBool(); + m_NB=settings.value("NB",false).toBool(); + ui->NBcheckBox->setChecked(m_NB); + ui->sbMaxDrift->setValue(settings.value("MaxDrift",0).toInt()); + m_NBslider=settings.value("NBslider",40).toInt(); + ui->NBslider->setValue(m_NBslider); + m_gainx=settings.value("GainX",1.0).toFloat(); + m_gainy=settings.value("GainY",1.0).toFloat(); + m_phasex=settings.value("PhaseX",0.0).toFloat(); + m_phasey=settings.value("PhaseY",0.0).toFloat(); + + if(!ui->actionLinrad->isChecked() && !ui->actionCuteSDR->isChecked() && + !ui->actionAFMHot->isChecked() && !ui->actionBlue->isChecked()) { + on_actionLinrad_triggered(); + ui->actionLinrad->setChecked(true); + } +} + +//-------------------------------------------------------------- dataSink() +void MainWindow::dataSink(int k) +{ + static float s[NFFT],splot[NFFT]; + static int n=0; + static int ihsym=0; + static int nzap=0; + static int ntrz=0; + static int nkhz; + static int nfsample=96000; + static int nsec0=0; + static int nsum=0; + static int ndiskdat; + static int nb; + static float px=0.0; + static uchar lstrong[1024]; + static float slimit; + static double xsum=0.0; + + if(m_diskData) { + ndiskdat=1; + datcom_.ndiskdat=1; + } else { + ndiskdat=0; + datcom_.ndiskdat=0; + } +// Get power, spectrum, nkhz, and ihsym + nb=0; + if(m_NB) nb=1; + nfsample=96000; + if(!m_fs96000) nfsample=95238; + symspec_(&k, &ndiskdat, &nb, &m_NBslider, &nfsample, + &px, s, &nkhz, &ihsym, &nzap, &slimit, lstrong); + + int nsec=QDateTime::currentSecsSinceEpoch(); + if(nsec==nsec0) { + xsum+=pow(10.0,0.1*px); + nsum+=1; + } else { + m_xavg=0.0; + if(nsum>0) m_xavg=xsum/nsum; + xsum=pow(10.0,0.1*px); + nsum=1; + } + nsec0=nsec; + + QString t; + m_pctZap=nzap/178.3; + + lab2->setText ( + QString {" Rx: %1 %2 % "} + .arg (px, 5, 'f', 1) + .arg (m_pctZap, 5, 'f', 1) + ); + + xSignalMeter->setValue(px); // Update the signal meters + //Suppress scrolling if WSJT-X is transmitting + if((m_monitoring and ipc_wsjtx[4] != 1) or m_diskData) { + m_wide_graph_window->dataSink2(s,nkhz,ihsym,m_diskData,lstrong); + } + + //Average over specified number of spectra + if (n==0) { + for (int i=0; i=m_waterfallAvg) { + for (int i=0; i= m_hsymStop and !m_decode_called) { //Decode at t=56 s (for Q65 and data from disk) + m_decode_called=true; + datcom_.newdat=1; + datcom_.nagain=0; + datcom_.nhsym=ihsym; + QDateTime t = QDateTime::currentDateTimeUtc(); + m_dateTime=t.toString("yymmdd_hhmm"); + decode(); //Start the decoder + if(m_saveAll and !m_diskData and m_nTransmitted<10) { + QString fname=m_saveDir + "/" + t.date().toString("yyMMdd") + "_" + + t.time().toString("hhmm"); + fname += ".iq"; + *future2 = QtConcurrent::run(savetf2, fname, false); + watcher2->setFuture(*future2); + } + m_nTransmitted=0; + } + + soundInThread.m_dataSinkBusy=false; +} + +void MainWindow::showSoundInError(const QString& errorMsg) + {QMessageBox::critical(this, tr("Error in SoundIn"), errorMsg);} + +void MainWindow::showStatusMessage(const QString& statusMsg) + {statusBar()->showMessage(statusMsg);} + +void MainWindow::on_actionSettings_triggered() +{ + DevSetup dlg(this); + dlg.m_myCall=m_myCall; + dlg.m_myGrid=m_myGrid; + dlg.m_idInt=m_idInt; + dlg.m_astroFont=m_astroFont; + dlg.m_saveDir=m_saveDir; + dlg.m_azelDir=m_azelDir; + dlg.m_timeout=m_timeout; + dlg.m_fCal=m_fCal; + dlg.m_fAdd=m_fAdd; + dlg.m_network=m_network; + dlg.m_fs96000=m_fs96000; + dlg.m_udpPort=m_udpPort; + dlg.m_dB=m_dB; + dlg.initDlg(); + if(dlg.exec() == QDialog::Accepted) { + m_myCall=dlg.m_myCall; + m_myGrid=dlg.m_myGrid; + m_idInt=dlg.m_idInt; + m_astroFont=dlg.m_astroFont; + if(m_astro_window && m_astro_window->isVisible()) m_astro_window->setFontSize(m_astroFont); + ui->actionFind_Delta_Phi->setEnabled(false); + m_saveDir=dlg.m_saveDir; + m_azelDir=dlg.m_azelDir; + m_timeout=dlg.m_timeout; + m_fCal=dlg.m_fCal; + m_fAdd=dlg.m_fAdd; + m_wide_graph_window->setFcal(m_fCal); + m_fs96000=dlg.m_fs96000; + m_network=dlg.m_network; + m_udpPort=dlg.m_udpPort; + m_dB=dlg.m_dB; + soundInThread.setScale(m_dB); + + if(dlg.m_restartSoundIn) { + soundInThread.quit(); + soundInThread.wait(1000); + soundInThread.setNetwork(m_network); + soundInThread.setRate(96000.0); + soundInThread.setFadd(m_fAdd); + soundInThread.setNrx(1); + soundInThread.start(QThread::HighestPriority); + } + } +} + +void MainWindow::on_monitorButton_clicked() //Monitor +{ + if(m_monitoring or m_loopall) { + m_monitoring=false; + soundInThread.setMonitoring(false); + m_loopall=false; + } else { + m_monitoring=true; + soundInThread.setMonitoring(true); + m_diskData=false; + } +} + +void MainWindow::on_actionLinrad_triggered() //Linrad palette +{ + if(m_wide_graph_window) m_wide_graph_window->setPalette("Linrad"); +} + +void MainWindow::on_actionCuteSDR_triggered() //CuteSDR palette +{ + if(m_wide_graph_window) m_wide_graph_window->setPalette("CuteSDR"); +} + +void MainWindow::on_actionAFMHot_triggered() +{ + if(m_wide_graph_window) m_wide_graph_window->setPalette("AFMHot"); +} + +void MainWindow::on_actionBlue_triggered() +{ + if(m_wide_graph_window) m_wide_graph_window->setPalette("Blue"); +} + +void MainWindow::on_actionAbout_triggered() //Display "About" +{ + CAboutDlg dlg(this); + dlg.exec(); +} + +void MainWindow::keyPressEvent( QKeyEvent *e ) //keyPressEvent +{ + switch(e->key()) + { + case Qt::Key_F6: + if(e->modifiers() & Qt::ShiftModifier) { + on_actionDecode_remaining_files_in_directory_triggered(); + } + break; + case Qt::Key_F11: + if(e->modifiers() & Qt::ShiftModifier) { + } else { + int n0=m_wide_graph_window->DF(); + int n=(n0 + 10000) % 5; + if(n==0) n=5; + m_wide_graph_window->setDF(n0-n); + } + break; + case Qt::Key_F12: + if(e->modifiers() & Qt::ShiftModifier) { + } else { + int n0=m_wide_graph_window->DF(); + int n=(n0 + 10000) % 5; + if(n==0) n=5; + m_wide_graph_window->setDF(n0+n); + } + break; + } +} + +void MainWindow::bumpDF(int n) //bumpDF() +{ + if(n==11) { + int n0=m_wide_graph_window->DF(); + int n=(n0 + 10000) % 5; + if(n==0) n=5; + m_wide_graph_window->setDF(n0-n); + } + if(n==12) { + int n0=m_wide_graph_window->DF(); + int n=(n0 + 10000) % 5; + if(n==0) n=5; + m_wide_graph_window->setDF(n0+n); + } +} + +bool MainWindow::eventFilter(QObject *object, QEvent *event) //eventFilter() +{ + if (event->type() == QEvent::KeyPress) { + //Use the event in parent using its keyPressEvent() + QKeyEvent *keyEvent = static_cast(event); + MainWindow::keyPressEvent(keyEvent); + return QObject::eventFilter(object, event); + } + return QObject::eventFilter(object, event); +} + +void MainWindow::createStatusBar() //createStatusBar +{ + lab1 = new QLabel("Receiving"); + lab1->setAlignment(Qt::AlignHCenter); + lab1->setMinimumSize(QSize(80,10)); + lab1->setStyleSheet("QLabel{background-color: #00ff00}"); + lab1->setFrameStyle(QFrame::Panel | QFrame::Sunken); + statusBar()->addWidget(lab1); + + lab2 = new QLabel(""); + lab2->setAlignment(Qt::AlignHCenter); + lab2->setMinimumSize(QSize(80,10)); + lab2->setFrameStyle(QFrame::Panel | QFrame::Sunken); + statusBar()->addWidget(lab2); + + lab3 = new QLabel(""); + lab3->setAlignment(Qt::AlignHCenter); + lab3->setMinimumSize(QSize(50,10)); + lab3->setFrameStyle(QFrame::Panel | QFrame::Sunken); + statusBar()->addWidget(lab3); + + lab4 = new QLabel(""); + lab4->setAlignment(Qt::AlignHCenter); + lab4->setMinimumSize(QSize(50,10)); + lab4->setFrameStyle(QFrame::Panel | QFrame::Sunken); + statusBar()->addWidget(lab4); +} + +void MainWindow::on_tolSpinBox_valueChanged(int i) //tolSpinBox +{ + static int ntol[] = {10,20,50,100,200,500,1000}; + m_tol=ntol[i]; + m_wide_graph_window->setTol(m_tol); + ui->labTol1->setText(QString::number(ntol[i])); +} + +void MainWindow::on_actionExit_triggered() //Exit() +{ + close (); +} + +void MainWindow::closeEvent (QCloseEvent * e) +{ + if (m_gui_timer) m_gui_timer->stop (); + m_wide_graph_window->saveSettings(); + if (m_astro_window) m_astro_window->close (); + if (m_wide_graph_window) m_wide_graph_window->close (); + QMainWindow::closeEvent (e); +} + +void MainWindow::msgBox(QString t) //msgBox +{ + msgBox0.setText(t); + msgBox0.exec(); +} + +void MainWindow::on_actionAstro_Data_triggered() //Display Astro +{ + if (m_astro_window ) m_astro_window->show(); +} + +void MainWindow::on_actionWide_Waterfall_triggered() //Display Waterfalls +{ + m_wide_graph_window->show(); +} + +void MainWindow::on_actionOpen_triggered() //Open File +{ + m_monitoring=false; + soundInThread.setMonitoring(m_monitoring); + QString fname; + fname=QFileDialog::getOpenFileName(this, "Open File", m_path, + "MAP65/QMAP Files (*.iq)"); + if(fname != "") { + m_path=fname; + int i; + i=fname.indexOf(".iq") - 11; + if(i>=0) { + lab1->setStyleSheet("QLabel{background-color: #66ff66}"); + lab1->setText(" " + fname.mid(i,15) + " "); + } + if(m_monitoring) on_monitorButton_clicked(); + m_diskData=true; + int dbDgrd=0; + if(m_myCall=="K1JT" and m_idInt<0) dbDgrd=m_idInt; + *future1 = QtConcurrent::run(getfile, fname, false, dbDgrd); + watcher1->setFuture(*future1); + } +} + +void MainWindow::on_actionOpen_next_in_directory_triggered() //Open Next +{ + int i,len; + QFileInfo fi(m_path); + QStringList list; + list= fi.dir().entryList().filter(".iq"); + for (i = 0; i < list.size()-1; ++i) { + if(i==list.size()-2) m_loopall=false; + len=list.at(i).length(); + if(list.at(i)==m_path.right(len)) { + int n=m_path.length(); + QString fname=m_path.replace(n-len,len,list.at(i+1)); + m_path=fname; + int i; + i=fname.indexOf(".iq") - 11; + if(i>=0) { + lab1->setStyleSheet("QLabel{background-color: #66ff66}"); + lab1->setText(" " + fname.mid(i,len) + " "); + } + m_diskData=true; + int dbDgrd=0; + if(m_myCall=="K1JT" and m_idInt<0) dbDgrd=m_idInt; + *future1 = QtConcurrent::run(getfile, fname, false, dbDgrd); + watcher1->setFuture(*future1); + return; + } + } +} + //Open all remaining files +void MainWindow::on_actionDecode_remaining_files_in_directory_triggered() +{ + m_loopall=true; + on_actionOpen_next_in_directory_triggered(); +} + +void MainWindow::diskDat() //diskDat() +{ + double hsym; + //These may be redundant?? + m_diskData=true; + datcom_.newdat=1; + hsym=2048.0*96000.0/11025.0; //Samples per JT65 half-symbol + for(int i=0; i<304; i++) { // Do the half-symbol FFTs + int k = i*hsym + 2048.5; + dataSink(k); + qApp->processEvents(); // Allow the waterfall to update + } +} + +void MainWindow::diskWriteFinished() //diskWriteFinished +{ +// qDebug() << "diskWriteFinished"; +} + +void MainWindow::decoderFinished() //diskWriteFinished +{ + m_startAnother=m_loopall; + ui->DecodeButton->setStyleSheet(""); + decodeBusy(false); + decodes_.nQDecoderDone=1; + if(m_diskData) decodes_.nQDecoderDone=2; + mem_qmap.lock(); + decodes_.nWDecoderBusy=ipc_wsjtx[3]; //Prevent overwriting values + decodes_.nWTransmitting=ipc_wsjtx[4]; //written here by WSJT-X + memcpy((char*)ipc_wsjtx, &decodes_, sizeof(decodes_)); //Send decodes and flags to WSJT-X + mem_qmap.unlock(); + QString t1; + t1=t1.asprintf(" %d ",decodes_.ndecodes); + lab4->setText(t1); + QDateTime now=QDateTime::currentDateTimeUtc(); +} + +void MainWindow::on_actionDelete_all_iq_files_in_SaveDir_triggered() +{ + int i; + QString fname; + int ret = QMessageBox::warning(this, "Confirm Delete", + "Are you sure you want to delete all *.iq files in\n" + + QDir::toNativeSeparators(m_saveDir) + " ?", + QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); + if(ret==QMessageBox::Yes) { + QDir dir(m_saveDir); + QStringList files=dir.entryList(QDir::Files); + QList::iterator f; + for(f=files.begin(); f!=files.end(); ++f) { + fname=*f; + i=(fname.indexOf(".iq")); + if(i==11) dir.remove(fname); + } + } +} + +void MainWindow::on_actionNone_triggered() //Save None +{ + m_saveAll=false; +} + +// ### Implement "Save Last" here? ### + +void MainWindow::on_actionSave_all_triggered() //Save All +{ + m_saveAll=true; +} + +void MainWindow::on_DecodeButton_clicked() //Decode request +{ + if(!m_decoderBusy) { + datcom_.newdat=0; + datcom_.nagain=1; + decode(); + } +} + +void MainWindow::freezeDecode(int n) //freezeDecode() +{ + if(n==2) { + ui->tolSpinBox->setValue(5); + datcom_.ntol=m_tol; + datcom_.mousedf=0; + } else { + ui->tolSpinBox->setValue(qMin(3,ui->tolSpinBox->value())); + datcom_.ntol=m_tol; + } + m_nDoubleClicked++; + if(!m_decoderBusy) { + datcom_.nagain=1; + datcom_.newdat=0; + decode(); + } +} + +void MainWindow::decode() //decode() +{ +//Don't attempt to decode if decoder is already busy, or if we transmitted for 10 s or more. + if(m_decoderBusy or m_nTransmitted>10) return; + QString fname=" "; + ui->DecodeButton->setStyleSheet(m_pbdecoding_style1); + + if(datcom_.nagain==0 && (!m_diskData)) { + qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; + int imin=ms/60000; + int ihr=imin/60; + imin=imin % 60; + datcom_.nutc=100*ihr + imin; + } + + datcom_.mousedf=m_wide_graph_window->DF(); + datcom_.mousefqso=m_wide_graph_window->QSOfreq(); + datcom_.fselected=datcom_.mousefqso + 0.001*datcom_.mousedf; + datcom_.ndiskdat=0; + if(m_diskData) { + datcom_.ndiskdat=1; + int i0=m_path.indexOf(".iq"); + if(i0>0) { + // Compute self Doppler using the filename for Date and Time + int nyear=m_path.mid(i0-11,2).toInt()+2000; + int month=m_path.mid(i0-9,2).toInt(); + int nday=m_path.mid(i0-7,2).toInt(); + int nhr=m_path.mid(i0-4,2).toInt(); + int nmin=m_path.mid(i0-2,2).toInt(); + double uth=nhr + nmin/60.0; + int nfreq=(int)datcom_.fcenter; + int ndop00; + astrosub00_(&nyear, &month, &nday, &uth, &nfreq, m_myGrid.toLatin1(),&ndop00,6); + datcom_.ndop00=ndop00; //Send self Doppler to decoder, via datcom + fname=m_path.mid(i0-11,11); + } + } + datcom_.neme=0; + if(ui->actionOnly_EME_calls->isChecked()) datcom_.neme=1; + + int ispan=int(m_wide_graph_window->fSpan()); + if(ispan%2 == 1) ispan++; + int ifc=int(1000.0*(datcom_.fcenter - int(datcom_.fcenter))+0.5); + int nfa=m_wide_graph_window->nStartFreq(); + int nfb=nfa+ispan; + int nfshift=nfa + ispan/2 - ifc; + + datcom_.nfa=nfa; + datcom_.nfb=nfb; + datcom_.nfcal=m_fCal; + datcom_.nfshift=nfshift; + datcom_.mcall3=0; + if(m_call3Modified) datcom_.mcall3=1; + datcom_.ntimeout=m_timeout; + datcom_.ntol=m_tol; + datcom_.nxant=0; + m_nutc0=datcom_.nutc; + datcom_.junk_1=0; + datcom_.nfsample=96000; + if(!m_fs96000) datcom_.nfsample=95238; + datcom_.nxpol=0; + datcom_.nmode=10*m_modeQ65; + datcom_.nsave=m_nsave; + datcom_.max_drift=ui->sbMaxDrift->value(); + datcom_.ndepth=1; + if(datcom_.nagain==1) datcom_.ndepth=3; + + QString mcall=(m_myCall+" ").mid(0,12); + QString mgrid=(m_myGrid+" ").mid(0,6); + + memcpy(datcom_.mycall, mcall.toLatin1(), 12); + memcpy(datcom_.mygrid, mgrid.toLatin1(), 6); + if(m_diskData) { + memcpy(datcom_.datetime, fname.toLatin1(), 11); + } else { + memcpy(datcom_.datetime, m_dateTime.toLatin1(), 11); + } + datcom_.junk1=1234; //Cecck for these values in m65 + datcom_.junk2=5678; + + char *to = (char*) datcom2_.d4; + char *from = (char*) datcom_.d4; + memcpy(to, from, sizeof(datcom_)); + datcom_.nagain=0; + datcom_.ndiskdat=0; + m_call3Modified=false; + + decodes_.ndecodes=0; + decodes_.ncand=0; + decodes_.nQDecoderDone=0; + m_fetched=0; + int itimer=0; + m_decoder_start_time=QDateTime::currentDateTimeUtc(); + watcher3.setFuture(QtConcurrent::run (std::bind (q65c_, &itimer))); + + decodeBusy(true); +} + +void MainWindow::on_EraseButton_clicked() +{ + ui->decodedTextBrowser->clear(); + lab4->clear(); +} + + +void MainWindow::decodeBusy(bool b) //decodeBusy() +{ + m_decoderBusy=b; + ui->DecodeButton->setEnabled(!b); + ui->actionOpen->setEnabled(!b); + ui->actionOpen_next_in_directory->setEnabled(!b); + ui->actionDecode_remaining_files_in_directory->setEnabled(!b); +} + +//------------------------------------------------------------- //guiUpdate() +void MainWindow::guiUpdate() +{ + int khsym=0; + + qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; + int nsec=ms/1000; + + if(m_monitoring) { + ui->monitorButton->setStyleSheet(m_pbmonitor_style); + } else { + ui->monitorButton->setStyleSheet(""); + } + + m_wide_graph_window->updateFreqLabel(); + + if(m_startAnother) { + m_startAnother=false; + on_actionOpen_next_in_directory_triggered(); + } + + QString t1; + if(decodes_.ndecodes > m_fetched) { + while(m_fetcheddecodedTextBrowser->append(t1.repeated(56)); + } + m_UTC0=t.left(4); + ui->decodedTextBrowser->append(t.trimmed()); + m_fetched++; + } + } + t1=""; + t1=t1.asprintf("%.3f",datcom_.fcenter); + ui->labFreq->setText(t1); + + if(nsec != m_sec0) { //Once per second + static int n60z=99; + int n60=nsec%60; + int itest[5]; + mem_qmap.lock(); + memcpy(&itest, (char*)ipc_wsjtx, 20); + mem_qmap.unlock(); + if(itest[4]==1) m_nTransmitted++; +// qDebug() << "AAA" << n60 << itest[0] << itest[1] << itest[2] << itest[3] << itest[4] +// << m_nTransmitted; + if(n6030.0) { + lab2->setStyleSheet("QLabel{background-color: #ff0000}"); + } else { + lab2->setStyleSheet(""); + } + + + if(m_monitoring) { + lab1->setStyleSheet("QLabel{background-color: #00ff00}"); + m_nrx=soundInThread.nrx(); + khsym=soundInThread.mhsym(); + QString t; + if(m_network) { + if(m_nrx==-1) t="F1"; + if(m_nrx==1) t="I1"; + if(m_nrx==-2) t="F2"; + if(m_nrx==+2) t="I2"; + } else { + if(m_nrx==1) t="S1"; + if(m_nrx==2) t="S2"; + } + if(khsym==m_hsym0) { + t="Nil"; + lab1->setStyleSheet("QLabel{background-color: #ffc0cb}"); + } + lab1->setText("Receiving " + t); + } else if (!m_diskData) { + lab1->setStyleSheet(""); + lab1->setText(""); + } + + QDateTime t = QDateTime::currentDateTimeUtc(); + int fQSO=m_wide_graph_window->QSOfreq(); + m_astro_window->astroUpdate(t, m_myGrid, m_hisGrid, fQSO, m_setftx, + m_txFreq, m_azelDir, m_xavg); + m_setftx=0; + QString utc = t.date().toString(" yyyy MMM dd \n") + t.time().toString(); + ui->labUTC->setText(utc); + m_hsym0=khsym; + m_sec0=nsec; + } +} + +void MainWindow::on_actionQ65A_triggered() +{ + m_modeQ65=1; + lab3->setStyleSheet("QLabel{background-color: #ffb266}"); + lab3->setText("Q65-60A"); +} + +void MainWindow::on_actionQ65B_triggered() +{ + m_modeQ65=2; + lab3->setStyleSheet("QLabel{background-color: #b2ff66}"); + lab3->setText("Q65-60B"); +} + +void MainWindow::on_actionQ65C_triggered() +{ + m_modeQ65=3; + lab3->setStyleSheet("QLabel{background-color: #66ffff}"); + lab3->setText("Q65-60C"); +} + +void MainWindow::on_actionQ65D_triggered() +{ + m_modeQ65=4; + lab3->setStyleSheet("QLabel{background-color: #b266ff}"); + lab3->setText("Q65-60D"); +} + +void MainWindow::on_actionQ65E_triggered() +{ + m_modeQ65=5; + lab3->setStyleSheet("QLabel{background-color: #ff66ff}"); + lab3->setText("Q65-60E"); +} + + +void MainWindow::on_NBcheckBox_toggled(bool checked) +{ + m_NB=checked; + ui->NBslider->setEnabled(m_NB); +} + +void MainWindow::on_NBslider_valueChanged(int n) +{ + m_NBslider=n; +} + +bool MainWindow::isGrid4(QString g) +{ + if(g.length()!=4) return false; + if(g.mid(0,1)<'A' or g.mid(0,1)>'R') return false; + if(g.mid(1,1)<'A' or g.mid(1,1)>'R') return false; + if(g.mid(2,1)<'0' or g.mid(2,1)>'9') return false; + if(g.mid(3,1)<'0' or g.mid(3,1)>'9') return false; + return true; +} + +void MainWindow::on_actionQuick_Start_Guide_to_Q65_triggered() +{ + QDesktopServices::openUrl (QUrl {"https://wsjt.sourceforge.io/Q65_Quick_Start.pdf"}); +} + +void MainWindow::on_actionQuick_Start_Guide_to_WSJT_X_2_7_and_QMAP_triggered() +{ + QDesktopServices::openUrl (QUrl {"https://wsjt.sourceforge.io/Quick_Start_WSJT-X_2.7_QMAP.pdf"}); +} + diff --git a/qmap/mainwindow.h b/qmap/mainwindow.h new file mode 100644 index 000000000..e5551c8ec --- /dev/null +++ b/qmap/mainwindow.h @@ -0,0 +1,212 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H +#include +#include +#include +#include +#include +#include +#include +#include "getfile.h" +#include "soundin.h" +#include "signalmeter.h" +#include "commons.h" +#include "sleep.h" +#include + +#define NFFT 32768 +#define NSMAX 5760000 + +//--------------------------------------------------------------- MainWindow +namespace Ui { + class MainWindow; +} + +class QTimer; +class Astro; +class WideGraph; + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); + bool m_network; + +public slots: + void showSoundInError(const QString& errorMsg); + void showStatusMessage(const QString& statusMsg); + void dataSink(int k); + void diskDat(); + void diskWriteFinished(); + void decoderFinished(); + void freezeDecode(int n); + void guiUpdate(); + +private: + virtual void keyPressEvent (QKeyEvent *) override; + virtual bool eventFilter (QObject *, QEvent *) override; + virtual void closeEvent (QCloseEvent *) override; + +private slots: + void on_monitorButton_clicked(); + void on_actionExit_triggered(); + void on_actionAbout_triggered(); + void on_actionLinrad_triggered(); + void on_actionCuteSDR_triggered(); + void on_tolSpinBox_valueChanged(int arg1); + void on_actionAstro_Data_triggered(); + void on_actionWide_Waterfall_triggered(); + void on_actionOpen_triggered(); + void on_actionOpen_next_in_directory_triggered(); + void on_actionDecode_remaining_files_in_directory_triggered(); + void on_actionDelete_all_iq_files_in_SaveDir_triggered(); + void on_actionNone_triggered(); + void on_actionSave_all_triggered(); + void on_DecodeButton_clicked(); + void decode(); + void decodeBusy(bool b); + void on_EraseButton_clicked(); + void bumpDF(int n); + void on_actionSettings_triggered(); + void on_NBcheckBox_toggled(bool checked); + void on_NBslider_valueChanged(int value); + void on_actionAFMHot_triggered(); + void on_actionBlue_triggered(); + void on_actionQ65A_triggered(); + void on_actionQ65B_triggered(); + void on_actionQ65C_triggered(); + void on_actionQ65D_triggered(); + void on_actionQ65E_triggered(); + void on_actionQuick_Start_Guide_to_Q65_triggered(); + void on_actionQuick_Start_Guide_to_WSJT_X_2_7_and_QMAP_triggered(); + +private: + Ui::MainWindow *ui; + QString m_appDir; + QString m_settings_filename; + QScopedPointer m_astro_window; + QScopedPointer m_wide_graph_window; + QPointer m_gui_timer; + qint32 m_idInt; + qint32 m_waterfallAvg; + qint32 m_DF; + qint32 m_tol; + qint32 m_QSOfreq0; + qint32 m_astroFont; + qint32 m_timeout; + qint32 m_fCal; + qint32 m_txFreq; + qint32 m_setftx; + qint32 m_sec0; + qint32 m_nutc0; + qint32 m_nrx; + qint32 m_hsym0; + qint32 m_paInDevice; + qint32 m_udpPort; + qint32 m_NBslider; + qint32 m_nsum; + qint32 m_nsave; + qint32 m_TRperiod; + qint32 m_modeQ65; + qint32 m_dB; + qint32 m_fetched=0; + qint32 m_hsymStop=302; + qint32 m_nTransmitted=0; + qint32 m_nDoubleClicked=0; + + double m_fAdd; + double m_xavg; + + bool m_monitoring; + bool m_diskData; + bool m_loopall; + bool m_decoderBusy=false; + bool m_restart; + bool m_call3Modified; + bool m_startAnother; + bool m_saveAll; + bool m_onlyEME; + bool m_kb8rq; + bool m_NB; + bool m_fs96000; + bool m_decode_called=false; + + float m_gainx; + float m_gainy; + float m_phasex; + float m_phasey; + float m_pctZap; + + QRect m_wideGraphGeom; + + QLabel* lab1; // labels in status bar + QLabel* lab2; // labels in status bar + QLabel* lab3; // labels in status bar + QLabel* lab4; + QLabel* lab5; + QLabel* lab6; + QLabel* lab7; //Why still needed? + + QMessageBox msgBox0; + + QFuture* future1; + QFuture* future2; + QFutureWatcher* watcher1; + QFutureWatcher* watcher2; + + QFutureWatcher watcher3; //For decoder + + QDateTime m_decoder_start_time; + + QString m_path; + QString m_pbdecoding_style1; + QString m_pbmonitor_style; + QString m_pbAutoOn_style; + QString m_myCall; + QString m_myGrid; + QString m_hisCall; + QString m_hisGrid; + QString m_saveDir; + QString m_azelDir; + QString m_palette; + QString m_dateTime; + QString m_mode; + QString m_UTC0=""; + + QHash m_worked; + + SignalMeter *xSignalMeter; + SignalMeter *ySignalMeter; + + + SoundInThread soundInThread; //Instantiate the audio threads + + //---------------------------------------------------- private functions + void readSettings(); + void writeSettings(); + void createStatusBar(); + void updateStatusBar(); + void msgBox(QString t); + bool isGrid4(QString g); +}; + +extern void getfile(QString fname, bool xpol, int idInt); +extern void savetf2(QString fname, bool xpol); +extern int killbyname(const char* progName); + +extern "C" { +//----------------------------------------------------- C and Fortran routines + void symspec_(int* k, int* ndiskdat, int* nb, int* m_NBslider, int* nfsample, + float* px, float s[], int* nkhz, int* nhsym, + int* nzap, float* slimit, uchar lstrong[]); + + void astrosub00_ (int* nyear, int* month, int* nday, double* uth, int* nfreq, + const char* mygrid, int* ndop00, int len1); + + void q65c_(int* itimer); + } + +#endif // MAINWINDOW_H diff --git a/qmap/mainwindow.ui b/qmap/mainwindow.ui new file mode 100644 index 000000000..2fa897775 --- /dev/null +++ b/qmap/mainwindow.ui @@ -0,0 +1,830 @@ + + + MainWindow + + + + 0 + 0 + 640 + 431 + + + + + 0 + 0 + + + + + 550 + 0 + + + + + 640 + 800 + + + + SpecJT by K1JT + + + + + + + + + + + + + + + 50 + 0 + + + + &Erase + + + + + + + Maximum drift rate in units of symbol rate per transmissiion. + + + Qt::AlignCenter + + + Max Drift + + + 50 + + + 5 + + + + + + + + 16777215 + 35 + + + + + 16 + + + + QFrame::Panel + + + 1296.080 + + + Qt::AlignCenter + + + + + + + + 50 + 0 + + + + &Decode + + + + + + + NB + + + + + + + + 140 + 0 + + + + + 165 + 60 + + + + + 16 + + + + QFrame::Panel + + + 2023 Feb 02 +01:23:45 + + + Qt::AlignCenter + + + + + + + + 50 + 150 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 16777215 + 16777215 + + + + &Monitor + + + + + + + + + + 0 + 0 + + + + + 42 + 0 + + + + + 42 + 18 + + + + 500 + + + Qt::AlignCenter + + + + + + + true + + + + 0 + 0 + + + + + 0 + 23 + + + + + 18 + 16777215 + + + + 1 + + + 6 + + + 5 + + + + + + + + 0 + 0 + + + + + 20 + 16777215 + + + + Tol + + + + + + + + + false + + + + 0 + 0 + + + + + 80 + 16777215 + + + + 0 + + + 100 + + + 40 + + + Qt::Horizontal + + + + + + + + + + 0 + 0 + + + + + 453 + 170 + + + + + 620 + 16777215 + + + + UTC Frx Fsked DT dB Message + + + + + + + 0 + 0 + + + + + 500 + 100 + + + + + 610 + 400 + + + + + Courier New + 10 + + + + Qt::ScrollBarAlwaysOn + + + Qt::ScrollBarAsNeeded + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Courier New'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + false + + + + + + + + + + + + + + 0 + 0 + 640 + 21 + + + + + File + + + + + + + + + + + + + + View + + + + Waterfall palette + + + + + + + + + + + + Save + + + + + + + Help + + + + + + + + Mode + + + + + + + + + + + + + + + + + + TopToolBarArea + + + false + + + + + + Exit + + + + + About QMAP + + + Ctrl+F1 + + + + + Astro Data + + + Shift+F10 + + + + + Band Map + + + + + Messages + + + + + Wideband Waterfall + + + + + Open + + + + + Open next in directory + + + F6 + + + + + Decode remaining files in directory + + + Shift+F6 + + + + + Delete all *.iq files in SaveDir + + + + + Erase Band Map and Messages + + + + + true + + + false + + + Linrad + + + + + true + + + true + + + CuteSDR + + + + + Find Delta Phi + + + + + true + + + F4 sets Tx6 + + + + + true + + + Only EME calls + + + + + true + + + No shorthand decodes if Tx1 + + + + + true + + + true + + + None + + + + + true + + + Save all + + + + + true + + + 50 + + + + + true + + + true + + + 144 + + + + + true + + + 222 + + + + + true + + + 432 + + + + + true + + + 1296 + + + + + true + + + 2304 + + + + + Online User's Guide + + + F1 + + + + + Keyboard shortcuts + + + + + Special mouse commands + + + + + Available suffixes and add-on-prefixes + + + + + true + + + AFMHot + + + + + true + + + Blue + + + + + FUNcube Dongle Settings + + + + + Edit wsjt.log + + + Alt+Shift+E + + + + + Tx Tune + + + Alt+T + + + + + true + + + Decode Q65 near QSO frequency + + + + + true + + + Q65A + + + + + true + + + Q65B + + + + + true + + + true + + + Q65C + + + + + true + + + Q65D + + + + + true + + + Q65E + + + + + Quick-Start Guide to Q65 + + + + + Quick-Start Guide to WSJT-X 2.5.0 and MAP65 3.0 + + + + + Q65 Sensitivity in MAP65 3.0 + + + + + Release Notes + + + + + Settings ... + + + F2 + + + + + Quick-Start Guide to WSJT-X 2.7 and QMAP + + + + + Quick-Start Guide to Q65 + + + + + + + DisplayText + QTextBrowser +
widgets/displaytext.h
+
+
+ + + + monitorButton + toggled(bool) + MainWindow + update() + + + 269 + 255 + + + 126 + 515 + + + + +
diff --git a/qmap/map65_config.h.in b/qmap/map65_config.h.in new file mode 100644 index 000000000..ffb971758 --- /dev/null +++ b/qmap/map65_config.h.in @@ -0,0 +1,4 @@ +#include "svnversion.h" + +#define MAP65_VERSION_MAJOR @MAP65_VERSION_MAJOR@ +#define MAP65_VERSION_MINOR @MAP65_VERSION_MINOR@ diff --git a/qmap/meterwidget.cpp b/qmap/meterwidget.cpp new file mode 100644 index 000000000..8e48ed57d --- /dev/null +++ b/qmap/meterwidget.cpp @@ -0,0 +1,49 @@ +// Simple bargraph meter +// Implemented by Edson Pereira PY2SDR + +#include "meterwidget.h" + +MeterWidget::MeterWidget(QWidget *parent) : + QWidget(parent), + m_signal(0) +{ + for ( int i = 0; i < 10; i++ ) { + signalQueue.enqueue(0); + } +} + +void MeterWidget::setValue(int value) +{ + m_signal = value; + signalQueue.enqueue(value); + signalQueue.dequeue(); + + // Get signal peak + int tmp = 0; + for (int i = 0; i < signalQueue.size(); ++i) { + if (signalQueue.at(i) > tmp) + tmp = signalQueue.at(i); + } + m_sigPeak = tmp; + + update(); +} + +void MeterWidget::paintEvent( QPaintEvent * ) +{ + int pos; + QPainter p {this}; + + // Sanitize + m_signal = m_signal < 0 ? 0 : m_signal; + m_signal = m_signal > 60 ? 60 : m_signal; + + pos = m_signal * 2; + QRect r(0, height() - pos, width(), pos ); + p.fillRect(r, QColor( 255, 150, 0 )); + + // Draw peak hold indicator + p.setPen(Qt::black); + pos = m_sigPeak * 2; + p.drawLine(0, height() - pos, 10, height() - pos); +} diff --git a/qmap/meterwidget.h b/qmap/meterwidget.h new file mode 100644 index 000000000..7b51efb65 --- /dev/null +++ b/qmap/meterwidget.h @@ -0,0 +1,30 @@ +#ifndef METERWIDGET_H +#define METERWIDGET_H + +#include +#include +#include + +class MeterWidget : public QWidget +{ + Q_OBJECT +public: + explicit MeterWidget(QWidget *parent = 0); + +signals: + +public slots: + void setValue(int value); + +private: + QQueue signalQueue; + + int m_signal; + int m_sigPeak; + +protected: + void paintEvent( QPaintEvent * ); + +}; + +#endif // METERWIDGET_H diff --git a/qmap/plotter.cpp b/qmap/plotter.cpp new file mode 100644 index 000000000..c43ffb768 --- /dev/null +++ b/qmap/plotter.cpp @@ -0,0 +1,791 @@ +#include "plotter.h" +#include +#include +#include +#include + +#define MAX_SCREENSIZE 2048 + + +CPlotter::CPlotter(QWidget *parent) : //CPlotter Constructor + QFrame(parent) +{ + setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + setFocusPolicy(Qt::StrongFocus); + setAttribute(Qt::WA_PaintOnScreen,false); + setAutoFillBackground(false); + setAttribute(Qt::WA_OpaquePaintEvent, false); + setAttribute(Qt::WA_NoSystemBackground, true); + setMouseTracking(true); + + m_StartFreq = 100; + m_nSpan=65; //Units: kHz + m_fSpan=(float)m_nSpan; + m_hdivs = HORZ_DIVS; + m_FreqUnits = 1; + m_Running = false; + m_paintEventBusy=false; + m_WaterfallPixmap = QPixmap(0,0); + m_ZoomWaterfallPixmap = QPixmap(0,0); + m_2DPixmap = QPixmap(0,0); + m_ScalePixmap = QPixmap(0,0); + m_ZoomScalePixmap = QPixmap(0,0); + m_Size = QSize(0,0); + m_fQSO = 125; + m_TXkHz = m_fQSO; + m_line = 0; + m_fSample = 96000; + m_paintAllZoom = false; + m_TxDF=0; + m_bDecodeFinished=false; +} + +CPlotter::~CPlotter() { } // Destructor + +QSize CPlotter::minimumSizeHint() const +{ + return QSize(50, 50); +} + +QSize CPlotter::sizeHint() const +{ + return QSize(180, 180); +} + +void CPlotter::resizeEvent(QResizeEvent* ) //resizeEvent() +{ + if(!size().isValid()) return; + if( m_Size != size() ) { + //if changed, resize pixmaps to new screensize + m_Size = size(); + int w = m_Size.width(); + int h = (m_Size.height()-60)/2; + m_WaterfallPixmap = QPixmap(w,h); + m_ZoomWaterfallPixmap = QPixmap(w,h); + m_2DPixmap = QPixmap(w,h); + m_WaterfallPixmap.fill(Qt::black); + m_ZoomWaterfallPixmap.fill(Qt::black); + m_2DPixmap.fill(Qt::black); + memset(m_zwf,0,32768*h); + m_ScalePixmap = QPixmap(w,30); + m_ZoomScalePixmap = QPixmap(w,30); //(no change on resize...) + m_ScalePixmap.fill(Qt::white); + m_ZoomScalePixmap.fill(Qt::yellow); + } + SetCenterFreq(-1); + DrawOverlay(); +} + +void CPlotter::paintEvent(QPaintEvent *) // paintEvent() +{ + static int x00=-99; + + if(m_paintEventBusy) return; + m_paintEventBusy=true; + QPainter painter(this); + int w = m_Size.width(); + int h = (m_Size.height()-60)/2; + painter.drawPixmap(0,0,m_ScalePixmap); + painter.drawPixmap(0,30,m_WaterfallPixmap); + if(m_2Dspec) { + painter.drawPixmap(0,h+30,m_ScalePixmap); + painter.drawPixmap(0,h+60,m_2DPixmap); + m_paintEventBusy=false; + return; + } + + painter.drawPixmap(0,h+30,m_ZoomScalePixmap); + painter.drawPixmap(0,h+60,m_ZoomWaterfallPixmap); + + QRect target(0,h+30,w,30); // (x,y,width,height) + QRect source(0,0,w,30); + painter.drawPixmap(target,m_ZoomScalePixmap,source); + + float df=m_fSample/32768.0; + int x0=16384 + (0.001*(m_ZoomStartFreq+m_fCal)+m_fQSO-m_nkhz) * 1000.0/df + 0.5; + + QPainter painter1(&m_WaterfallPixmap); + QPainter painter2(&m_ZoomWaterfallPixmap); + for(int i=0; i> freq >> sync; + if(f.eof()) break; + x=(freq - m_ZoomStartFreq)/df; + y=(sync-slimit)*3.0; + if(y>0) { + if(y>15.0) y=15.0; + if(x>=0 and x<=w) painter2.drawLine(x,0,x,y); + x=XfromFreq(float(fQSO()+0.001*freq)); + painter1.setPen(pen0); + painter1.drawLine(x,0,x,y); + } + } + f.close(); + } + */ + m_bDecodeFinished=false; + } + + m_paintAllZoom=false; + x00=x0; + + QRect target2(0,h+60,w,h); // (x,y,width,height) + QRect source2(0,0,w,h); + painter.drawPixmap(target2,m_ZoomWaterfallPixmap,source2); + m_paintEventBusy=false; +} + +void CPlotter::DecodeFinished() +{ + m_bDecodeFinished=true; + update(); //trigger a new paintEvent +} + +void CPlotter::draw(float s[], int i0, float splot[]) //draw() +{ + int i,j,w,h; + float y; + + m_i0=i0; + w = m_WaterfallPixmap.width(); + h = m_WaterfallPixmap.height(); + double gain = pow(10.0,0.05*(m_plotGain+7)); + + //move current data down one line + //(must do this before attaching a QPainter object) + m_WaterfallPixmap.scroll(0,1,0,0,w,h); + m_ZoomWaterfallPixmap.scroll(0,1,0,0, w, h); + memmove(&m_zwf[32768],m_zwf,32768*(h-1)); + QPainter painter1(&m_WaterfallPixmap); + QPainter painter2D(&m_2DPixmap); + + for(i=0; i<256; i++) { //Zero the histograms + m_hist1[i]=0; + m_hist2[i]=0; + } + + painter2D.setPen(Qt::green); + QRect tmp(0,0,w,h); + painter2D.fillRect(tmp,Qt::black); + QPoint LineBuf[MAX_SCREENSIZE]; + j=0; + bool strong0=false; + bool strong=false; + + for(i=0; i254) y1=254; + if (s[i]>1.e29) y1=255; + m_hist1[y1]++; + painter1.setPen(m_ColorTbl[y1]); + painter1.drawPoint(i,0); + if(m_2Dspec) { + int y2 = gain*(y + 34 -m_plotZero); + if (y2<0) y2=0; + if (y2>254) y2=254; + if (s[i]>1.e29) y2=255; + if(strong != strong0 or i==w-1) { + painter2D.drawPolyline(LineBuf,j); + j=0; + strong0=strong; + if(strong0) painter2D.setPen(Qt::red); + if(!strong0) painter2D.setPen(Qt::green); + } + LineBuf[j].setX(i); + LineBuf[j].setY(h-y2); + j++; + } + } + + for(i=0; i<32768; i++) { + y = 10.0*log10(splot[i]); + int y1 = 5.0*gain*(y + 30 - m_plotZero); + if (y1<0) y1=0; + if (y1>254) y1=254; + if (splot[i]>1.e29) y1=255; + m_hist2[y1]++; + m_zwf[i]=y1; + } + + if(s[0]>1.0e29) m_line=0; + m_line++; + if(m_line == 13) { + UTCstr(); + painter1.setPen(m_ColorTbl[255]); + painter1.drawText(5,10,m_sutc); + m_paintAllZoom=true; + } + update(); //trigger a new paintEvent +} + +void CPlotter::UTCstr() +{ + int ihr,imin; + if(datcom_.ndiskdat != 0) { + ihr=datcom_.nutc/100; + imin=(datcom_.nutc) % 100; + } else { + qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; + imin=ms/60000; + ihr=imin/60; + imin=imin % 60; + } + m_sutc = QString {"%1:%2"}.arg (ihr,2,10,QLatin1Char('0')).arg (imin,2,10,QLatin1Char('0')); +} + +void CPlotter::DrawOverlay() //DrawOverlay() +{ + if(m_WaterfallPixmap.isNull()) return; + int w = m_WaterfallPixmap.width(); + int x,y; + float pixperdiv; + + QRect rect0; + QPainter painter0(&m_ScalePixmap); + + //create Font to use for scales + QFont Font("Arial"); + Font.setPointSize(12); + QFontMetrics metrics(Font); + Font.setWeight(QFont::Normal); + painter0.setFont(Font); + painter0.setPen(Qt::black); + + m_binsPerPixel = m_nSpan * 32768.0/(w*0.001*m_fSample) + 0.5; + double FreqPerDiv=5.0; + double df = m_binsPerPixel*0.001*m_fSample/32768.0; + m_hdivs = w*df/FreqPerDiv + 0.9999; + m_fSpan = w*df; + m_ScalePixmap.fill(Qt::white); + painter0.drawRect(0, 0, w, 30); + + //draw tick marks on wideband (upper) scale + pixperdiv = FreqPerDiv/df; + for( int i=1; i0 and x0 100) { + m_FreqUnits = 1; + FreqPerDiv = 200; + int w = m_WaterfallPixmap.width(); + float df=m_fSample/32768.0; + StartFreq = -w*df/2; + int n=StartFreq/FreqPerDiv; + StartFreq=n*200; + m_ZoomStartFreq = (int)StartFreq; + } + int numfractdigits = (int)log10((double)m_FreqUnits); + + if(1 == m_FreqUnits) { + //if units is Hz then just output integer freq + for(int i=0; i<=m_hdivs; i++) { + freq = StartFreq/(float)m_FreqUnits; + m_HDivText[i].setNum((int)freq); + StartFreq += FreqPerDiv; + } + return; + } + //here if is fractional frequency values + //so create max sized text based on frequency units + for(int i=0; i<=m_hdivs; i++) { + freq = StartFreq/(float)m_FreqUnits; + m_HDivText[i].setNum(freq,'f', numfractdigits); + StartFreq += FreqPerDiv; + } + //now find the division text with the longest non-zero digit + //to the right of the decimal point. + int max = 0; + for(i=0; i<=m_hdivs; i++) { + int dp = m_HDivText[i].indexOf('.'); + int l = m_HDivText[i].length()-1; + for(j=l; j>dp; j--) { + if(m_HDivText[i][j] != '0') + break; + } + if( (j-dp) > max) + max = j-dp; + } + //truncate all strings to maximum fractional length + StartFreq = m_CenterFreq - 0.5*m_fSpan; + for( i=0; i<=m_hdivs; i++) { + freq = (float)StartFreq/(float)m_FreqUnits; + m_HDivText[i].setNum(freq,'f', max); + StartFreq += FreqPerDiv; + } +} + +int CPlotter::XfromFreq(float f) //XfromFreq() +{ + float w = m_WaterfallPixmap.width(); + int x = (int) w * (f - m_StartFreq)/m_fSpan; + if(x<0 ) return 0; + if(x>(int)w) return m_WaterfallPixmap.width(); + return x; +} + +float CPlotter::FreqfromX(int x) //FreqfromX() +{ + float w = m_WaterfallPixmap.width(); + float f =m_CenterFreq - 0.5*m_fSpan + m_fSpan * x/w; + return f; +} + +void CPlotter::SetRunningState(bool running) //SetRunningState() +{ + m_Running = running; +} + +void CPlotter::setPlotZero(int plotZero) //setPlotZero() +{ + m_plotZero=plotZero; +} + +int CPlotter::getPlotZero() //getPlotZero() +{ + return m_plotZero; +} + +void CPlotter::setPlotGain(int plotGain) //setPlotGain() +{ + m_plotGain=plotGain; +} + +int CPlotter::getPlotGain() //getPlotGain() +{ + return m_plotGain; +} + +void CPlotter::SetCenterFreq(int f) //setCenterFreq() +{ +// f is the integer kHz portion of cfreq, from Linrad packets + if(f<0) f=m_nkhz; + int ns = (f+m_FreqOffset-0.5*m_fSpan)/5.0 + 0.5; + double fs = 5*ns; + m_CenterFreq = fs + 0.5*m_fSpan; +} + +qint64 CPlotter::centerFreq() //centerFreq() +{ + return m_CenterFreq; +} + +void CPlotter::SetStartFreq(quint64 f) //SetStartFreq() +{ + m_StartFreq=f; +// resizeEvent(NULL); + DrawOverlay(); +} + +qint64 CPlotter::startFreq() //startFreq() +{ + return m_StartFreq; +} + +void CPlotter::SetFreqOffset(quint64 f) //SetFreqOffset() +{ + m_FreqOffset=f; + DrawOverlay(); +} + +qint64 CPlotter::freqOffset() {return m_FreqOffset;} //freqOffset() +int CPlotter::plotWidth(){return m_WaterfallPixmap.width();} +void CPlotter::UpdateOverlay() {DrawOverlay();} +void CPlotter::setDataFromDisk(bool b) {m_dataFromDisk=b;} + +void CPlotter::setTol(int n) //setTol() +{ + m_tol=n; + DrawOverlay(); +} + +void CPlotter::setBinsPerPixel(int n) {m_binsPerPixel = n;} //set nbpp + +int CPlotter::binsPerPixel(){return m_binsPerPixel;} //get nbpp + +void CPlotter::setFQSO(int x, bool bf) //setFQSO() +{ + if(bf) { + m_fQSO=x; // x is freq in kHz + } else { + if(x<0) x=0; // x is pixel number + if(x>m_Size.width()) x=m_Size.width(); + m_fQSO = int(FreqfromX(x)+0.5); + m_xClick=x; + } + if(m_bLockTxRx) m_TXkHz=m_fQSO; + m_TXfreq = floor(datcom_.fcenter) + 0.001*m_TXkHz; + DrawOverlay(); + update(); +} + +void CPlotter::setFcal(int n) //setFcal() +{ + m_fCal=n; +} + +void CPlotter::setNkhz(int n) //setNkhz() +{ + m_nkhz=n; +} + +int CPlotter::fQSO() {return m_fQSO;} //get fQSO + +int CPlotter::DF() {return m_DF;} // get DF + +void CPlotter::mousePressEvent(QMouseEvent *event) //mousePressEvent +{ + int h = (m_Size.height()-60)/2; + int x=event->x(); + int y=event->y(); + int button=event->button(); + if(y < h+30) { // Wideband waterfall + if(button==1) { + setFQSO(x,false); + } + if(button==2 and !m_bLockTxRx) { + if(x<0) x=0; // x is pixel number + if(x>m_Size.width()) x=m_Size.width(); + m_TXkHz = int(FreqfromX(x)+0.5); + m_TXfreq = floor(datcom_.fcenter) + 0.001*m_TXkHz; + } + } else { // Zoomed waterfall + if(button==1) m_DF=int(m_ZoomStartFreq + x*m_fSample/32768.0); + if(button==2 and !m_bLockTxRx) m_TxDF=int(m_ZoomStartFreq + x*m_fSample/32768.0); + if(m_bLockTxRx) m_TxDF=m_DF; + } + DrawOverlay(); + update(); +} + +void CPlotter::mouseDoubleClickEvent(QMouseEvent *event) //mouse2click +{ + if(event->button()!=1) return; //Act only on left double-click + int h = (m_Size.height()-60)/2; + int x=event->x(); + int y=event->y(); + if(y < h+30) { + m_DF=0; + setFQSO(x,false); + emit freezeDecode1(2); //### ??? + } else { + float f = m_ZoomStartFreq + x*m_fSample/32768.0; + m_DF=int(f); + emit freezeDecode1(1); + DrawOverlay(); + } +} + +int CPlotter::autoZero() //autoZero() +{ + m_z1=0; + m_z2=0; + int sum1=0; + for(int i=0; i<256; i++) { + sum1 += m_hist1[i]; + if(sum1 > m_Size.width()/2) { + m_z1=i; + break; + } + } + int sum2=0; + for(int i=0; i<256; i++) { + sum2 += m_hist2[i]; + if(sum2 > 16384) { + m_z2=i; + break; + } + } + double gain = pow(10.0,0.05*(m_plotGain+7)); +// double dz1 = (m_z1-38)/(5.0*gain); + double dz2 = (m_z2-28)/(5.0*gain); + if(m_z2 < 255) m_plotZero = int(m_plotZero + dz2 + 0.5); + return m_plotZero; +} + +void CPlotter::setNSpan(int n) //setNSpan() +{ + m_nSpan=n; +} + +void CPlotter::setPalette(QString palette) //setPalette() +{ + if(palette=="Linrad") { + float twopi=6.2831853; + float r,g,b,phi,x; + for(int i=0; i<256; i++) { + r=0.0; + if(i>105 and i<=198) { + phi=(twopi/4.0) * (i-105.0)/(198.0-105.0); + r=sin(phi); + } else if(i>=198) { + r=1.0; + } + + g=0.0; + if(i>35 and i<198) { + phi=(twopi/4.0) * (i-35.0)/(122.5-35.0); + g=0.625*sin(phi); + } else if(i>=198) { + x=(i-186.0); + g=-0.014 + 0.0144*x -0.00007*x*x +0.000002*x*x*x; + if(g>1.0) g=1.0; + } + + b=0.0; + if(i<=117) { + phi=(twopi/2.0) * i/117.0; + b=0.4531*sin(phi); + } else if(i>186) { + x=(i-186.0); + b=-0.014 + 0.0144*x -0.00007*x*x +0.000002*x*x*x; + if(b>1.0) b=1.0; + } + m_ColorTbl[i].setRgb(int(255.0*r),int(255.0*g),int(255.0*b)); + } + m_ColorTbl[255].setRgb(255,255,100); + + } + + if(palette=="CuteSDR") { + for( int i=0; i<256; i++) { + if( (i<43) ) + m_ColorTbl[i].setRgb( 0,0, 255*(i)/43); + if( (i>=43) && (i<87) ) + m_ColorTbl[i].setRgb( 0, 255*(i-43)/43, 255 ); + if( (i>=87) && (i<120) ) + m_ColorTbl[i].setRgb( 0,255, 255-(255*(i-87)/32)); + if( (i>=120) && (i<154) ) + m_ColorTbl[i].setRgb( (255*(i-120)/33), 255, 0); + if( (i>=154) && (i<217) ) + m_ColorTbl[i].setRgb( 255, 255 - (255*(i-154)/62), 0); + if( (i>=217) ) + m_ColorTbl[i].setRgb( 255, 0, 128*(i-217)/38); + } + m_ColorTbl[255].setRgb(255,255,100); + } +} + +void CPlotter::setFsample(int n) +{ + m_fSample=n; +} + +void CPlotter::setMode65(int n) +{ + m_mode65=n; + DrawOverlay(); //Redraw scales and ticks + update(); //trigger a new paintEvent +} + +void CPlotter::set2Dspec(bool b) +{ + m_2Dspec=b; + m_paintAllZoom=!b; + DrawOverlay(); //Redraw scales and ticks + update(); //trigger a new paintEvent} +} + +double CPlotter::fGreen() +{ + return m_fGreen; +} + +void CPlotter::setLockTxRx(bool b) +{ + m_bLockTxRx=b; + if(m_bLockTxRx) { + m_TXkHz=m_fQSO; + m_TXfreq=floor(m_TXfreq) + 0.001*m_TXkHz; + m_TxDF=m_DF; + DrawOverlay(); //Redraw scales and ticks + update(); //trigger a new paintEvent} + } +} + +void CPlotter::mouseMoveEvent (QMouseEvent * event) +{ + int h = m_WaterfallPixmap.height(); + int x=event->x(); + int y=event->y(); + bool lower=(y > 30+h); + float freq=FreqfromX(x); + float df=m_fSample/32768.0; + int ndf=x*df + m_ZoomStartFreq; + if(lower) { + QToolTip::showText(event->globalPos(),QString::number(ndf)); + } else { + QToolTip::showText(event->globalPos(),QString::number(freq,'f',3)); + } + QWidget::mouseMoveEvent(event); +} + +double CPlotter::rxFreq() +{ + return floor(datcom_.fcenter) + 0.001*m_fQSO + 0.000001*m_DF; +} + +double CPlotter::txFreq() +{ + return m_TXfreq + 0.000001*m_TxDF; +} diff --git a/qmap/plotter.h b/qmap/plotter.h new file mode 100644 index 000000000..36f0bcd0f --- /dev/null +++ b/qmap/plotter.h @@ -0,0 +1,139 @@ +/////////////////////////////////////////////////////////////////////////// +// Some code in this file and accompanying files is based on work by +// Moe Wheatley, AE4Y, released under the "Simplified BSD License". +// For more details see the accompanying file LICENSE_WHEATLEY.TXT +/////////////////////////////////////////////////////////////////////////// + +#ifndef PLOTTER_H +#define PLOTTER_H + +#include +#include +#include +#include +#include +#include "commons.h" + +#define VERT_DIVS 7 //specify grid screen divisions +#define HORZ_DIVS 20 + +class CPlotter : public QFrame +{ + Q_OBJECT +public: + explicit CPlotter(QWidget *parent = 0); + ~CPlotter(); + + QSize minimumSizeHint() const override; + QSize sizeHint() const override; + QColor m_ColorTbl[256]; + bool m_bDecodeFinished; + int m_plotZero; + int m_plotGain; + float m_fSpan; + qint32 m_nSpan; + qint32 m_binsPerPixel; + qint32 m_fQSO; + qint32 m_DF; + qint32 m_tol; + qint32 m_fCal; + + void draw(float sw[], int i0, float splot[]); //Update the waterfalls + void SetRunningState(bool running); + void setPlotZero(int plotZero); + int getPlotZero(); + void setPlotGain(int plotGain); + int getPlotGain(); + void SetCenterFreq(int f); + qint64 centerFreq(); + void SetStartFreq(quint64 f); + qint64 startFreq(); + void SetFreqOffset(quint64 f); + qint64 freqOffset(); + int plotWidth(); + void setNSpan(int n); + void UpdateOverlay(); + void setDataFromDisk(bool b); + void setTol(int n); + void setBinsPerPixel(int n); + int binsPerPixel(); + void setFQSO(int n, bool bf); + void setFcal(int n); + void setNkhz(int n); + void DecodeFinished(); + void DrawOverlay(); + int fQSO(); + int DF(); + int autoZero(); + void setPalette(QString palette); + void setFsample(int n); + void setMode65(int n); + void set2Dspec(bool b); + double fGreen(); + void setLockTxRx(bool b); + double rxFreq(); + double txFreq(); +// void updateFreqLabel(); + +signals: + void freezeDecode0(int n); + void freezeDecode1(int n); + +protected: + //re-implemented widget event handlers + void paintEvent(QPaintEvent *event) override; + void resizeEvent(QResizeEvent* event) override; + void mouseMoveEvent(QMouseEvent * event) override; + +private: + + void MakeFrequencyStrs(); + void UTCstr(); + int XfromFreq(float f); + float FreqfromX(int x); + qint64 RoundFreq(qint64 freq, int resolution); + + QPixmap m_WaterfallPixmap; + QPixmap m_ZoomWaterfallPixmap; + QPixmap m_2DPixmap; + unsigned char m_zwf[32768*400]; + QPixmap m_ScalePixmap; + QPixmap m_ZoomScalePixmap; + QSize m_Size; + QString m_Str; + QString m_HDivText[483]; + bool m_Running; + bool m_paintEventBusy; + bool m_2Dspec; + bool m_paintAllZoom; + bool m_bLockTxRx; + double m_CenterFreq; + double m_fGreen; + double m_TXfreq; + qint64 m_StartFreq; + qint64 m_ZoomStartFreq; + qint64 m_FreqOffset; + qint32 m_dBStepSize; + qint32 m_FreqUnits; + qint32 m_hdivs; + bool m_dataFromDisk; + QString m_sutc; + qint32 m_line; + qint32 m_hist1[256]; + qint32 m_hist2[256]; + qint32 m_z1; + qint32 m_z2; + qint32 m_nkhz; + qint32 m_fSample; + qint32 m_mode65; + qint32 m_i0; + qint32 m_xClick; + qint32 m_TXkHz; + qint32 m_TxDF; + +private slots: + void mousePressEvent(QMouseEvent *event) override; + void mouseDoubleClickEvent(QMouseEvent *event) override; +}; + +#endif // PLOTTER_H diff --git a/qmap/qmap.pro b/qmap/qmap.pro new file mode 100644 index 000000000..3bc2b6812 --- /dev/null +++ b/qmap/qmap.pro @@ -0,0 +1,44 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2011-07-07T08:39:24 +# +#------------------------------------------------- + +QT += core gui network +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets +CONFIG += thread +#CONFIG += console + +TARGET = qmap +VERSION = 0.1 +TEMPLATE = app +DEFINES = QT5 + +F90 = gfortran +gfortran.output = ${QMAKE_FILE_BASE}.o +gfortran.commands = $$F90 -c -O2 -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} +gfortran.input = F90_SOURCES +QMAKE_EXTRA_COMPILERS += gfortran + +win32 { +DEFINES = WIN32 +} + +unix { +DEFINES = UNIX +} + +SOURCES += main.cpp mainwindow.cpp plotter.cpp about.cpp \ + soundin.cpp devsetup.cpp \ + widegraph.cpp getfile.cpp \ + astro.cpp displaytext.cpp getdev.cpp \ + meterwidget.cpp signalmeter.cpp + +HEADERS += mainwindow.h plotter.h soundin.h \ + about.h devsetup.h widegraph.h getfile.h \ + commons.h sleep.h astro.h displaytext.h \ + meterwidget.h signalmeter.h + +FORMS += mainwindow.ui about.ui devsetup.ui widegraph.ui \ + astro.ui txtune.ui + diff --git a/qmap/qmap.rc b/qmap/qmap.rc new file mode 100644 index 000000000..96895aada --- /dev/null +++ b/qmap/qmap.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "wsjt.ico" diff --git a/qmap/resources/CALL3.TXT b/qmap/resources/CALL3.TXT new file mode 100644 index 000000000..d4c2e3532 --- /dev/null +++ b/qmap/resources/CALL3.TXT @@ -0,0 +1,5708 @@ +//ms 3.0 2009-07-01 01:15:53 UTC _WSJT_CALL3 > CALL3.txt format for WSJT-PROGRAM by K1JT +//MS-EME-WSJT-Version 2009-07-01 01:15:53 UTC an exerp of VHF-DATABASE on MMMonVHF +//UPDATES welcome: http://www.mmmonvhf.de/dbase.php - 73 the Team of MMMonVHF +2E0ZWW,JO01ED,,,M3ZWW,,ICOM IC-820H FT897D,04/09 +2I0BIW,IO64PF,,,MI3IYA,,Yaesu ft-847,06/07 +2M0EXD,IO88FO,,,,,,04/04 +3B9C,MH10QG,EME,,,,,01/03 +3D2LR,RH92,EME,, +3DA0HL,KG53MS,EME,,EXPEDITION,,,03/07 +3V8BB,JM56ER,EME,,,,,06/02 +3V8SS,JM55GX,EME,,Expedition,,144: 16JXX and 1kw,12/05 +3X5A,IJ39JJ,EME,,EXPEDITION,,144: 2M28XPOLs and a KW,11/07 +3Y0X,EC41RE,EME,,Expedition,,144: 4x 9el 350W,02/06 +4F2KWT,PK06CI,EME,,,,50: 7el 650W,07-06 +4J1FS,KP40,,,Expedition,,,01/90 +4K6D,LN40VK,EME,,,,,01/94 +4N7AX,KN05PC,,,,,144: 200 W 2x10el 9BV,08/00 +4O3T,JN92HJ,EME,,,,144: IC706 Skysar 1kW FM-PA 3x 10 el at 10m abt 700m asl,08/06 +4O4AR,JN94AS,,,= YU4AR,,144: TR9130 250W 10el PA0MS-ant Preamp,11/02 +4O4D,JN94BR,,,,,144: 300W 11el,05/97 +4O9T,JN94XC,,,YU7AAA YT7C,,,11/08 +4S7CCG,MJ96WV,EME,,,,144: 4 x 8el and 300W,07/06 +4U1ITU,JN36BF,EME,,div. Activities,,144: 8el 600W,11/00 +4X1IF,KM72KA,EME,,,,,07/05 +4X4IF,KM72KD,EME,,,,,05/00 +4X6UJ,KM72,EME,,,,,01/00 +4Z5AO,KM72MW,,,ex UA1AKZ,,ft-857 ic-746,07/05 +4Z5BS,KM71JW,,,,,,07/95 +5A7A,JM62MU,EME,,Expedition,,144: 2x 10el 7ZB 1KW - 432: 9wl ant 200W,03/07 +5B4AGY,KM64EV,,,ex G3RSI 5A3CAD VO2AN,,FT-726R plus 1kW Linears and head amplifiers for 6M and 2M and 100w for 70cms,01/05 +5B4AIA,KM65GD,EME,,EXPEDITION,,144: 2MXP32 6WL 500W,09/07 +5B8AD,KM64TV,EME,,,,144: 2x16 el 14.3dB 230w,03/05 +5B8AV,KM64FT,,,ex 5B/G1JJE,,,05/04 +5C8M,IM64PD,EME,,Expedition,,144: IC706 MKIIG PA 1KW preamp. 2x 3WL yagis,10/00 +5F3COM,IM52JJ,EME,,= SV8CS,,,09/06 +5H1HP,KI93RV,EME,,EXPEDITION,,144: 14el XP 1.2KW,05/09 +5H1HP/KI94,KI94,EME,,EXPEDITION,,144: 14el XP 1.2KW,05/09 +5H1MS,KI93RV,EME,,EXPEDITION,,144: 14el XP 1.2KW,05/09 +5H1MS/KI94,KI94,EME,,EXPEDITION,,144: 14el XP 1.2KW,05/09 +5P8Z,JO55RT,EME,,,,144: IC706 GS31b 1KW 4x8el,04/07 +5P9S,JO54TU,EME,,= OU9S OV9S 5Q9S OZ9S,,See www.oz9s.dk (click rig) for actual and updated info,05/07 +5Q2M,JO65AN,EME,,= OZ1PIF,,FT847 50: 100W 4el - 144: 350W 2x 13el Preamp,04/07 +5Q9S,JO54TU,EME,,= 5P9S OU9S OV9S OZ9S,,See www.oz9s.dk (click rig) for actual and updated info,05/07 +5R8EM,LH42WX,EME,,EXPEDITION,,,09/08 +5T5JC,IL30AM,EME,,,,,01/94 +5T5SN,IK28AC,EME,,QRT,,,09/05 +5X1D,KJ60EM,EME,,,,300W- 17el,03/97 +5X1EME,KJ60gh,EME,, +5Z4NU,KI88IP,,,,,144: 25W 9el,09/05 +6F75A,DL81UU,EME,,= XE2AT,,144: IC820 400W 4x 9el,01/07 +6I2AT,DL81UU,EME,,= XE2AT,,144: IC820 400W 4x 9el,01/07 +6V7A,IK14LK,EME,,Expedition,,144: 2 times BQH8B cross yagis 14.5 dBd and 500w SSPA,05/06 +6Y4A,FK18AA,EME,,Expedition,,144: 2x 2MXP28 cross pol ant. 1KW,10/00 +7J0AAD,PM97OS,EME,,,,144: 1KW 4x19el 2x18el MGF1801,01/00 +7J6CCU,PL36VI,EME,,,,50: TS570 or IC821,04/02 +7K1MFR,PM95SP,,,,,,01/03 +7K3LGC,PM95RI,EME,,,,,09/06 +7L1RLL,PM95SO,,,,,,01/03 +7M1QMY,PM95VQ,,,,,,02/09 +7M2PDT,QM05EK,EME,,,,432: 16x14el 1-5KW,11/06 +7Q7JE,KH76DW,EME,,= ZS6JDE,,144: 2x 9el 350W,07/06 +7S2AT,KP03DU,,,= SK2AT,,,03/06 +7W0AD,JM16JR,,,,,,11/04 +7X0AD,JM16JR,,,,,144: 9el 200W,11/04 +7X2VV,JM16WJ,,,,,,07/02 +7Z1SJ,LL25WG,EME,,,,144: 2x 13el,02/07 +8J1AXA,QM05DF,EME,,SPECIALCALL,,,05/08 +8N1EME,QM06IQ,EME,,Expedition,,,03/07 +8S4BX,JO79SD,EME,,,,,10/99 +8S6T,JO68SE,,,ALSO SM6WET & SG6T,,FT650 847 920,11/08 +9A1AAX,JN65TF,,,,,144: 16el 500W,04/01 +9A1CAL,JN86EL,,,,,144: IC271 FT736 FT225RD 4CX1500A 2x17el BF981,11/04 +9A1CBE,JN86BE,,,,,,01/96 +9A1CCB,JN85LN,,,ex YU2CCB- YT2C,,,03/01 +9A1CCY,JN85OO,EME,,ex YU2CCY,,,08/01 +9A1CDD,JN85LW,,,,,,01/91 +9A1CEU,JN75RO,EME,,,,144: 80W 2x18el 5.5wl 4x11el - 432: 10W 38el,01/99 +9A1CHI,JN95JG,,,ex YU2CHI,,,01/94 +9A1CHL,JN83,,,,,,03/98 +9A1CMS,JN86DM,,,,,,05/07 +9A1DFG,JN85EL,,,,,,07/96 +9A1EZA,JN86HG,EME,,ex YU2EZA,,IC271E 144: 2x4CX250b MGF1302 10mM2,11/01 +9A1KDE,JN95FQ,,,,,,01/94 +9A1RGC,JN75XT,,,,,,01/03 +9A1Z,JN86FJ,,,ex YU2SOM YT2SOM 9A3HZ,,IC706 DB6NT 1W ON 3CM,01/05 +9A2AE,JN86HF,,,,,144: 8x24el 1KW,12/08 +9A2AT,JN86LL,,,,,,01/03 +9A2DI,JN95,,,,,,06/95 +9A2EU,JN85JO,,,,,,07/96 +9A2GH,JN75IE,,,,,,01/03 +9A2KK,JN85KV,,,,,,11/01 +9A2KL,JN74OC,,,,,,08/07 +9A2MF,JN65SL,,,YU2SBF YU2MF,,YAESU FT-480 r,05/07 +9A2MK,JN75XU,EME,,,,,01/94 +9A2PT,JN86,EME,,,,,11/01 +9A2RD,JN65TF,,,,,144: 2x16el 1KW,05/04 +9A2SB,JN95GM,,,ex YU2SB,,,06/99 +9A2TE,JN85KK,,,,,144: ft225rd ts690s 100w,03/06 +9A2TK,JN76WA,EME,,YU2SSU YU2TK,,TS2000X FT290RII FT7,07/07 +9A2U,JN75RO,EME,,,,144: 80W 2x18el 5.5wl 4x11el,01/99 +9A2VR,JN95FQ,,,,,,06/07 +9A3DF,JN86HG,,,,,,04/03 +9A3GE,JN75EI,EME,,YU2RNF,,TR7 FT817 FT857 IC703 HOME MADE TRANSV. PA 4CX250B 4x 8el,08/07 +9A3JH,JN75AD,EME,,,,,01/06 +9A3JI,JN86FJ,,,= 9A4K,,50: FT-101ZD+FTV650- IC706mk2g 7ele M2,05/02 +9A3LN,JN95IN,,,,,,06/08 +9A3MR,JN83FM,,,,,,08/00 +9A3PA,JN85EG,EME,,,,FT736r - 50: 10W 5el - 144: 8x13el 800W MGF1302 - 4320: 300W 4x19el MGF1302,08/04 +9A3TF,JN85,,,,,,08/96 +9A3TU,JN95EH,,,YT2TU,,TS 830s + transverter home made 6m/2m 10W,06/08 +9A3W,JN74OC,,,ex 9A1RKV,,IC706,09/02 +9A3ZA,JN75RO,,,,,144: 100W 12el,08/00 +9A4C,JN85LN,,,,,,03/01 +9A4CK,JN86,,,,,,08/96 +9A4EW,JN95KG,EME,,,,144: 200W 10 el. BVOpt,06/08 +9A4FW,JN95JG,EME,,,,144: 600W 4x17el F9FT MGF1302,08/00 +9A4K,JN86FJ,,,= 9A3JI,,50: FT-101ZD+FTV650- IC706mk2g 7ele M2,05/02 +9A4NF,JN73VS,,,,,50: 50W 6el 144: 400W MGF1302 4.5wl,06/08 +9A4VM,JN85FS,,,,,,05/07 +9A4WY,JN74,,,,,144: 50W,08/98 +9A5CW,JN65UF,,,EX 9A5AEI,,,09/07 +9A5D,JN92BP,,,Expedition,,,08/99 +9A5WA,JN85LN,,,,,,06/96 +9A5Y,JN85OO,,,SpecialCall,,144: 800W 16x5el,10/99 +9A6PSM,JN75EJ,,,,,FT817 FT225 IC-7000 IC-202,10/07 +9A6WW,JN86EL,,,,,144: IC271 FT736 FT225RD 4CX1500A 2x17el BF981,09/06 +9A7W,JN85PO,,,ex YU2QS,,,06/06 +9A90CBD,JN85OO,EME,,SpecialCall,,,07/97 +9A9B,JN75XU,EME,,,,144: 4x 16el 1KW,09/06 +9A9PP,JN85IW,,,9A7PSN,,Yaesu FT-857D,05/09 +9H1BN,JM75GU,EME,,,,,09/99 +9H1BT,JM75EU,EME,,,,,01/94 +9H1CD,JM75FV,EME,,NOT qrv MS nw (01/01),,144: TS850 LT2S 1KW 2x4.4lb DJ9BV MGF1302,01/01 +9H1CG,JM75,,,,,144: FT902DM FTV250 100W 17el,11/01 +9H1ES,JM75FV,EME,,,,,09/99 +9H1GB,JM75FU,EME,,,,144: TS780 100W 19el,08/03 +9H1LO,JM75EW,EME,,9H5LO,,IC746 - IC706 - FT817 - TH-F7E,12/08 +9H1PA,JM75FV,EME,,9H5O,,144 Mhz: TS711 4x10el (3wl) crossed yagi GS35b - 50 Mhz - 8el yagi 2wl,09/07 +9H1PI,JM75FU,,,ex 9H5PI,,50: 100W 5el,03/03 +9H1TX,JM75FU,EME,,,,50: 8el yagi 100W - 144: IC7400 GS35 1000 W 2x 15el Xpol LNA145MKII,08/06 +9H1XT,JM75GV,,,,,,08/02 +9H3LF,JM76,,,Expedition,,,01/91 +9H3ZZ,JM76CB,EME,,Expedition,,,01/93 +9J2JD,KH46MM,EME,,Expedition,,144: 2M7 antenna,05/06 +9K2YM,LL48CJ,EME,,,,144: 2M5WL 450 W,06/07 +9K48NLD,LL48CJ,EME,,SPECIALCALL,,144: 4x 13el 300W,02/09 +9M2BV,OJ30UD,EME,,,,,01/94 +9M6YBG,OJ85BW,EME,,,,2x 10el 50w,10/08 +9N7JO,NL27QR,EME,,YU7EF,,,04/07 +9W2QC,OJ03TB,EME,,,,144: 2x 10el Vert 70 W,10/08 +9X4V,PM95RI,EME,,SpecialCall,,,09/06 +A22BW,KG38SU,EME,,,,,01/94 +A35RS,AG28HV,EME,,= ZL1RS,,,12/08 +A43DLH,LL93,EME,,EXPEDITION,,,09/08 +A43EME,LL93,EME,,EXPEDITION,,,11/08 +A61Q,LL75SJ,EME,,,,144: 4x 13el 700W,10/06 +A71AW,LL55RH,EME,,,,144: 2XP20 1KW,07/06 +AA0BR,DN70KN,,,,,,01/03 +AA0BW,EM29PS,,,,,,04/03 +AA0DQ,EN12,,,,,,01/03 +AA0EN,EM29,,,,,,01/03 +AA0P,DM79,,,,,,01/03 +AA1OV,FN43GE,,,,,,04/03 +AA1VL,FN42HN,,,,,,04/03 +AA1YN,FN43GC,EME,,,,144: 4x 16el 100W,10/06 +AA2GF,FN02,,,,,,01/03 +AA2WV,FN12BV,EME,,,,144: 4x 17el 400W,10/06 +AA3NM,FM19JE,,,,,,01/03 +AA4FQ,EM67LQ,EME,,,,1500W,01/05 +AA4SC,EM94MX,EME,,,,,05/08 +AA5C,EM13SE,,,,,FT-990 FT-736R Homebrew Microwave Gear,10/07 +AA5CH,EM35GK,,,,,,01/03 +AA5IB,EM12,,,,,,01/03 +AA5WL,EM32,,,,,,01/03 +AA5WQ,EM26BC,,,,,,01/03 +AA6GS,DM12,,,,,,01/03 +AA6HA,DM43CN,,,,,144: 500W 9el M2,01/01 +AA6IW,CM97VI,,,,,,01/03 +AA6WI,CM97,,,,,,01/03 +AA7A,DM43AO,EME,,,,144: 8877 1.5KW 6x13el (DJ9BV),09/06 +AA8BC,EN90FE,,,,,,01/03 +AA8HS,EN81,,,,,,01/03 +AA9D,EN52,,,,,,01/01 +AA9IL,EN62AI,,,,,,01/03 +AA9MY,EN50FM,EME,,,,144: Yaesu 847 IC910H IC706MKIIG 2x 18XXX M2,11/05 +AB0SD,EN30LL,,,,,,01/03 +AB0TJ,DN60FN,,,,,,01/03 +AB3BK,FN10PD,EME,,,,144: 17el 400W,09/06 +AB4CR,EM77,,,,,,01/03 +AB4OO,EM81,,,,,,01/98 +AB5F,EM46FG,,,KG7CV,,KENWOOD TS-2000--VIKING VALIANT--HQ-170,05/07 +AB5IG,EM12,,,,,,01/03 +AB9FN,EN53,,,,,,01/03 +AC1H,FN33XJ,,,,,144: 300W 13dbD yagi,01/01 +AC1T,FN32,,,,,,01/03 +AC3A,EM28QV,EME,,,,FT847 144: 4x 9el M2 8877 1-5KW,08/05 +AC4TO,EM70,,,,,,02/05 +AC5OG,EM10,EME,,,,,03/05 +AC5TM,EM40LL,EME,,,,144: 2M5 400W,03/05 +AD4EB,EM65NS,,,,,,01/03 +AD4TJ,FM08LE,EME,,,,IC706MKIIG 144: 4x 15el K1FO 700w JT--KW+ CW,10/08 +AD6A,CM97AG,,,,,,01/03 +AD6FP,CM87WI,EME,,,,,01/04 +AD6P,EM18,,,,,,01/03 +AE0G,EN10PS,,,,,,01/03 +AE0W,DM78,,,,,,01/03 +AE4RO,EL97TG,,,,,,09/01 +AE5K,EM36PC,,,,,,01/03 +AE6EQ,CM95OH,EME,,,,432: 16x 14el 700W,09/05 +AF1T,FN43ED,EME,,,,,01705 +AF4IF,EL95US,,,KD4GKO,,Yaesu,08/07 +AF4O,EM55LK,,,,,,01/03 +AF6O,DM14EJ,EME,,ex G3PRM,,144: 4x 2M12 800W - 432: 4x 9wl 1500W,01/06 +AF9R,EN52XB,,,,,,01/03 +AG2A,FN30FR,,,,,,01/03 +AG4QE,FM04KX,,,,,,01/03 +AG4ZE,EM83WM,EME,,,,,07/06 +AG9Y,EN40,,,,,144: 160W 13el,01/01 +AH6EZ,EN51SW,,,,,,12/01 +AH6LE,CN85NK,,,,,,01/03 +AH8A,AH45OP,,,,,,01/03 +AI1K,FN41IL,,,,,,01/03 +AI3W,FM19PW,,,,,,01/04 +AI8Z,DM79,,,,,,01/03 +AJ0E,EM29RD,,,,,,01/03 +AJ6T,CM87XK,,,,,144: 200w 10el 50:100w 6el,05/07 +AM25DXU,JN11CM,EME,,SpecialCall,,,01/92 +AN3JT,JN01UI,EME,,SPECIALCALL,,IC910 + SP2 + 4x13B2 + GS35B,08/07 +AN6SA,JM19IR,EME,,SpecialCall,,144: FT847 2x4CX250 2x17el - 432: 4x33el,01/01 +AO4WT,IN80KN,,,,,,08/08 +AO5TT,IM99SL,,,= EA5TT,,,08/08 +AO6SA,JM19IR,EME,,SPECIALCALL,,,09/07 +AO6VQ,JM19HN,EME,,SPECIALCALL,,144: 2KW MGF1302 8x17el M2 432: 21el 115w 1296: 55el 10w,12/07 +BA4TB,PM01EO,EME,,EXPEDITION,,IC746 + HL250PA (running 250W) 2x 10ele Yagi,03/08 +BD1AX,PL04VQ,EME,,,,144: 2wl Yagi 350W,04/08 +BV6GU,PL03CD,EME,,,,144: 250W 20ele cross yagi,05/06 +BX1AD,PL04VQ,EME,,,,144: 11 Xpol 100W,03/08 +BY1QH,ON80DA,,,,,,01/03 +BY4RRR,OM92JA,EME,,,,144: 2x13 ele 100W 432: 2x 17 ele 70W,02/08 +BY4RSA,OM91,EME,,= DL3OCH,,,05/07 +BY7PP,OL63NA,EME,,EXPEDITION,,50: 2x 6el 100W 144: 2x9el 300W Preamp SP-2000 432: 2x20el 70W,02/08 +BY9AA,OM44LL,EME,,,,144: IC920 2 x 15 XP 350W,03/08 +C31MS,JN02UN,,,Expedition,,144: 2Stn a� 800W 2x17el or 11el,05/97 +C31RC,JN02SK,EME,,Expedition,,,01/89 +C31TLT,JN02TL,EME,,Expedition,,144: 4x24el 2x4CX250 900W,08/01 +C56EME,IK13ql,EME,, +C6AIE,FL16IQ,EME,,= WZ8D,,144: TS2000 250W 13el,03/06 +C91CF,KG64HB,EME,,EXPEDITION,,,04/08 +CN8KD,IM63KX,,,,,144: 10W 11el,06/03 +CN8LI,IM63NX,EME,,,,50: IC746 250W 6el - 144: 2x17elts- 250w- lna- 1/2' lowloss cable- Az+Elevat,10/07 +CN8ST,IM64NA,EME,,QRT (is nw PA....),,,06/98 +CN8TW,IM63EN,EME,,,,144: 4x 13el,01/06 +CO2OJ,EL83TD,,,,,50: 100W 4el - 144: 110W 9el,06/06 +CQ14HZE,IM57NH,,,SpecialCall,,,02/04 +CS0DIZ,IM69,,,SpecialCall,,,01/89 +CS1GDX,IM59IB,,,SpecialCall,,144: IC706MK II G 200W 12el,11/03 +CS6ARC,IM59RX,,,SpecialCall,,,11/01 +CT1ANO,IN51RE,,,,,144: TS2000 4cx250B 1x16JXX2 SP 2000,06/09 +CT1BYM,IM58SM,EME,,,,,05/07 +CT1DHM,IN61CB,EME,,,,,04/07 +CT1DIZ,IM58KP,,,,,,06/03 +CT1DMK,IN50QP,EME,,,,144: 1-5KW 4x11el DL6WU,03/99 +CT1DNF,IN50QP,,,,,144: IC821H 200Watts 2x12ele DL6WU Preamp,12/04 +CT1EKD,IM59IB,EME,,,,144: IC706 MK II G 400W 4 x 17 el 432: 300W + 10wl Yagi,08/08 +CT1EWA,IM59NS,EME,,,,,06/09 +CT1FAK,IN50QO,EME,,,,144: FT1000D FT736R 200W 4x13el DL6WU MGF1302,05/03 +CT1FFU,IM59KJ,EME,,,,,03/05 +CT1FJC,IM57OC,,,= G4MAW,,TS-2000 5el yagi 6 metres. 4el yagi on 4metres,03/07 +CT1FOH,IN50RA,,,,,50: 6el - 144: 200W 4x 12el MGF1302,04/04 +CT1HZE,IM57NH,,,= DL8HCZ,,,12/05 +CT1WW,IN61GE,,,SilentKey,,,11/96 +CT2FEY,IN61OT,,,,,,07/07 +CT2GUR,IM59ML,EME,,,,IC-910H+ 2x17el+LNA+1KW,06/09 +CT2HSN,IN61CB,,,,,,03/07 +CT2HSO,IN61CB,,,,,,06/07 +CT2IET,IN60GD,,,,,FT100D,11/02 +CT2IWG,IN51OJ,,,,,144: IC706 100W 9el,02/05 +CT2JIB,IM58MO,EME,,,,IC-910H + IC-706MKIIG + IC-746,05/08 +CT4KQ,IN60BP,,,,,,03/98 +CU2E,HM77UD,EME,,,,144: 1KW 28 Xpol,06/07 +CU2IJ,HM77ES,,,,,,04/04 +CU3EQ,HM68KP,,,,,KENWOOD TS 2000 - TS 570,04/08 +CX5BBF,GF15WM,EME,,,,432: 3m dish with 4 dipole,08/07 +CX5CJ,GJ15,EME,,,,144: 4x 17el 1KW,02/02 +CX5IC,GF07WQ,EME,,,,,03/08 +CX5UR,GF26TS,,,CX2AAE - CX3UU - CX1JO,,KENWOOD TS430 - IC 241 - FT 2500,02/08 +CX9BT,GF15WK,,,,,,01/03 +CY9SS,FN97WE,EME,,Expedition,,144: 400W single yagi,01/05 +DA0BV,JN58VF,,,SpecialCall,,,01/94 +DA0DD,JO61,EME,,SpecialCall,,,05/06 +DA0HEL,JO34WE,,,EXPEDITION,,,08/08 +DA0NRW,JO41GV,,,SpecialCall,,144: 3CX400A7 4x14el or 17el,12/96 +DA0WAE,JO41GU,,,SpecialCall,,,12/04 +DA0Y,JN48MB,EME,,,,,04/09 +DA0YFD,JN59MO,EME,,,,,05/07 +DA4RG,JO31FG,,,= GW8VHI,,,11/95 +DB1PB,JO30UE,,,,,,12/01 +DB2WD,JN39VV,EME,,,,,04/96 +DB3BW,JO42AC,EME,,,,HF: TS520 - 144/432: FT726r Tube PA 2m 350W 70cm 150W 6m trv8W,06/09 +DB3LA,JO31JK,,,,,,07/02 +DB4ET,JO31,,,,,,11/02 +DB4LL,JO54SM,,,,,144: FT221 20W 4el,08/01 +DB4VQ,JN39MF,,,,,,01/94 +DB5ML,JN58OI,,,,,,09/03 +DB5WC,JN49EJ,,,,,60W 11el Preamp,12/03 +DB6BX,JO32OK,,,SilentKey,,,11/96 +DB6NT,JO50UI,,,,,,01/03 +DB6RO,JN58QB,,,,,,12/03 +DB7OB,JO52IJ,,,,,144: FT221 100W 11el,08/00 +DB8AT,JO51CP,,,,,,05/04 +DB8WK,JO33XN,,,,,144: 200W 2x11El. - 432: 300W 2x23El.,03/06 +DB8YL,JO41EV,,,,,,12/99 +DC0KK,JO41KQ,,,,,,03/08 +DC1ECD,JO31MH,,,,,,10/04 +DC1MUS,JN69EP,,,,,,11/02 +DC1MWB,JN58,,,,,,04/05 +DC2IP,JN49FD,,,,,144: IC706 max. 50W 6el,08/08 +DC2JR,JO64CA,,,,,,11/01 +DC2MW,JN58IV,EME,,,,144: 4x 9el 300W,09/07 +DC3VM,JN39KK,,,,,,12/99 +DC3VW,JN39KJ,,,,,,10/04 +DC3ZR,JN68CV,,,,,,01/03 +DC5JQ,JO31BC,,,,,,10/07 +DC6DY,JO53GO,,,,,,06/09 +DC6GF,JN48OC,,,,,IC 706 MKIIG PreAmp,01/05 +DC6KI,JO30IL,,,NOT qrv MS nw (01/01),,,04/05 +DC6RN,JN59WK,,,,,144: 12el PA GS35,04/09 +DC7OH,JO62OK,,,,,,01/01 +DC7UT,JO31NJ,EME,,,,144: 4x17el 500W,03/01 +DC9UP,JN39QN,EME,,F5VKQ,,,01/09 +DC9YC,JO31QK,,,,,,10/07 +DD0NM,JN59NI,,,,,144: IC 910 100W 2x11 el Yagi,08/07 +DD0VF,JO60UX,EME,,,,144: 550W-CW 250W-digi 4x8el MGF1303 (JO61WA: 100W 5el BF998),06/09 +DD1JN,JO50DJ,,,,,144: 600W 11el Preamp - 432: 21el 200W VV - 1296: 55el 10W VV - 2320: 80el 1W,04/02 +DD1WKS,JN39KK,,,,,,01/01 +DD2KR,JO30FQ,EME,,,,FT1000 144: LT2S 3CX800A7 Preamp 17ele M2 432: LT70S 3CX800A7 Preamp 2x39el M2,10/07 +DD2UJ,JO61WD,,,,,,10/04 +DD3DX,JO31TN,,,,,,07/01 +DD3SP,JO72EN,,,,,50: 5el - 144: FT847 4CX250 17el F9FT MGF1302 - 432: 21el,02/04 +DD5DX,JO61CA,,,,,144: 180Watt 2x17el Preamp,07/04 +DD6UBS,JO41AH,,,,,144: TM255 MGF1302 180W 11El F9FT - 432: TM455 MGF1302 40W,10/04 +DD7PC,JN49AX,EME,,,,,05/07 +DD9SQ,JN59BH,,,,,,07/98 +DF0AK,JN49EA,,,,,,07/97 +DF0AW,JO31MG,EME,,,,FT736 144: 800W 2x 11el 432: 200W 4x 23el 1296: 23el 10W,09/07 +DF0BV,JN68AH,EME,,,,144: 2x17el 750W,04/05 +DF0CI,JO51CH,,,,,,11/03 +DF0CK,JO50AN,EME,,= DK0R,,144: 500Watt 2x11el,09/05 +DF0EME,JO40,,,,,,01/03 +DF0LBO,JO53CT,,,,,,05/02 +DF0MMO,JN49JX,,,,,144: 200W 11el,11/00 +DF0MTL,JO61JF,,,,,,07/05 +DF0SAX,JO61VC,,,,,144: 20W 13el,12/98 +DF0SL,JN59OI,,,,,,08/08 +DF0WD,JO42FD,,,,,144: 8874 250W 2x9el - 432: 3CX800 4x18el,02/08 +DF0WF,JO62VT,,,,,,01/05 +DF1AN,JO63SX,,,ex DL1KUS,,,01/00 +DF1BN,JO31GD,,,,,144: IC821 HLV-300 300Watts MGF 1302 2x17ele F9FT,07/01 +DF1CF,JN57FP,EME,,,,144: CF300 3CX800 4x13el (3lb),12/04 +DF1GL,JN47CO,,,,,144: IC 746 300W 8el,04/07 +DF1HF,JO43WJ,EME,,,,144: 6el 432: 19el 1296: 44el,09/07 +DF1IAZ,JN49LD,,,,,50: 3 el - 144: 150W 2x10el MGF1302,07/01 +DF1OC,JO52,,,,,,01/93 +DF1SO,JN48PO,,,,,144: homemade 200W,08/98 +DF1VB,JO31SK,EME,,,,,03/07 +DF1ZE,JN49,EME,,,,,01/94 +DF2CQ,JN58SE,,,,,,10/04 +DF2NU,JN58XA,,,DL0UMK,,TS-790S + PA + Preamp + 11 ele yagi,10/07 +DF2OOO,JO41RF,,,SpecialCall,,IC820H 144: 250W 2x11el- 432: 130W 2x23el Preamp,09/99 +DF2UJ,JO61QH,,,,,,02/02 +DF2ZC,JO30RN,EME,,,,144: TS2000 LT2S 2xGU74b 750W MGF1302 4x2M18XXX (21 dbd),04/07 +DF3FJ,JO40CC,,,,,,01/93 +DF3RU,JN59UL,EME,,,,,03/05 +DF4IP,JN49HE,,,,,,08/08 +DF4MAA,JN58WH,EME,,,,,05/97 +DF4UE,JN48RR,,,,,432: 4x27el 600W,09/03 +DF4WC,JN49KV,,,DB4PN,,TR9000-IC490,09/08 +DF5BN,JN49GU,,,,,,08/99 +DF5DE,JO40CX,,,,,,12/06 +DF5HC,JN49HT,EME,,,,50: 4 Ele - 144: 4x8Ele 500W - 432: 4x17Ele 500W,05/09 +DF5JJ,JO43XO,,,ex EA6/DF5JJ + ex EA6ADW,,432: 700W 19el - 1296: 500W 26el - 10368: 20W dish,03/04 +DF5KB,JO72CM,,,ex DD6BKR,,FT847 - 144Mhz 750 wtts 14 el Longyagi - 50Mhz 7el by DK7ZB,08/06 +DF5NK,JN59PM,,,DB6NJ,,144: 11el 600W alt. 15el 750W(JN59OP) 432: 19el 500W,06/09 +DF5NK/P,JN59OP,,,DB6NJ,,144: 11el 600W alt. 15el 750W(JN59OP) 432: 19el 500W,06/09 +DF6HT,JO64FG,,,,,,12/06 +DF6LO,JO52CE,,,,,,01/93 +DF6MU,JN58WF,,,DL1ABD,,Elecraft k2 + XV144 + THP PA 160W,09/07 +DF6NA,JN49XS,,,,,432: 2x3CX800 4x30el,10/01 +DF6OB,JO42,,,NOT qrv MS nw (01/01),,,07/97 +DF6VW,JO42KH,,,,,,07/97 +DF6YL,JO31WS,EME,,,,,02/08 +DF7AP,JO51FI,,,,,,04/09 +DF7DJ,JO31UO,,,,,,06/97 +DF7IF,JN48DN,,,,,,01/03 +DF7IT,JN49IN,,,,,,10/04 +DF7KF,JO30GU,EME,,,,144: 16x18el EME Pwr,12/04 +DF7OG,JO52BN,,,,,144: TS770E 4x150 16el,04/04 +DF7RG,JN68HG,EME,,,,,01/05 +DF8AA,JO60XX,,,ex DL2VAA,,144: 100W 17el,12/99 +DF8AE,JO41GX,,,,,,10/04 +DF8IK,JO30JT,,,,,144: 300W 11el 432: 400W 27el,01/05 +DF8LC,JO53GX,EME,,,,,08/99 +DF8PC,JO43RS,EME,,,,144: 100W 16el M2,03/06 +DF9CY,JO54AL,EME,,,,IC820H + 400w + 1x9ele 2.5wl full elevation + MGF1302,10/08 +DF9IJ,JN48CX,,,,,,01/03 +DF9KT,JO30GU,,,,,,11/95 +DF9KX,JO30FQ,EME,,,,FT1000 144: LT2S 3CX800A7 Preamp 17ele M2 432: LT70S 3CX800A7 Preamp 2x39el M2,10/07 +DF9QT,JO30OR,,,,,144: 700W 11Ele,07/08 +DF9QX,JO42HD,EME,,,,,01/94 +DF9RJ,JN68GS,EME,,,,144Mhz: 1.8KW 4x17Ele. - 432Mhz: 1KW 4x21Ele. - 10Ghz: 5W 60cm Spiegel,03/06 +DF9YF,JO42GE,,,,,,12/03 +DG0CAL,JO31,,,,,,06/00 +DG0FE,JO62UN,EME,,,,FT736r 50: 25 watt 1x4el - 144: 500W 4x17el - 432: 25 watt 2x21el - 1296: 10 watt 2x35el,04/08 +DG0KU,JO64AC,,,,,,01/03 +DG0KW,JO64MH,EME,,,,144: 2x 13el,01/05 +DG0OPK,JO50GQ,EME,,,,50MHZ Dipol - 144: 400W 17dBd MGF1302,12/08 +DG0TU,JO61TU,,,,,,08/97 +DG0WJ,JO60CV,,,,,,11/02 +DG1BA,JO43LB,,,,,,01/00 +DG1BHA,JO73DB,,,,,,09/07 +DG1CMZ,JO60DS,,,,,,08/01 +DG1IU,JN49FA,,,,,,08/96 +DG1LY,JO44RK,,,,,,03/04 +DG1TA,JN69GH,,,,,,02/01 +DG1VL,JO61WE,EME,,Y91VL,,144: 150W 9el MGF1302,05/09 +DG1YBO,JO32RG,,,,,144: FT225RD 80W 9el,09/04 +DG2BCP,JO43DC,EME,,,,144: 4x 3.6l DJ9BV+GS35 Pa 432: 4x 11l DJ9BV,03/06 +DG2DAA,JO62GU,,,,,,06/02 +DG2GEP,JN48DL,,,,,144: 200W 9ele Yagi,04/03 +DG2KBC,JN58MI,EME,,,,2x7ele FT847 GS35b LNA,06/09 +DG2NBN,JN59NR,,,,,FT847 144: 200W 2x3wl 9BV MGF1302 - 432: 300W 22el MGF1302,08/01 +DG2NZM,JN59IV,,,,,,06/03 +DG2SRL,JO61HN,EME,,,,144: Transv. LT2S 18el M2 500W,04/06 +DG2TOM,JO62BM,,,,,IC706 50: 4el Yagi - 144: 15el M2 100W,08/05 +DG2VC,JO61VC,,,,,,01/04 +DG3FK,JO41PG,,,,,TS850+TV TS790 144: 17el 150W - 432: 4x17el 200W - 1296: 55el 100W,09/03 +DG3JO,JO31JK,,,,,TR-2000- TM-D700- DSPCOM,04/03 +DG3MDE,JN58EI,,,,,ICOM IC-7400 Inv.V 2x13 5m,09/07 +DG3XA,JO43WJ,,,,,144: 1500 Watt 7 ele M2,02/09 +DG4BH,JO30RX,,,,,,01/03 +DG4EK,JO31NI,,,,,,01/03 +DG4EKE,JO31NI,,,,,144: IC820h- SP2000- 17/11el- QQE06-40,01/97 +DG4NBI,JN59IF,EME,,,,,10/07 +DG5AAG,JO51,,,,,,07/01 +DG5CST,JO60DS,EME,,,,144: FT847 4x12el I0JXX GU74,08/07 +DG5HV,JO43XQ,,,,,,01/99 +DG5NEX,JN49WS,,,,,,01/93 +DG5OAF,JO51EP,,,,,144: FT736 400W 2x17el B2 MGF1302,11/99 +DG5SMY,JN49QA,EME,,,,144: 4x 17ele 432: 4x 23ele,08/04 +DG6JF,JO31,,,,,,10/01 +DG6LS,JO54AK,,,,,144:TS790 8877 4x17el - 432: 8x33el DJ9BV 3CX800A7,12/96 +DG6MBS,JO41AH,,,,,144: TM255 MGF1302 180W 11El-F9FT - 432: TM-455 MGF1302 40W,08/02 +DG6MGP,JN58WH,,,,,,01/95 +DG6SYL,JO53QP,,,,,144: 150W 11el 6WU Preamp - 432: 150W 23el Preamp - 1296: 10W 48el Preamp,03/02 +DG7MHR,JN57DR,,,,,,03/03 +DG7NT,JN47QQ,,,,,144: 2x10 el,02/08 +DG7OV,JO42VX,,,,,,10/04 +DG7RBV,JN59UM,,,,,,01/90 +DG7SF,JN48RR,,,,,144: FT736 300W 2x7el,06/01 +DG7SFL,JN49XF,,,,,144: 300 W + 10El. - 432: 150W + 2*21El.,01/04 +DG7TG,JO43SV,,,,,,06/05 +DG8DP,JN68BI,,,,,Yaesu FT-950 - Elecraft XV144 - VHF PA 4CX250B - 9 Ele. M2,04/09 +DG8NCO,JO50VH,EME,,,,144: 4 x 9 El + BEKO HLV-1500 ICOM IC7400 / 8 x 10 El + BEKO HLV 3000,05/09 +DG8NCY,JO50HA,,,,,,07/02 +DG8UAW,JN48BR,,,,,FT-847: 144MHz: 50W 7el Preamp - 432MHz: 300W 16el Preamp,09/01 +DG8WH,JO43GH,,,DO6BH,,IC271E + FT897D,07/08 +DG8YFM,JO32MF,,,,,,03/06 +DG8YHH,JO32QI,EME,,,,,10/06 +DG9BEM,JO43CD,,,,,144: 350W 17el VV - 432: 300W 4x20el VV - 1296: 150W 1.2m dish VV,01/03 +DG9DAZ,JO31XB,,,,,144: TM255,11/01 +DG9GLA,JO40,,,,,,12/01 +DG9MAQ,JN58LJ,EME,,,,144: HA8UG-PA Gi46b 9 El. Tonna SP-2000,12/07 +DG9NCX,JN59BT,,,,,,11/99 +DG9NFM,JO50QG,,,,,,01/94 +DG9YIH,JO32QI,,,,,144: 500W 17el,12/04 +DH0AAI,JO51AR,,,,,144: FT225rd PA 200W SP2000 4xDL7KM,08/02 +DH0GHU,JN38VN,,,ex DG2GHU,,144: TS850 LT2S HLV300 300W 11el,09/01 +DH0LS,JO61II,,,,,144: 4CX350 500W 2x17el Preamp - 432: 150W 21el - 10W Dish,12/03 +DH0MBH,JN58JD,,,,,,01/02 +DH0OAH,JO42OB,,,,,,01/03 +DH0X,JN49DE,EME,,,,,08/05 +DH0YAZ,JO41GG,,,,,,01/03 +DH1FM,JO61UD,,,,,144: 90W 10el - 1296: 1W 30el,08/02 +DH1HC,JO53FF,,,,,144: 13el 500W,10/05 +DH1KBB,JO20XX,,,,,,01/93 +DH1NAD,JN49,,,,,,01/93 +DH1NSP,JN59JX,,,,,,01/01 +DH1TW,JN48QM,EME,,,,144: 600W 10el,04/01 +DH2FAF,JO40,,,,,,01/93 +DH2OAA,JO42TU,,,,,144: IC275E 4x11el 6WU 500W,03/04 +DH2RS,JN47TT,,,ex DG3GSR,,144: 75W 11el MGF1302,01/98 +DH2UAK,JO71FU,EME,,DG6IBO,,IC910+Preamp - 144: 4x 14el 500W - 432: 2x 29el 50W- 1296: 67el 10Ghz: 1.25m/10W,05/09 +DH3DP,JO31,,,,,,07/96 +DH3NAN,JO50NC,EME,,,,,12/97 +DH3YAK,JO31RS,EME,,DD4QI,,144: 4x 12el M2 750W,02/09 +DH4FAJ,JN49EX,EME,,,,IC910 IC7400 144: 4x 9el 1KW - 432: 4X15 50 watt,12/08 +DH5BS,JO63PX,EME,,EX DB3VE DH3VE,,FT857d IC970h Pa's Yagi's 50-432mc,07/07 +DH5FS,JO61UA,,,,,144: 9el 120W - 432: 4x21el,11/00 +DH5HS,JO31FF,,,,,FT847,11/02 +DH5HV,JO31AS,,,EX DB5VH,,144: IC746 Pro (100W only) with 2M12 Msquare @ 14m,07/08 +DH5LAN,JO44TN,,,,,,05/97 +DH5MK,JO41IV,,,DC3QB,,144: 100W 5ele. DK7ZB MGF1302,05/09 +DH6ICE,JO61XU,,,,,,07/04 +DH6JL,JO31NI,,,EX DG1JL,,50: IC-746 6M5X wid 360 view till Horizont,10/07 +DH7FB,JO62SM,,,ex DD6UFR,,144: FT847 GS35b 2x9el DK7ZB,08/05 +DH8BQA,JO73CE,EME,,,,,05/07 +DH8GV,JO33RL,,,EX DD0BI,,FT-100 300W,02/08 +DH8IAB,JO30NO,EME,,DC5IV,,144: 17el 750W,09/07 +DH8IAT,JN49GC,,,,,,12/07 +DH8WE,JO50TJ,EME,,DG0OLT,,,04/08 +DH8YHR,JO41GV,,,,,,01/03 +DH9FAG,JN49LX,,,,,,01/03 +DH9GCD,JN38VF,,,ex DG9GCD,,144: 11el 100W MGF1302,05/02 +DH9KAE,JO30BW,,,,,,01/93 +DH9NBB,JN49WS,,,ex DG9NBT,,,01/99 +DH9NFM,JO50RF,EME,,,,144: 2X17 M2 - 432: 2X38 M2 - 1296: 4x21 - 2320: 67ele - 10368: 60cm dish,06/05 +DH9OK,JO51AS,,,,,,06/04 +DH9OY,JO51AQ,,,ex DG5OAA,,,05/00 +DJ0QZ,JN49LM,EME,,,,144: IC746 8877 2x18el M2 MGF1302,11/01 +DJ0RU,JO31KM,,,,,,07/02 +DJ1JD,JO52CK,EME,,,,,08/00 +DJ1LP,JO64,,,,,,01/93 +DJ1OJ,JN58SE,,,,,144: 100W 2x11el SP2000,10/00 +DJ1SHF,JO73AM,,,,,144: TS711 120W 2x10el- Preamp,11/96 +DJ1TU,JN48TR,EME,,EX DL2SAD,,FT-897D,10/07 +DJ2GM,JN58SC,,,,,,04/06 +DJ2IA,JO71AO,,,ex DM2BHF,,144: FT736R 100Watt 9-ele-Yagi,08/02 +DJ2IE,JN48HV,,,,,,07/02 +DJ2JA,JO40IM,EME,,,,,04/04 +DJ2JS,JO31SL,,,,,,04/04 +DJ2KQ,JO30BW,,,DC8KQ DH9KAE,,FT736R 2x14elm 144Mhz - 5elm 50Mhz,12/07 +DJ2QV,JN58UA,,,= M0RUN,,,06/09 +DJ2QV/P,JN57XX,,,,,,06/09 +DJ2XS,JO53AK,,,,,,01/95 +DJ3FI,JO31DI,EME,,,,,08/00 +DJ3HW,JO42LH,,,,,144: R2CW 750W 12elM2 MGF1302 432: 750W 28el.M2 1296: 220W 48el.,09/08 +DJ3JJ,JN48JS,EME,,,,TS2000x,01/09 +DJ3LE,JO44TN,,,= OZ7LE,,50: 25WERP 5el - 144: 2x17el 600W - 432: 2x21 100W,02/04 +DJ3MY,JN58QD,EME,,,,144: 600W 4x17el,08/99 +DJ3RU,JN58,,,,,,01/95 +DJ3ST,JN48,,,,,,01/03 +DJ3TF,JN59WK,,,,,,06/00 +DJ3VI,JO43VI,EME,,,,144: FT736r 2x11el 750W,02/06 +DJ4SO,JO44WG,,,,,,11/99 +DJ4TC,JO63PN,EME,,EX Y21TC DL1NTC,,144: 380W 2x 11el - 432: 460W 2x 26el homemade,05/08 +DJ4UF,JO30BR,,,,,144: 300W 2x 8el MGF1302,09/04 +DJ5BV,JO30KI,,,,,144: 600W 11el MGF1302 - 432: 400W 20el - 1296: 500W 4x20el - 10386: 15W 1m dish,07/02 +DJ5CL,JN58WH,,,ex DG1MHY,,,08/00 +DJ5DT,JN49IV,,,,,,05/02 +DJ5HG,JO53IU,,,,,,06/04 +DJ5MN,JN58WH,EME,,,,,06/96 +DJ5MS,JN68KS,,,SilentKey,,,10/99 +DJ5NV,JN59KN,EME,,ex DL9NDD,,,12/01 +DJ5RE,JN59WK,EME,,,,144: GS35b 250W 2x12el M2,03/04 +DJ5SQ,JN37UW,,,,,144: TS870 LT2S 600W 11el,12/97 +DJ6JJ,JO31LG,,,,,,12/01 +DJ6MB,JO30,EME,,,,,01/94 +DJ6OL,JO52AP,,,,,,05/08 +DJ6SN,JO30BU,,,DC6SN DH6SN,,YAESU FT-736R -PA- 2m 2x17Ele -6m 5Ele --IC7000,07/08 +DJ6TN,JO54CF,,,,,,09/96 +DJ6WD,JO40AT,,,SilentKey,,,03/99 +DJ6XV,JO31LQ,,,,,,04/04 +DJ7AL,JO61VC,EME,,,,144: IC910 VLA 200 4el F9FT,04/06 +DJ7FJ,JN48AG,EME,,,,,01/94 +DJ7IL,JO52LD,,,,,IC7400 IC910H HLV120 homemade,04/07 +DJ7OF,JO51HQ,EME,,ex DG5OAE,,144: 6x17el CC 17B2 MGF1302 EME Pwr,04/05 +DJ7OQ,JO42WJ,,,,,144: TS 850 LT2S PA 2x 4CX250 Preamp 0.5 dB M2 5WL,06/09 +DJ7PW,JN48TR,,,,,IC7400 11ele Yagi,12/07 +DJ7RI,JO54CH,,,,,,12/03 +DJ7RST,JN59UK,EME,,,,144: 4 x 2MXP20 1k2 432: 5 x 20el 1k5,09/07 +DJ8ES,JO43SX,,,,,144: 300W 17el - 432: 300W 24el - 1296: 100W 49el - 2320: 10W 44el - 10368: 1.5W 60cm Parabol,08/03 +DJ8MS,JO63CT,EME,,EX DG5TR,,144: 750W 11el 7ZB Preamp 432: 300W 2x13el 7ZB Preamp,02/08 +DJ8OG,JO40MF,,,,,IC 275H 8el DK7ZB,04/04 +DJ8PB,JO44MC,,,SilentKey,,,01/93 +DJ9CS,JO54DG,,,,,FT-847 200W PA 50: 3 el 144: 9el,09/04 +DJ9EV,JN49SC,EME,,,,FT847/17 el yagi,02/09 +DJ9FG,JO52TD,,,ex DM2CFG Y23FG DL9ZFG,,HF: FT757GXII 10m Longwire - 50: 25W IRF610 Dipol - 144: 300W 9el- 432: 150W 12el,10/06 +DJ9JY,JO31JM,,,ex DG1JY,,,01/01 +DJ9KV,JN68OK,,,,,,06/95 +DJ9MG,JO52TC,EME,,EX DM2BQG Y22QG DL8CME,,144: 2x 17el 500W,01/08 +DJ9YE,JO43HV,,,,,144: 400Watt 17el M2 MGF1302,02/08 +DJ9YW,JO42QA,EME,,,,144: 2x10el 500W - 1296: 3.5 and 4.5m dish 360W,02/01 +DK0AK,JO30NQ,,,,,,05/04 +DK0ALK,JN38TD,,,,,,06/96 +DK0BN,JN39VX,EME,,,,144: 700W 3x 9el F9FT + 2x 11elF9FT,09/03 +DK0EP,JO31TS,,,,,,11/04 +DK0IG,JN58SE,,,,,144: 350W 2x11el,12/96 +DK0NHF,JO62JR,EME,,,,,01/94 +DK0OG,JN68GI,EME,,,,144: 700W 8x17el,12/04 +DK0R,JO50AN,EME,,= DF0CK,,144: 500Watt 2x11el,09/05 +DK0TU,JO62PM,EME,,,,144: 4x 12el QRO,05/06 +DK0TX,JO50HK,,,,,,03/02 +DK0UB,JO31PK,,,,,,08/97 +DK0VV,JO61WB,,,,,144: 550W 4x7el MGF1303,03/04 +DK1CM,JO40LG,EME,,ex DL2FDX,,144: FT990 LT2S 700W YL1050 18el MGF1302 - 432: 41el MGF1302 - 1296: 48el MGF1302,04/01 +DK1CO,JO63SX,EME,,EX DL9GKA,,TS2000 TS790 AMPLITEC PA UG2-100-1500 50: 4el 144: 4x17el H 2x17el V LNA 432: 50 W 2x 20el LNA,03/08 +DK1EJP,JO31DD,,,,,,03/03 +DK1KO,JO53CT,EME,,,,144: 8877 4X17el F9FT full elevation MGF1302,11/08 +DK1MAX,JN58SP,EME,,EX DL4MDQ,,144: 11 el F9FT 750W,10/08 +DK1MZ,JO42XP,EME,,ex LZ1KU DL4ABJ,,144: EME Pwr 13el MGF1302,11/03 +DK1PZ,JO41TH,EME,,,,,01/94 +DK1VI,JN49HH,,,,,144: 650W 16 el.- 432: 100W 21 el.- 1296: 120W 1-2m Spiegel,09/08 +DK2AM,JO43AK,,,,,144: 450W 4x14el MGF1302,12/01 +DK2BJ,JO30BS,,,,,IC746 PRO IC706MKIIG Transverters,05/07 +DK2FT,JO42KC,,,,,,01/03 +DK2PH,JO41GV,EME,,CT1DTQ,,IC 746 50: 6M7JHV - 144: 4x 16JXX,07/07 +DK2UO,JO30,,,,,,01/93 +DK2YCT,JO32RG,,,,,,12/03 +DK2ZF,JO43VH,EME,,,,,10/08 +DK3BU,JO33NO,EME,,,,50: 25 W ERP 5el - 144: 749W 4x12el Preamp - 432: 749W 4x34el Preamp (16x11el) - 1296: 749W 0.9m dish,08/08 +DK3DUA,JO61TC,,,ex DG0DU,,144: FT847 1000Watts ERP,04/00 +DK3EE,JO41GU,EME,,= DK3T ex DL9YEY,,144: 8877 4x 24el M2,09/06 +DK3EP,JO31TS,,,,,,06/05 +DK3FB,JO31UC,EME,,,,432: 750W 4x23el - 1296: 150W 37el - 2300: 5W 65el,03/01 +DK3IK,JN39JF,,,,,,04/97 +DK3MU,JO72GK,,,,,,10/04 +DK3NG,JO43VC,EME,,,,,01/09 +DK3QN,JN58LJ,EME,,,,,06/09 +DK3QZ,JO31LP,,,,,,07/02 +DK3RV,JO31,,,,,,07/96 +DK3SE,JN37VP,EME,,,,144: 50W 2x 12JXX,04/05 +DK3SML,JN49SF,,,DO3ML,,IC-910H 100 W 9-elem. Yagi after DK7ZB,05/09 +DK3T,JO41GV,EME,,,,,08/05 +DK3WG,JO72GI,EME,,EX DM2BYE Y22ME DL3BWW,,144: GS35B 6x 14el (5wl) 432: GS23B 8x 27el & 16x27el 1296: 100 W 1x55el,06/08 +DK3WW,JO62NH,,,EX Y54WL Y21EF Y41ZF DL6USB,,,10/07 +DK3XM,JO43XL,,,,,144: 700w 2x2wl 60m asl,09/04 +DK3XT,JN49FE,,,= AB7IY,,,01/07 +DK4JN,JO31,EME,,,,,01/94 +DK4KW,JO60EM,,,EX DG0JWW,,TS-2000X,05/08 +DK4OG,JN68GI,,,,,,01/03 +DK4TG,JO31LB,EME,,,,144: 2X11el. 750W,12/07 +DK4U,JO42FD,,,,,144: 8874 250W 2x9el - 432: 3CX800 4x18el,02/08 +DK4WN,JN49EP,,,ex DC1PN,,,11/03 +DK4XI,JN39NG,,,,,,01/03 +DK5AI,JO51GO,,,,,,10/07 +DK5DC,JO31SL,,,,,,07/02 +DK5DQ,JO31PG,,,,,144: 300W 2x10el,03/04 +DK5DV,JO30XS,,,,,FT-847 TS850SAT,04/09 +DK5E,JO42DC,EME,,,,,07/06 +DK5EW,JN48MB,EME,,EX DG3GAG,,144: IC-7400 ATF54143 HEMT 16x 7el 750Watt,11/08 +DK5IT,JN49FB,,,,,,01/03 +DK5KK,JO63EX,,,ex DG0KK,,,01/01 +DK5KMA,JO50IK,,,ex DO8KB,,,03/06 +DK5LA,JO44TR,EME,,,,144: 100W 20el,08/05 +DK5MV,JN58WH,,,,,,08/97 +DK5OX,JN59MO,EME,,,,TS-2000X 144: 10el DK7ZB 50: Dipole,08/07 +DK5PD,JN39VV,EME,,,,,03/00 +DK5SO,JN58AV,EME,,,,144: TS700 600Wtts 4x3.5WL,12/08 +DK5TE,JN58BG,,,,,144: IC746 HLV600/8877 2x13el 432: IC475H 2x20el GS35b,05/02 +DK5WL,JN39VW,EME,,,,144: 750W 2x 2MXP20 (10 element XPOL),09/07 +DK5WO,JO30AS,,,,,YAESU FT-767GX LT23S,07/05 +DK5YA,JN49NX,EME,,EX DH8NAA,,50: 4el - 144: GS35b 4x9elM2 PHEMT 0.3db - 432: TH338 19el BV,06/07 +DK6AS,JO52,EME,,,,,02/01 +DK7BY,JO33RJ,EME,,,,750W,03/04 +DK7DN,JO40CW,,,,,,05/09 +DK7DR,JN47DP,,,EX DL8GCL DG7GAL 9H3XV,,IC821,07/06 +DK7LH,JO43BB,,,ex DG8BCC,,144: IC271 400W 2x3.6wl 9BV - 432: IC471H 100W 4x11wl 9BV,12/01 +DK7LZ,JO30,,,,,,12/01 +DK7T,JN48XK,,,ex DL0UL,,144: 11el 400W 3CX800,12/05 +DK8EL,JO31LJ,,,ex DH6JT,,144: 100W 9el MGF1302,12/04 +DK8KX,JO30,,,,,,05/04 +DK8VS,JN39NF,EME,,,,,07/01 +DK8ZJ,JO54AG,EME,,,,144: 600W BEKO 4x 12el M2,09/05 +DK9OY,JO52CK,EME,,,,,10/01 +DK9RL,JN69BB,,,,,,01/97 +DK9ZY,JO40BE,EME,,,,144: TS850 Trvt YL1052 MGF1302 4x10el 2.2wl DJ9BV,11/99 +DL0AO,JN59WI,EME,,,,,02/03 +DL0AVH,JO52,EME,,,,144: 700W 2x2M18XXX,07/01 +DL0BWS,JO64EB,,,,,144: IC-910 100W 2x9el 432: IC910 4x19el 75W 1296:IC910 2x35el 10W,04/07 +DL0DAN,JO33OP,,,SPECIALCALL,,,03/98 +DL0DBR,JO54WC,EME,,,,,06/99 +DL0DET,JO52CK,EME,,,,,01/94 +DL0EF,JO30IM,,,,,,01/03 +DL0FTG,JO53FM,,,,,,04/01 +DL0GER,JN49CC,,,,,,08/00 +DL0HES,JO41RF,,,,,IC820H 144: 250W 2x11el - 432: 130W 2x23el Preamp,07/01 +DL0HOF,JO50XG,EME,,,,144: 2x 10el 750W 432: 4x19el 250W 1296 56El 30W,08/07 +DL0LAU,JO61JF,,,,,,05/02 +DL0LN,JO31RS,,,,,,10/04 +DL0LSW,JO61XU,,,,,144: 17el 750W,12/99 +DL0PO,JO43CD,,,,,,08/96 +DL0SHF,JO54BH,,,,,,01/03 +DL0UEM,JO73AR,,,,,,07/05 +DL0UL,JN48XK,,,= DK7T,,144: 11el 400W 3CX800,12/05 +DL0UMK,JN68BC,EME,,,,144: TS790S 4CX1000 4x17el 5WL,01/95 +DL0VV,JO64AD,EME,,,,144: 500W 4x WY209 Preamp 3SK121,09/07 +DL0WAE,JO42DC,EME,,,,750w and lots of aluminium!,05/04 +DL0WH,JN49HN,EME,,,,,01/92 +DL0WX,JO30FQ,,,,,,07/96 +DL1AAH,JO52EF,,,,,IC-756pro3 / TR-144H+40 / TR-432H / 12 and 28 el M� yagi,06/09 +DL1AIW,JO43SX,EME,,,,FT 736 FT 221 FT 290,08/08 +DL1AOQ,JO50IW,,,,,,05/02 +DL1BKY,JO33RL,,,,,,01/03 +DL1DAX,JO31RM,,,,,144: IC251E 100W 11el - 432: FT780R 30W 19el,07/05 +DL1DSB,JO61,,,ex Y28OL,,,01/93 +DL1DUR,JO70KV,EME,,,,144: IC275H 700W 4x11el S3030,08/00 +DL1DWI,JO61TD,EME,,,,144: 2x 8el 750W,06/06 +DL1EAP,JO31IK,,,,,144: 12el 750W,04/07 +DL1EEX,JO31MA,,,,,144: 750W 10db ant.,09/00 +DL1EFJ,JO31GM,,,NOT qrv MS nw (01/01),,,09/01 +DL1EL,JO41RF,,,ex DL3ZBA,,IC820H 144: 250W 2x11el - 432: 130W 2x23el Preamp,09/01 +DL1ELY,JO31IO,,,,,144: FT225rd Mutek 17el 150W,01/01 +DL1GBF,JN48NJ,EME,,,,,02/97 +DL1GBM,JN48FD,,,,,50: 7W - 144: 400W- 432: 100W- 1296: 200W,07/02 +DL1GGT,JN58AO,EME,,,,144: 8877 2x 12el elev. 10368: 5W 60cm,12/04 +DL1GI,JN49FG,,,ex DL1GJO,,,12/03 +DL1GNM,JN38WB,,,,,,10/02 +DL1HTT,JO61FR,,,,,,11/99 +DL1HYZ,JO62,EME,,,,,03/01 +DL1JJ,JO31IA,,,,,,08/02 +DL1KDA,JO30FQ,EME,,EX DG1KDA,,FT1000 144: LT2S 3CX800A7 Preamp 17ele M2 432: LT70S 3CX800A7 Preamp 2x39el M2,10/07 +DL1MAJ,JN68AH,,,= HA1BC,,144: 2x17el 750W,12/99 +DL1NEO,JN59KV,,,,,144: IC275H SP2000 Beko HLV600 (max. 600 W) 2x17el Tonna,09/99 +DL1NFI,JN59KV,,,ex DG5NGC,,144: IC746 100W 12el M2,01/02 +DL1NUX,JO50LE,,,DO2NAK,,KWD TS2000X IC706MK II G,04/07 +DL1OJ,JO42QI,,,,,144: Elecraft K2 LT2S Beko HLV600 9el 300W,04/07 +DL1RNW,JO62GH,EME,,,,144: 300W 4x10 DK7ZB,12/07 +DL1RTL,JO62PH,,,,,144: 13el 100W MGF1302,07/01 +DL1SDN,JN48PP,,,,,144: 2x11el 500W,07/99 +DL1SFK,JN48PR,,,,,,06/02 +DL1SUN,JO53PN,,,ex Y21NB,,,04/00 +DL1SUZ,JO53UN,EME,,EX Y24LB,,TS2000 2m: GS35 2x2.2WL Preamp 3SK121 70cm: 2xEC9000 2x7.7WL Preamp.,01/09 +DL1UU,JO62SP,,,ex DL7VBW,,144: 300W 2x9el,04/06 +DL1VPL,JO61UA,,,EX Y21PL DM2GPL DM3XML,,,05/09 +DL1YDD,JO31OO,,,EX DG8YDJ,,144/432: 4CX250 X-Yagis 3 m 1296: 100 W Yagi 3 m,08/08 +DL1YMK,JO31QX,EME,,EX DB1DI,,,10/07 +DL1ZU,JO40IM,,,,,,06/09 +DL2ALF,JO50IW,,,,,144: 100W 9el,08/02 +DL2ARD,JO60AR,,,,,144: IC275E 350W 4x17el,02/05 +DL2BWH,JO62XR,EME,,,,HF: TS 830+GS35+ Log-Periodic /// 144: 350 W 10 over 10 El. Yagi,08/08 +DL2CJ,JO50,EME,,,,,01/94 +DL2DAO,JO31PH,,,,,144: 600W 24el,11/02 +DL2DBX,JO31OL,,,,,,07/05 +DL2DXA,JO61VC,,,,,144: 150W 11el,01/97 +DL2EAA,JN59PL,EME,,,,,06/09 +DL2FCN,JN49JU,EME,,,,50: 10W 2el BF981 - 144: 400W 11el MGF1302 - 432: 30W 19el CF300,03/06 +DL2FDL,JO40LN,,,,,FT736R 50: 5el - 144: 150W 9el - 432: 19el 25W - 1296: 23el 10W,08/03 +DL2GPS,JN48CD,EME,,DG2GPS,,TS2000 144Mhz:4x9el DK7ZB Yagi 432Mhz 2x20el X-Yagi Maspro,03/09 +DL2IAN,JN49BC,EME,,,,144: 1 KW 2x9el,07/01 +DL2IE,JN48,,,,,,01/93 +DL2JA,JN58,,,,,,02/04 +DL2LAC,JO44MR,EME,,,,144: 18 dBd GS35b 432: 20 dBd GS35b 10368: 4 m dish,03/05 +DL2LAH,JO44QS,EME,,DD0LV,,144: 750W 4x12ele DK7ZB 432: 300W 4x16 ele DK7ZB,02/09 +DL2MF,JO52DP,,,DL4OBI,,,06/08 +DL2MHS,JN58,EME,,,,,03/00 +DL2NFX,JN59IV,,,,,144: IC746 100W,04/01 +DL2NUD,JO63MF,EME,,,,144: 4x 18el QRO,05/06 +DL2NWK,JO63SP,EME,,,,,01/93 +DL2OCB,JN49HR,,,,,TS-2000,06/07 +DL2OM,JO30SN,EME,,,,,08/01 +DL2RDH,JN68HW,,,,,TenTec ORION II + DB6NT-Transverter+PA,05/07 +DL2RMC,JN68GI,,,,,,11/97 +DL2RSX,JO62SH,EME,,,,144: 19 dBd MGF 1302 DSP 1-2KW,12/03 +DL2RUG,JO62,,,,,,01/03 +DL2SDQ,JN49OC,,,,,,08/01 +DL2YDS,JO32,,,,,,08/97 +DL3AAL,JO52,,,,,,01/93 +DL3ANK,JO50NL,,,,,,10/07 +DL3AZI,JO51ME,,,,,,01/97 +DL3BUE,JO72FH,,,,,,08/02 +DL3BWG,JO62TQ,,,ex DM5DD Y26GE DR3R,,FT-847 11-ELE-F9FT,03/06 +DL3DTS,JO61UA,,,,,,01/93 +DL3FBJ,JO40,,,,,,11/01 +DL3HRT,JO61AB,,,ex Y32MH,,144: 10el 2.3wl 100W GaAsFet DSP-NR,07/02 +DL3IAE,JN49DE,EME,,,,50: TS120 trvt 6el - 144: 3CX800 750W 2x10el MGF1302,08/05 +DL3IAS,JN49EJ,,,,,144: 20w 10el DK7ZB 432: 3w 23el DK7ZB 1296: 100w 1.5m 2320: 75w 1.5m 3400: 40w 1.5m 5760: 8w 1.5m 10368: 10w 48cm,07/05 +DL3JAN,JO60KT,,,,,144: 9el 300W,03/01 +DL3JIN,JO60LX,,,Y32IN,,50W 6ele,05/08 +DL3JPN,JO60IS,,,Y56YN - Y23PN,,2m 150W@9ele - HF 500W@3ele (20/15/10) and FD4 - 70cm 100W@10ele,03/07 +DL3LBK,JO54AH,,,,,144: 250Watt 11el,07/96 +DL3LSM,JO61GG,EME,,,,Elecraft K3+TR144H - 300 W - 11 ele. Flexayagi,01/09 +DL3LST,JO61FI,EME,,,,144: 9el,04/05 +DL3MBG,JN68,,,NOT qrv MS nw (01/01),,,12/05 +DL3MGL,JN58QD,,,= EA/DL3MGL,,,12/01 +DL3NAW,JN59KV,,,zzT W3TWX,,144: 500W 2x11el,08/03 +DL3NCR,JN48QX,,,,,50: IC736 3el Yagi - 144: IC275E 11el DL6WU 8874 BF982,08/08 +DL3NUA,JO64XB,EME,,EX Y38ZA,,144: 500W 9el Yagi,02/07 +DL3RBH,JN68HJ,,,,,,05/99 +DL3RU,JN49FG,,,,,,01/03 +DL3SAS,JN48OR,EME,,,,,04/96 +DL3TN,JO31LC,,,,,,12/01 +DL3TW,JO44SK,,,,,144: FT1000 LT2S 6x6el 600W,01/03 +DL3WW,JO60FL,,,,,,08/08 +DL3XT,JN49FT,,,,,,01/93 +DL3YBP,JO42,EME,,,,,01/93 +DL3YEE,JO42GE,EME,,,,50MHz: 5ele 70MHz: 4ele 144MHz: 5el 100W 432MHz: 28ele 400W 1296MHz: 48ele 150W,05/08 +DL3YEL,JO41EV,,,,,144: 9el 3CX800,03/06 +DL4ABJ,JO42XP,,,,,,01/03 +DL4ALI,JO50JW,,,,,,07/99 +DL4ANT,JN49LF,,,,,,09/01 +DL4AO,JO42NX,,,,,144: 150W 11el,05/08 +DL4DD,JO43OT,,,,,TS2000,07/05 +DL4DTU,JO60TS,EME,,,,1296: 200W 3.7m dish 0.4db,08/05 +DL4DWA,JO61QH,EME,,,,144: 600W 13ele 432: 35w 19ele,12/05 +DL4EA,JO31,,,,,,09/96 +DL4EBY,JO62PM,EME,,,,,12/03 +DL4IB,JO64CC,,,ex DL5KVA,,144: 11el 300W,12/98 +DL4JM,JO31ED,EME,,,,144: 4el 100W,05/05 +DL4KG,JN48OU,EME,,,,TS2000 - 50: dipole 30 W 144: 10el DJ9BV 100 W 432: 23el DJ9BV 300 W 1296: 35el 80 W,04/07 +DL4MEA,JN58RI,EME,,,,432: 4.5m dish EME KA0RYT peamp GS35b 1296: TH347 750W 1.5m tropo 4.5m dish EME FHX35 HEMT preamp 2320: 1.5m tropo 4.5m dish EME 2xMRF21120 HEMT preamp,04/07 +DL4MP,JN48NV,,,ex DL8SET,,50: 100W 5el,01/01 +DL4NAA,JO40OC,,,,,144: hm 750W 2x15el,09/07 +DL4SUN,JO63CT,,,,,,10/04 +DL4WO,JO61WC,EME,,,,144: 17el 150W,04/05 +DL4XX,JO43XK,,,,,,07/97 +DL4YAO,JN58,,,,,,05/02 +DL4YBM,JO42DC,,,,,,01/95 +DL5AG,JO63CT,,,,,350W 11el Yagi,06/07 +DL5BAC,JO43LG,,,,,,01/96 +DL5BBW,JO32NH,,,,,,01/01 +DL5CC,JO64AD,,,ex DL5KVD,,144: 17el 600W,12/06 +DL5DAV,JO31,,,,,,06/08 +DL5DTA,JO61SD,EME,,,,144: 4x11el EME Pwr GaasFet DSP59,08/99 +DL5EBS,JO31LH,,,,,144/432MHz: TS790+13 el./20 el. Yagi. 50MHz:Icom+4 el. Yagi,05/09 +DL5FDP,JN49LP,,,,,,11/02 +DL5FN,JO40FB,EME,,,,432 8X28 QRO,04/09 +DL5GAC,JN47UT,EME,,,,144: 400W 11el Flexa CF300,04/08 +DL5IO,JN49NI,,,,,,01/97 +DL5LF,JO54,EME,,,,432: 1KW 4x9el 9BV 8.5lb - 1296: 20W 23el,08/00 +DL5MAE,JN58VF,EME,,,,144: 8x17el 700W,07/05 +DL5MAM,JN58UB,,,,,144: 100W 10el,07/04 +DL5MCG,JN58KH,EME,,,,144: 11el 500W,05/07 +DL5ME,JO52SD,,,ex DL6CIA,,144: 100W 18el,04/04 +DL5MEL,JN58,,,,,144: 600W 11el,03/00 +DL5NEN,JN59MO,,,ex DH5NBE,,144: 12el GS35b MGF1302 - 432: 28el GS35b - 1296: 35el 40W,12/97 +DL5OAU,JO52GW,,,,,,01/03 +DL5QQ,JO32KB,EME,,,,,04/96 +DL5RBW,JN58VF,,,,,,01/03 +DL5RDI,JN58XX,,,DG1RCJ,,,08/08 +DL5RDO,JN59VN,,,,,,01/92 +DL5ROB,JN68HG,,,ex DG5CH,,144: 300W 16el BF981,03/07 +DL5UJ,JN39UJ,,,EX DC8IL,,IC-271E 150watts MGF1302 preamp 5el DK7ZB,05/07 +DL5WG,JO52VK,,,ex Y52WG- DL6CRS,,50: 20W 4el - 144: 300W 2x11el,05/04 +DL5XV,JO53AP,,,,,144: 2x15el 600W,06/06 +DL5YAS,JO31WS,,,,,,12/01 +DL5YET,JO41EV,,,,,144: 750W 13el - 432: 750W,04/02 +DL5ZA,JO51HK,,,,,144: IC706 100W 14el F9FT,08/07 +DL6BF,JO32QI,EME,,,,144: 400W 4x 8el - 432: 150W 4x11el,03/09 +DL6KR,JO30NQ,,,,,,10/05 +DL6LAU,JO53CF,EME,,,,,07/03 +DL6LI,JO53BV,,,,,,06/07 +DL6MFK,JN67JX,EME,,,,,08/07 +DL6NAA,JO50VF,EME,,,,,10/00 +DL6NCI,JO50VI,,,,,,01/93 +DL6NDK,JO53BV,EME,,,,TS790 40W 350W 8El Yagi 12dBd,01/08 +DL6RDR,JN68BM,,,,,,10/95 +DL6UAL,JO61XU,,,,,144: 750W 2x BigWheel,12/00 +DL6WT,JN39VV,EME,,,,,04/96 +DL6WU,JN49HT,EME,,,,,02/04 +DL6YEH,JO32VA,EME,,ex DG3YFB,,144: IC730 LT2S 749W 2x2.2wl 9BV - 432: IC730 LT70 200W 4x8.8wl 9BV,03/02 +DL6YFB,JO31KM,,,ex DH4YAT,,,01/96 +DL6ZAU,JO40JF,EME,,,,FT736+MHP145 144: 600W 1x 12el M2,05/07 +DL6ZBN,JO40ED,,,currently not active 01/04,,144: TS700S 80W 11el MGF1302,05/02 +DL7AKA,JO62QO,EME,,,,144: TR7 Trvt 2x4CX250b 15el DJ9BV,01/01 +DL7APV,JO62JR,EME,,DC7PV,,432: 16x39el. EME 8x21el. Tropo,01/09 +DL7ARM,JO62RJ,,,,,,12/95 +DL7AUK,JO62,,,,,,01/03 +DL7DCU,JO41BC,,,ex DG7DCU,,144: FT767 100W 4x11el MGF1302,03/99 +DL7FF,JO62TJ,EME,,ex DL7UTS,,HF 100W FD4 - 144: 4x11el 1KW,04/05 +DL7HR,JN58PF,EME,,,,IC 7400 - 144: 2x 8el LY hor 800W,02/08 +DL7PP,JO30SE,,,,,FT920-6m Transverter 144: 2x 11el F9FT 50: 6el DK7ZB,08/05 +DL7QY,JN59BD,,,,,,10/08 +DL7TX,JN49IV,,,ex DC7AP,,144: 50W 6el - 432: 17el 100W,11/01 +DL7UAE,JO62PH,EME,,,,FT736R 50: PA Tonna20505 - 144: GS35 4x3wl (13el) 90degElev - 432: GS35 2x6wl(19el),10/06 +DL7UDA,JO62TK,EME,,,,144: IC275H 2xGI7B 17 el F9FT (GS35B 2x10el DK7ZB) 432: IC475H GS35B 21el F9FT (GS23B 4x21el DK7ZB),10/08 +DL7UGB,JO62,,,,,,05/97 +DL7ULE,JO62,,,,,,12/95 +DL7ULM,JO62SN,,,,,,05/01 +DL7UME,JO62SN,,,,,,01/03 +DL7YC,JO62PK,,,,,HF: 400W - 50: 10W - 144: 200W - 432: 750W - 1296: 110W - 2320: 125W - 10368: 33W,09/03 +DL7YW,JO62RK,EME,,ex DC7OL,,,01/02 +DL8AKI,JO51,,,,,,11/95 +DL8AKR,JO51AI,EME,,DM2CGI Y25VI,,144: FT847 150 Watt PA 5 EL-YAGI (10db) next more,02/08 +DL8BBL,JO42,,,,,,04/04 +DL8BDU,JO43AA,,,ex DC9BJ DH5BAG,,144: 750W 15el 432: 250W 2x 20el,01/08 +DL8CMM,JO52VM,,,,,,05/04 +DL8DAT,JO31,EME,,,,,01/93 +DL8DBU,JO30NP,,,ex DG8FCB DH6DAH,,144: TS-2000X single 2M12 600W 0.35dB,07/06 +DL8DUL,JO61,,,,,,08/04 +DL8EBW,JO31NF,EME,,EX DD0EF,,TS-2000 144: 2x 12el M2 full Elv 750W MOSFET LNA144MKII-SSB RX: ONKYO T-4711 PCR1000 7el Crossyagi,01/09 +DL8FBD,JO40,,,,,,01/93 +DL8GAM,JN37,,,,,144: TS870 600W 11el,12/97 +DL8GP,JN39LH,EME,,,,144: SE400 FT847 4cx250b GS35b 90mtr.coax 500watt in 8x 20el.crossyagis,04/05 +DL8HCZ,JO53AP,,,= CT1HZE,,,11/00 +DL8II,JN49,,,,,,07/08 +DL8LAQ,JO43XU,,,,,IC-7400 8874 M2 2M5WL,06/08 +DL8MEM,JN57XX,,,,,,12/06 +DL8NBN,JN58,,,,,,01/93 +DL8OBU,JO42XI,EME,,,,432MHz: 750W 4x33el - 1296MHz: 150W 67el,11/01 +DL8SCL,JN48RM,EME,,,,,03/01 +DL8SCQ,JN48RV,EME,,DG8SAV,,TS711E + 3CX800/GS35b + 2 * 10 DJ9BV( 1990 ) H,06/09 +DL8UCC,JO71EQ,EME,,,,144: 500W 2x11el or 2x17el,07/04 +DL8WKR,JO61CD,,,,,,09/06 +DL8YAU,JO41HS,EME,,,,144: Ant: 12 El 4WL PA: 700W-MOSFET VV: ATF54143,03/09 +DL8YE,JO31MH,,,EX DL8YET,,50: FT847 5el DK7ZB - 144: FT847 10el DK7ZB GS35 - 432: FT847 30w 23el DK7ZB - 10368: FT290 DB6NT Transv 5W 65cm dish,04/08 +DL8YHR,JO41GV,EME,,ex DH8YHR,,50: LT6S 2x9el M2 - 144: 24el M2 750W,11/05 +DL9AN,JO62RE,,,ex DL7UME,,50: 10W 5el - 144: FT736r 750W GS35b 2x12el,08/04 +DL9BDM,JO33RL,,,,,,01/93 +DL9DAK,JO43XO,,,DG5DT DH4DAB,,IC7000,04/07 +DL9DBJ,JO31OK,EME,,DG8DU,,VHF FT897D GS23b 7El UHF FT897D TH308 2x 19El,07/08 +DL9EBF,JO31FH,,,,,,01/03 +DL9EBL,JO31,EME,,,,,01/94 +DL9GBH,JN48RW,,,,,,12/01 +DL9GRE,JO61FH,,,Y66XA,,HLV600 10Eel DK7ZB DEMI Transverter,10/07 +DL9GS,JO31OM,EME,,,,,07/08 +DL9IM,JO31,,,,,,07/04 +DL9KR,JO40DE,EME,,,,,09/02 +DL9LBH,JO30MP,EME,,,,TS-2000 144: 2x 11el 500W - 432: 23el 50W,08/08 +DL9MCC,JN58UA,,,,,144: 4x 2-4wl 700W MGF1302 - 432: 2x 7wl 700W MGF1302,08/03 +DL9MS,JO54WC,EME,,EX DL9GJW,,144: 4x17el GS35b MGF1302,11/05 +DL9NBD,JO50LE,EME,,,,TS790 150w 2x11el,03/07 +DL9NDD,JN59KN,,,,,,01/03 +DL9NDW,JO50XG,,,,,IC7000 2m=400W/17el 70cm=100w 21el,06/09 +DL9OA,JO64EB,,,,,144: IC821 100W 9el/2.5wl CF300,03/02 +DL9OBD,JO42QN,EME,,,,IC7400 144: 4x11el 750W BF981 - 50: 5el 25W,05/08 +DL9RCI,JN68,,,,,,07/95 +DL9USA,JO71EN,,,,,144: 10el DL6WU 300W RXAmpl,09/03 +DL9YEY,JO41GV,,,,,,01/03 +DM1AC,JO30IV,EME,,DC9KZ,,TS2000 - 144 MHz 750W - 2 x 9 ele - 50 MHz 10W - 4 ele,09/08 +DM1CG,JO31IC,,,EX DG1ELE,,50: TS 850 LT6 4el - 144: TS 850 LT2S 600W 12el M2 HF: FT 850,10/08 +DM1HD,JO31GD,,,ex DC1JP,,144: TS850S LT2S HLV600 600Watt 17 EL M2,08/02 +DM2BHG,JO51MW,EME,,EX HZ1AB- Y22HG,,144: 4x 17el XPol 2xGS35b MGF1302,01/08 +DM2DXG,JO51MV,,,,,,06/02 +DM2ECM,JO62GJ,,,Y25CD,,,05/08 +DM2GS,JO42HJ,,,,,,12/04 +DM2HB,JO41EQ,,,,,50: FT950 144: IC-706MK2G 50W 11el F9FT,06/09 +DM2LL,JO62VU,,,DG3BSD,,HF:500 W- Beam 10-15-20 Dipol 2x 31 50 m // 144 : 100 W 11 El,08/08 +DM2PG,JO51,,,,,,04/03 +DM2SR,JO53HR,,,DO4LSR,,144: IC-910 - HA8UG GS31 - 2M18XXX Yagi 50MHz: 4element TenTec 1208 x-verter,05/08 +DM3FG,JN49LT,,,,,,04/03 +DM3FM,JO40MF,,,,,144: IC275H 8el 7ZH,06/02 +DM4KA,JO64II,,,,,,03/03 +DM7RM,JN48HD,,,EX DH3IAJ,,50: 10W 4el 144: 100W 10el 10GHz 5W 48cm dish,04/09 +DM8MM,JO40AQ,,,ex DC9PX DL7AJA,,144: IC-706MKIIG 3CX1500A7 MGF1302 17el. Tonna,11/06 +DN1FC,JO41RF,,,,,IC820H 144: 250W 2x11el- 432: 130W 2x23el Preamp,07/01 +DN1MA,JN58VF,,,,,144: 8x17el 700W,12/00 +DN2MS,JO31OM,,,SpecialCall,,144: C5400 HG51 400W 9el MGF1302,12/98 +DO1CTL,JO60LT,,,,,,08/01 +DO1EDK,JO31RL,,,,,Kenwood TR-751E,08/05 +DO1EL,JO31JL,,,,,,06/02 +DO1NF,JN69,,,,,,08/01 +DO1YDS,JO42HJ,,,,,,04/04 +DO2TC,JO73AO,,,,,,04/05 +DO3ESB,JN59VS,,,,,144: IC275H 17el,07/07 +DO3MT,JN67,,,,,FT817,01/03 +DO5AN,JO31,,,,,,04/02 +DO9ST,JN49VW,,,,,,03/01 +DP5G,JO31IC,,,SpecialCall,,,04/06 +DQ2006R,JO31NF,EME,,SpecialCall,,IC275H or TS2000 144: 2x 12el M2 full elev 750W BIY-ATF-Preamp,06/06 +DR5O,JO31MG,EME,,= DF0AW JO31MG,,FT736 144: 750W 2x 11el 432: 200W 4x 23el 1296: 23el 10W,12/08 +DS1MFC,PM37LM,EME,,,,144: 4x 13el 100W,04/08 +DZ1JP,PK04NC,EME,,,,,03/06 +E51EME,BG08DR,EME,,ZK1EME,,IC-706Mk2g 4x 8el 500W,12/08 +E73DPR,JN92ER,,,YU4DPR,,FT-897 IC-7000,05/09 +E73DU,JN92ER,,,,,,05/09 +E75DX,JN84MX,,,T96C,,TS2000,06/08 +E77AR,JN94AS,,,YU4AR,,Icom IC275 + PA 250W,06/09 +E77GS,JN84OT,EME,,EX T98GTH,,FT897 150 watt 10 el DK7ZB,09/08 +EA1ABZ,IN71QO,EME,,,,144: 4x12el or 11el DL6WU 1500W (4CX250+GS35B) Ga-As FET - 432: 15el 35W,10/02 +EA1AIB,IN82TK,,,,,,08/95 +EA1BBE,IN62BH,EME,,,,,10/05 +EA1BFZ,IN81SS,,,,,,04/04 +EA1BLA,IN53UM,,,,,50: 100W 5el - 144: 1kw 12el MGF1302 - 432(/p): 31el 600W MGF1302 - 1296(/p): 2x55el 80W MGF1302,10/02 +EA1BLX,IN53VK,,,= EB1BXW,,,04/06 +EA1CJ,IN71SW,,,EB1ISN,,IC-7000 Acom 1000,06/09 +EA1CKL,IN82KF,,,,,,08/08 +EA1CRK,IN73DM,,,,,Kenwood ts-790e or Icom 706 MkII 50: 100W 7el - 144: 17el 200W - 432: 19el 130W - 1296: 35el 10W,01/04 +EA1CYE,IN83,,,,,,01/93 +EA1DDO,IN53UI,EME,,,,144: 17B2 100W pHEMT 432: 50W 31el 1296: 10W 55el,09/06 +EA1DDU,IN73EM,,,EX EB1ALC,,144: TS-2000E2+16JXX2+170W 432: TR851E+CC729B 29EL+120W 50: IC706MKIIG+5EL ZX6-5. 1296: TS2000E2+55EL.F9FT+10w.,12/08 +EA1DOD,IN73AN,EME,,,,,01/93 +EA1EBJ,IN73FL,,,,,50: IC729 BV6-1wl - 144: IC275H BV2-4wl - 432: IC475H BVO-8.5wl,03/06 +EA1EW,IM79WS,,,,,,07/95 +EA1FBF,IN73WJ,EME,,,,,04/07 +EA1JK,IN72RA,,,,,,01/01 +EA1KV,IN52PF,,,,,,01/93 +EA1OD,IN73EM,,,,,,01/90 +EA1RX,IN52PF,,,ex EA1BSK,,IC706 MKIIG,06/03 +EA1SH,IN63GA,,,= EB1FIF,,144: 17B2 170W GaAs-Fet - 432: 31el 180W GaAs-Fet,05/04 +EA1YV,IN52OC,EME,,,,50: IC706 2x5el - 144: TS2000 GS35B 1KW 4x 17el M2 full elevation MGF1302,08/06 +EA2AF,IN92,,,,,,01/90 +EA2AGZ,IN91DV,EME,,,,FT1000MP- FT736 144: 4CX1500b 4x17B2CC MGF1402,10/06 +EA2ARD,IN93,,,,,,08/02 +EA2ASB,IN83KF,EME,,EB2DMN EC2BAW,,,11/08 +EA2AVY,IN92DS,,,,,,01/03 +EA2BVD,IN91OO,EME,,EB2ATY,,,11/07 +EA2KP,IN83MG,,,ex EA2AKP,,144: TR751E 2M18XXX 200W Preamp - 432: 100W 21el,04/04 +EA2LU,IN92ET,EME,,,,144: 8x9el 750 W MGF1302,01/06 +EA2LY,IN93AH,,,ex EA4LY,,144: TS790 4CX1500 LNA144 2x18el,08/98 +EA2NN,IN83MG,EME,,ex EA2CHT,,144: 4wl 200W IC706MKIIG,10/06 +EA2RCF,IN82,,,,,,08/02 +EA2RL,IN83MG,,,ex EA2AJX,,50: 10W Dipol - 144: 100W 6el Quad,07/05 +EA3/DL3MGL,JN01ME,EME,,= EA3MS,,144: 1KW 1x17el,04/09 +EA3ADW,JN11CQ,EME,,,,,10/02 +EA3AEL,JN01,,,,,,01/93 +EA3AIR,JN11,,,,,,01/93 +EA3AQJ,JN11BJ,,,,,,01/87 +EA3AXV,JN01TJ,EME,,,,Elecraft K2 IC756II Elecraft trvter. GS35 17el-5WL,05/07 +EA3BB,JN01VS,EME,,EX EA3BBU,,144: 2x 17el 400W MGF1302,09/07 +EA3BEW,JN01SG,,,,,,12/95 +EA3BTZ,JN11BI,EME,,,,144: 100W 16el 0.8db preamp,09/02 +EA3CN,JN11BI,,,ex EA3GAW,,,03/96 +EA3DUY,JN12LD,,,,,144: 4x17el 800W - 50: 6 el 500W - 432: 21el 50W,08/02 +EA3DXU,JN11CM,EME,,SILENTKEY,,,10/07 +EA3ECE,JN01LT,,,,,,11/97 +EA3EDU,JN01WK,,,,,,03/08 +EA3EHQ,JN11HR,EME,,,,,03/96 +EA3ESE,JN01WR,,,,,144: TM-255 VLA200 SHF MVV144-VOX 13 el Yagi,04/06 +EA3FLN,JN11KT,,,,,144: IC275H 450Watts GaAsFET preamp 0.6dB 18ele 18xxxM2,04/04 +EA3FTT,JN01VR,,,,,RIG: IC 275H 120W 13ELE yagui,09/06 +EA3GAW,JN11BI,,,,,,01/03 +EA3GCJ,JN11EM,,,,,Yaesu FT-107M,04/04 +EA3GFB,JN11,,,,,,12/95 +EA3GIQ,JN01ND,,,,,,07/95 +EA3GKU,JN01NJ,,,,,,08/08 +EA3GLJ,JN01UI,,,EC5AKW,,Elecraft K3,03/08 +EA3IH,JN11BJ,,,,,,01/87 +EA3KU,JN00JV,EME,,,,144: IC275H 2x4CX250 16el- preamp,04/05 +EA3MD,JN11,,,,,,01/94 +EA3MM,JN01WH,EME,,,,,01/93 +EA3MS,JN01ME,EME,,DG3MGL,,144: 2x 17el GS35b,10/08 +EA3PL,JN11PL,EME,,,,,01/94 +EA3TI,JN11JT,,,,,144: 17el 5lambda Yagi 400W 110masl,08/06 +EA3UM,JN01,EME,,,,,01/94 +EA3URC,JN11,,,SpecialCall,,YAESU FT-100 ICOM IC-706MKII - 144: 50W 14el,05/03 +EA3WH,JN01,,,,,,01/93 +EA3XU,JN11CK,EME,,,,,12/07 +EA4AMX,IM89AT,,,,,,07/01 +EA4BAS,IN80HL,EME,,,,FT847 144: 17el 180W MGF1302 - 432: 35el 100W MGF1302,09/02 +EA4DB,IN80EJ,,,EA4BPJ,,IC-756ProIII - IC-821H,09/07 +EA4ED,IM79FW,EME,,,,,01/94 +EA4EHI,IM68TV,,,,,144: IC275H 1500W 4x17B2,07/01 +EA4EKH,IN80ND,EME,,,,144: 50Watt 9el,08/05 +EA4LU,IM68TV,,,ex EB4FQP,,144: FT726r 400W 17el (17B2),04/03 +EA4SV,IM68MU,,,ex EA4DQR,,,04/04 +EA5AAJ,IM99SL,,,,,144: IC-706MK2G 100W 9el,04/04 +EA5AEL,IM98RP,EME,,,,ICOM 746-100w ant 14 elemnts VHF-multi-band dipole HF-5 elemts to 6 meters-monoband to 10 meters and others,04/07 +EA5CJ,IM99TL,EME,,,,,07/05 +EA5DWS,IM98SR,,,,,Icom 706-MKII-G YAESU FT-920,08/08 +EA5EF,IM99SM,,,EA5BVK - EC5BD,,144 MHz 70 W + 9 el yagi / 50 MHz 100 W + DK7ZB 5 el yagi,04/07 +EA5EMM,IM99,,,,,,01/93 +EA5GIY,IM98XD,EME,,,,,01/99 +EA5HM,IM99,,,,,,01/93 +EA5IC,IM98,,,,,,01/94 +EA5MT,IM88WV,,,,,,08/08 +EA5NO,IM98FV,,,,,,08/97 +EA5SE,IM98IL,EME,,,,144: 2x 17el 1.5K,04/06 +EA5SR,IM98GF,,,,,,08/08 +EA5ZF,IM99VT,EME,,EX EB5IFI,,144: 600W 2x 17el LNA145 432: 35W 2x 21el F9FT mw432s,05/07 +EA6ADW,JM19LU,EME,,,,50: 20dbd- 144: 40W- 10el- up: div. Spiegel,07/97 +EA6DD,JM19JK,,,,,144: IC706MKIIG 17elB2 100W,05/03 +EA6FB,JM08PV,EME,,,,,08/02 +EA6IB,JM09SB,,,,,144: IC251E 150W 15elYagi,04/02 +EA6NP,JM19MQ,,,,,,01/93 +EA6QB,JM08PV,,,,,144: 2x15el 4CX400,05/03 +EA6SA,JM19LO,EME,,,,TS-2000X: ...@50+9dBd's. 2x4X150@144+15dBd's. 2X4CX250@432+18dBd's. 10W@1296+25dBd's.,05/08 +EA6VQ,JM19HN,EME,,,,144: 2KW MGF1302 8x17el M2 432: 21el 115w 1296: 55el 10w,04/05 +EA7AJ,IM87CS,,,,,144: 300W 2x 19el,08/04 +EA7DBH,IM76GD,,,,,,01/94 +EA7DFH,IM87DD,EME,,,,FT-857 TS2000 17el 200w,05/07 +EA7ERP,IM87EE,,,,,TS 790-E 13 ELE TONNA + PA 4CX350A,06/08 +EA7EYX,IM87CS,,,,,,12/04 +EA7HG,IM87CS,EME,,,,144: 4x 9el 100w mgf1302,12/05 +EA7OC,IM77OV,,,,,144: IC820 250W 17el,03/01 +EA7RM,IM87CS,,,ex EA7GTF,,144: TR9130 240W 17B2 OH5IY,07/02 +EA7TL,IM66VO,,,,,,05/05 +EA7TN,IM66VP,,,EX EA1AK/7,,TS2000 144: 100 W 2 x 2.5 wl - 50: 100 W 0.81wl,05/08 +EA8BEX,IL27GX,,,EB8QC,,IC910H,06/08 +EA8FF,IL28,EME,,,,,02/01 +EA9AI,IM75IV,,,,,144: 100W 9el,06/03 +EA9MH,IM85NG,,,,,,05/00 +EB1BKG,IN62BH,EME,,,,,11/01 +EB1BXW,IN53VK,,,= EA1BLX,,,04/06 +EB1DNK,IN62CL,EME,,,,144: IC706 4x17el 500 Watt MGF1302 - 432: 70W 21el,04/06 +EB1EB,IN83BK,,,ex EB1IQC,,,08/05 +EB1EFC,IN52OF,,,,,,01/93 +EB1EHO,IN73DM,,,,,144: 17el 200W - 432: 21el 50W,07/04 +EB1EUW,IN82TK,,,,,,01/95 +EB1IHY,IN52PM,,,,,144: 17el 160W,07/04 +EB1IVY,IN53SJ,,,,,,07/02 +EB2AYV,IN83MG,,,,,144: 250W 2M18XXX,01/04 +EB2DTP,IN82NS,,,,,FT847 IC746 FT816 17el 1000W,08/03 +EB2DVT,IN91MP,,,,,,03/06 +EB2FJN,IN83QE,EME,,,,50: 1x3 cushcraft 100W - 144: 2x 13b2 Ant MGF1302 1KW - 432: 9el X-Quad BF980 150W,12/08 +EB3BAP,JN11CJ,,,,,144: FT736r 200W 17el,01/01 +EB3CNX,JN11DI,,,,,,01/93 +EB3EPR,JN01ND,,,,,,01/03 +EB3GHU,JN11CJ,,,,,,04/04 +EB3JT,JN01UI,EME,,EB3GEK,,IC910 + SP2 + 4x13B2 + GS35B,08/07 +EB3WH,JN01WN,,,,,,01/93 +EB4DF,IM79QQ,,,,,TS-790 FT-817 144: 500W 17el - 432: 500W 21el,06/04 +EB4EQZ,IN80EK,,,,,Yaesu ft-817 Yaesu FT-897,08/05 +EB4ERS,IN80BH,,,,,FT736 144: 140W 9el GaAs-Fet,01/00 +EB4EUB,IN80DJ,EME,,,,50: 6el 100W - 144: 17el 1KW MGF1302 - 432: 21el 50W MG1302 - 1296: 55el 10W,08/00 +EB4FXD,IM78BX,,,,,144: 150W 17el,02/04 +EB4GIA,IN80CG,,,,,144: IC821 IC706 TS790 240W 17el - 432: 100W 31el SP70,02/98 +EB4TT,IN70XJ,,,ex EB4CXS,,,05/00 +EB5AZO,IM99RA,,,,,,11/04 +EB5EA,IM99TN,EME,,EB5AYG,,144: 4x 11el 500W,05/08 +EB5EEO,IM98PG,EME,,,,144: TS2000 6 x 18 2M18xxx /432 : 4 x 38 13 wl / 1296: 8 X 35 Elm Tonna,08/07 +EB5EHX,IM99,,,,,,01/93 +EB6AOK,JM09RB,,,,,HF 144 432 1296,06/09 +EB7BMV,IM67WI,EME,,,,,05/09 +EB7BQI,IM76SR,,,,,,06/03 +EB7COL,IM77AG,,,,,,05/04 +EB7DBX,IM67LG,,,,,144: 12 ele DK7ZB 350W LNA SHF Electronik,07/07 +EB7EFA,IM67XI,,,,,,01/95 +EB8ANY,IL18,EME,,,,144: 500W 4x 7el,12/04 +EB8BTV,IL18QI,,,,,,05/03 +EC1DMY,IN82SL,,,,,,08/08 +EC3DR,JN01UJ,EME,,EA3GLJ,,,04/09 +ED1GSR,IM79WS,,,Expedition,,,01/94 +ED3DXU,JN01VQ,EME,,SPECIALCALL,,,02/08 +ED4RKF,IM79WS,,,Contestcall,,144: 240W 13el,03/97 +ED5TOR,IN90XP,,,Expedition,,,01/93 +ED6EIG,JM19IM,,,SpecialCall,,,08/99 +EG3TVC,JN11BI,,,SpecialCall,,144: 400W 17el M2,12/99 +EH1RX,IN52IN,,,ex EH1BSK,,IC706 MKIIG,03/02 +EH3AXV,JN01TJ,,,,,50: FT920+trsv GS35b 6elYagi,07/02 +EH5RM,IM98,,,,,,07/02 +EH6SA,JM19LO,,,,,TS-2000X,08/07 +EH7RM,IM76QM,,,,,,01/03 +EH9LS,IM75IV,,,,,,01/03 +EI2CA,IO62,,,,,,01/88 +EI2IP,IO61CX,,,,,,04/07 +EI2VPX,IO53IQ,,,,,,01/91 +EI3GE,IO63XD,,,,,,08/00 +EI4DQ,IO51WU,EME,,,,144: ic910 gs35b MGF1302 4x10el or 10el,03/08 +EI4GHB,IO52QQ,,,,,Icom 910,09/08 +EI4VBE,IO42,,,Expedition,,,01/88 +EI4VBS,IO42,,,Expedition,,,01/90 +EI4VWY,IO54,,,Expedition,,,08/01 +EI4VWZ,IO55,,,Expedition,,,08/01 +EI4VXV,IO43XL,,,G0AFH,,144: 400W 17el Preamp,12/06 +EI5FK,IO51RT,EME,,,,144: FT847 150W 9el,03/05 +EI5HN,IO62,,,Expedition,,,05/06 +EI6CPB,IO63WE,,,,,50: IC706 - 144: IC821,09/06 +EI6GF,IO62RG,,,,,,02/98 +EI6IZ,IO53HU,EME,,,,IC756PRO2,06/07 +EI75RTS,IO51,EME,,SPECIALCALL,,,04/07 +EI7IX,IO53FT,EME,,,,,10/07 +EI7RCG,IO62,,,,,144: 27el,08/96 +EI7RSD,IO62WX,,,,,144: 27el 400Watts,07/96 +EI8JK,IO51DN,EME,,EI2FSB,,FT-726 FT-736 FT-102 FT-897,06/09 +EI9HW,IO63MP,,,,,,10/93 +EJ4VNX,IO43,,,SpecialCall,,,01/93 +EJ6O,IO43MM,,,SpecialCall,,,01/94 +EM1U,FC74US,,,,,,01/03 +EN80AL,KO61WP,,,= UT8AL,,,08/07 +ER1AN,KN46KX,,,ex ER5OIW UO5OIW,,144: FT857 200W 2x10el,12/04 +ER2RM,KN46KA,,,ex ER5OK,,,11/05 +ER5AA,KN45CW,,,ex UO5OB,,,06/00 +ER5AL,KN45CW,,,,,,07/02 +ES0Q,KO17AV,,,SpecialCall,,,06/04 +ES0X,KO18,EME,,Expedition,,,07/99 +ES1CW,KO29HK,,,,,,05/98 +ES1RF,KO29IJ,EME,,ex UR2RGM,,FT1000MP/FT847/FT736/TS2000+Trans.+Preamps 50: 5el 500W - 144: 4x9el 500W - 432: 4x19el 150W - 1296: 4x 35el,04/06 +ES2CM,KO29DJ,EME,,,,ICOM-706 MKIIG 144: 4x 14el 600W,04/06 +ES2NA,KO29JL,,,,,144: IC706MKII 300W 9el,04/02 +ES2QH,KO29LL,,,,,144 : FT847 700Watts 9ele Preamp - 432: IC821 800W,08/01 +ES2WX,KO29JN,,,,,,05/03 +ES3BR,KO28JS,,,,,,05/04 +ES3GZ,KO28,,,,,,01/93 +ES3RF,KO29IF,EME,,EX UR2RGM ES1RF ES1RF/3,,FT1000MP/FT847/FT736/TS2000 50: 5el 500W - 70: 5el 60W - 144: 4x18el 500W - 432: 8x19el 200W - 1296: 4x35el 30W,03/08 +ES4Q,KO39BD,,,Expedition,,,08/05 +ES5KJ,KO38IJ,,,,,,01/05 +ES5MC,KO38JJ,,,,,,12/95 +ES5MG,KO38IJ,,,,,,01/94 +ES5PC,KO38HJ,,,,,1296: remote operated setup: 4.5 m dish 300-350W,10/08 +ES5RE,KO38,,,,,,01/94 +ES5RN,KO38,,,,,,01/94 +ES5RY,KO38JI,,,,,,11/02 +ES5WE,KO38JJ,,,,,,01/94 +ES6DO,KO27WX,,,EX UR1RYY- UR2RDO,,IC756 + IC820H+Preamp ATF54143 + 100/350W 50MHz: 4el - 144MHz: 2M5WL,05/08 +ES6LBN,KO37AW,,,,,144: 170W 11el,07/04 +ES6RQ,KO28WA,EME,,ex UR2RQT UR2RQ,,TS2000 FT736 FT847 144: 2KW 8x17el M2 + 1x 18el,07/05 +ES8AS,KO28FJ,,,,,,04/04 +ES8X,KO18XC,EME,,Expedition,,144: TS790E+PA 300W 2x9 el or FT 847+ PA 300W 9 el Yagi and preamps,07/02 +ET3AA,KJ98JX,EME,,= ZL1RS,,,04/08 +EU1AB,KO33SU,,,EX UC2AAB,,,12/08 +EU6AF,KO35,,,,,,12/07 +EU6MS,KO45IN,,,ex RC2WBH,,144: 16el 700W MGF1302,09/01 +EV2AA,KO33PM,,,,,,01/03 +EV2AAB,KO33ST,,,,,,01/03 +EV2OEU,KO52IK,,,,,,01/03 +EV5M,KO53TP,EME,,Expedition,,144: 4x 9el QRO,08/06 +EV5N,KO42RX,,,Expedition,,,01/94 +EW1CD,KO33SW,,,,,,06/07 +EW1RZ,KO33SV,,,,,,10/01 +EW2ABC,KO33VW,EME,,,,,11/08 +EW6AL,KO46KB,,,Expedition- QSL via EU6MS,,,08/06 +EW6DX,KO45JL,,,,,144: 100W 9el,08/97 +EW6FS,KO35LB,,,,,144: 20W 2x16el F9FT Preamp,01/03 +EW6GB,KO45CN,,,,,144: 200W 10el,08/02 +EW7IM,KO53,,,ex UC2SMM,,,01/92 +EW7IN,KO53,,,,,,01/94 +EW7IW,KO53DR,,,,,,01/03 +EW8DD,KO42QA,,,,,144: 4x16el F9FT- 50W,12/98 +EW8RR,KO41OV,,,,,,09/07 +EY8MM,MM48FI,EME,,,,144: IC706 200W 2x 10el,06/06 +F0DBD,JN08XW,,,,,FT726R 10W 10el Preamp,01/02 +F0DIX,IN93SV,,,,,-,06/07 +F0EJW,IN78VJ,,,,,ICOM 910H Antenne 17 El�ments tonna Pwr:20watts,06/08 +F0FEQ,JN33LN,,,,,,11/06 +F1AFJ,JN06HT,EME,,,,144: 4x11el F9FT 1500 W 0.4dB,11/04 +F1AKK,JN39CC,,,,,,07/01 +F1AOE,IN93RS,,,,,,04/04 +F1CCM,IN93MP,,,,,,01/93 +F1CNE,JN28,EME,,,,,01/94 +F1CXX,JN18AT,,,EX J28EL,,ic910h+11 ele-ft847+dipole+gp 50mhz,05/09 +F1DLZ,JN19FH,,,,,,08/08 +F1DUZ,IN97NJ,EME,,,,144: FT897D 2x 4CX250R 600W 4x 11el LNA 9BV,04/06 +F1DVP,JN12JN,,,,,,08/08 +F1EBK,JN18BW,EME,,,,144: TS790A 300W 4x10el DK7ZB,11/04 +F1EBN,JN18JR,,,,,,08/02 +F1ELL,JN18EX,EME,,,,,01/94 +F1ERG,JN27JJ,,,,,,08/08 +F1FEN,JN25JC,EME,,,,,01/94 +F1FHI,IN97GD,,,,,,01/03 +F1FIH,JN23GS,,,,,,04/03 +F1FLA,JN26KU,EME,,,,144: 4x25el Xpol 7.6lb 1KW MGF1302,10/05 +F1FVP,IN95XA,,,,,,01/03 +F1GHP,IN96LE,,,,,,01/03 +F1GTR,IN96JE,,,,,,01/03 +F1GTU,JN05IF,,,,,144: 160W 13el,05/06 +F1HAR,JN18DT,,,,,,01/93 +F1HQM,JN23LV,,,,,,10/07 +F1IHP,IN88,,,,,,07/02 +F1ISJ,IN97QM,,,,,IC746,10/08 +F1IXQ,JN15MQ,,,,,,12/01 +F1JG,JN23HQ,,,ex FC1JG,,,08/02 +F1JOE,JN05IF,,,,,,01/93 +F1JRD,JN13WO,,,ex FA1JRD,,144: TR751 GS35b 2x11el F9FT,12/04 +F1MBM,JN38CQ,,,,,FT225RD 144: 8877 4CX250 MGF1302 16el F9FT - 432: 100W 21el F9FT,12/02 +F1MOZ,IN93RS,,,,,,11/06 +F1NGP,JN39CC,,,,,,04/97 +F1NNI,IN88,,,,,,04/02 +F1NSR,JN33JK,EME,,,,144: IC275h 2*11EL 2*4CX250,03/07 +F1NWZ,JN17CT,EME,,,,144: FT736R Mutek Front End 4x 10el 7ZB GS35B,03/07 +F1ODA,JN13FO,,,,,144: 400W,10/02 +F1PUX,JN16XL,,,,,TS690S 144: LT2S 200W 20el - 50: 5el,01/99 +F1PYR,JN19DA,,,,,,04/02 +F1PYW,JN38UP,,,,,144: 120W 9el or 2x11el - 432: 17el or Helix,03/99 +F1RAD,JN25WF,,,ex FC1RAD,,50: 5W 1/4wl. - 144: TR751e 25/200W,05/02 +F1RHS,JN03PV,,,,,,11/01 +F1TE,IN94QS,EME,,,,144: 4x 12el 2KW,09/06 +F1VJQ,IN95OL,,,EXPEDITION,,,07/07 +F1VS,JN04FV,,,,,,05/08 +F2TU,JN38LG,EME,,,,,11/01 +F3VS,JN38LF,EME,,,,144: 24x20el (6wl) & 8x20el (6wl) DJ9BVs,03/99 +F4ALP,JO10OP,,,,,,12/01 +F4APX,JN23XL,EME,,,,144: 4*18EL - 432: 4*21EL 2*4CX250,01/04 +F4ARU,IN94VT,,,,,144: 4x3.6wl 1KW 8877,11/01 +F4AZF,JN39GG,EME,,,,144: IC275h 500W 8874 4x 15el,04/06 +F4BKV,IN95PT,,,,,144: TS700 150W 9el - 432: TS440S TRV 70W 21el - 1296: TRV 1W 3x35el,04/02 +F4CIB,JN03,,,,,144: 250W 9el,05/02 +F4CYZ,JN38SF,EME,,,,144: FT897D 400W 2x 9el Yagi,05/05 +F4DDX,JN23QI,,,F0DDX,,FT897 FT817,03/08 +F4DSD,JN23JO,EME,,,,,01/05 +F4DXX,IN97LH,EME,,,,144. 17el 200W,01/06 +F4ERO,JN18JV,,,EX F0ERO,,,12/08 +F4JRC,JN23JW,EME,,,,144: 4x10el,01/01 +F4JVG,JN16UM,,,,,,07/02 +F5ANT,JN24RJ,,,,,,04/96 +F5AQC,JN05PU,,,,,,01/03 +F5BUU,JN03BO,,,,,,01/05 +F5DE,JN05DP,,,,,50: 50W 5el - 144: 100W 16el,08/07 +F5EAN,JN06CP,EME,,,,,01/94 +F5FEN,JN25JC,,,,,,01/03 +F5FHI,IN97GD,EME,,ex F1FHI,,,01/94 +F5FLN,IN94SR,,,,,144: 300W 17el,08/99 +F5FVP,IN95WB,,,,,144: 4x17el 1KW,07/00 +F5GHP,IN96LE,EME,,EX F1GHP FC1GHP FD1GHP FE1GHP,,IC745+transverter 4x14elts DJ9BV 3.6Wl MGF1302B Power 400w,10/07 +F5HRY,JN18EQ,EME,,,,144: 1KW 4x11el,11/02 +F5IF,JN12IL,,,,,,08/08 +F5IVP,JN23QI,,,,,IC706MKIIG 50 W elts F9FT,05/07 +F5JKK,IN87PR,,,= FM5JC,,,08/07 +F5JNX,JN37PV,EME,,,,144: 4x 17el 600W,02/07 +F5JRX,JN25AW,,,,,,01/94 +F5KCR,JN26IX,,,,,,08/96 +F5KDK,JN23VF,,,,,,01/03 +F5KPO,JN24,,,,,,12/01 +F5LEN,JN38BO,,,,,144: IC275A 250W 17elB2,06/05 +F5LKW,JN23SJ,,,,,144: TS700 60W 13el,04/03 +F5LRL,JN26MV,,,,,144: 400W 4x10el,05/02 +F5LUW,JO10MP,EME,,ex F1LUW,,,11/95 +F5MGD,JN07AW,,,,,FT102 + tvtr,05/04 +F5MMX,JN18CN,,,FD1MMX FE1MMX F1MMX SO9MMX SO8MMX,,Home made,11/07 +F5MSL,JN26JS,EME,,ex FC1MSL,,144: 8877 4x11el (or 4x10el) MGF1302,02/99 +F5MZN,IN87BU,EME,,,,,08/96 +F5NWK,IN97EJ,,,ex FD1NWK,,144: 9el 200W,05/04 +F5OIH,JN06,,,,,,08/03 +F5OWL,JN33CC,,,ex FC1OWL,,50w 2x9elts side by side with elevation,08/05 +F5PAU,IN88CB,,,,,144: 4x11el 150W,07/02 +F5RRS,JN36EB,,,,,144: 350W 10el Quad,10/06 +F5RSS,JN36EB,,,,,144: Kenwood TM-255 PA : TE SYSTEMS 1452G (350 Watts) ANT : 10 el. Qubical Quad,10/06 +F5SCL,JN29HP,EME,,,,FT225RD,07/08 +F5SDD,JN23RF,EME,,FD1SDD,,FT901 IC211,01/04 +F5SE,JN29BG,,,,,,06/03 +F5SIB,JN18EB,,,FD1SIB,,,03/09 +F5SJE,JN13,,,,,,12/95 +F5SJP,JN13VQ,,,,,144: TS790 180W 17B2,01/02 +F5VBW,JN03,,,,,,06/95 +F5VHX,JN04FT,EME,,ex F/G8MBI,,,06/03 +F6ANQ,IN94RT,,,,,,07/96 +F6AOI,JN33NQ,,,,,,08/02 +F6APE,IN97QI,EME,,,,144: 17el 200W,11/06 +F6BAZ,JN39EF,,,,,,06/02 +F6BEE,JN08FU,,,,,,01/03 +F6BEG,JN25JS,EME,,,,144: 3wl Antenna 300W,06/08 +F6BKI,IN94,EME,,,,,12/05 +F6CBH,JN19BH,,,,,,12/07 +F6CGJ,IN78RK,EME,,,,144: 4x11el 400W,04/00 +F6CIO,JN26JH,,,,,,09/98 +F6CJG,JN15,EME,,,,,01/93 +F6CKZ,JN09LH,,,,,,01/97 +F6CRP,IN96KE,,,,,50 MHz : 3 el - 100 W 144 MHz : 600 W- 9 el DK7ZB,09/07 +F6CTW,JN18,EME,,,,,01/93 +F6DHI,JN23RK,,,,,144: 200W 9el MGF1302,04/04 +F6DKQ,JN37BI,,,,,,11/08 +F6DKW,JN18CS,,,,,,02/01 +F6DRO,JN03TJ,,,,,2500Watt 18el BF981,03/04 +F6DWG,JN19AJ,,,,,,04/05 +F6DWH,JN19,,,,,,01/95 +F6EAS,IN98,,,,,,08/01 +F6EGV,JN33AQ,,,,,,08/07 +F6EMT,IN98FG,EME,,,,,01/94 +F6EYM,IN99,EME,,,,,12/95 +F6FHP,IN94TR,EME,,ex F1CYO,,144: 1KW 4x6 wl 432: 27el 800W,08/06 +F6FLV,JN18AT,,,,,,02/96 +F6FTN,JN08XS,,,,,TS2000X 144: 4x9el 300W,01/04 +F6GPT,IN94SW,,,,,144: 11el 400W,03/07 +F6GRB,JN25KP,EME,,,,144: 4x 10el 600W,05/06 +F6GUU,JN05CU,,,,,FT857,04/06 +F6HLC,JN26HS,EME,,,,144: gs35b or th308 17elt yagi,09/07 +F6HRO,IN88JQ,,,,,IC910 144: 17el 100W,05/06 +F6HVK,JN27LH,EME,,EX F1AUQ,,144: 4x 17el H or single Yagi 400w / kw,01/08 +F6HYE,JN36DG,EME,,,,,01/94 +F6IFX,JN07CX,,,,,,10/07 +F6ITS,JN33MP,,,,,IC706MK2G 144: 50W quad 8 el 432: 20W quad 2x11el,04/08 +F6IZZ,JN18GR,,,,,,01/03 +F6JXR,IN98HW,,,,,,09/98 +F6KHM,IN78RJ,EME,,,,,06/02 +F6KRK,JN18AS,,,,,144: 17el 120W,08/08 +F6KSX,JN18,,,,,,01/03 +F8BKD,JN38LG,EME,,,,144: TS-2000 4X11 el 1000W,01/03 +F8CS,JN27UR,,,,,,08/98 +F8DNX,IN93FJ,EME,,,,IC-7400. 100 watts. 10 elts (DK7ZB)home made quad(4x10 coming soon),05/08 +F8DO,JN26IF,EME,,,,50: TS680S 5el - 144: FT225 4CX1000 2x11el MGF1302,08/06 +F8DYR,JN07WL,,,F4DYR,,50 / 144 : homebrew,10/08 +F8ENY,JN03RO,,,,,,08/08 +F8IPS,JO00SQ,,,,,,07/00 +F8KFR,JN09RG,,,,,144: 2x9el 1-8KW - 432: 80W 26el doublequad,09/06 +F8OP,JN26MM,EME,,,,50: TS690 100W 6el - 144: FT225RD Mutek 2x4CX350 500W 17B2 Cushcraft,02/05 +F8PKC,JN38MG,EME,,,,144: TS-2000 4x17b2 qro,04/06 +F9HS,JN23AT,EME,,,,144: 4x BVO3WL 8877 MGF1302,10/07 +F9IE,IN86WW,,,,,,05/04 +FA1APX,JN23XL,EME,,,,144: IC970 4 x 22 el DJ9BV 2 x 4CX350F,04/00 +FC1DUZ,IN97NB,,,,,,01/03 +FF6KBF,JN18BW,,,,,,01/03 +FK8HA,RG37FR,,,,,,01/03 +FM5CS,FK94LI,EME,,,,144: 4x 17el B2 1.5KW 8877 LNA 0.5db,05/06 +FO4NK,BH52,EME,,,,,01/94 +FO5RK,BH52,,,,,,01/03 +FR5DN,LG78SS,EME,,,,,12/05 +FS5UQ,FK88LC,,,,,,01/03 +FT5XO,ME40VK,EME,,,,,03/05 +FY5DG,GJ35QD,EME,,,,,01/03 +G0AEI,JO01GO,,,,,,01/91 +G0AFH,JO01EI,,,,,144: 2x17el 400W,01/08 +G0BPU,JO02,EME,,,,,01/94 +G0CHE,IO90PS,,,,,50: 400W 70: 50W,05/07 +G0CUH,IO70LG,EME,,,,144: 500W 10el,04/05 +G0CUZ,IO82WM,,,,,FT726r 50: 50W 2el - 144: MGF1302 2x3CX400A7 5el or 11el - 432: 10W 5el,07/02 +G0DJA,IO93IF,,,EX G6VMQ,,TS2000X SDR1000 FT817,09/08 +G0EVT,IO93GR,,,,,144: IC202S 250Watts 3wl DJ9BV,07/01 +G0FIG,IO90UU,,,,,50: IC575h 6el 400W - 144: IC275h 400W 10el MGF1302 - IC475h 300W 2x19el,05/00 +G0GMB,IO92NB,EME,,,,IC756 PRO II TR144H MGF1302 LNA GS35 PA. Ant: 17 ele F9FT for 2m - 5 ele for 6m - 3 ele for 4m,08/08 +G0GMS,IO82XT,,,,,50: IC746 & IC756pro GS35b pre-amp,04/06 +G0HVQ,IO81UX,,,,,Icom IC7400,04/07 +G0HYP,IO84FN,,,,,FT847 IC1271E 144: 1.5KW 2x17el - 432: 2x21el,09/06 +G0ISW,IO84OQ,,,EX G1MOG,,Kenwood TS-2000 & Create Log Periodic,04/07 +G0JDL,JO02UK,,,,,,01/96 +G0JUR,IO92WT,,,,,,08/99 +G0KAD,IO91VC,,,G1JUZ,,144: FT1000MkV Elecraft XV Transverter 2x 12ele hoembrew GS35,04/07 +G0KAS,IO91UI,,,,,144: IC275h 2x4CX250b 17el Preamp,01/00 +G0KPW,JO02RF,,,,,144: 400W 2x17B2,07/06 +G0KSC,JO01,EME,, +G0KUX,IO91WP,,,,,,11/01 +G0KZG,IO80,,,,,,03/07 +G0LBK,IO93JK,,,,,,01/93 +G0MGA,JO00DT,,,,,,01/93 +G0MJW,IO91JO,,,,,50: 100W 5el - 70: 160W 4el - 144: 2x4CX250b 13el,01/97 +G0NFA,IO91NE,,,,,144: IC271A,04/01 +G0PES,IO83LS,,,,,,11/99 +G0RRJ,IO91FE,,,ex G8OPR,,1296: 100W 55el,04/04 +G0RUZ,IO93FR,EME,,ex G6ZTU,,144: IC746 GS35b 6x 4.6wl. 32JXX X-Pole MGF1801 - 432: 2003 - 1296: 5m Dish TH347,10/02 +G0SAS,IO84OQ,,,,,Kenwood TS-2000,10/07 +G0TPH,IO92IO,,,,,,12/01 +G0UWK,IO83UB,,,ex G1WEM,,FT1000mp 144: TV144/28 GS31b 400W 5WL 432: 2x 6WL GS31b MGF1302,10/06 +G0WUU,IO92SR,,,,,,08/08 +G0XDI,IO91RP,,,,,,11/01 +G1EMJ,IO82WM,,,,,,01/93 +G1GEY,IO94FW,EME,,,,,01/94 +G1KAW,IO91TK,EME,,,,144: 9el 200W,08/06 +G1MOG,IO84OQ,,,,,Kenwood TS-2000,10/07 +G1OGY,JO01GR,,,,,,09/04 +G1SWH,IO83QO,,,,,,10/04 +G1WPF,IO91RP,,,,,144: IC275E Tempo2002 3CX800 9el,08/99 +G1XRL,EN35,,,,,,01/03 +G1YJI,IO91WP,,,,,,11/01 +G1ZJP,IO92WV,,,= M1MHZ,,IC7400 IC1275e IC475H IC202s IC402 TS830s & Tvtrs 4x 12el 400W,11/08 +G3BW,IO84,,,,,,01/93 +G3JHM,IO91LC,,,= F0AKD EI4AW,,50: 100W 5el - 144: 400W 2x13el,05/01 +G3LQR,JO02QF,EME,,,,,01/94 +G3LTF,IO91GG,EME,,,,eme: 6m dish,03/06 +G3NAQ,IO91HL,,,,,50: 400W 3el - 4: 100W 2el - 144: 400W 17el - 70: 250W 21el,08/05 +G3UTS,IO94CU,,,,,144: 400W 9el M2 BF981,02/04 +G3WCS,IO83RH,,,,,144: TS430S HB Transverter HB Amp 2x4CX250B 20el DJ9BV 70: 100W 4el 50: 100W 4el,01/05 +G3WDG,IO92rg,EME,, +G3WZT,IO90UX,EME,,,,IC756PRO 50: 7el 400W - TS2000 144: 2x12el 400W - 432: 1x19el 50W,03/07 +G3YNN,JO00EU,,,,,50: 2-5W 5el - 144: FT736 100W 14el - 432: FT736 25W 11el,05/04 +G3YYD,IO91TR,,,,,FT1000MP Transverter 4CX400 400w to 3wl yagi at 22m AGL,04/05 +G4AEP,IO91NJ,EME,,,,144: 400Watt 17el ATF53045,01/05 +G4AFJ,IO92HO,,,,,144: 150W 10el,09/01 +G4ALY,IO70UL,,,,,,12/03 +G4AOA,IO83TD,,,,,,01/93 +G4APJ,IO83UP,,,G8APJ,,FT736 FT817,10/07 +G4ASR,IO81MX,EME,,,,144: FT221GTi 2x3CX400 17el (4x17el),02/04 +G4BRK,IO91HP,,,,,144: 80W 9el,05/08 +G4CBW,IO83UB,EME,,,,144: TS2000 IC756PROII 4x 9el 800W,01/07 +G4CCH,IO93,EME,,,,5.4m dish. 650W CW or 450W JT,05/07 +G4CJG,IO94CR,,,,,,01/93 +G4CLA,IO92JL,,,,,,09/03 +G4DBL,IO91JJ,,,,,144: IC746PRO 4CX350 300W 17el,11/04 +G4DDK,JO02PA,EME,,,,TS2000X IC275 FT847 FT817 FT290,04/07 +G4DEZ,JO03AE,,,= G4ZDE G9Z,,IC910 and IC7400 various Linears,10/06 +G4DHF,IO92UU,EME,,,,144: K2 txvtr GS35B 8x Yagis 2.2 wl,10/06 +G4DOL,IO80SP,,,,,,04/99 +G4DZU,IO93ES,EME,,,,1296: 800W 3m. Dish,05/07 +G4ERP,IO81XW,,,,,,01/03 +G4FDX,EN60VL,,,,,,01/03 +G4FRE,JO01KK,EME,,,,,01/94 +G4FUF,JO01GN,EME,,,,,04/05 +G4HGI,IO83PL,,,,,144: TS780 GS35b 400W 17el,08/04 +G4HGT,IO83,,,,,,01/93 +G4IGO,IO80NW,EME,,,,50: IC706 300W 6el - 144: IC706 2x 17el 400W,04/05 +G4JCC,IO90MS,,,,,,01/03 +G4JZS,IO91SO,,,G8LZE,,,06/07 +G4KLA,IO92AK,EME,,,,2x11 400w SSB SP-2000 preamp TS790 LinearAMP,12/08 +G4KLX,IO93FB,,,,,,03/04 +G4KUX,IO94BP,EME,,,,,10/07 +G4KWQ,IO92AQ,,,,,144: FT847 400W Preamp 16el Tonna,04/03 +G4LOH,IO70JC,EME,,,,,05/07 +G4ODA,IO92WS,,,,,,01/05 +G4OIG,IO92OG,,,G8CXK,,TS130V - FT736R (50 - 1296) - FT817 - C528,09/07 +G4PBP,IO82WO,,,,,,07/01 +G4PCI,IO91AL,,,,,IC756PRO,01/03 +G4PCS,IO91WV,EME,,,,indoor antennas,10/07 +G4PIQ,JO01MU,EME,,,,144: 2x3CX800 ATF10136 4x15el CueDee,10/04 +G4RGK,IO91ON,,,,,144: 300Watt 17el MGF1302 - 432: 400Watt 8x27el MGF1302,03/01 +G4RKV,JO01OI,,,,,144: IC275E EME Pwr 2x9el MGF1302,01/01 +G4RNL,IO83,EME,,,,,01/94 +G4RRA,IO80BS,,,,,144: 4x10el 400W,08/03 +G4SHC,IO83VO,,,,,,01/93 +G4SSO,IO91TO,,,,,,08/94 +G4SWX,JO02PB,EME,,,,,06/09 +G4VIX,JO01PU,EME,,,,,01/94 +G4VPD,IO92BJ,,,,,,01/90 +G4VXE,IO91QL,,,,,,03/01 +G4WQE,JO01CJ,,,,,,01/03 +G4XBF,IO91QE,,,,,,04/99 +G4XUM,IO83,EME,,,,,10/02 +G4YTL,IO92MB,EME,,,,144: IC275 1KW 4x 5wl DJ9BV,05/05 +G4ZFJ,JO01HO,EME,,,,50: 4Q 400W 70: 4Q 25W 144: 4x 9el KW,01/09 +G4ZTR,JO01KW,EME,,,,144: FT1000MP LT2S 2x4CX250B MGF1302 CC17B2 or 2x9ele OZ5HF,08/05 +G5WQ,IO91DO,EME,,,,ic756pro3 jst-245 ic706mk2g ft100d 4x 11el 500W,10/07 +G6AVK,JO01HO,EME,,,,,10/08 +G6DER,IO93GN,,,,,,01/97 +G6HIE,IO90ST,,,,,,01/09 +G6HKM,JO01FT,,,,,,01/94 +G6RAF,IO92QP,,,,,,10/95 +G6TEL,IO90AR,,,,,,05/04 +G6TUS,JO02AG,,,,,TS-2000 - 100w - 12ele ZL,02/09 +G6UT,JO01BS,,,= M0ITY OK2IT - ex OK2ITY,,,05/06 +G6XRK,IO90RN,,,,,144: IC820H Henry2002 Mutek 15el M2,01/98 +G6XVV,IO93,,,,,,11/95 +G6YAY,IO80EL,,,,,,01/03 +G6YIN,IO93ET,,,,,,01/99 +G6ZTU,IO93HN,EME,,,,,01/93 +G7KQW,IO93,,,,,,01/03 +G7LIJ,JO01GG,,,,,,01/95 +G7NCF,IO81RE,,,,,FT847,05/05 +G7RAU,IO90IR,,,,,144: FT757 Mutek 12el 400W,05/08 +G8APZ,JO01DO,EME,,,,IC-275 or IC475 on every band 144MHz - 24GHz with transverters,10/07 +G8BCG,IO70RK,EME,,= H44PT,,50: IC756POOII 400W 7el,06/06 +G8BHH,IO82WO,,,,,,07/01 +G8CLZ,JO00EU,,,,,50: 2-5W 5el - 144: FT736 25W 9el - 432: FT736 25W 11el,09/01 +G8DKK,IO91VX,,,,,,05/07 +G8DSL,IO90FW,,,,,,01/03 +G8ECI,JO03AK,,,,,50: 5el 300W - 70: 5el 160W - 144: 10el 300W,01/01 +G8GTD,IO93,,,,,,11/01 +G8GXP,IO93FQ,,,,,TS2000X + PAs for 6m 4m 2m 70cms and 23cms (see QRZ.com for details),11/08 +G8IZY,IO91VC,,,,,144: TS700G BF981 4CX250b 250W 9el M2,01/01 +G8LZE,IO91SO,,,G4JZS,,,08/08 +G8LZG,IO93SR,,,,,FT847 or FT100,11/01 +G8MYK,IO92BJ,,,,,IC275H- 100W- 17el,07/02 +G8OPR,IO91FE,,,,,,01/03 +G8PYP,IO90AS,,,,,,01/93 +G8ROU,IO92,,,,,,01/93 +G8RWG,JO01BN,EME,,,,144: FT1000MP DEM144/28 2x8874 MGF1302 9el full elv,05/02 +G8T,IN79JX,,,,,,06/02 +G8TIC,IO82VF,,,,,50: JST245+8877+6el 144: IC7400+1KW+DJ9BV-10el,08/08 +G8TOK,JO01BI,,,,,,04/02 +G8UUR,IO92ET,,,,,144: 80Watts 3ele@10mtrs,07/00 +G8VHI,IO92FM,,,,,50: 100W 4el - 70: 10W 4el - 144: 9el 200W - 432: 2x23el 100W - 1296: 67el 40W,07/04 +G8VR,JO01DJ,,,,,50: 3el 100W,05/03 +G8VYK,JO01FO,EME,,,,144: IC251E MGF1302 180Watts 15 ele Cue Dee 15m,07/05 +G8XVJ,IO83RJ,,,,,144. LT2S 8877 17el M2,08/99 +GB2LBN,IO85,EME,,,,144: 17el 100W,08/00 +GB2LD,IN79JX,,,Expedition,,,08/06 +GB2WQ,IO66,,,Expedition,,,01/92 +GB4IOM,IO74PB,EME,,,,,05/04 +GB4SPT,IO74PB,EME,,,,,05/04 +GB4VR,IO57,,,Expedition,,,01/90 +GB4XS,IO78HA,,,Expedition,,50: IC746 100W 4el - TR9130 - 70: 150W 6el - 144: 2x14el 400W,08/00 +GD0WKX,IO74SD,,,Expedition,,,10/95 +GD4IOM,IO74QD,EME,,,,50: 400W 4x7el - 144: 400W 8x9el - 432: 400W 4x20el,08/01 +GD4UFD,IO74,,,Expedition,,,01/88 +GD7HEJ,IO74SD,,,,,,10/95 +GI0OTC,IO65QE,,,,,,12/00 +GI1JUS,IO74,,,,,,01/93 +GI4KSO,IO64XK,,,,,70: 100W 3el - 144: 300W 8el,07/03 +GI4SNA,IO64XM,EME,,,,144: 4x 12el QRO,02/08 +GI6ATZ,IO74AJ,,,,,144: IC251E Mutek FE 300W 13el,12/06 +GI7UGV,IO74DO,,,= GM7UGV,,FT847 144: 200W 8el,04/06 +GI8YDZ,IO65,,,,,,01/88 +GJ0JSY,IN89XE,,,,,,12/01 +GJ0RUZ,IN89,EME,,Expedition,,,03/02 +GJ4ICD,IN89WE,,,,,,10/98 +GM0BQM,IO85CE,,,,,144: 200W 2x17el,03/02 +GM0EWX,IO67UL,,,,,144: 12el 8874,05/02 +GM0GMD,IO86AE,,,,,,07/00 +GM0HUO,IO86OI,,,,,FT736r 50: 100W 3el - 144: 180W 12el,08/99 +GM0JOL,IO78VM,,,,,,01/93 +GM0ONN,IO87,EME,,,,,03/06 +GM0WDD,IO85JV,,,BECOMING ACTIVE 07/07 -> 6M HOME 2M PORTABLE,,6m - IC756pro2 2m FT-847,05/07 +GM0WDF,IO75PW,,,,,144:TS940 Trsv IC271E 400W 17el,09/01 +GM3POI,IO88OW,,,,,,10/01 +GM3SBC,IO85IX,EME,,,,144: 100W 11el,11/05 +GM3SEK,IO74SR,,,,,,05/07 +GM3UCN,IO85RV,,,,,,04/04 +GM4AFF,IO86ST,,,,,144: 14el Tonna EME-Pwr MGF1302,08/03 +GM4CXM,IO75TW,EME,,,,144: FT736R 3cx800A7 2x9el @ 23m 432: 120w 2x23el Wimo @ 21m 23cm: 150w 4x44el @ 11m,01/09 +GM4ILS,IO87IP,,,,,,07/01 +GM4ISM,IO85AR,EME,,,,FT847,07/05 +GM4JJJ,IO86GB,EME,,,,144: 4x3wl XPOL 8877,05/01 +GM4OGM,IO85,,,,,,01/88 +GM4SIV,IO57RT,,,Expedition,,,07/06 +GM4VVX,IO78TA,,,,,50: TR751E 5W Dipol,04/06 +GM4WJA,IO87MN,EME,,,,,03/07 +GM4YXI,IO87WJ,,,,,,04/00 +GM5RP,IO66,,,QSL via G3SEK,,,08/01 +GM6HGF,IO75QP,,,MM0XPG,,,05/08 +GM6VIU,IO85,,,,,144: TR851E 25W 24el,11/99 +GM6VXB,IO97AQ,EME,,,,6M 400W-7EL 4M 100W-6EL 2M 250W-11EL 70CM 50W-2X19EL 23CM 50W-2X55EL 12CM 10W-80CM DISH 9CM 15W-80CM DISH 3CM 10W-80CM DISH,04/07 +GM7ASN,IO78TA,,,,,,06/95 +GM7LVJ,IO85,,,,,,01/94 +GM8OEG,IO86LL,,,,,,04/06 +GU7DHI,IN89RL,,,,,,12/01 +GU8FBO,IN89QK,,,,,144: 10el 50W,10/06 +GW0KZG,IO82,,,,,,12/98 +GW0PZT,IO72PT,,,,,,01/93 +GW0VWD,IO81EM,,,,,,07/96 +GW3HWR,IO71XN,,,,,FT847 IC910 + Amps - 144: 350W 9el Preamp,08/05 +GW3LEW,IO71PS,,,,,,04/03 +GW3XYW,IO71XR,EME,,,,144: 4x 10el 400W,01/06 +GW4DGU,IO71SV,EME,,,,144: 15.6dBi yagi 750W SSPA 0.4dB HEMT 432: 2x yagi (19.5dBi) 550W SSPA 0.4dB HEMT,05/08 +GW4HDF,IO81JO,,,,,,04/02 +GW4LXO,IO81,,,,,,08/98 +GW4UWR,IO81LP,,,,,,08/99 +GW4VEQ,IO73SG,,,,,,10/02 +GW4VVX,IO81JP,,,,,,06/95 +GW4ZQV,IO81LQ,,,,,,08/97 +GW6TEO,IO71LP,,,,,TS-2000. 50mhz-250W 70mhz-100W 144mhz-300W 432mhz-50W.,05/08 +GW6YAY,IO81LM,,,EX G6YAY,,144: IC821H 300Watts 17ele CC,08/03 +GW7SMV,IO81LN,EME,,,,IC910H 144: 12eleM2 432: 19ele tonna 50: ICOM 746 6ele 1wl yagi,06/08 +GW8ASA,IO81EM,,,,,FT847 IC706 Linears - 144: 220W 9el,02/04 +GW8ASD,IO83LB,,,,,Icom IC756 ProIII with Acom 1000 and 5ele for 6m.Icom IC756 ProII with transverter 100w 4ele 4m. Icom IC910X with linear for 23cm,06/07 +GW8IZR,IO73TI,EME,,EX G8IZR,,144: 2x 9el GS35 .23 dbrx - 432: 4x21Y 350W 1dbrx - 1296: 8W 2m dish,04/06 +GW8KCY,IO71VS,,,,,,04/08 +GW8OQV,IO81QR,,,,,144: FT225-Mutek 2x4CX250b 4x10el DL6WU or 17el,07/98 +GX0SAS,IO84OQ,,,,,Kenwood TS-2000,10/07 +GX4NOK,IO93FR,,,,,,01/03 +GX4WWR,IO91LL,,,,,,01/03 +H40HP,RH29,EME,,EXPEDITION,,144: 18el 1500W Preamp,03/09 +H44HP,QI90,EME,,EXPEDITION,,144: 18el 1500W Preamp,03/09 +H44HP/RI00,RI00,EME,,EXPEDITION,,144: 18el 1500W Preamp,03/09 +H44HP/RI01,RI01,EME,,EXPEDITION,,144: 18el 1500W Preamp,03/09 +H44MS,QI90XN,EME,,= DL2GAC,,144: 18el M2 1 KW,03/08 +HA0DU,KN07VN,EME,,,,,09/07 +HA0HO,KN07SU,EME,,,,144: 6x 10el 3.5KW,12/06 +HA0MS,KN17,,,,,,08/08 +HA1BC,JN87PU,,,= DL1MAJ,,144: 3CX800A7 2x17el,12/00 +HA1FV,JN87JJ,,,HG1KYY,,FT-847 2m: 2x12el 300w 6m: 5el 100w,05/08 +HA1KVM,JN87AL,,,,,,01/03 +HA1KYA,JN87HF,,,,,144: 8x13el DL6WU 200W,11/98 +HA1VHF,JN87GF,EME,,ex HG1W,,,10/98 +HA1W,JN87GF,,,,,,01/03 +HA1YA,JN87GF,EME,,ex HG1YA,,144: 8x13el & 8x14el - 432: 16x32el - 23+13:1.5m dish 6+3: 90cm dish,06/05 +HA2A,JN87,,,,,,12/99 +HA2NP,JN97EO,,,,,,05/01 +HA2RD,JN87WB,,,,,,10/08 +HA2RG,JN86RT,EME,,,,144: FT102 4x 17el DJ9BV 2KW MGF1302,10/06 +HA2RX,JN87,,,,,,12/98 +HA2SX,JN87VC,,,,,144: IC821H 600Watts 11ele,12/98 +HA2VH,JN87WG,,,,,,03/03 +HA3DXC,JN96JO,,,,,144: 5.5WL 2x8877,07/96 +HA3UU,JN96JO,,,,,144: TS711A GS35B 5.5wl 4wl 2wl MGF1100 - 432: FT736R ELH730 3CX800A7 4x10wl MGF1100,09/04 +HA4A,JN96JO,,,ex HA4XT,,144: TS711A GS35B 5.5wl 4wl 2wl MGF1100 - 432: FT736R ELH730 3CX800A7 4x10wl MGF1100,05/04 +HA4KYB,JN97DI,,,ex HG4KYB,,,01/94 +HA4WQ,JN97IF,,,,,,06/03 +HA4XG,JN86GS,EME,,,,144: FT726R 60W 10el Yagi,12/08 +HA4XT,JN96JO,,,,,,01/05 +HA5BSW,JN97JD,,,ex HA3GK,,144: IC706MKII KNW TR751 300w 2x 13ele yagi,07/05 +HA5CAR,JN97,,,,,,07/01 +HA5CBA,JN97OM,,,,,144: HF trsv+conv,04/04 +HA5CRQ,JN97,,,,,,08/02 +HA5CRX,JN97KP,EME,,,,144: IC-7000 GS31 SP2000 3wl DJ9BV-BVO2,12/07 +HA5CW,JN97PM,,,EX HG5CW,,144: FT225RD/Mutech B1016 GS35B 800W 10el MGF1302,11/07 +HA5IW,JN97LN,,,,,,08/01 +HA5KDQ,JN97LN,EME,,,,,07/03 +HA5LV,JN97ML,,,,,144: FT-897 + 300W + 3wl DJ9BV,05/08 +HA5OO,JN97OM,,,,,144: 100w 3wl DJ9BV 50: 5W FD4 HF:100W FD4 HB9CV for 28 MHz,05/07 +HA5OV,JN97NJ,EME,,,,144: FT920+Trnv GS35 1-5KW 4X10 ele. BVO2 MGF1302,06/07 +HA5PT,JN97MK,,,,,FT847,09/08 +HA5RL,JN97PL,,,,,,12/04 +HA5TS,JN97LL,,,,,144: IC-706MKII 8ele,07/04 +HA5UK,JN97OM,,,HA9TE HA5CTA,,144: 300W 10el 3wl,01/08 +HA6NA,JN98VC,,,,,144: 250W F9FT,08/01 +HA6NN,JN98VC,,,,,FT-847 6 ele YU7EF yagi for 2 m 7 ele YU7EF for 70 cm 3 ele DK7ZB for 6 m,01/08 +HA6NQ,JN98WA,,,,,144: 700Watts CF300 DJ9BV 3.2wl,01/05 +HA6NY,JN98WC,,,,,144: 1000W MHP145 17el full el - 432: 40W LNA435 18el full el - 1296: 10W 55el F9FT,12/06 +HA6OQ,JN98JC,,,ex HG6OQ,,,08/98 +HA6VV,JN97WS,,,,,,06/09 +HA6VV/P,JN97WV,,,,,,06/09 +HA6ZB,JN97,,,,,,01/05 +HA6ZV,JN97WH,,,,,,09/04 +HA7JJS,JN97OG,,,,,,10/95 +HA7KPL,JN97OG,,,ex HG7KPL,,,12/95 +HA7MB,KN07BM,,,,,IC-706 Ft200 IC910h Ant.2m-8el Quagi 6m-Moxon HF-Dipole,10/07 +HA7NK,KN07CM,,,,,144: 200W 4x15el 9BV Preamp,06/00 +HA7PL,JN97OG,,,ex HG7PL,,,11/06 +HA7RF,JN97NP,,,,,IC 735 +conv,04/03 +HA7UL,JN97KK,,,,,Yaesu FT847 W3DZZ,05/08 +HA8AR,KN06MQ,,,,,TS790A FT-897D + PA GI7B 3wl DK7ZB,12/07 +HA8CE,KN06EN,EME,,ex HG8CE,,144: GS35b 400W 16 el. DJ9BV CF300,12/05 +HA8CS,KN06BD,,,,,,01/03 +HA8ET,KN06,EME,,ex HG8ET,,,01/93 +HA8KCP,KN08DQ,,,,,,01/03 +HA8V,KN06HT,EME,,,,10w 3el -- 900w 44el -- 75w 92el -- 25w 76el -- 50w 1.2 dish -- 200mw 1.2 dish,10/06 +HA8VF,JN96UW,,,ex HG8VF,,,10/97 +HA9KRL,KN07GT,,,,,,04/05 +HA9MCQ,KN08JC,,,,,144: 150W 14el CF300,06/98 +HA9MDP,KN08DF,,,EX HG9MDP,,FT-736 FT-897,04/07 +HA9OZD,KN08DF,,,ex HG9OZD,,144: TR9130 150W 14el CF300,04/06 +HA9RC,KN08NB,,,ex HG9RC,,,01/94 +HAM3DXC,JN96JO,,,SpecialCall,,144: 5.5WL 2x8877,07/96 +HAM3UU,JN96JO,,,SpecialCall,,144: 5.5WL 2x8877,07/96 +HAM7JJS,JN97OG,,,SpecialCall,,,07/96 +HAM7KPL,JN97OG,,,SpecialCall,,,07/96 +HAM7PL,JN97OG,,,SpecialCall,,,07/96 +HAM8CE,KN06EN,EME,,SpecialCall,,,11/96 +HB2FAP,JN47CE,,,,,144: 16el 1KW,12/00 +HB5OK,JN46LA,,,SpecialCall,,144: FT847 8877 17el MGF 1302,12/98 +HB9ADJ,JN36LH,EME,,,,50: FT-897D + Acom 1000 ant. 3 el 144: FT-857D + PA 200W ant. 4 x 11 Flexa AzEl,04/07 +HB9AOF,JN36LM,,,,,,01/97 +HB9BBD,JN47EE,,,,,,01/03 +HB9BIN,JN37XH,,,HB2BIN HE7BIN,,IC-910/IC-7800,12/08 +HB9BQU,JN37VD,,,,,50: 10W - 144: 200W 17el,08/99 +HB9BZA,JN36BE,,,,,50: FT-847 V-2000 - 144: 3CX800 11Y - 432: 2*8874 19Y,01/04 +HB9CVD,JN36CD,EME,,,,,01/94 +HB9CYN,JN36RX,,,,,144: 30W 7el 10db Gaas,01/99 +HB9DBM,JN47BE,,,qrv at HB9Q,,,03/99 +HB9DDS,JN47IK,,,,,,05/02 +HB9DFG,JN37SM,EME,,,,144: FT100 - 500W - 7el - MGF1302,08/08 +HB9DKM,JN37SL,EME,,,,50: 3el vertical - 144: 150W 2x11el Flexa MGF1302 - 432: 9el X-Quad 100W CF300,03/02 +HB9DLU,JN45LU,,,,,,01/03 +HB9DSU,JN36CG,EME,,ex IK2BHX K2BHX,,,07/05 +HB9DUR,JN46ME,EME,,EX HB9SUL,,NOT QRV FROM HOME,09/07 +HB9EFK,JN46JE,EME,,ALSO CT2JTY AND EX HE9ZLE HB3YIT,,TS-2000X 12el DK7ZB + MGF 1302 / HM GS-31B PA,06/08 +HB9FAP,JN47PH,,,,,144: IC7400 2x18 el Yagi 1KW,07/08 +HB9FMN,JN47CI,,,,,TS-940s TEN-TEC 2m & 6m X-verter FT-897D FT-817ND,08/08 +HB9HLI,JN37JB,EME,,,,,03/07 +HB9HLM,JN36KW,EME,,= CN2DX - EX HB9SAX,,,06/08 +HB9LU,JN46EW,,,,,,06/96 +HB9MM,JN36HP,,,,,,08/02 +HB9MS,JN47PH,EME,,,,144: 8877,12/99 +HB9OCW,JN46LA,EME,,,,50: 4el 10W - 144: 4x13B2 1KW - 432: 2x29el 1KW,10/99 +HB9PJT,JN47FG,,,,,,05/02 +HB9Q,JN47CG,EME,,HB9PMD HB9CRQ,,50: 10W 11el - 144: 15mPb & 8x19el 1KW - 432: 15mPb 1KW - 1296: 15mPb 200W,04/07 +HB9QQ,JN47,EME,,,,50: 2x 5el 144: 17el QRO,10/05 +HB9RUZ,JN47JM,,,,,,12/96 +HB9SJV,JN36BK,,,,,50MHz: 6 el & 2x5/8 vert. 144MHz: 100W 11el,08/07 +HB9SLO,JN36LT,,,,,144: FT736r 1KW 18el LY,04/03 +HB9SNR,JN36MQ,,,,,144: FT736r 800W 12el M2,11/01 +HB9STI,JN47GJ,,,,,,01/93 +HB9STY,JN36IP,,,,,FT690R 50: 150W vert & 5el - 144: 300W 2x15el,07/98 +HB9SUL,JN46LA,,,,,,01/03 +HB9SV,JN45LV,EME,,,,,08/00 +HB9WAH,JN47FD,,,,,50: 10W - 144: 2x 11El 1kW MGF1302 - 432: 2x 18El 1kW MGF1302 - 1296: 4x 24El 10W MGF1302,04/04 +HB9ZGA,JN47CH,,,,,,10/07 +HC5K,FI07NB,,,,,,01/03 +HF75PZK,JO93AC,EME,,SpecialCall,,,01/05 +HG1DLZ,JN87HF,,,,,144: 8x13el 200W MGF1402,12/98 +HG1ZR,JN86KU,,,HA1ZR (1965-1967),,FT 817,01/09 +HG2EAD,JN97,,,,,,01/93 +HG2KNP,JN97,,,,,,01/93 +HG2NP,JN97,,,,,,01/95 +HG3DXC,JN96JO,,,,,144: 5.5WL 2x8877,08/98 +HG3O,JN96JO,,,,,144: 5.5WL 2x8877,08/98 +HG4XG,JN96,,,,,,01/93 +HG5CYT,JN97,,,,,144: FT290r 50W 5el - 432: 25W 11el,01/01 +HG5PT,JN97MT,,,,,,01/93 +HG6KNB,JN98,,,,,,01/93 +HG6KVB,KN07,,,,,,01/93 +HG6NQ,JN98WA,,,,,,01/95 +HG7AJ,JN97,,,,,,01/93 +HG7JAL,JN97KK,,,,,,07/02 +HG7JUV,KN07SP,,,,,,05/09 +HG7P,JN97KW,,,ex HG7B/p,,,04/97 +HG7WJ,JN97MP,,,,,,01/93 +HG9SM,KN08HF,,,,,,07/04 +HG9VHF,KN08EB,,,,,144: TR9130 150W 14el CF300,07/00 +HGM3DXC,JN96JO,,,SpecialCall,,144: 5.5WL 2x8877,07/96 +HGM3O,JN96JO,,,SpecialCall,,144: 5.5WL 2x8877,07/96 +HI3TEJ,FK49EL,EME,,QSL via ON4IQ,,144: 17el 500W,06/05 +HI8ROX,FK58AL,,,,,,01/03 +HK1DX,FJ29EM,EME,,,,144: 200W 17el - 432: 150W 8wl,11/06 +HL4GHT,PM35NU,EME,,,,144: 4x 13el 100W,03/08 +HL5XF,PM45OH,,,,,,01/03 +HP3XUG,EJ88SJ,EME,,EX KG6UH/DU1,,144: 4x 17el 1KW,01/00 +HQ8R,EK87,EME,,EXPEDITION,,,03/08 +HR9BFS,EK66UE,EME,,,,,12/07 +HS0ZIL,OK16bq,EME,,= DL2LAH,,144: QRP 2x10ele DK7ZB,02/09 +HS2CRU,OK03LE,,,,,,01/03 +HV0A,JN61FV,,,,,,01/05 +HV4NAC,JN61,,,Expedition,,,06/99 +I0EMV,JN62BK,,,,,,01/92 +I0FOV,JN62,EME,,,,,11/06 +I0NLK,JN62HB,,,,,FT736 200W 11el F9FT,03/06 +I0UGB,JN62BO,EME,,,,,11/06 +I0UZF,JN63,,,,,,06/00 +I1ANP,JN44VC,EME,,,,IC735+L4B - 144: TS700 4x4cx250b MGF1302 4x16el DJ9BV - 432: IC402+lin 26db horn,03/01 +I1BSN,JN34,,,,,,01/93 +I1CPM,JN34VI,,,,,,01/03 +I1CPN,JN34VH,,,,,,02/04 +I1DMP,JN34XU,,,,,144: 20 el LYagi 17 dBi RX 430K TX 56dbm,03/08 +I1JTQ,JN35UB,EME,,,,144: 2x18el 900W MGF1801,08/01 +I1KTC,JN45HK,EME,,,,,11/96 +I1NDP,JN45AL,EME,,,,,10/08 +I1PIK,JN44TG,EME,,,,FT736R 50: 2x5el- 144: 14+14xpol-el Preamp - 432: 32el HL130 - 1296: 35el,05/07 +I1PSC,JN44MJ,,,,,FT-225rd + 200W-20eI - IC475h-25el - Trsv DB6NT 1296-55el,03/09 +I1TEX,JN35SA,EME,,,,144: 13el 300W,03/08 +I1TXD,JN45,,,,,,01/93 +I2FAK,JN45OB,EME,,,,144: 24x19el LLY YL1056,12/04 +I2FHW,JN45,,,,,,01/93 +I2KBD,JN45PL,EME,,,,,04/07 +I2ODL,JN45KL,EME,,,,144: 4x17el 8877 - 432: 8x21el 3CX800A7 - 1296: 2m dish 2x7289,09/00 +I2OKW,JN45OO,,,,,,08/02 +I2PHD,JN45SL,EME,,,,,12/00 +I2RV,JN45PL,EME,,,,144: 4x 15el KLM,05/06 +I2SVA,JN45,,,,,,01/02 +I2UZV,JN45,,,,,,08/02 +I3DLI,JN65,EME,,,,6x19el 8877 CF379,11/00 +I3LDP,JN55LK,EME,,,,FT-736R + 144 Ampl with 2x4CX250B,04/08 +I3LDS,JN55SR,,,,,,01/90 +I3LGP,JN55WJ,,,,,144: IC746 100W 17el BF960,01/04 +I3LLH,JN65BM,,,,,,04/00 +I3MEK,JN55SJ,EME,,,,,08/07 +I4LCK,JN54RK,,,,,432: FT736 3CX800 Preamp 4x25el LY @ 950m asl (portable: /4 JN54PD),02/08 +I4RHP,JN54QL,,,,,144: TS711+PA500W 17EL,07/04 +I4TTZ,JN54VJ,,,,,,01/03 +I4XCC,JN63GV,EME,,,,144: 4x17el F9FT 3CX800A7 preamp 1db,06/09 +I4YNO,JN54KP,,,,,144: FT-736R MuTek MGF1302 3CX800 20el Shark,08/03 +I5CTE,JN53XG,EME,,,,,02/01 +I5MPK,JN53,EME,,,,,01/94 +I5MXX,JN53JU,,,,,144: 4x4el & 4x9el,10/00 +I5MZY,JN53OT,EME,,,,144: 800W 4x10el BF998,10/04 +I5PPD,JN53PS,EME,,,,10368: 3m Dish 20W,10/00 +I5PPE,JN53NS,,,,,,01/03 +I5TWK,JN53FU,EME,,EX I8TWK,,,02/08 +I5WBE,JN53JR,EME,,,,144: FT736R 4x17el 8877 MGF1302 432: Yeasu FT 847 GS35b 4x26el 1296: LT23S 4x35 el 100W,03/08 +I5YDI,JN54BB,EME,,,,144: FT736 3cx800 2x17el or 4x15el,04/02 +I6BQI,JN72AK,EME,,,,144: 4x16jxx TS2000 8877PA,03/06 +I6PNN,JN72GL,EME,,,,,01/94 +I6QGA,JN63,EME,,,,,01/94 +I6QON,JN63RL,,,,,,01/94 +I6WJB,JN72CK,EME,,,,144: 4x 16el 1 Kw MGF1302,05/05 +I6YPK,JN72,,,,,,01/95 +I7CSB,JN71QQ,,,I2CSB,,TS790-FT847-IC756PROIII,05/08 +I7FNW,JN81GD,EME,,,,,01/94 +I7HCB,JN71VT,,,,,144: 150W 13el,12/01 +I7RNI,JN80,,,,,,01/93 +I8JIT,JN71HN,,,,,,08/08 +I8KPV,JN70KO,EME,,,,,12/06 +I8MPO,JN70FP,,,,,IC746PRO Henry Radio 2002A 13el yagi Landwehr 145MAS 186m asl,09/07 +I8REK,JN70,,,SilentKey,,,01/93 +I8TUS,JM89DE,,,,,,10/04 +I8UZA,JN70AU,,,,,144: FT847 150W 10el BVO3wl,09/02 +I8WES,JN70,,,,,,01/93 +IB0CW,JN60RS,,,EXPEDITION,,144: 250W 12 el Yagi,06/08 +IC8CQF,JN70CN,,,,,50: 100W 4el Yagi - 144: 300W 10el 3wl 9BV,08/05 +IC8EGJ,JN70CN,,,,,,01/89 +IC8FAX,JN70CN,,,ex IW8BZN,,144: FT736r 300W 20el,03/04 +IC8TEM,JN70CN,EME,,,,TS2000 - TS680 - HF VHF - 50mhz 2EL DK7ZB - 144mhz 20el shark - hf vertical gp,07/07 +IH9YMC,JM56XT,,,,,,08/04 +II0W,JN51,,,QSL via IW0BET,,,06/03 +IK0FEC,JN63,,,,,,01/93 +IK0FIY,JN61GW,EME,,,,FT736r 144: 6el 800W MGF1302 - 432: 33el 600W MGF1302,01/00 +IK0FTA,JN61GV,,,,,50: TS680 GaasFet 6el,05/02 +IK0IXI,JN52VB,,,,,Homemade xvtrs for 6m & 4m,06/08 +IK0IXO,JN52WA,EME,,,,,01/93 +IK0OKY,JN61ES,,,,,50: loop quad fractal 100W - 144: 50 w jpole,06/09 +IK0OZK,JN52VC,EME,,,,350W- 2x17el- Preamp,12/99 +IK0PCJ,JN63CL,,,,,,01/03 +IK0RNL,JN61GW,,,,,,01/03 +IK0SMG,JN61ER,EME,,,,,07/06 +IK0SOI,JN62HN,,,,,,06/02 +IK0VKL,JN61GV,,,IW0DRT,,,04/07 +IK0VMO,JN62LH,EME,,,,144: 4x 9el 500W,10/06 +IK0WGF,JN52VC,,,EX IW0DAL,,144: 2x11el 200W,04/07 +IK0XIH,JN61KM,EME,,IW0CQX,,Kenwood TS-2000,06/09 +IK1DPA,JN33VT,,,,,YAESU FT-897D - ant: for 6m 5el F9FT - HF: HyGain DX-88,09/08 +IK1EFM,JN44JK,,,,,,01/93 +IK1EGC,JN35UF,,,,,50: FT650 3-500z 6el 1wl- 144: IC275 16el 4.4wl 4cx250 MGF1302,07/02 +IK1FJI,JN44LL,EME,,,,144: 4x 12el M2 GU78b LNA CA144T PHEMT preamp,08/08 +IK1GYZ,JN35TB,,,,,,11/95 +IK1HJQ,JN33,,,,,,01/90 +IK1HWG,JN44DS,EME,,,,,01/94 +IK1JXY,JN44WC,EME,,,,,08/04 +IK1LBW,JN44VC,,,,,,08/98 +IK1LGV,JN44JK,,,,,144: GS31 MGF1302 15el QD,08/00 +IK1LUT,JN34TW,,,,,,01/93 +IK1MTZ,JN35UB,EME,,,,,08/01 +IK1PAG,JN35SB,,,,,144: IC275h 1KW 2x17el F9FT MGF1302,02/08 +IK1RQT,JN34VP,,,,,,12/01 +IK1SLI,JN35UI,,,,,,01/93 +IK1SPR,JN34TQ,,,,,144: Braun SE400 500W MGF1302 2x 13el,08/05 +IK1UWL,JN33VT,EME,,,,144: 4x 14XPol 700W (1400W in circular pol.),01/08 +IK1YWB,JN34UX,,,,,,04/02 +IK2CDI,JN55GN,EME,,,,144: IC275H 3CX800A7 MGF1302 4x18el,01/00 +IK2CFR,JN54,,,,,,03/01 +IK2DDR,JN55GN,EME,,,,144: IC275H 8877 MGF1302 4x19el LY,01/06 +IK2EAD,JN55EJ,EME,,,,,01/94 +IK2EAE,JN45LL,,,,,144: FT480r 100W 17el,11/01 +IK2FIL,JN45OM,,,,,144: IC275H 9 el. F9FT + SP2000 50W,11/04 +IK2GSO,JN45NP,EME,,ex K2GSO,,IC7400 FT857 50: 1KW 10el 144: 14el DJ9BV,03/05 +IK2JUB,JN45ON,,,,,,03/05 +IK2LHP,JN45SP,,,,,144: TS790 200W 15el - 432: 100W 31el,07/01 +IK2MMB,JN45,EME,,,,,02/05 +IK2OFO,JN45KL,EME,,,,144: 4x17el 8877 - 432: 8x21el 3CX800A7 - 1296: 2m dish 2x7289,09/00 +IK2RTI,JN55AD,,,,,,01/03 +IK2TPX,JN45LL,EME,,,,,01/93 +IK2XRL,JN45NR,,,,,144: FT736r 150W 17el Preamp,01/01 +IK2YXK,JN45OP,,,,,144: IC275h 4CX250 12elM2 DSP59,05/02 +IK3MAC,JN55SH,EME,,,,144: 1100W 24 x 23el LLY + 24x 10el yagi Vert,09/05 +IK3TPP,JN65EP,,,,,,12/04 +IK3VZO,JN55XA,,,,,144: 16el 200W,02/98 +IK4DCO,JN64GB,EME,,,,,01/94 +IK4DCX,JN64GA,EME,,,,144: 4x20el 2.5KW,04/01 +IK4DRY,JN64BL,,,,,,04/01 +IK4FMT,JN54WG,,,,,144: TS790 2M5WL 4CX250 MGF1302 20dB,01/00 +IK4JOC,JN54WN,EME,,,,,01/94 +IK4NMF,JN54SM,EME,,,,,01/94 +IK4PLU,JN64FC,,,EX IW4ASW,,,10/07 +IK4PMB,JN54MM,EME,,IW4CET,,50: X-Verter 10W Dipole - 70: OZ X-VERTER 3el DK7ZB - 144: FT225RD MUTEK or TS850+X-Verter 8877 11el F9FT 14XP WiMo,10/07 +IK4WLV,JN54XK,EME,,,,,02/98 +IK5AMB,JN53FU,,,,,,11/98 +IK5JWQ,JN52NS,EME,,,,,08/98 +IK5OEA,JN53PG,,,,,,12/04 +IK5OIY,JN52NT,,,,,,03/96 +IK5QLO,JN53FU,,,,,,04/08 +IK5WJD,JN53PR,EME,,,,432: 4 x 26 elements Yagi hor Pol. - LNA 0.25 dB NF - 8877 1 KW PA - 1296: Septum Feed Cavity LNA 0.35 dB NF 3 meters solid Dish,07/06 +IK5ZUI,JN53RD,,,,,144: TS700G 11el 250W BF981,07/97 +IK6EIW,JN63RJ,EME,,,,,10/95 +IK6FHF,JN63,,,,,,01/93 +IK6IHM,JN72,,,,,,01/95 +IK6MLI,JN62UT,,,,,144: FT736 4x11el KLM Booster 8930,07/99 +IK6MMJ,JN63RL,,,,,,10/95 +IK6WDY,JN62XK,,,,,kenwood ts 790e ant. 2el quad,05/08 +IK7EZN,JN90DG,EME,,,,144: 4x 16el JXX 1 KW,04/05 +IK7UXY,JN90DC,EME,,IW7BPW,,IC-756PRO2/Xverter h.m./16jxx/8877,06/09 +IK7XLW,JN80FT,EME,,,,144: 16JXX 250W,03/06 +IK8BIZ,JN70GR,,,,,,08/08 +IK8ETN,JM89CH,,,,,144: ic275e 4x150 17f9ft,01/04 +IK8IUQ,JN70MM,,,,,,01/03 +IK8MKK,JN71DC,,,,,,01/95 +IK8TOY,JM89CH,,,,,,08/04 +IK8XLD,JN70VP,EME,,,,144: 11el GaasFet,09/00 +IK8YOQ,JN70GR,,,,,,04/09 +IK0BZY,JN61GW,,,,,07/09 +IK0BZY/MM,JN50AX,,,,,07/09 +IK0BZY/P,JN62GA,,,,,07/09 +IN3AGI,JN56,,,,,,01/03 +IN3ATM,JN56NK,,,,,,01/02 +IN3DOV,JN65WS,,,,,,01/93 +IN3FFN,JN56,EME,, +IN3KLQ,JN56RG,EME,,,,144: 180W 17el,04/00 +IQ2CJ,JN45ON,,,,,IC 275H - GS35 - 2 x 13 DJ9BV,03/05 +IQ3AZ,JN65QQ,EME,,,,144: 4x 8el 800W,10/08 +IQ4DF,JN45,EME,,,,,10/05 +IS0/DF2ZC,JN40TJ,EME,,EXPEDITION,,144: TS2000 2x 9 ele M2 2x GU74b by LZ2US,03/09 +IS0/DH7FB,JN40TJ,EME,,EXPEDITION,,144: TS2000 2x 9 ele M2 2x GU74b by LZ2US,03/09 +IS0AGY,JM49OF,,,,,144: IC211E 4CX350b 17el Gaas,07/05 +IS0BDB,JN40GT,,,,,,05/04 +IS0CAK,JM49,,,,,,01/04 +IS0CBC,JM49NH,,,IW0ULG,,,04/07 +IS0EBO,JN40GR,EME,,ex IW0UEI,,144: Icom gs35 3wl ant,03/06 +IS0GQX,JM49OH,,,,,,05/05 +IS0SWW,JN40GR,,,,,,02/04 +IT9BLB,JM68QE,,,ex IW9AJZ,,144: 2x15el 3CX800 MGF1302,08/06 +IT9CHU,JM76IV,EME,,,,,01/09 +IT9CJC,JM76IW,EME,,,,IC706MKIIG 120W 10EL DK7ZB - EME SETUP 4X10 8877 MGF4919G,06/09 +IT9GSF,JM67SS,,,,,,01/94 +IT9GSV,JM77LH,,,,,,04/01 +IT9IPQ,JM78SG,EME,,,,ic756pro ic275 ic475 transv,04/02 +IT9LCY,JM77NO,,,,,,01/93 +IT9TYR,JM78QF,EME,,IW9CER,,IC 756 pro II - Knw TS790 E - IC 706 MKII,04/09 +IV3BBR,JN65TW,,,,,,04/07 +IV3CYT,JN65TW,,,,,,06/09 +IV3DXW,JN65QQ,,,,,144: 4CX250 - 16JXX2 4.5WL,08/03 +IV3GBO,JN66OA,EME,,,,,01/02 +IV3GTH,JN65RU,EME,,,,50: FT897 5/8 vertical - 144 MHz: FT897 160W 16 el F9FT,06/07 +IV3HWT,JN65ST,EME,,,,144: FT101zd Trvt 8877 4x18el 4x20el,08/04 +IV3KTY,JN65QQ,,,,,,04/07 +IV3MPI,JN65SV,,,EX IW3QMB,,IC746 IC271E Mutek FT736R PHEMT144 PHEMT: 50: 2x 6el 9BV 500W - 144: 4x12el 6WU 500W - 432: 4x21el F9FT,03/06 +IV3NDC,JN65RV,,,,,144: 100W BF981 2x15el 3.3wl,04/07 +IV3SIX,JN65RU,,,EX IW3QYG IW3RI,,50: 6el/HyGain 144: 4x17el 432: 4x21el,05/07 +IV3VFP,JN66HD,EME,,,,,01/93 +IV3ZCX,JN65QS,EME,,,,144: Icom 275 PA 600Watts MGF1302 4x24el,01/90 +IW0AKA,JN61FS,,,,,,01/90 +IW0AYO,JN61IU,,,,,144: 16el,07/96 +IW0BTS,JN61GU,,,,,,01/88 +IW0BZD,JN61FS,,,,,,10/07 +IW0CUT,JN61TP,EME,,,,,01/93 +IW0CVK,JN61GV,,,,,,01/05 +IW0DJB,JN61,,,,,,04/02 +IW0DVG,JN61KK,,,,,,01/93 +IW0FFK,JN61FS,,,,,,04/07 +IW0GDC,JN61HX,,,,,,10/98 +IW0HLE,JN61WK,,,,,,08/08 +IW0QNX,JN62,,,,,,01/97 +IW0QO,JN63EC,,,,,,01/93 +IW0RBS,JN63FD,,,,,,01/93 +IW0RLC,JN63FD,,,,,,06/00 +IW1ARB,JN44CV,EME,,,,144: 4x4.4Wl lt2s 3cx1500,03/01 +IW1AZJ,JN35UB,,,,,144: 200W 3.8wl DJ9BV,06/00 +IW1BCV,JN44FS,EME,,,,144: IC275H 2x18el MGF1302 8877,08/08 +IW1CGB,JN35VG,EME,,,,50: 3el PA - 144: 4x17el 2x4cx250b MGF1302,06/97 +IW1CHX,JN35TH,,,,,144: C58 13el DJ9BV MGF1302 170W,04/02 +IW1DIM,JN35TC,,,,,,07/01 +IW1DJS,JN35SA,,,,,,08/01 +IW1FTY,JN35UA,,,,,,01/03 +IW1GLM,JN34PT,,,,,,08/08 +IW2BNA,JN45ON,,,,,144: IC275H 3CX800 4x11el - 432: IC475H 8930 23ele - 1296: IC1275 2C39 4x23ele,01/04 +IW2BSQ,JN45UJ,,,,,144: IC746 !7el,04/03 +IW2BZY,JN45NN,,,,,144: 500Watts 2x12ele Flexa,08/01 +IW2DAL,JN45NN,,,,,144: TenTec OII - TR144H +40 - 4x19LLY 4CX1000a,06/08 +IW2DMN,JN45KL,,,,,144: 100W 15el,10/02 +IW2DUA,JN45LL,EME,,,,,01/93 +IW2FZR,JN45WE,EME,,,,144: 9el 500W,06/09 +IW2FZR/P,JN56AE,EME,,JN56BE FOR EME,,1296: 4 mt dish VE4MA th308 400 W at feed/ 144 9el 500W,06/09 +IW2HAJ,JN45NO,,,,,50: IC706 6el - 144: IC 275H + GS35B 2X13 EL Preamp,09/08 +IW2HUS,JN45NO,,,,,,04/02 +IW2HWQ,JN55GK,,,,,144: FT736r 80W 21el,10/96 +IW2LLA,JN55AM,,,,,144: 2x17el 100W,08/96 +IW2MYV,JN45JN,,,,,144: TS711E 4CX250 GaAs 4x7el + elv.,01/02 +IW2NEF,JN46QD,,,,,144: FT847 12elXY,11/02 +IW2NOR,JN45ON,,,,,ICOM IC275H KENWOOD TS 2000 144: 100W 2x17el F9FT,06/04 +IW3BKQ,JN56NH,,,,,,07/02 +IW3HRT,JN55TG,,,,,,08/08 +IW3QTG,JN65PT,,,,,144: IC746 2x 17FT,08/04 +IW3SGT,JN65VP,,,,,,05/07 +IW3SNU,JN65OT,,,,,,11/04 +IW4ADT,JN54,EME,,,,,01/94 +IW4AR,JN64FD,,,,,,01/03 +IW4ARD,JN64FD,EME,,,,144: IC756PRO3 TXV-DB6NT 3CPX1500A7 4x8XP pre PHEMT full elevation 432: TS-2000X GS23B 4x18el pre PHEMT full elevation,01/09 +IW4AZY,JN54ML,,,,,IC275 ft817 ic706 hm xverter 2 x 20 yagi many other depending location,04/07 +IW4BET,JN54QL,,,,,,08/02 +IW4BLG,JN54VF,EME,,,,144: 4x10el k5gw 900w,01/04 +IW4BTJ,JN54QL,,,,,,01/03 +IW4CB,JN54XK,,,,,,02/01 +IW4DJE,JN64,,,,,,01/95 +IW4DLA,JN64CE,,,,,,01/94 +IW4DMH,JN64CJ,,,,,,11/98 +IW4DQY,JN64AG,,,,,,03/04 +IW4EHV,JN64AE,EME,,,,IC7400 144: 16el 432: 21el,11/07 +IW4EHZ,JN54ML,EME,,ex IW4BTE,,IC706MKIIG 20EL70CM 12EL2MT 6EL6MT,03/05 +IW4EJK,JN54ML,,,,,ICOM IC910 - 144: 2X CROSS YAGI 10EL - 432. 2X CROSS YAGI 19EL,04/08 +IW5ACZ,JN53HP,,,,,50: TS2000 HB9CV 144: TR751E 4CX250 250 WATT 12el,10/04 +IW5BLG,JN54VF,,,,,,01/03 +IW5BML,JN52JW,EME,,,,,04/99 +IW5BPE,JN52NT,,,,,,01/93 +IW5DHN,JN53GI,EME,,,,TS2000 4x 7el,04/06 +IW5DNZ,JN53,,,,,,05/02 +IW5EJM,JN53HA,,,,,,08/08 +IW5EKJ,JN54AA,EME,,EX IW1CCH,,144: IC-756 PRO2 TRSV GS31 or 3CX800,09/07 +IW6AEG,JN63RO,,,,,,10/93 +IW6BLH,JN63RO,,,,,,12/00 +IW6BNO,JN63RL,,,,,,11/95 +IW7DEC,JN81GF,,,,,144: 12db yagi 100W Preamp,08/04 +IW8QOT,JM88BR,,,,,,01/03 +IW9ELR,JM68PD,,,,,,11/02 +IW9FRA,JM68GA,,,,,,01/05 +IY1GMN,JN33VT,EME,,SPECIALCALL,,,06/09 +IZ0ARL,JN61IU,,,,,144: 200W 16el,10/96 +IZ0AYB,JN52VC,EME,,,,IC-910H 144: 4x12JXX - 432: 2x19 Tonna,05/04 +IZ0CVK,JN61GV,,,ex IW0CVK,,YAESU FT767mod YAESU FT221R mod 2x8el DJ9BV 4CX250 MGF1801,09/06 +IZ0FWE,JN62IQ,,,,,,08/08 +IZ0GYP,JN61GT,EME,,,,144: 9el 250W,11/06 +IZ1ANZ,JN45FH,,,,,,05/07 +IZ1BPN,JN34OT,EME,,ex IW1CGB,,144: 150W 9el dj9bv MGF1801 50: TS680 3el,03/06 +IZ1DBY,JN45FW,,,IW1FRO,,Icom IC706mk2g Yaesu FT847 FT817,06/07 +IZ1DXS,JN35UA,,,ex IW1FTY,,ICOM IC-7400 (746 PRO) - 50: 6el - 144: 14el,11/02 +IZ1EGT,JN44LK,,,ex IW1RDT,,IC910 100W 2.5 Wl ant,02/05 +IZ1ESM,JN45FB,,,ex IW1ESM,,KWD TS850 + LT2S MK2 + 4.4wl BV,09/02 +IZ1MKR,JN44FH,EME,,,,,01/09 +IZ2AAJ,JN45,,,,,,12/99 +IZ2DJP,JN55FO,,,,,,05/04 +IZ2EEQ,JN45,,,,,,07/02 +IZ2FOB,JN45MQ,,,ex IW2DVK,,50:5w dipole 144:150W 2x9ft MGF1302 432:4x21 ft-MGF1302-GS35b 1296:xverter50w-35ft,05/05 +IZ2GOL,JN45OL,,,ex IW2LC,,ICOM IC-761 IC-756 IC-275H YAESU FT-897 FT-847 FT-817 KENWOOD TS-480HX TS-790E,03/05 +IZ3KGJ,JN65IN,EME,,,,144: 2x 19el LLY,01/09 +IZ4AIK,JN63HV,,,ex IW4CYM,,50: 100W 5el - 144: TS790 3CX800A7 TS850 & Trvt MGF1302 17el,07/01 +IZ4BEH,JN54WL,,,,,144: 1KW 2x16el MGF2407 - 432: 2x21el 300W - 1296: 57el loop 60W - 2320: 53el loop 20W,10/02 +IZ4BEJ,JN64CE,,,ex IW4DCT,,144: 2x13el gd Pwr,11/97 +IZ4GWE,JN64BL,,,EX IW4EOQ,,,12/07 +IZ5BXF,JN53GV,EME,,ex IW5DRA,,300W- 4x11el 2.2wl- 0.3dbNF,01/01 +IZ5EME,JN52NS,EME,,ex IW5AVM,,144: 4x20el 8877 - 432: 4x25el 3CX800 - 1296: TH338 4x55ft,04/01 +IZ5GNS,JN53CX,EME,,ex IW5CNS,,144: IC275H 4x10el 2.2wl 9BV 8877 MGF1302,08/05 +IZ5MAO,JN54AA,EME,,IW5EKJ,,Transverters-GS35-2x4cx250r-2x9dk7zb-4x25jxx70,09/07 +IZ8AZB,JN70EP,EME,,ex IW8CVV,,144: 4x11el 8930(400W),01/02 +IZ8DWL,JM88BR,,,ex IW8QOT,,144: IC-746 PA 4CX250 16JXX LY MGF1302,04/04 +IZ8IBB,JN70FP,,,,,,08/08 +IZ8IFV,JN70KO,,,,,,08/08 +J44XG,KM19KE,,,EXPEDITION,,,09/07 +J45M,KM46CF,EME,,Expedition,,144: FT100 FT847 IC706 DSP59/Datong audiofilters 3CX800 4x10ele X-pol 3wl MGF1302 NF 0.3dB,06/01 +J48PL,KN20IN,,,Expedition,,,07/06 +J79MY,FK95,EME,,,,4x Yagi- 1.5KW,06/98 +JA0BBW,PM97LV,EME,,,,144: 4x 13el 150W,10/07 +JA0BLU,PM97OS,EME,,,,144: 1KW 4x19el 2x18el MGF1801,01/00 +JA0VI,PM95,EME,,,,,01/03 +JA1DXA,PM95VU,,,,,,01/03 +JA1RJU,QM06CB,EME,,,,50: 2x 14el 1KW - 144: 2x 14el 50W,12/06 +JA1VZV,PM95QL,,,,,,01/03 +JA2HMO,PM85IH,,,,,,01/03 +JA2JRJ,PM84MW,EME,,,,,01/00 +JA2KRW,PM85NE,EME,,,,,01/03 +JA2TY,PM84GS,EME,,,,,01/03 +JA3BXC,PM74SU,,,,,,01/03 +JA3IAF,PM74,EME,,,,,01/03 +JA3SGR,PM74TU,EME,,,,,01/03 +JA4BLC,PM65NM,EME,,,,2320: 6m dish 300W,04/06 +JA4CMZ,PM65MI,EME,,,,,01/03 +JA4KLX,PM95RI,,,,,,01/03 +JA5NNS,PM63,EME,,,,,01/03 +JA5OVU,PM74FC,EME,,,,,01/03 +JA5YJS,PM63,EME,,,,,01/03 +JA6AHB,PM53CP,EME,,,,432: 7m Dish 1KW,11/05 +JA6CZD,PM53FM,EME,,,,2320: 5m dish 150W,04/06 +JA6DZI,PM53GM,EME,,,,,01/03 +JA6XED,PM53,EME,,,,,01/03 +JA6ZHR,PM53,EME,,,,,01/03 +JA7BJP,QM07GN,,,,,,01/03 +JA7BMB,PM97WM,EME,,,,,01/03 +JA7JJN,PM95RQ,EME,,,,,04/09 +JA8ERE,QN02QX,EME,,,,2320: 6m dish 180W,04/06 +JA8IAD,QN03,EME,,,,2320: 5m dish 180W,04/06 +JA8PL,QN03,EME,,,,,01/03 +JA9BOH,PM86FA,EME,,,,144: 4 x 2.8 mt,04/04 +JD1BLY,QL17CC,EME,,EXPEDITION,,,01/08 +JD1BMP,QL17CC,EME,,EXPEDITION,,,01/08 +JE1KFX,QM06IR,EME,,,,144: 4x 18el 500W,05/05 +JE1TNL,PM95PH,EME,,,,2m IC910D+GU74B 4x13ele 70cm IC910D+3CX800A7 4x20ele,08/08 +JE2XBY,PM84MS,EME,,,,,03/05 +JE5FLM,PM74AH,EME,,,,144: 2x 13el Vert 50W,10/06 +JF3HUC,PM74UX,EME,,,,,01/03 +JF3IPR,PM74,,,,,,01/03 +JG2BRI,PM84LW,EME,,,,,04/05 +JH0ISW,PM97LO,,,,,,01/03 +JH0MHE,PM96HI,EME,,,,144: 4x 18el M2 500W,12/05 +JH0QBI,PM97FF,,,,,,01/03 +JH0WJF,PM86,EME,,,,,12/07 +JH0YSI,PM85VJ,EME,,,,,03/01 +JH1EFA,PM96UB,EME,,,,,01/03 +JH1KRC,QM06AW,EME,,,,PO 500 watts exc. 3cm 300 watts 4.4m dish,03/06 +JH1OFX,PM85SM,EME,,,,,01/03 +JH1OQW,PM95UX,,,,,,01/03 +JH1SWD,QM06HN,,,,,,01/03 +JH1XUJ,PM95UR,EME,,,,,01/03 +JH2COZ,PM49NW,EME,,,,144: IC821 4x14el 3.6wl ITT-4651 tube 3SK129 Preamp,09/06 +JH2OJS,PM85LD,,,,,,01/03 +JH3EAO,PM74KR,EME,,,,,01/03 +JH3VJV,PM74LP,,,,,,01/03 +JH4JLV,PM54LA,EME,,,,,01/03 +JH5FOQ,PM63JS,EME,,,,144: 4x 28 Xpol 1KW,08/06 +JH5LUZ,PM63FK,EME,,,,,01/03 +JH6RTO,PM53FA,,,,,,01/03 +JH7PAV,QM07DI,EME,,,,,01/03 +JH7SIA,QM09EN,,,,,,01/03 +JH8CMZ,QN12MN,EME,,,,144: 2x 13el 500W,11/08 +JH9TJT,PM86HK,EME,,,,144: 2x 11el V 50W,11/06 +JI1FLB,PM95WS,,,,,,01/03 +JI1MNT,PM95QH,,,,,TS-870S,03/09 +JI1NJC,QM06FL,,,,,,01/03 +JI3GER,PM75XA,EME,,,,,01/03 +JI4POR,PM65NK,,,,,,01/03 +JJ1NNJ,QM06GH,EME,,,,,01/03 +JJ1VOM,PM95,,,,,,01/03 +JJ3JHP,PM75XD,EME,,,,144: 2x 11el,11/06 +JK1HIX,PM95WH,EME,,,,4x17el 8877,03/99 +JK1KTY,QM05DK,EME,,,,144: 2x15 2.75wl 200W,01/06 +JK1LYP,PM95,,,,,,01/03 +JK1XDX,PM95,,,,,,01/03 +JK7IKU,QM09BR,,,,,,01/03 +JL1ZCG,PM59UM,EME,,,,TS790 4CX1500A 16x 2.5WL V-POL YAGIS,03/99 +JM1GSH,QM06IS,EME,,,,144: 4x 11el 500w,04/05 +JM1LQW,PM96QA,,,,,,01/03 +JM1MQE,PM95RP,,,,,,01/03 +JM1SZY,PM95SO,EME,,,,,08/05 +JM1WBB,QM05DX,EME,,,,144: IC-910D 2 x GU74B 4 x 2M32XP 432: IC-910D 50W 2X720,08/08 +JN1BMX,QM06FM,,,,,,01/03 +JN1CSO,PM95SW,EME,,,,144: 12x 15el H/V 2000W,01/03 +JN1JFC,QM06AD,EME,,,,,03/08 +JN4FNZ,PM54QD,EME,,,,144: 2x 13el 800W,01/90 +JO1LVZ,PM95RT,EME,,,,144: 4x 9el 50W,05/06 +JO3FUO,PM74RT,,,,,,06/07 +JO3JJN,PM85AC,EME,,,,,01/03 +JO3RNL,PM74TT,EME,,,,,01/03 +JR1EDE,PM95TG,EME,,,,10368: 1.8m Dish 40W,02/01 +JR1EUX,PM95TO,EME,,,,,01/03 +JR1RCH,PM96SI,EME,,,,,01/03 +JR2HCB,PM85NC,EME,,,,50: 2x 10el,04/05 +JR3REX,PM74LQ,,,,,,01/03 +JR4AEP,PM65RH,EME,,,,,01/03 +JR4BRS,PM65,EME,,,,,01/03 +JR5JXV,PM86XG,,,,,,01/03 +JR5UOY,PM64XF,,,,,,01/03 +JR6EXN,PM53FH,EME,,,,50: 4x 8el Yagi.full elev. Homebrew 1000W,01/09 +JR6LDE,PM53FS,,,,,144: 12el 50W,06/06 +JR7VXF,QM09AK,,,,,,01/03 +JR9NWC,PM85BW,EME,,,,,01/03 +JS3CTQ,PM74UN,EME,,,,144: 4x 11el 500W,05/06 +JS3SIM,PM74VW,EME,,,,,01/03 +JW5E,JQ78QF,EME,,,,144: 2 x 10Xpol 800w,02/08 +JX7DFA,IQ50OV,EME,,QSL via LA7DFA,,TS2000,08/00 +K0AWU,EN37ED,EME,,,,144: 800w 1x 4wl 13el Yagi,11/06 +K0AZ,EM37CD,,,,,144: 800Watts 17B2,09/01 +K0BLR,EN25UO,,,,,,01/03 +K0CB,EM27,,,,,,01/03 +K0CIO,EM07,,,,,,01/03 +K0CJ,EN34IS,,,,,,01/03 +K0CQ,EN32EC,,,,,,01/03 +K0CXJ,EN26,,,,,,01/03 +K0DAS,EN42,EME,,,,,01/03 +K0FF,EM49HO,,,,,50: 1-5KW 7el or 4x6el - 144: 1-5KW 2x17el M2 or 4x17el,01/01 +K0FQA,EN35FE,,,,,,01/03 +K0FZG,EN36,,,,,,01/03 +K0GCJ,EN43,,,,,,01/03 +K0GEI,EM49,,,,,,01/03 +K0GRM,DN96OT,,,,,,01/03 +K0GU,DN70MQ,EME,,,,144: FT1000DEM 8877 4x17elB2 SSB Preamp,01/01 +K0HH,EM48,,,,,,01/03 +K0HU,EN10,,,,,,09/99 +K0HWE,EN41BX,,,,,,01/03 +K0IDC,EN12TL,,,,,,01/04 +K0IDT,EN10PS,,,,,,01/03 +K0IK,EN34JR,,,,,,01/04 +K0ILC,EN36,,,,,,01/03 +K0IR,EN25,,,,,,01/03 +K0JO,EN34,,,,,,01/03 +K0KE,DM79,,,,,,01/03 +K0KFC,EN34,,,,,,01/03 +K0KJX,EM48,,,,,,01/03 +K0KP,EN36VW,EME,,,,50M:7 ele 100 144: 5WL 1.5 KW,10/07 +K0KQY,DM98,,,,,,08/00 +K0LGI,EN42,,,,,,01/03 +K0LLS,EM29,,,,,,01/03 +K0MQS,EN31UH,,,,,,01/03 +K0NG,EN10,,,,,,01/03 +K0NL,EM48MK,,,,,,01/03 +K0NY,EN44DB,,,,,,01/03 +K0OG,EM47CW,,,,,FT100D 50: 100W G5RV 144: 50W 3el beam,10/06 +K0PFX,EM48SR,,,,,,01/03 +K0PG,EN61AU,,,,,,01/03 +K0PJ,EN34,,,,,,01/03 +K0PS,DM59VG,,,,,,01/04 +K0PW,EN34CV,EME,,ex NJ0M,,144: 1.5KW 2x17el 5lb MGF1302,09/01 +K0RDF,EM29,,,,,,01/03 +K0RI,DM78PX,EME,,,,144: 1x 17el KW,06/05 +K0RL,EM49HU,,,,,,01/03 +K0RP,DM88AD,,,,,50: 150W - 144: 150W - 222: 110W - 432: 110W - 1296: 10W,01/01 +K0RRY,EN36,,,,,,01/03 +K0RZ,DM79JX,,,,,,01/03 +K0SDH,EN34JS,,,,,,01/03 +K0SE,EN34,,,,,,01/03 +K0SHF,EN34JV,,,,,,01/03 +K0SM,EN10RT,,,,,144: 160W Preamp 13B2,01/01 +K0SQ,EN35,,,,,,01/03 +K0TAR,EN34,,,,,,01/03 +K0VM,EN42,,,,,,01/03 +K0VSV,EN41LK,,,,,50: 8W 5el - 144: 170W 12el,01/98 +K0WLU,EN13XS,,,,,,01/03 +K0XP,FN31,,,ex KO0U/1,,144: 350W 3219 - 222: 450W KLM16,01/02 +K0XXX,EM46FF,,,KD5LUN,,IC-746 FT-736R,05/07 +K0YW,DM67ED,EME,,,,,03/06 +K0ZPO,EM15,,,,,,01/03 +K1ABC,FN42,EME,, +K1DS,FN20JE,EME,,,,144: 10el 120W,07/06 +K1FO,FN31QJ,EME,,,,,01/03 +K1IM,FN31WX,,,,,,01/03 +K1JT,FN20QI,EME,,,,144: 4x 14XP 1KW,01/08 +K1MS,FN42,,,,,144: 1KW 2x M2 5wl,01/01 +K1OR,FN42IR,EME,,,,144: 4x 13el no elevation 1500W - 432: 1500W,02/08 +K1OYB,FN43TP,,,,,,01/03 +K1POP,FN51,,,,,,01/03 +K1RC,FN42HQ,,,,,,01/03 +K1RO,FN31,,,,,,01/03 +K1RQG,FN54LM,EME,,,,,04/05 +K1RS,EN53wb,EME,, +K1RZ,FM19JH,,,,,,01/03 +K1SG,FN42FE,EME,,WA1AYS,,50 MHz: IC756PRO 3-1000Z Terrestrial: 2 x M2 6M2.5WLC EME: 4 x 6M5X w/full elevation.,09/07 +K1TEO,FN31,,,ex WA2TEO,,144: 800W 4x12el - 222: 500W 2x23el,01/01 +K1TR,FN42IU,,,WA1OAM,,,05/07 +K1UHF,FN31FH,EME,,ex KD1DU,,144: 1-5KW 4x12el - 222: 500W,01/01 +K1VOW,DM25VF,,,,,,01/03 +K1ZE,FN41,,,ex WA1HYN,,144: 300W 2x4218 - 222: 60W 220B - 432: 400W 2xK2RIW,01/98 +K2AAX,FN12CS,EME,,ex KA2RDO,,144: 4x 9el 400,11/05 +K2AH,FN20,EME,,,,,01/03 +K2AXX,FN12CS,EME,,,,144: TS-930S Transverters 4x 9el 400W - 432: TS-830S Transverters,11/05 +K2BLA,EL99IA,EME,,,,144: 400W 8x 2.5WL,04/05 +K2DH,FN13FB,EME,,,,,01/08 +K2DRH,EN41VR,EME,,ex KA2DRH,,144: 2x 18el 1KW,03/07 +K2DRM,EN41VR,EME,,,,144: 2x 18el 1KW,06/06 +K2EVW,EM96SS,,,,,,01/03 +K2GAL,FM29PH,EME,,,,,01/98 +K2LME,FN31UI,EME,,,,,10/98 +K2OS,FN13CD,EME,,,,,12/00 +K2OVS,FN30,,,,,50: 250W 6el - 144: 200W single yagi - 432: 60W single yagi,01/01 +K2PGB,FN20,,,,,50: TS680S 10W 3el - 144: IC251A 80W 13B2,01/01 +K2STO,EL88PH,,,,,,01/03 +K2TXB,FM29PT,EME,,,,144: 2x KLM 16LBX 28,04/05 +K2UYH,FN20QG,EME,,,,432: 28 dish 1KW,09/05 +K2VEE,EM79WP,,,,,,01/03 +K2WKA,FN20RF,,,,,,01/03 +K2YAZ,EN74AV,,,,,,01/03 +K2ZD,FN21NR,EME,,,,50: 7el QRO,12/07 +K3ACE,FM29DR,,,,,,01/03 +K3AX,FN20,EME,,,,,01/00 +K3BFA,FN10XI,,,,,144: 1-5KW 4x15el,01/01 +K3CB,FM18VR,EME,,K6LEW,,Orion,02/09 +K3DJC,FM19LL,,,,,,01/03 +K3EAR,FM19HX,,,,,,01/03 +K3EOD,FM29LL,,,,,,09/06 +K3FOR,FM19SB,EME,,,,,01/03 +K3FU,FM18,,,,,,01/03 +K3GNC,FM29KX,,,,,,01/97 +K3HZO,FN20AG,,,,,50: 350W 5el - 144: 350W 17el - 432: 100W 24el,01/98 +K3IB,FM19UU,EME,,,,50: 200W 6M5XX - 144: 1-5KW FO12 - 222: 300W - 432: 300W 2xRIW,12/07 +K3JT,EM99XO,,,,,,01/03 +K3JYD,FM18,EME,,,,432: 4x 19el 400W 144 2 x K1FO-15 1500W,05/07 +K3LFO,FM19,EME,,,,,01/03 +K3LOW,EN91BK,,,,,,01/03 +K3MF,FM19XP,EME,,,,432: 8x 25 K1FO GS23b 1500w,01/08 +K3ROJ,FM19SH,,,,,,01/03 +K3SIW,EN52,,,,,,01/03 +K3TKJ,FM28EM,,,,,,01/03 +K3TUF,FN10WE,,,,,,01/04 +K3TV,FN20EP,,,,,,01/03 +K3UZY,FN20,,,,,,01/03 +K3VLQ,EM92,,,,,,01/03 +K4AL,EM66QF,EME,,,,144: 15el 400W,05/05 +K4AR,EM76,EME,,,,432: 8x28el (9lb) Yagis 1-5KW 0.25db,01/00 +K4BTY,EM66,,,,,TS-870 TS-850 FT-736R,05/09 +K4CSO,EM73,,,,,,01/03 +K4DD,EM60NP,,,,,,01/04 +K4DRF,EM74QA,,,,,,01/03 +K4DXA,EM95pe,,, +K4EJQ,EM86,,,,,,01/03 +K4EME,FM08JF,EME,,,,432: 8x 33el 800W,09/05 +K4FJW,EM86,,, +K4HJE,EM96,,,,,,01/01 +K4JAF,EM70EK,,,,,,01/03 +K4KAE,FM02AT,,,,,,01/03 +K4KO,EM66UD,EME,,,,144: 100W 15el,05/06 +K4MRW,EM64PW,,,ex WB4AXQ,,,01/01 +K4QF,EM64,,,,,,01/03 +K4QI,FM06,EME,,,,,08/05 +K4QXX,EL87RM,,,,,,01/03 +K4RF,EM84DJ,,,ex WS4F,,,01/01 +K4SDI,EM56TQ,,,,,,01/03 +K4SSO,EM48SR,,,,,144: 160W 16el,01/02 +K4SSP,EM47,,,,,,09/99 +K4TAX,EL96WF,,,,,,01/03 +K4VJ,EL96LX,,,,,,01/03 +K4WRI,EL98LM,,,,,,01/03 +K4WY,FM18IS,EME,,,,IC-7000xvcr to 2MPX20 xpol yagis(2) Commander II amp avg 500watts out preamp etc,11/08 +K4XR,EM64NL,EME,,,,144: 2x 18el QRO,09/04 +K4YA,EM25,,,,,,01/03 +K4YNT,EM74KW,EME,,,,,02/05 +K4ZFY,EL18,,,,,,01/03 +K5AIH,EL09TK,EME,,,,,01/98 +K5AM,DM62NI,EME,,,,144: 1x 17el 1500W,11/06 +K5APM,EM10BL,,,,,,01/03 +K5AZU,EM40SN,EME,,,,,01/03 +K5BYS,EM13,,,,,,01/03 +K5CBL,EM15,,,,,,01/03 +K5CFM,EM15,,,,,,01/03 +K5CM,EM25,,, +K5CPZ,EM15,,,,,,01/03 +K5CZD,EM32VN,EME,,,,144: 2x 13el 375W,05/06 +K5DNL,EM15LJ,EME,,,,50: 7el 144: 2x 17el 400W,04/07 +K5EGW,EM30,,,,,,01/03 +K5EWS,EM10,,,,,,01/03 +K5FA,EM44,,,,,,01/03 +K5GE,EL09,,,,,,01/03 +K5GMX,FN31NU,EME,,,,144: 4x 13el 600W,04/05 +K5GNA,EM20,,,,,,01/03 +K5GW,EM13PA,EME,,,,144: 48x10el,04/05 +K5IS,DM96,,,,,,01/03 +K5IUA,EL29CD,,,ex KB5IUA,,,01/01 +K5JL,EM15DQ,EME,,,,,01/05 +K5LLL,EM10KF,,,,,,03/07 +K5LZO,EM20,,,,,,01/03 +K5MAT,DM65,,,,,,01/03 +K5MQ,EM31WQ,EME,,,,144: 17B2 1500W,11/06 +K5OGE,EM20UX,,,,,,01/01 +K5PHD,EM12,,,,,,01/03 +K5PHF,DM61,,,,,,01/03 +K5PJR,EM37KA,EME,,,,1296: 4m dish 300W 0.2db lna,09/06 +K5QE,EM31,EME,,,,144: 8x 18el M2 QRO - 432: 19x 9wl,11/06 +K5QQ,DM65SB,,,,,,01/03 +K5QXJ,EM30XA,,,,,,01/03 +K5RFI,EM16,,,,,,01/03 +K5RHR,DM65UV,,,,,,01/03 +K5RUS,EM32VM,,,,,,01/03 +K5SO,DM66XW,EME,,,,1296: 250W 8.6m dish 0.2db LNA,04/06 +K5SXK,EM12,,,,,,01/03 +K5TN,EM15,,,,,,01/03 +K5TNP,EM32,,,,,,01/03 +K5TTT,EM26CH,,,ex KB5ZUD,,,01/02 +K5UHF,EM10DJ,,,,,,01/03 +K5UJC,EM20VB,,,,,,01/04 +K5VH,EM00XE,,,,,,01/03 +K5WO,EM12,,,,,,01/03 +K5WPN,EM14AL,,,,,144: 100Watt 11el cushcraft 50: omni 432: 50watts 11el M2,05/07 +K5WXN,DM61,EME,,,,,01/03 +K5YPV,EM54MR,,,,,,01/03 +K5YY,EM26,,,,,144: 1KW 13el,01/03 +K5ZMJ,EM12,,,,,,01/03 +K5ZMS,EL09,,,,,,01/03 +K5ZSJ,EM12,,,,,,01/03 +K5ZXE,EM14KL,,,,,,01/03 +K6AAW,CN80TE,EME,,,,144: 4x15el 3wl 1.2KW MGF1302,06/06 +K6ALF,CM97BH,,,,,,01/03 +K6CYS,DM12KT,,,,,,01/03 +K6DV,DM13NI,EME,,,,,01/03 +K6FQ,DM12NL,EME,,,,144: 4x7ele crossed 1.3KW,03/05 +K6HLH,DM14CP,EME,,,,,05/07 +K6IAH,DM12,,,,,,01/03 +K6IBY,DM13,EME,,SILENTKEY,,,10/08 +K6JEY,DM03WT,EME,,,,432: 4x25el K1FOs 500W 0.4db,10/06 +K6KL,CM97,,,,,,01/03 +K6LEW,FM18LT,EME,,,,,11/00 +K6MBY,CN88KD,,,,,Icom 746 144: M2 17 el 3000K ERP,09/07 +K6MXI,CM88QL,,,,,,01/03 +K6MYC,DM07DB,EME,,,,144: 4x 32XP M2 1KW,04/07 +K6PF,DM13AR,,,,,144: FT726r 175W 4xM 2MXP20,01/01 +K6QXY,CM88QL,EME,,,,,10/05 +K6SUE,CM98AK,,,,,144: 650W 2x17el- 222: 120W 7wl- 432: 175W 2x9el,11/99 +K6UCY,FN42HM,EME,,,,4x 25el 1KW,03/07 +K6UIY,DM14,,,,,144: FT726r 1KW 2Yagis,01/97 +K6UM,CM88,,,,,,01/03 +K6ZX,CN82GM,,,,,144: 160W 2x2M9,01/97 +K7AD,DN06ID,EME,,,,144: 4x 14el 1kW,10/05 +K7BV,FN31VI,EME,,,,50: 1000w 4x7el,03/05 +K7CA,DM37,EME,,,,144: 8x 16el 1500W,09/08 +K7CAI,DN27KF,,,,,,01/03 +K7CW,CN87LJ,EME,,,,6m kW 8elem - 2m kW 16elem,04/07 +K7FB,DN17HN,EME,,,,400W 11db ant,05/07 +K7IEY,CN88,,,,,,03/98 +K7JA,DM03XS,,,,,144: 190W 19el,01/98 +K7KX,DN55,,,,,,01/03 +K7LNP,DN30,EME,,,,,09/99 +K7MAC,DN13SN,EME,,,,50: 7el 1000W 144: 4x 15el 1500W,09/05 +K7MDL,CN87XT,EME,,,,144: 2x 3wl 300W,04/05 +K7MI,CN73TC,EME,,,,144: 4x 17el 500W,12/07 +K7ND,CN87QF,,,,,144: 1KW 2x5wl M2,01/01 +K7NEP,DN53NF,,,ex N2NEP,,FT1000MP 144: HM 1KW PA 13el,01/98 +K7OO,DM04,,,,,,01/03 +K7PVT,CN88SA,,,,,,01/03 +K7TRM,DM33VP,,,,,,01/03 +K7UOP,DM33XN,,,,,,01/01 +K7UV,DN31XM,,,,,,01/03 +K7WIA,CN87TR,EME,,,,,03/05 +K7WUP,DM49IG,EME,,,,,01/03 +K7XC,DM09NM,EME,,EX NC7K KD7DH A35WZ,,50: IC746 100W 6el 144: IC746 350W 18xxx 222: xvtr 400W 27el 432: IC706IIG 300W 33el,05/07 +K7XD,CN85,EME,,,,144: 400W 2x23el,01/97 +K7XQ,CM97QI,EME,,ex KO6RD,,50: 2x 7el 1KW - 144: 4x 2MPX18 Xpol 3lb 1.5KW MGF1302 - 432: 4x 9wl 1KW,10/06 +K7XW,CN96XI,EME,,,,50: 1-5KW 5el - 144: 600W 2x3.5wL - 222: 50W 5wl - 432: 200W 4x5.3wl,01/01 +K7YVZ,DN13TL,,,ex KC7YVZ,,144: 1-5KW 4x18XXX 2x13el Quagi Preamp - 432: 350W 4x38el,01/01 +K7ZL,CN84JC,,,,,144: 150W 36foot yagi,01/98 +K8BHZ,EN75DB,,,,,144: 1-5KW 4x17B2,01/98 +K8DGY,EN63WW,,,,,,01/03 +K8EB,EN73CB,EME,,,,144: 1500W 2x 18el,12/05 +K8EME,EN72EH,EME,,ex NP4C,,144: FT847- 4x11el 2.2lb- 8877 (1-5KW),03/00 +K8GUN,FM09WH,EME,,WB8VAZ,,ICOM,04/07 +K8IE,EN52,,,,,,01/03 +K8ISK,FM18DV,EME,,,,,01/03 +K8MD,EN82,,, +K8MM,EN83IB,,,,,,01/04 +K8RAY,EN72XK,EME,,,,144: 4x 9el 400W,10/07 +K8ROX,EN80LO,,,,,,01/03 +K8SD,EN12,,,,,,01/03 +K8TL,EM89CV,EME,,,,144: 360W 2MXP28,12/07 +K8UC,EM99EG,EME,,,,,01/03 +K8UK,EN82LK,EME,,,,,01/03 +K8VEB,EN72NN,,,,,,01/03 +K8VP,EN91,EME,,ex KB8ZW,,,07/01 +K8XK,EN42,,,,,,01/03 +K9AKS,EN41,,,,,,01/03 +K9AM,EN52,,,,,,01/03 +K9BCT,EL96UE,EME,,,,,01/03 +K9BMB,EM69OG,,,,,,01/03 +K9CA,EN61ML,,,,,,01/03 +K9CFA,EN52,,,,,,01/03 +K9CT,EN50BQ,EME,,,,IC7800 IC756 ProII Demi xvtr LunarLink 4x18 XXX Demi LNA,09/07 +K9DMW,EN52UI,,,NT9E,,756PROII(6m) 910H(144/432),09/07 +K9DQ,EN62AS,,,,,,08/06 +K9DRO,EN54fn,,, +K9DTB,EM89,,,,,,01/90 +K9DX,EN52XC,EME,,,,144: 8x 19el Amp. 8877,09/06 +K9EA,EN94CB,,,,,,09/01 +K9EK,EM79BF,,,,,,01/03 +K9FYV,EN41,,,,,,01/03 +K9HJZ,EN50ES,,,,,,01/03 +K9HMB,EN52VI,EME,,,,,12/00 +K9HSK,EN51,,,,,,01/03 +K9IJ,EN52,,,,,,01/03 +K9ILT,EN61AU,,,,,,01/03 +K9IMM,EN52,,,,,,01/03 +K9IMX,EM38,,,,,,01/03 +K9IZV,EN53,,,,,,01/03 +K9JK,EN52XC,,,,,,01/03 +K9KFR,EN71GG,EME,,,,,01/03 +K9KHW,EN63AD,,,,,,01/03 +K9KL,EN64,,,,,,04/06 +K9KNW,EL96EC,EME,,,,,03/05 +K9MB,EM57,,,,,,01/03 +K9MRI,EN70IU,EME,,,,144: 8x m2 yagis and 1.2kw,04/05 +K9MU,EN44HW,EME,,ex KB9UZV,,,01/06 +K9NS,EN52RL,,,,,144: 2M18XXX,05/06 +K9OQN,EN52,,,,,,01/03 +K9PO,EN52VF,,,,,,01/03 +K9PW,EN52,,,,,,01/03 +K9SLQ,EN70KK,EME,,,,432: 16x FO22 1.5 KW,07/07 +K9SM,EM59EE,EME,,,,144: 4x 9el 500W,11/05 +K9SQL,EM69RF,,,,,,01/04 +K9TI,EN51,EME,,,,144: 4x K1FO 12 el PA 8877,02/01 +K9VHF,EN53,EME,,,,144: 17el 400W,05/05 +K9VNM,EN63,,,,,,01/03 +K9VS,EN52,,,,,,01/03 +K9XI,EN61,,,,,,01/03 +K9YR,EN52,,,,,,01/03 +K9ZZH,EN61,EME,,,,,01/03 +KA0EWM,EN30,,,,,,01/03 +KA0KCI,EM17,,,,,,01/03 +KA0KUY,EM07XD,,,,,,01/03 +KA0MOW,EM17,,,,,,01/03 +KA0MR,EM18GE,,,,,,01/03 +KA0MWA,DM79LL,,,,,,01/03 +KA0NNO,EM24TL,,,,,,01/97 +KA0OGU,EM29,,,,,,01/03 +KA0PQW,EN33,,,,,,11/01 +KA0RYT,EN34DW,EME,,,,,01/02 +KA0UZZ,EN34,,,,,,01/03 +KA0Y,EN41,EME,,,,,08/00 +KA0YSQ,EN42,,,,,,01/03 +KA0ZOZ,EN23,,,,,,01/03 +KA1JBG,FN42,,,,,,01/03 +KA1OTP,FN41,EME,,,,,01/03 +KA1R,FN42NE,EME,,,,,05/09 +KA1VHF,EM89LL,EME,,,,144 2x 17el 1KW,10/06 +KA2DRH,EM64KT,,,,,,01/03 +KA2HZO,FM29US,,,,,,01/03 +KA2KQM,EM74QA,,,,,,01/03 +KA3DQD,FM29DO,,,ex N3ZWW,,Ten-Tec 526 ICOM 735,03/06 +KA3HED,FM27,,,,,,01/03 +KA3WSZ,FM29GK,EME,,,,,01/03 +KA4WJA,EL89WE,,,,,,01/03 +KA5AAE,EM06,,,,,,01/03 +KA5AIH,EL29NW,EME,,,,,10/96 +KA5DWI,EM12JU,,,,,Yaesu FT-290R FT-726R and FT 747GX,01/09 +KA5PVB,EM13,,,,,,01/03 +KA5TQY,EM43,,,,,,01/03 +KA5UEL,EM12,,,,,,01/03 +KA5UEV,DM93,,,,,,01/03 +KA5ULI,EM30,,,,,,01/03 +KA5WMJ,DM96,,,,,,01/03 +KA5WRG,EM15,,,,,,01/03 +KA5YJJ,EM44NN,,,,,,01/03 +KA6NBC,CM98,,,,,,01/03 +KA7V,DN14MA,,,,,144: 13B2 1500W,11/03 +KA8EDE,EM79,,,,,,01/03 +KA8HOK,EM89LL,EME,,,,144: 2x 19el 600W,10/06 +KA8HQL,EM89VU,,,,,,01/03 +KA8SFP,EM12,,,,,,01/01 +KA8SSB,EM79,,,,,,01/03 +KA8TER,DN43AL,,,,,,01/03 +KA9CFD,EN40OM,,,,,,08/05 +KA9LDS,EN51,,,,,,01/03 +KA9LLF,EM71,,,,,,01/03 +KA9LNP,DN30,,,,,144: 800W KLM13LBA,01/01 +KA9MGR,EN41,,,,,,01/03 +KA9OIL,EN62,,,,,,01/03 +KA9UVY,EM58NG,,,,,,01/03 +KA9YCB,EM57QQ,,,,,,01/03 +KB0BFI,EM29LL,,,,,,01/03 +KB0BVR,EN26AH,,,,,,01/03 +KB0CY,DM79,,,,,,01/03 +KB0EMR,EN31,,,,,,01/03 +KB0FHP,FN20GE,,,,,,01/03 +KB0FRX,EN10,,,,,,01/03 +KB0G,DM79PA,EME,,,,,09/06 +KB0GL,EN35,,,,,,01/03 +KB0GR,EM29,,,,,,01/03 +KB0GU,EM28TW,,,,,,01/04 +KB0HH,EM07QD,EME,,,,,01/04 +KB0IKP,EN25UQ,,,,,,01/03 +KB0LRI,DM79,,,,,,01/03 +KB0LXX,DN96,,,,,,01/03 +KB0MNK,EN34IW,,,,,,01/03 +KB0NR,EN35OG,,,,,,01/03 +KB0OBT,EN35KB,,,,,,01/03 +KB0OZN,EN34,,,,,,01/03 +KB0PYO,EN24GP,,,,,,01/97 +KB0THN,EN44DB,,,,,,01/03 +KB0TZA,EN35ID,,,,,,01/03 +KB0USF,DM79LR,,,,,,01/03 +KB0VUK,EN34PK,,,,,,09/01 +KB1CJ,FN42JG,,,,,IC746 50: 100W 2el - 144: 100W 13el,09/03 +KB1DFE,FN42ES,,,,,,01/03 +KB1HGB,FN53EU,,,,,,01/03 +KB1LKB,FN31RS,EME,,,,144: 2x 12el 300W,09/06 +KB2AH,FN20,,,,,,01/03 +KB2M,FM29PE,,,,,,01/03 +KB3EDF,FM18RH,,,,,,04/07 +KB3HWO,FN10UB,,,,,,01/03 +KB3PD,FM29,EME,,,,,01/03 +KB3PMR,FN10,EME,, +KB4FQ,FM04GR,,,,,,01/03 +KB4RSM,EM66OG,,,,,,01/03 +KB4WM,EM63,EME,,,,,01/03 +KB4ZGO,FM06BQ,EME,,,,144: 160W 13B2,08/05 +KB5DAK,DM96,,,,,,01/03 +KB5EK,EM15,,,,,,01/03 +KB5MR,EM26,,,,,,01/03 +KB5MY,DM13NC,,,,,,01/03 +KB5UBE,EM12LQ,,,,,,01/03 +KB5ULP,EM15,,,,,,01/03 +KB5VL,DM73RK,,,,,,01/03 +KB5VQQ,EM15,,,,,,01/03 +KB5WII,EM15,,,,,,01/03 +KB5WMY,EM32,,,,,,01/98 +KB5YAJ,EM14,,,,,,01/03 +KB5YUA,EM44,,,,,,01/03 +KB5ZMY,EM12,,,,,,01/03 +KB5ZUD,EM26,,,,,,01/03 +KB6IGC,DM15DO,,,,,,01/03 +KB7FUV,DN44,,,,,,01/93 +KB7XO,DN41AB,,,,,,01/03 +KB8GC,EN74HD,,,,,,01/03 +KB8JVH,EN80,,,,,,01/03 +KB8O,EN82JJ,,,,,,03/00 +KB8RQ,EM79SV,EME,,,,144: 8x 19el M2,03/05 +KB8U,EN71SW,EME,,,,,01/06 +KB8VAO,CM87XW,EME,,,,,02/09 +KB8ZUZ,EN83JL,,,,,,01/03 +KB8ZW,EN91IJ,,,,,,01/03 +KB9GPW,EN61,,,,,,01/03 +KB9II,EN52WA,,,,,,01/03 +KB9KCJ,EN52,,,,,,01/03 +KB9MLA,EN61CX,EME,,,,18el- 160W,10/98 +KB9NKM,EN70NS,EME,,,,144: 4x 13el 1KW,11/06 +KB9NLM,EN53UO,,,,,,01/03 +KB9PCL,EN41,,,,,,01/03 +KB9PJL,EN44DV,EME,,,,144: 400W 18el,11/06 +KB9Q,EN52VV,,,,,,01/03 +KB9RQZ,EM59,EME,,,,144: 13el 100W,07/06 +KB9TLV,EN45MW,,,,,,01/03 +KB9UMT,EN50DP,,,,,,01/03 +KB9VQC,EN53,,,,,,01/03 +KB9VUG,EN52,,,,,,01/03 +KB9YXF,EN61,,,,,,01/03 +KB9ZK,EN62,,,,,,01/03 +KC0AKJ,EN42,,,,,,01/03 +KC0AMG,DM98GK,,,,,,01/03 +KC0BMF,EN31BE,EME,,,,50: 5ele 100W 144: 13el 100W,12/08 +KC0CHW,EN41IN,,,,,,01/03 +KC0CRE,DM28,,,,,,01/03 +KC0FTQ,DM79OB,,,,,,01/03 +KC0FXY,EN34,,,,,,01/03 +KC0HLN,EN32tl,,, +KC0HTB,EN34JT,,,,,,01/03 +KC0LBT,EN35IB,,,,,,01/05 +KC0LMS,EN34IW,,,,,,01/03 +KC0MLS,EM19QU,,,,,,01/03 +KC0OG,EN10,,,,,,01/03 +KC0P,EN34SB,,,,,,01/03 +KC0QR,EN10,,,,,,01/03 +KC0UWS,DN70KE,EME,,,,50: 3el,08/05 +KC0Y,DM79,,,,,,01/03 +KC2TN,FM29NS,,,,,,01/03 +KC3AK,FM19UU,,,,,,01/04 +KC3RE,FM18DP,EME,,ex TF3XUU TA3/KC3RE,,144: 280W 0.5dB 15el can elevate manually to 10 eme from car - 432: 110W 0.5dB 19 el can elevate manually to 30,04/06 +KC4PX,EL98QG,EME,,,,,06/05 +KC4VI,EL88SD,EME,,,,144: 4x 3.5wl 1000W,05/05 +KC5BQS,EL29,,,,,,01/03 +KC5BRO,EM15,,,,,,01/03 +KC5LOW,EM22,,,,,,01/03 +KC5NOA,EL08,,,,,50: 150W 5el - 144: 100W 10el - 432: 20W 19el,01/01 +KC5NOB,EL07,,,,,50: 10W 5el - 144: 170W 8el - 432: 10W 19el,01/01 +KC5UOO,EM26,,,,,,01/03 +KC5WX,EM13LB,,,,,,01/03 +KC5YKX,EL17HS,,,,,Icom 746 w/ DEM 22 and 432 xverters 50: 5el - 144: 13el - 222: 15el - 432: 25el,05/02 +KC5ZXE,EM45AM,,,,,,01/03 +KC6A,DM03,EME,,,,,01/03 +KC6TEU,CM98MQ,,,,,,01/03 +KC6WFS,DM04RK,,,,,50: 100W 5el - 144: 100W 2x12el - 432: 50W 2x18el,08/01 +KC6ZWT,CM98NO,EME,,,,144: 300W 17el M2 - 222: 250W 15el - 432: 150W 19el,10/08 +KC7MRP,CN88,,,,,,01/97 +KC7OTV,CN84KA,,,,,,01/03 +KC7V,DM43AS,EME,,,,Rig Kenwood TS2000 Amp Antenna Works 8877 Ant 4 x 2M5WL,10/06 +KC8CCD,EM79VM,,,,,,01/03 +KC8DLL,EN66,,,,,50: 150W M25 - 144: 200W 2x13B2 - 432: 100W KLM,01/98 +KC8GYW,EM79,,,,,,01/03 +KC8NST,EN91QB,,,,,,01/03 +KC8OIT,EN83,,,,,,07/01 +KC8QVO,EM79VP,,,,,,11/05 +KC9AAX,EN52,,,,,,01/03 +KC9AER,EN52,,,,,,01/03 +KC9AYO,EN52,,,,,,01/03 +KC9BTW,EN52,,,,,,01/03 +KC9CMT,EN63LA,,,,,,01/04 +KC9ELU,EM79hj,,, +KD0BT,EN41,,,,,,01/03 +KD0DW,DN70LF,,,,,,01/03 +KD0HE,EN00,,,,,,01/03 +KD0KUK,EN35dw,,, +KD0LO,EM48,,,,,,01/03 +KD0PY,EN41UX,,,,,144: IC275A 2516g 150W 13el - 432: IC471H 70W 15el,01/01 +KD0SU,DM78,,,,,,01/03 +KD1DU,FN31FH,EME,,,,,01/03 +KD3UY,FM19LG,EME,,,,144: 2x 4WL antenna 1KW,05/05 +KD4ESV,EL87RH,,,,,,01/01 +KD4FNB,FM17TD,,,,,,01/03 +KD4LT,EM81CG,EME,,,,,01/03 +KD4MZM,EL87RG,EME,,,,50: FT107m - 144: FT726r 170W 19el,07/01 +KD4NOQ,EM55BE,,,,,,01/03 +KD4NUD,EM91HB,,,,,,01/03 +KD4TJN,EM55CE,,,,,,01/03 +KD5FFW,EM12,,,,,,01/03 +KD5FZX,EM12MP,EME,,,,,01/03 +KD5HIO,DM65UV,EME,,,,,01/03 +KD5KJD,EL29IR,,,,,,01/04 +KD5LDQ,EM26IH,,,,,,01/03 +KD5LWU,DM66AU,,,,,,01/03 +KD5OMJ,EM04UO,,,,,,01/03 +KD5OUG,EM12,,,,,,01/03 +KD5QQU,EM12QX,,,,,,01/03 +KD5QWO,EM15AJ,,,,,Yaesu ft-847,01/04 +KD5XB,DM84,,,,,,12/06 +KD7ETC,DM54AH,,,,,,01/04 +KD7YZ,EM88,,, +KD9KX,EN42,,,,,,01/03 +KE0MO,EN41,,,,,,01/03 +KE0UQ,EM29,,,,,,01/03 +KE2N,FM18EW,EME,,G0VSN,,432: 16x 28el 1000W,08/07 +KE3PL,FN20PM,,,,,,01/03 +KE4ENX,EM84GM,,,,,,01/03 +KE4IKM,EM73,,,,,,01/03 +KE4KDB,EM55,,,,,,01/03 +KE4MKW,EM84DJ,,,,,,01/03 +KE4VUN,EM67MS,,,,,,01/03 +KE4WBO,FL96VW,EME,,,,222: 4x 16el 120W,10/06 +KE4YH,EL88OA,,,,,,01/01 +KE4YYD,EL97RV,,,,,,09/06 +KE5CO,EL29,,,,,,01/03 +KE5ML,EM15,,,,,,01/03 +KE6NDG,CN90QJ,,,,,,01/03 +KE6PT,CM88UE,,,,,,01/03 +KE7CX,CN85LJ,,,,,,01/03 +KE7NR,DM33WM,EME,,,,144: 4x 13el KW 432: 2x 28el 1KW 50MHZ 5 ele L/B & KW,05/07 +KE7NS,DN41AF,,,,,,01/02 +KE7OI,DN13SU,EME,,,,,01/01 +KE7V,CN88JB,,,,,,01/04 +KF0AU,EN31HI,,,,,,01/03 +KF0CK,EM38JC,,,,,,01/03 +KF0DS,DM41,,,,,,01/03 +KF0FE,EN41,,,,,,01/03 +KF0M,EM17HO,EME,,,,,01/01 +KF0OA,DM79,,,,,,01/03 +KF0Q,EN44EA,,,,,,01/03 +KF4HOU,EM86VE,,,,,,01/03 +KF4JU,EL87,,,,,,01/03 +KF5AL,EM13,,,,,,01/03 +KF5IU,EM31WR,,,,,,01/03 +KF5PE,EM12,,,,,,01/03 +KF6BXH,CM87VQ,,,,,,01/03 +KF6HQC,DM14ED,,,,,,01/03 +KF7CN,DN16LV,,,,,,01/01 +KF7IS,DN41AC,,,,,,01/04 +KF7VY,DN17IQ,,,,,,01/03 +KF8QL,EN72FU,,,N8MXK,,IC-746-Flexradio 1000-DEMI transverters,01/09 +KF9CY,EM59,,,,,,01/03 +KF9YR,EN54,,,,,144: 170W 13B2,01/97 +KG0MW,EN13,,,,,,02/01 +KG0SV,DM79,,,,,,01/03 +KG4BMH,EM76JK,,,,,144: 1000 Watts sp144vdg GasFet 40 Element Collinear Array 7/8Heliax,05/02 +KG4CHX,EM95LL,,,,,,01/03 +KG4FET,EM90FH,,,,,,07/01 +KG4KAK,EL96VG,,,,,,01/05 +KG4MLA,EL88OA,,,,,,01/03 +KG5RK,EM12,,,,,,01/03 +KG5SF,EM44,,,,,,01/03 +KG5UN,EM02,,,,,,01/03 +KG6DX,QK23KL,EME,,,,144: 4x 13el CushCraft 900W,06/05 +KG6ENA,DM04DK,,,,,,01/03 +KG7CN,DN23BF,,,,,50: 5el 1KW,11/06 +KG7FU,CN83KA,,,,,144: 2x11el 1KW,01/01 +KH7K,AL08UJ,,,,,,01/03 +KH7X,BL11CG,EME,,EXPEDITION,,,04/07 +KH7Y,BL11,EME,,W6YM,,,08/07 +KI0LE,EN36US,EME,,KB0PDO,,Kenwood TS-790A Yaesu FT-847,09/07 +KI4BYV,FM15CX,,,,,,01/04 +KI4M,EM95AQ,,,,,144: 800W M2 18XXX,01/01 +KI4TZ,EM95LD,EME,,,,144: 2x 13el 400W,05/08 +KI6FF,DM13AR,,,,,,01/03 +KI7JA,CN85RL,,,,,,01/04 +KI7WB,DN62,,,,,144: 200W 10el,01/01 +KJ5EY,DM65XA,,,,,,01/03 +KJ5Q,EM15,,,,,,01/03 +KJ6HZ,DM13HX,EME,,,,50: 3el 100W - 144: 2x 17el 500W - 222: 10W - 432: 4x 19el 500W - 1296: 10W dish - 10G: 2W dish,09/06 +KJ7A,DM03,EME,,,,432: FT-817 8 x 25 ele,11/00 +KJ7F,DN13VO,EME,,,,,01/04 +KJ7OG,DM42MH,EME,,,,,01/03 +KJ9I,EN53QB,EME,,,,50: 1 Yagi,11/08 +KK4NO,EM92,,,,,,01/03 +KK5WA,EM45,,,,,,01/03 +KK7B,EN57RB,,,,,,01/03 +KK7LK,CN88SS,,,,,,01/03 +KK8O,EN80OR,,,,,,01/04 +KL6M,BP51DC,EME,,ex AL7OB,,9.2m dish,10/06 +KL7FB,BP51HO,EME,,,,,01/03 +KL7FH,BP41BB,EME,,,,432: 16X12 ele polarity rotation FT-847 100 W preamp K0RYT .18db NF,09/05 +KL7HFQ,BP51,EME,,,,,01/03 +KL7IZW,EM13SE,EME,,,,,12/04 +KL7UW,BP40IQ,EME,,ex AL7EB,,FT847 144: 4 Xpol-20el M2 170W MGF1801 432: 16.5dbd Antenne 50W,09/05 +KL7X,BP51AE,EME,,,,,02/01 +KM0A,EM84UT,EME,,,,144: single Yagi,10/06 +KM0T,EN13VB,,,,,,07/01 +KM1H,FN42,,,,,144: 1-5KW 2x4218XL,01/01 +KM4ID,EM93WA,,,,,,01/03 +KM5OL,EM13RB,,,,,,01/03 +KM5PO,EM12KO,EME,,ex KD5BUR,,144: 13KW ERP,04/05 +KM6WC,CM97OP,,,,,FT100,09/02 +KN4SM,FM16QT,,,,,144 : 1.5KW 5wl M2 - 432: 1.5KW 13wl M2 - 222: 300w K1FO 22el,12/07 +KN6DD,DM03,EME,,,,,01/03 +KO0Z,EM48,,,,,,01/03 +KO2R,EN52,,,,,,01/03 +KO4FR,FM16UV,,,,,,01/05 +KO4QR,FM26,,,,,,01/98 +KO7N,CN84IA,EME,,,,,08/01 +KQ0Z,EM37,,,,,,01/03 +KQ4I,FM06JB,EME,,,,144: DISH,01/90 +KQ6JI,CM87UJ,,,,,,01/03 +KQ6MU,DN16WF,EME,,,,144: 17el 100W,07/05 +KQ6UH,DM14BC,,,,,,01/03 +KR5E,EL29JN,,,,,,01/03 +KR5V,EM13,EME,,,,,01/02 +KR5Vex,EM13SD,,,,,,01/03 +KR7O,DM07BA,EME,,ex N7STU,,HTX100 144: Trvt 1KW 2M5wl - 222: Trvt 450W 7wl yagi,10/06 +KR8L,DN43AL,,,,,,01/03 +KS0F,EM48SL,,,,,,01/97 +KT4HA,FM15BH,,,,,,01/03 +KT4KB,EM93,,, +KT8O,EN71KI,,,,,,04/08 +KT8U,EN80OR,,,,,,01/03 +KU0KU,EM28QV,,,,,,01/03 +KU2A,FN42DW,EME,,,,144: 12el 1500W,12/07 +KU3T,FN20,EME,,,,,04/98 +KU4F,EL99AF,EME,,,,,01/03 +KU4R,EM86SK,EME,,,,144: 2x18XXX 200W,01/01 +KU7Z,DN41AF,EME,,,,144: 2x 12el 600W,10/06 +KV4EB,EM66FL,,,,,144: 7el 14el,11/01 +KV6J,BK29AQ,,,,,,01/03 +KW0A,EM48RI,,,,,144: 1KW 24el,08/01 +KW0T,EM19WF,,,,,,01/03 +KW1AM,FN41CT,EME,,,,,05/07 +KX7V,DM42,,,,,,01/03 +KX8XX,EN74HD,,,KB8GC WB8CKZ WN8CKZ,,,01/08 +KX9X,EN60AC,,,ex KF9PL,,IC706MKII - 50: 100W 3el - 144: 100W 11el,09/01 +KY7B,DM43,,,,,,01/03 +KZ2S,FN20XD,,,,,,01/03 +LA0BY,JO59FW,,,EX DF9PY,,144: 180W 9el - /p JO59ix: 144: 180W 2x9el MGF1302 - 432: 120W 2x13el Preamp - 1296: 20W 43el Preamp,01/08 +LA0FX,JP40LM,,,ex SP9CSO,,,11/95 +LA0GE,JO59NJ,EME,,,,Icom IC-7000,03/07 +LA1BEA,JO29XB,,,Expedition,,,01/91 +LA1K,JP53EK,EME,,,,144: 2x4CX250b MGF1402 preamp 4x17el,01/95 +LA1KHA,JO49SE,,,,,,01/93 +LA1TV,JO49TQ,,,,,,01/04 +LA2AB,JO59FV,EME,,,,,07/02 +LA2MOA,JP50HW,,,,,,12/08 +LA2PHA,JO38IB,,,,,144: 100W 10el,07/02 +LA2RZ,JP30AI,,,,,144: 160W 17el,05/02 +LA2YMA,JP32LK,,,,,144: 40W 9el,02/04 +LA2Z,JO59EJ,EME,,,,1296: 4.2m dish 300w f-d=0.5 VE4MA feed NF 0.3dB,10/06 +LA3BO,JO59CD,,,,,,04/04 +LA3EU,JP32BG,,,,,,01/93 +LA3HPA,JP50QM,,,,,Icom IC-746pro Icom IC-706MkIIG,09/08 +LA3WU,JP20QH,EME,,,,,01/93 +LA4DL,JP32EL,,,,,,03/04 +LA4XGA,JP33VC,,,LB7ZC,,144: 10 5m ant 800w,10/07 +LA4YGA,JO48BE,EME,,SP8DXL SP2DXL,,IC910 / IC706 144: 300W 15el - 432: 17el 100W,04/07 +LA5IH,JP20NK,,,,,,01/93 +LA5KJA,JP50IV,,,,,,01/98 +LA5KO,JO38HC,,,,,144: 300W 17el MGF1302,06/06 +LA5NNA,JO38MA,,,,,144: 100W 19el,12/06 +LA5PH,JO49XA,,,,,,01/92 +LA5SAA,JO29SE,,,,,,01/93 +LA5TFA,JP99LQ,,,,,IC751-IC706-FT736r-FT225rd - 50: 2x5el HL166V - 144: 3CX800A7 15el,05/07 +LA6CU,JP20QL,,,,,144: TS790e 150W 16el MGF1302,09/99 +LA6HL,JO28TW,EME,,,,,01/02 +LA6I,JP41,,,Expedition,,,01/93 +LA6K,JP33VC,,,,,,05/03 +LA6LU,JO28,,,,,,07/96 +LA6MV,JO59FJ,,,,,,08/02 +LA6QBA,JP61BJ,,,,,50: 100W 2x5el - 144: 600W 4x11el,07/04 +LA6TPA,JP54RL,,,,,FT-2000 IC-7000,03/08 +LA6VBA,JO48,EME,,,,,01/93 +LA7KK,JP50,EME,,,,,01/93 +LA7SP,JP99MQ,,,,,,07/05 +LA8AE,JO59CC,EME,,,,,01/94 +LA8AJA,JP50HP,,,,,,07/06 +LA8AV,JO59DS,EME,,,,FT-1000MP + transverter,05/07 +LA8G,JP53EJ,,,,,,01/05 +LA8GKA,JO59FS,,,ex LC1PAT,,IC706,08/05 +LA8KV,JP52QQ,EME,,,,144: IC746 - 1Kw (or 1.8Kw) 4x15 el. Fullelv.,06/06 +LA8LF,JO59BS,EME,,,,1500W 4.6M NEC solid Dish Autotracking,05/07 +LA8NK,JO48KM,,,,,Ft-736 Ft-897 5 el yagi on 6 9 el yagi on 144,04/07 +LA8OW,JP50NC,,,,,,05/02 +LA8SMA,JP42GE,,,,,,05/07 +LA9BM,JP40CM,,,,,,03/98 +LA9DFA,JP60AE,,,,,144: IC-706MKIIG + SLA200 250w + 2M5WL 17el / 50: IC-756 PROII 100w 5el,06/09 +LA9DL,JO59KE,EME,,,,,04/04 +LA9FY,JP40,,,,,144: 160W 16el,02/09 +LA9IY,JP53,,,,,,01/03 +LA9NEA,JO59DX,EME,,OP LA2AB,,144: 4x 19el K1FO 1-5KW,02/05 +LA9Z,JO38HC,,,,,50: 100W 5 ele Tonna 144: 150w 15 ele CueDee,07/06 +LB7FA,JO38LM,,,,,144: IC821 9el 180W,03/05 +LM9K75Y,JO48AD,,,SPECIALCALL,,144: 3wl Preamp GS35B,01/09 +LU1C,GF05OM,EME,,,,4 x 3WL and 600 Watts,10/08 +LU1CGB,GF05OM,EME,,,,144: 4x 14 ele 600 W Pre RX - 432: low Pwr,02/09 +LU4HO,FF78RA,,,,,,01/03 +LU5BOJ,FG75HF,EME,,,,FT757GXII 144: 2x 12el 600W,03/07 +LU6DW,GF05SF,EME,,,,,01/03 +LU7DZ,FF78RA,EME,,,,144: 4X16 el 1 KW Pre RX 432: 4X22 el 1KW Pre RX,02/09 +LU7FA,FF96,EME,,,,144: 2x 12el 140W Preamp (maybe 4x 12),02/09 +LU7FIA,FF97PA,EME,,,,144: 2x 12el 300W Preamp - 432: 1x 19el 100W,02/09 +LU8EDR,GF05TF,EME,,,,1296 EME under construction,02/09 +LU9AWH,GF05SJ,,,,,,03/07 +LU9MBK,FF57NR,EME,,,,144: 4el Quad 100W,10/06 +LX1DB,JN39CO,,,,,,10/06 +LX1FX,JN29WT,,,,,,07/08 +LX1GR,JN39,,,,,,01/93 +LX2DX,JN29WO,,,,,,10/02 +LX2SM,JN39,,,,,,07/04 +LX8M,JN29XX,,,EXPEDITION,,,08/08 +LX8X,JN29XX,,,EXPEDITION,,,08/08 +LY2AAM,KO23,,,Expedition QSL via DL3BQA,,,06/06 +LY2BAW,KO25KA,,,,,FT-736R+home made PA - 144: 24el 2M8WL M2 - 432:-30el KLM - 1296: 44 el KLM,05/03 +LY2BIL,KO24PQ,,,ex UP1BWR - not qrv MS nw! (01/01),,144: FT736r 30el 1KW,08/02 +LY2BUU,KO15XH,,,,,IC-706MKII,10/07 +LY2BW,KO24,,,,,,01/95 +LY2CI,KO14WV,,,,,TS-790A- 144: 150W 11el - 432: 25el yagi - 1296: 36el,08/03 +LY2FE,KO05NQ,,,not qrv MS nw! (01/01),,144: FT736r 300W 13el,10/02 +LY2FR,KO15VR,,,,,,07/04 +LY2GC,KO25KA,EME,,,,,10/04 +LY2MW,KO24PS,,,,,IC746 + PAs 50: 100W 6el - 144: 100Watt 13el DJ9BV SP2 - 432: 200w 23el DJ9BV SP70,08/04 +LY2R,KO15VR,EME,,LY2FR,,FT857D 144: 4x 10el 800 W,09/07 +LY2SA,KO14LL,EME,,,,144: IC821H 300W 17el 5wl MGF1502 - 432: 175W 30el,06/07 +LY2WR,KO24FO,EME,,UP1BWR,,144: FT736r 11el 1KW+ - 432: 50W 24el - 1296: 10W loopyagi,03/09 +LY3BF,KO24OR,,,,,,01/96 +LY3GM,KO14LL,,,,,,12/97 +LY3W,KO14XW,EME,,LY3BW,,ICOM 706 mk-2g FT1000mp mark-V,10/07 +LY4U/P,KO24FO,EME,,LY2BIL,,,03/09 +LY8O,KO24OP,,,LY2MW,,IC-275H IC-475H IC-910H,05/08 +LY8X,KO24PQ,,,SpecialCall,,,08/99 +LZ1AG,KN22ID,EME,,,,144: 14el 100W,12/99 +LZ1BB,KN12PQ,EME,,,,,07/09 +LZ1DP,KN22TR,EME,,,,144: 4x5 WL DJ9BV cross+MGF1302 FT-736R PA 1-8 KW 2xGU74B,01/05 +LZ1DX,KN22,,,,,,01/93 +LZ1FG,KN12,,,,,,08/08 +LZ1JH,KN32FR,,,,,,06/99 +LZ1KDP,KN12SP,EME,,,,,01/98 +LZ1KDZ,KN32,EME,,,,,01/93 +LZ1KG,KN31CS,,,,,50: 4el transv. 10W - 144: 2x16 F9FT IC275e - 432: 15el FT790r,09/03 +LZ1KJ,KN31CS,,,,,50: FT987 4el 15W - 144: FT987 250W 2x8el GaAs Fet,09/03 +LZ1KQ,KN22TK,,,,,,12/96 +LZ1KRB,KN32,,,,,,01/93 +LZ1KSN,KN32SL,,,,,,01/93 +LZ1KSW,KN31CS,,,,,,12/95 +LZ1KU,KN32,,,,,,01/93 +LZ1KWT,KN22TK,,,QSL via LZ1DP or LZ1JH,,144: FT736 1KW 2x16el F9FT GaAsFet 3SK129,11/03 +LZ1NO,KN12,,,,,,12/01 +LZ1OA,KN22TK,EME,,,,,06/06 +LZ1QI,KN12,,,,,,11/01 +LZ1QM,KN12,,,,,,01/93 +LZ1R,KN42AA,,,Expedition,,,01/93 +LZ1UB,KN22TK,,,,,,01/94 +LZ1UK,KN22ID,,,,,144: 60W 8el Quagi,06/06 +LZ1V,KN12QQ,,,,,,01/90 +LZ1VPV,KN32AS,,,,,,08/05 +LZ1ZP,KN22ID,,,,,144: 150W 14el DJ9BV,05/03 +LZ1ZX,KN32IO,,,,,,12/99 +LZ2FO,KN13KX,EME,,,,144: 500W 15el 9BV,10/07 +LZ2HM,KN12QP,EME,,,,144: FT847 17el yagi,07/03 +LZ2HV,KN23UB,,,,,144: 600W 12el Quad,12/98 +LZ2JF,KN23,,,,,,01/93 +LZ2KRU,KN33FL,,,,,144: 500W 17el,08/97 +LZ2PP,KN33,,,,,,01/93 +LZ2US,KN13RJ,EME,,,,144: 4x KLM17LBX 2x 4CX800A 2KW FSC11LF,08/00 +LZ2UU,KN12QP,,,,,,08/96 +LZ2ZY,KN13OT,,,,,,05/08 +LZ3BD,KN12QQ,,,,,432: 250W 32el GaasFet,12/99 +LZ3CQ,KN12PQ,,,,,,01/03 +LZ3GM,KN32RL,,,,,144: IC735 20W 3wl 10ele BVO2 MGF1302,05/08 +LZ3YH,KN22,,,,,,12/95 +LZ4KK,KN23XU,,,,,TS-2000 Mirage B2516G 160W 4el DK7ZB,05/08 +LZ5GM,KN32QL,,,,,144: IC-720 50W 13eleFT MGF1302,04/03 +LZ5N,KN21JX,,,,,,01/95 +LZ5UV,KN12PR,,,,,144: FT847 IC271 4cx250 PA 17el DJ9BV,11/02 +LZ5Z,KN12PR,,,,,144: 2x15el 1KW,12/99 +LZ6T,KN22IS,,,,,,12/99 +LZ7A,KN43HL,,,Expedition,,,01/94 +LZ7P,KN22,,,,,,12/96 +LZ7Y,KN41AX,,,,,,08/99 +LZ9M,KN32RL,,,,,,12/03 +LZ9W,KN12MO,,,,,IC-746 FT-847,01/05 +LZ9X,KN32AS,,,= LZ1KWT,,144: 2x 15el 1KW,08/08 +M0AFJ,IO92OB,,,G8GGP,,200W,04/07 +M0BCG,IO91DO,EME,,,,144: ic706mk2g 2x4cx250b 4x9el elvation mgf1302 - 50: jst245 p50vdg 2x3-500z 2x6el,04/05 +M0BPQ,IO91WP,,,EX G7ACQ G5YC,,50: 400W 5el 144: 7el 400W 432: 13el 120W 1296 19el 50w,05/09 +M0CQZ,IN69UW,,,Expedition,,,09/00 +M0CTP,IO93,,,,,,03/02 +M0EME,IO93GF,EME,,,,432: FT847 4x 19el 100W,09/05 +M0IKB,IO94SG,,,,,,11/06 +M0ITY,JO01BS,,,OK2ITY OK2IT G6UT,,2m - 15+2x13+4x4el QRO / 70cm - 200w - 23el / 6m - QRO + 5el,11/07 +M0MIG,IO90WX,,,,,,10/06 +M0VHF,IO82VF,,,,,FT847 JST245 3CX800 8877 - 50: 5el - 144: 10el,10/02 +M1DRK,IO93US,,,,,50: TS60 5el 90W,01/02 +M1GSM,IO94BU,,,,,144: 150W 8el,08/03 +M5FUN,JO00DX,,,ex 2E0ATF+2E1GOM,,144: TR751E 100W 12el,03/04 +M5MUF,IO92JP,,,ex GU6AJE,,IC202 IC706 various transverters,09/03 +MI/DL1YMK,IO74DU,EME,,EXPEDITION,,,06/09 +MI0AYR,IO64VQ,,,,,144: TR9130 150W 19el,04/05 +MI0JST,IO65SE,,,,,144: IC910 100W 10el,06/05 +MI0KAM,IO65PE,,,,,,06/05 +MM0BQI,IO85KX,,,,,50: 100W 5el - 144: 13el,03/00 +MM0CCC,IO85MW,,,,,144: FT1000MP TVVF144A 17el 100W,05/04 +MM0CEZ,IO75XU,,,,,IC910 IC775DSP Transverter,03/04 +MM0DQP,IO88KI,,,,,100W,05/04 +MM0KOS,IO85CR,EME,,EX MM3KOS,,ICOM 290D MK2,07/07 +MM0MMK,IO85EV,,,,,,06/05 +MM1BXF,IO76PA,,,,,,01/03 +MM3ENW,IO85BS,,,,,,03/05 +MM5AJW,IO88KI,,,,,144: 100W 11el Vargaarda,01/08 +MM5DWW,IO89ID,,,ex MM1MVJ,,KENWOOD TR751/TS690 100W 11el,04/04 +MS0FNR,IO88KK,,,,,,12/04 +MW0HMV,IO71XT,,,2W0CDJ,,FT2000 & EXPERT 1K 6M - IC910X 2M 70CM 23CM - TS2000 with TRC410sl & te 0650g,06/09 +N0AB,EM28,,,,,,01/03 +N0AE,EN51,,,,,,01/03 +N0AJU,EN11,,,,,,01/03 +N0AKC,EN44GU,EME,,,,144: 4x 18el 1KW 222: 350W 16el,10/05 +N0ATV,EN34JX,,,,,,01/03 +N0BTN,EN21,,,,,,01/03 +N0CIH,EN42,,,,,,01/03 +N0CKK,EN34,,,,,,01/03 +N0DAG,EM29QF,,,,,,01/03 +N0DQS,EN22GD,,,,,,07/01 +N0DY,EN42FA,,,,,,01/03 +N0EC,DN70LF,,,,,50: 1KW - 144: 1-5KW - 222: 120W - 432: 1KW - 902: 200W - 1296: 100W - 2304: 15W - 3456: 1W - 10G: 1W,01/01 +N0ECI,EM37,,,,,,01/03 +N0EOQ,EM24,,,,,,01/03 +N0FFO,EM17,,,,,,01/03 +N0FQW,EM39,,,,,,01/03 +N0GPH,EM48,,,,,,01/03 +N0GXA,EN13QH,,,,,144: 1KW preamp 18el,01/98 +N0GXN,EM48,,,,,,01/03 +N0HJZ,EN34FV,,,,,144: TS700S 200W preamp 12el,01/01 +N0HKT,EM17,,,,,,01/03 +N0HZ,EN34,,,,,,01/03 +N0ICV,EN52XA,,,,,,01/04 +N0IDT,EN10,,,,,,01/03 +N0IS,EM48,,,,,,01/03 +N0IT,EM48RN,,,,,144: 170W,01/01 +N0JCF,EN35,,,,,,01/03 +N0JEQ,EM27,,,,,,01/03 +N0JK,EM17,,,,,,01/03 +N0KE,DM69,,,,,,01/03 +N0KEV,EM17,,,,,,01/03 +N0KIS,EN10QT,,,,,,01/03 +N0KM,DM67VR,,,,,,01/97 +N0KN,EM28,,,,,,01/03 +N0KQY,DM98GK,EME,,,,144: 15/19dbd antenna 1KW,02/01 +N0LIK,EM48,,,,,,01/03 +N0LL,EM09,,,,,,01/01 +N0LNO,EN42,,,,,,01/03 +N0LRJ,DM78,,,,,,01/03 +N0NAS,EN35,,,,,,01/03 +N0NEG,EM29,,,,,,01/03 +N0NHS,DN70LF,,,,,,01/03 +N0OIB,EN35,,,,,,01/03 +N0OYQ,EN25,,,,,,01/03 +N0PB,EM39WO,,,,,,11/01 +N0PJU,EN41,,,,,,01/03 +N0POH,DM79OP,,,,,,01/01 +N0QBF,EM48SR,,,,,,01/03 +N0REN,EN34,,,,,,01/03 +N0RHL,EN10RT,,,,,,01/03 +N0RQ,EM13RG,,,,,144: Icom IC-746PRO,06/06 +N0SBU,EN35,,,,,,01/03 +N0SHR,EN26,,,,,,01/03 +N0SRQ,EN18,,,,,,01/03 +N0SWV,DM79,,,,,144: 170W 2x16el - 432: 35W 2x18el - 1296: 60W Rhombic Array,05/98 +N0TOU,EM29,,,,,,01/03 +N0TVJ,FM03UW,EME,,,,,10/05 +N0UGY,DM79,,,,,,01/03 +N0UK,EN34JV,,,,,50: 10W KLM661 - 144: TS930/DEM Tvtr 300W K1FO-12 - 222: TS820/HB Tvtr Amp,07/01 +N0US,EN10,,,,,,01/03 +N0UU,EM18,,,,,,01/03 +N0VSB,DM79RJ,,,,,50: 1KW 7el - 144: 1.5KW 18el MGF- 222: 200W 23el MGF- 432: 200W 38el MGF- 902: 25W 4x33el - 1296:50W 2x55el,01/02 +N0WJY,EN10QT,,,,,,01/03 +N0WVU,DM79HV,,,,,,01/03 +N0WX,EN34,,,,,,01/03 +N0XKS,EM29,,,,,,01/03 +N0XPI,EM29,,,,,,01/03 +N0YGM,DM78OV,,,,,,01/03 +N0YK,DM98MG,EME,,,,144: 18xxx with 350W,05/06 +N0YNP,DN81CW,,,,,,01/03 +N0ZEB,DM79,,,,,,01/03 +N0ZKK,EM29,,,,,,01/03 +N1BUG,FN55MF,EME,,,,50: 400W 5el 144: 1500W 20el Yagi 222: 500W 24el 432: 550W 22el,11/04 +N1CPE,FN42QH,,,,,,01/03 +N1EKV,FN42JK,,,,,,01/03 +N1GMV,FM05TU,,,,,,01/04 +N1GOD,FN41VQ,,,,,,01/03 +N1HOQ,FN41TP,EME,,,,144: 12el 400W,11/06 +N1IW,EN75ve,,, +N1JEZ,FN34IM,,,,,FT736 FT847 FT920 FT290 DSP10 ACOM1006,05/07 +N1KI,EM75WX,EME,,WB4KMH,,144: 4x 12el 1500W - 432: 2x 9wl 1000W,04/07 +N1KTM,FN41SR,,,,,144: 1kw- 2x2M9,01/97 +N1LDY,FN41JR,,,,,IC-746 IC-910 DEMI-222 DEMI-903,01/04 +N1LF,EM63NF,,,,,IC-910H 736R Icom 746 Pro,04/08 +N1MIW,FN41EQ,,,,,FT847 FT736,05/08 +N1NCO,FN42GL,,,,,,01/03 +N1OFZ,FN31HL,,,,,FT-847 SDR-1000 FT-726R,03/07 +N1RWY,FN54NO,,,,,50: 100W 3el CC - 144: 800W 18el - 222: 350W FO16 - 432: 350W 2xFO22,01/01 +N1RZ,FN44EI,,,,,,07/01 +N1SZ,FM19NE,,,,,IC 756Pro,10/07 +N1VQR,FN42JJ,,,,,,01/03 +N2CEI,FN20,,,,,,01/03 +N2FKF,FN30BR,,,,,,01/04 +N2HLT,FN12LN,EME,,,,,01/03 +N2IQ,FN13TD,EME,,,,,01/03 +N2IQU,FN13,,,,,,01/03 +N2JDQ,FN20VG,,,KB2GWI,,IC820H,09/07 +N2JMH,FN13AF,,,,,,01/03 +N2JQR,FN13,,,,,50: 500W 5el,01/01 +N2JR,FM18CP,,,,,50: 100W 5el,09/01 +N2KW,FN03XE,,,,,,01/03 +N2MB,FN30CO,,,,,,01/03 +N2MCY,FN30AR,,,,,,01/03 +N2MKT,FN13LK,,,,,,01/03 +N2MSS,FN31AA,,,,,,01/03 +N2NEP,FN13EB,,,,,,01/03 +N2NZI,FN32,,,,,,01/03 +N2OLA,FN12MM,,,,,,01/03 +N2OTO,FN30CR,,,,,144: TS850 LT2SMKII 200W 4el,01/01 +N2PC,DM78QX,,,,,,01/03 +N2UO,FM06BG,EME,,,,All homebrew,09/07 +N2VR,FN12SK,EME,,ex KC2EAL,,144: 4x13B2,08/01 +N2WK,FN03XE,EME,,,,144: 1-5kw 4x2.2 wl full elv. MGF1302,10/00 +N2WLS,FN02RQ,,,,,,01/03 +N2XK,FN20RF,,,K2WKA,,FT1000MP MKV with FTV-1000 6M Icom IC706MKIIG 2M/70CM,11/08 +N3AHF,FN20SF,,,,,,01/03 +N3AJX,EN71KC,,,,,,01/03 +N3FA,FN21,EME,,ex WB3FAA,,144: LT2S 8877 700W 4x12el M2 - 432: FT736 SP7000 3CX800 700W 4x19el,10/99 +N3JNP,EN91,,,,,,01/03 +N3KKM,EM28,,,,,,01/03 +N3LL,EL86,EME,, +N3NDY,DM09CJ,,,,,Kenwood TS-60,03/08 +N3OPM,FM19PH,,,,,,01/01 +N3RN,FN11WH,,,,,144: 500W 16el KLM,07/01 +N3TAD,FM28FH,,,,,TS-480HX FT-847,09/07 +N3WT,FM19EJ,,,,,,01/04 +N3WXW,FN20CE,,,,,,01/03 +N3XI,EN90XJ,,,,,,01/03 +N3YGA,FN20BI,,,,,50: 160W 4el - 144: 170W 14el,01/98 +N4BH,EM95OC,EME,,,,144: 400W 17el,10/08 +N4CAG,EM86PI,,,,,,01/03 +N4EQT,EM77,,,,,,01/03 +N4FRE,EL06LL,,,,,,01/03 +N4GJV,EM95PS,EME,,,,,05/98 +N4GKO,EM65LO,,,,,144: FT736r 350W 2M18XXX,01/01 +N4HN,EM95OE,,,,,TS-2000X,05/09 +N4HY,FN20RG,,,,,,01/04 +N4IP,EM73WV,,,,,,01/03 +N4IPB,EM66,,,,,,01/03 +N4IS,EL96UB,,,ex AB6WC- PY2DP....,,FT1000MP+Trsv 144: 350W 18el M2,06/01 +N4KWX,FM08WF,,,,,,01/97 +N4KZ,EM77GT,,,,,,09/01 +N4LXB,EM83VL,,,,,,01/03 +N4MW,FM17KN,EME,,,,,01/03 +N4OYS,EM65,,,,,,01/03 +N4PZ,EN52,EME,,,,,04/97 +N4SC,EN72,,,,,,11/04 +N4TWX,EL89TW,,,,,50: 5el 75W - 144: 15el 150W Preamp,01/01 +N4UK,EM84XP,EME,,,,144: 1KW 13/13el - 222: 750W 23elM2 - 432: 750W 4x19el,01/97 +N4WI,FM14IL,,,,,,01/04 +N4XD,FM05,,,,,144: TS700SP 160W,01/01 +N4ZKR,EM65,,,,,,01/03 +N4ZRW,EM17KN,,,,,,01/03 +N5AC,EM13QC,,,WD5EMG,,Many,01/08 +N5AF,EM20,,,,,,01/03 +N5AHD,EL17,,,,,,01/03 +N5AMA,EL29,,,,,,01/03 +N5ARS,EM26,,,,,,01/03 +N5AXJ,EM86,,,,,,01/03 +N5BA,EL29FX,,,,,144: 150W 18el,07/05 +N5BHO,EM31,,,,,,01/03 +N5BHX,EL09,,,,,,01/03 +N5BHZ,EM22,,,,,,01/03 +N5BLK,EL29,EME,,,,,02/05 +N5BLZ,EM20AB,EME,,temp. QRT now 10/05,,144: IC746 to homebrew 8877 PA 1 5/8 Andrews 4x 28 Xpol preamp 0.3db,09/06 +N5BO,EM60UR,EME,,,,6M5X/100 2x2m9/400w 70cm 13wl/200w,04/07 +N5DL,EM36,,,,,,01/03 +N5EIL,EM12UR,EME,,,,144: 15el 50W,05/05 +N5EM,EL29,,,,,,01/03 +N5FV,EM03,,,,,,01/03 +N5HHS,EL29,,,,,,01/03 +N5IRM,EM13RC,EME,,,,144: 2x 12el 300W,01/06 +N5IS,DM96,,,,,,01/03 +N5ITO,EM12MR,EME,,ex KA9JLU,,144: 17el 750W - 432: 4x 18el 250W,11/05 +N5JM,EL49,,,,,,01/03 +N5KDA,EM41HM,EME,,,,144: 4 x 17el 1.5 KW,09/07 +N5KWB,EM32QB,,,,,,01/03 +N5MP,EM12,,,,,,01/03 +N5MWS,EM13,,,,,,01/03 +N5MYH,EM32,,,,,,01/03 +N5NDV,EM15,,,,,,01/03 +N5NSH,EM14,,,,,,01/03 +N5OCP,EM15,,,,,,01/03 +N5OSK,EM25FI,EME,,,,144: 26B2 350W,06/05 +N5QGH,EM13QC,,,,,,01/03 +N5QS,EM45,,,,,,01/03 +N5QT,EM45,,,,,,01/03 +N5RZ,DM81XW,,,,,,01/03 +N5SAL,EM28,,,,,,01/03 +N5SIX,EM42XI,EME,,,,144: 500W 9el,06/05 +N5TML,EM14,,,,,,01/03 +N5TQB,EM31PJ,,,,,,01/03 +N5TX,EL09,,,,,,01/03 +N5WS,EL09RU,,,,,,01/01 +N5XCX,EL09,,,,,,01/03 +N5XU,EM10DG,,,,,,01/01 +N5YLS,EM54,,,,,,01/03 +N5YSM,EM15,,,,,,01/03 +N5ZLU,DM95,,,,,,01/03 +N5ZWO,EM32,,,,,,01/03 +N6CL,EM26,,,,,,01/03 +N6CV,DM04UF,,,,,,01/03 +N6CW,DM12JT,EME,,,,50: 7el 1KW 144: 4x 9el 1KW,12/07 +N6DHN,CM98,,,,,50: 150W 4el - 144: 150W 22el - 432: 100W 40el,01/98 +N6ENU,DM04,,,,,144: 270W 13el Yagi - 50: 100W 7el,01/01 +N6HV,DM04,,,,,,01/03 +N6KBX,CM98,,,,,50: 400W 2x5el - 144: 350W 4x17el - 432: 175W 2x33el,01/97 +N6KK,DM03TV,EME,,,,144: 2x 5wl Ant 1500W,10/06 +N6KMR,CM97MO,,,,,,01/03 +N6NB,DM05,,,,,,01/03 +N6OVP,CM87,EME,,,,,01/03 +N6PYI,DM05KJ,,,,,,01/03 +N6RA,CM87SR,,,,,,01/03 +N6RJM,DM14CP,,,,,50: 1KW 9el - 144: 1-5KW 4x18el - 222: 350W 2x7wl - 432: 1KW 2x13wl,01/01 +N6RMJ,DM14CP,EME,,,,IC-910H / IC-756Pro,05/07 +N6RPM,DM04UA,,,,,,01/03 +N6RZ,CM87WB,,,,,144: 1KW 17B2,01/01 +N6SPP,CM97AX,EME,,,,10ele 2m IC746 FT857D Elk,10/07 +N6TQS,CM87UU,,,,,,01/03 +N6TX,FN11LH,EME,,,,,01/03 +N6VHF,DM13,,,,,,01/01 +N6VMO,CM94SP,EME,,,,144: 2x 17el 350W,08/06 +N6YM,CM88XF,,,,,,01/01 +N6ZE,DM04NE,EME,,ex K1FJM,,IC756 PRO II 50: 100W 5el - 144: 8930Amp 2M5wl Preamp - 222: 75W 10el - 432: 75W 21el - 1296: 20W 33el,08/03 +N7AM,CN87QN,EME,,,,,08/03 +N7AMA,DM33,,,,,,01/03 +N7ART,CN87,EME,,,,,01/03 +N7AVK,CN84,,,,,,01/03 +N7BSN,CN87QQ,,,,,,01/03 +N7CZ,DN47HM,,,ex KQ7K,,FT736 IC706,01/02 +N7DMA,DM42NL,,,,,,01/03 +N7EMD,DM26JE,,,,,,01/03 +N7EY,CN96QO,,,,,,01/03 +N7IJ,DN44GB,,,,,,01/03 +N7LQ,DN01FA,EME,,ex WB7TDI,,432: 1.5KW 4 x FO-25's,06/00 +N7MWV,CN87VQ,,,,,144: 250W CC3219,01/01 +N7QJP,DM33VM,,,,,,01/98 +N7SKT,DM33SN,,,,,,01/01 +N7WNX,CN83OW,EME,,,,,12/04 +N7WS,DM42JH,,,,,144: 8877 17el GaAs,01/01 +N7YAG,CN85,,,,,144: FT736r 300W 11el KLM,01/98 +N7YAP,DN07HJ,,,,,,08/01 +N8AIA,EN82KL,,,,,,01/03 +N8ASB,EM89,,,,,,01/03 +N8AXA,EM79UP,EME,,,,,01/03 +N8BSG,EN82,,,,,,01/03 +N8BXP,EN81,,,,,,01/03 +N8CGY,EN74OH,,,,,,01/01 +N8CJG,EN84FG,EME,,,,,03/05 +N8CJK,EN84FG,EME,,,,,11/05 +N8CQ,FM05OT,EME,,,,,01/04 +N8DJB,EN81FJ,EME,,,,,01/03 +N8ITP,EN81XF,,,,,,01/03 +N8JMK,EN90,,,,,,01/03 +N8KWX,EN62AD,,,,,,01/03 +N8LCU,EN72,,,,,,01/03 +N8NPX,EM79XR,,,,,,01/03 +N8OC,EN83AO,EME,,,,50: 100Watts 7el hb - 144: 1500Watts 17ele M2 5wl,08/05 +N8PUM,EN66DL,,,,,144: 200W 2x17B2,01/98 +N8PVT,EN64,,,,,,01/03 +N8QOD,EN79,,,,,,01/03 +N8TDL,EN90BN,,,,,,01/03 +N8VES,EM79VT,,,,,,01/03 +N8ZAT,EM79,EME,,,,,01/00 +N8ZAW,EM79,,,,,,01/03 +N8ZM,EM79,,,,,,01/03 +N9AB,EN52XG,EME,,,,432: 16x 22el 1KW,09/05 +N9AQ,EN51,,,,,,01/03 +N9AU,EN62BX,,,,,,01/03 +N9AZC,EM68,,,,,,01/03 +N9AZZ,EM57MV,,,,,,01/03 +N9BD,EM28,,,,,,01/03 +N9BJG,EM57,,,,,,01/03 +N9BMH,EN62,,,,,,01/03 +N9BX,EN52VL,EME,,,,144: 2x 18el 1KW,01/07 +N9CIQ,EN44,,,,,,01/01 +N9DCA,EN71GG,,,,,,01/03 +N9DG,EN53BJ,,,,,,01/03 +N9EGT,EN70,EME,,,,,02/05 +N9EMC,EN52UI,,,,,,01/03 +N9ESH,EN52XB,,,,,,01/03 +N9FH,EN63,,,,,,01/03 +N9FTC,EL79IX,,,,,IC 756 PRO IC746,10/07 +N9GVF,EN62,,,,,,01/03 +N9HF,EN52,,,,,,01/03 +N9IJ,EN52XI,,,,,,01/03 +N9IW,EN65KF,EME,,,,50: 3 yagi,02/09 +N9JIM,CM87XI,,,ex WB9AJZ,,50: 9el 150W - 144: 16el 700W - 432: 21el 50W - 1296: 55el 30W - 10G: 1M 8W,11/03 +N9KC,EN52,EME,,,,,01/03 +N9LAG,EM57,,,,,,01/03 +N9LHD,EN62BA,,,,,,01/03 +N9LR,EN50DU,EME,,,,144: 4x 8el 1500W,08/05 +N9MEH,EN44,,,,,,01/03 +N9MSG,EN50ES,,,,,,01/03 +N9MYK,EN-53W,,,,,,01/03 +N9NHC,EN61DU,,,,,,01/03 +N9NJY,EM58AM,,,,,,01/03 +N9NOQ,EN51,,,,,,01/03 +N9OO,EN62,,,,,,01/03 +N9PXI,EN61CU,,,,,,01/03 +N9RLA,EM78CQ,,,,,,01/03 +N9SBV,EN61UQ,,,,,,01/03 +N9SS,EN50DP,EME,,,,TS-2000,08/07 +N9SU,EN62BI,EME,,,,2x 3wl 400W,02/09 +N9TZL,EN52SH,,,,,,01/03 +N9UDO,EN53DL,,,,,,01/03 +N9UM,EN52wg,,, +N9UUR,EN63,,,,,,01/03 +N9VSV,EN63,,,,,,01/03 +N9WWR,EN62CS,,,,,,01/03 +N9XG,EN60VL,EME,,W9/G4FDX LX2GB,,144: 4x 18el 1.5KW,03/09 +N9XIX,EN53,,,,,,01/03 +N9YKE,EN62,,,,,,01/03 +NA0IA,EN42FB,,,,,,01/03 +NA2NY,FN23DV,,,NA1VT,,FT-1000 MP MK5 FTV-1000 IC-910,09/07 +NA3T,FM05LW,EME,,,,,10/97 +NA4AL,EM63OF,,,,,IC746 FT817,08/01 +NA4M,EM10DP,,,,,,01/03 +NA4N,FM18,EME,,,,,01/03 +NA6E,CN82,EME,,,,,01/03 +NA6MF,CM87,EME,,,,,04/08 +NA7D,DM43AS,,,,,,01/03 +NB2V,FN30,,,,,,01/03 +NC1I,FN32OB,EME,,,,,01/05 +NC1T,FN32,,,,,,01/03 +ND2X,EL09,,,,,,01/03 +NE0P,EM04,,,,,,09/01 +NE1H,EM84AC,,,,,,01/03 +NE7O,FN53HX,,,,,,01/05 +NE8I,EN82JM,,,,,,06/04 +NF0Q,EM48,,,,,,01/03 +NF2V,FN33KT,EME,,,,144: 4x 17el 350W,09/07 +NF5B,EL29,,,,,,01/03 +NF7P,DM09GH,EME,,,,,01/03 +NG9R,EN40LA,,,KC9OA,,,07/08 +NG9Y,EM78JT,EME,,,,144: 4x 13el 400W,10/08 +NH2CM,QK23KL,EME,,,,144: 4x 13el CushCraft 900W,12/05 +NI4Z,EL98HJ,,,,,,01/03 +NI6G,DM06,,,,,,01/03 +NJ0C,DM78,,,,,,01/03 +NJ0U,EN71IB,EME,,,,144: 2x 18el 500W,05/05 +NJ0X,EM29,,,,,,01/03 +NJ2L,FN13,,,,,,01/03 +NJ7A,DN30XP,,,,,144: 170W 16LBX Preamp - 222: 120W 5wL,01/01 +NK5F,DM65,,,,,,01/03 +NK7J,DM33,,,,,,01/01 +NK8Q,FN20KL,,,,,144: 170W 13el - 50: 7W 5el,01/01 +NL7F,BP64DV,EME,,,,,01/03 +NL7Z,BP51EN,EME,,,,FT920,03/05 +NL997,JO22XU,EME,,,,FT726 + Mutek TH F7E 8el 2wl @2m 10 el @70cm,05/09 +NM1A,EL96UG,,,,,IC-746,02/08 +NM5BB,DM65UV,,,,,,01/03 +NM5X,EM26,,,,,,01/03 +NM9H,EM59CD,,,,,,01/03 +NN5DX,DM80NV,,,,,,01/03 +NN6RF,CM87UW,,,,,,01/03 +NN7J,CN85,,,ex WA7BJU,,,01/05 +NN7K,DM09CN,,,EX K7ZFG,,50 FT847 MK6 7el M2,05/08 +NN9K,EN41,,,,,,01/98 +NO3I,EN90,EME,,KD3CC,,FT-1000 MP FT-920 FT-736R,05/07 +NP4B,FK67,EME,,,,,01/03 +NQ2O,FN13,EME,,EX DL1SM,,,05/01 +NQ7R,DM42DT,EME,,,,144: 120W 2.5wl Ant,10/06 +NR0X,EN42JH,,,ex DL4AT,,144: 12el,07/05 +NR5A,DN84LC,,,,,,01/03 +NR6E,CM88,,,,,,01/03 +NS4W,EM76VC,,,,,500: 1KW - 144: 1kw 2.5wl - 222: 400W - 432: 150W,01/01 +NS7K,DN31XC,,,,,,01/04 +NS7N,CN87,,,,,,01/03 +NT0V,EN08OC,,,,,,01/03 +NT0Z,FN31,,,,,,01/03 +NT4P,EM95KF,,,,,,01/04 +NT9E,EN52VI,,,K9DMW WB9SES,,756ProII (HF+6)-Elecraft XV Series Xvrtrs for 144-220-432,02/09 +NU3E,FN20PB,,,WB3GNB,,TS-2000,09/07 +NU5O,EM55,,,,,,01/03 +NU7Z,CN87RT,,,,,,01/93 +NU8I,DM43AN,,,,,144: IC706 1KW,01/99 +NV3Z,FM15,,,,,,01/03 +NW0X,EM40,,,,,,01/03 +NW7O,DM26,,,,,,01/03 +NX2Q,FN20WV,,,,,,01/03 +NX7U,DM43DI,,,,,,01/03 +NX8M,EM79PE,,,,,,01/01 +NZ1I,FN41AI,,,KA1KOJ,,Yaesu FT-897 Yaesu FT-736R,04/07 +NZ5N,EL96UC,EME,,,,144: 9el 500W,12/07 +NZ5P,DM95,,,,,,01/03 +OA4CVT,FH17KW,EME,,,,144: 15el 160W,04/06 +OA4O,FH17FV,EME,,,,432: 8m dish 400W,07/05 +OD5NJ,KM73TW,,,,,,01/03 +OD5RAK,KM74WH,,,Expedition - QSL via F6FLV,,50: 6el - 144: 17el+ PA,05/98 +OE1ILW/3,JN77XX,EME,,,,,04/09 +OE1MCU/P,JN88HE,,,,,144: 700W 13el,01/09 +OE1MSB,JN88DF,,,,,,10/03 +OE1SMC,JN88DD,,,,,IC7000,03/08 +OE1SOW,JN88FF,EME,,,,6m: 100W 5el - 2m: IC-756 Pro II + DB6NT-Transverter 400W 4x13el SP-2000 or IC-821 130W 13-El. Yagi SP-2000,05/08 +OE1XVC,JN88ED,,,,,144: 2x11el- 432: 2x21el gd Pwr,03/98 +OE3A,JN77XX,EME,,,,,04/09 +OE3CEW,JN88,,,,,,01/88 +OE3FVU,JN78VE,EME,,= PE0WGA,,144: 4x10el XPol 1500W MGF1302 - No 432 MHz - 50: 100W / 6 ele,07/08 +OE3HHB,JN87AQ,,,,,FT847 50: 100W 5el - 144: 50W 17el GaAs - 432: 50W 19el,07/99 +OE3JPC,JN88EW,EME,,2ND QTH,,,06/08 +OE3JTB,JN78QN,,,,,144: 17B2 160W,08/05 +OE3MWS,JN88DC,,,,,50: 100W 7el - 144: TR751 1-2KW 2x17el MGF1302 - 432: TS811 400W,01/05 +OE3NFC,JN88,,,,,,01/93 +OE3OBC,JN88,EME,,,,,01/94 +OE3OKS,JN87AR,,,,,,12/98 +OE3R,JN88FD,,,Contest Call,,,01/96 +OE3SJA,JN88GH,EME,,= OE1SJA SAME OPERATOR,,144: 1x19 250W 432: 4x19 250W LNA 1296: 2mDish H-feed 80W LNA,01/09 +OE3UP,JN87CT,EME,,,,,01/93 +OE3XAC,JN88FD,,,,,,11/96 +OE3XMU,JN78XD,,,,,144: 150W 15el,06/02 +OE4KLU,JN87KS,,,,,,01/96 +OE4WHG,JN87BB,,,ex OE6WHG,,50: F850 100W 6el,05/06 +OE5EFM,JN78,EME,,,,,01/94 +OE5EYM,JN68SK,EME,,,,,08/98 +OE5FD,JN68SC,,,,,,01/03 +OE5FDM,JN68SC,,,,,50: FT-847 5el-Yagi 100W - 144: FT-847 9el 100W,08/02 +OE5JFL,JN68RL,EME,,,,,01/94 +OE5KE,JN78,,,,,,05/02 +OE5MPL,JN78CJ,EME,,,,FT847 - 50: GS35 100W 5el Y 144: 2x 4CX250R 800W 4x 13elY MGF1302 432: 600W 4x 21 el MGF1302,05/07 +OE5VHL,JN68SI,EME,,,,,01/94 +OE5VRL,JN78DK,,,,,,01/97 +OE5WHN,JN67TR,,,,,IC756 IC970 100W,05/09 +OE6AHD,JN76RS,,,,,,12/95 +OE6BMG,JN77JE,,,,,,07/00 +OE6IWG,JN77PK,EME,,,,144: GS35b 4x10el (2-2wl) MGF1302,06/07 +OE6JGD,JN77QC,,,,,,12/95 +OE6KDG,JN77JF,,,,,,07/03 +OE6NLD,JN76SS,,,,,,01/93 +OE6RKE,JN76OT,EME,,,,,03/06 +OE6XHF,JN76RS,EME,,,,,01/94 +OE75SOW,JN88FF,EME,,SpecialCall,,50: IC736 100W 5el - 144: IC821H 300W 2x13el or 2xBW - 432: 120W 2x19el - 1296: 10W 2x26el,03/01 +OE8CIQ,JN76FU,,,,,,08/02 +OE8HBQ,JN76KP,,,,,,05/04 +OE8HWQ,JN76,,,,,,03/00 +OE8OLK,JN76DM,,,,,144: FT817 30W 6el,07/04 +OE9ERC,JN47VL,EME,,,,,02/05 +OE9HHV,JN47,EME,,,,,01/94 +OE9XXI,JN47UL,,,,,,01/03 +OF8UV,KP34VJ,EME,,SpecialCall,,144: Ft225RD 130W 2x14el BF981,11/97 +OG6MAZ,KP21IG,,,SpecialCall,,144: FT767GX 4CX350 200W 15el,01/00 +OG8HDL,KP34VJ,,,SpecialCall,,144: 130W 2x14el BF981,01/00 +OG8UV,KP34VJ,EME,,SpecialCall,,144: FT225RD 130W 2x14el BF981,01/00 +OH0BT,KO09KW,,,Expedition,,,01/92 +OH0JFB,JP90XI,,,,,144: 2x17el 800W,04/04 +OH0JN,KP00BB,,,,,IC706MKIIG,02/09 +OH0LIZ,KO09KW,,,Expedition,,144: 180W 2x23el,05/98 +OH0N,KP00,,,EXPEDITION,,,07/01 +OH0V,KP00,,,Expedition,,,07/01 +OH10TA,KP10DH,,,EXPEDITION,,,04/07 +OH1AK,KP01TE,,,,,,12/03 +OH1AYQ,KP12JB,,,,,,08/98 +OH1BAP,KP12AA,,,Expedition,,,01/91 +OH1CF,KP00TC,,,,,,01/94 +OH1FA,KP10PL,EME,,,,,10/02 +OH1HSC,KP10CM,,,,,144: TR9130 60W MGF1302 17el,01/01 +OH1JCS,KP10AE,EME,,,,144: 2x 10el 20W,03/05 +OH1JJC,KP10DK,,,,,,01/04 +OH1JV,KP10DK,,,,,144: IC7800 TR144J 4x 6el HL500V Preamp 0.35db,02/07 +OH1LEU,KP01UE,,,,,50: 150W 8el,09/03 +OH1LSQ,KP03SD,,,,,144: 100W ant-3WL,01/02 +OH1MDR,KP01VJ,EME,,= OH1TM,,,07/07 +OH1ND,KP00XL,EME,,,,,01/07 +OH1NOR,KP00XL,EME,,,,144: 2x 3.9wl antennas,04/05 +OH1QC,KP10MU,,,,,,01/89 +OH1TM,KP01VJ,EME,,= OH1MDR,,,07/07 +OH1XT,KP01UK,,,,,FT736r 50: 8el 150W - 144: 300W 2x15el MGF1302,11/01 +OH1XTK,KP01UK,,,,,,01/03 +OH1ZAA,KP01,,,,,,01/95 +OH2AUK,KO19TX,,,,,,01/94 +OH2AV,KP20JD,,,ex OH9NLO,,,01/94 +OH2AXH,KP20OK,EME,,,,,08/00 +OH2BAP,KP20PP,EME,,,,,01/93 +OH2BC,KP20,EME,,,,,03/05 +OH2BNH,KP20LG,EME,,,,,05/00 +OH2BYJ,KP10QO,EME,,,,144: ft-897 120 wtts ant 6wl yagi,04/08 +OH2DG,KP30CK,EME,,,,DISH 8m,03/07 +OH2HEJ,KP20ME,,,,,144: 4el 100W,08/05 +OH2JRR,KP20HE,,,,,,10/05 +OH2KKP,KP20MH,,,,,,11/95 +OH2LAK,KP10XL,,,,,50: FT847 FT817,11/01 +OH2LHE,KP11MK,EME,,OH1IT,,IC-910 4x 9el 500W,02/08 +OH2MFE,KP20JE,,,,,IC-575H IC-275E 170W FT-817 100W FT-736,04/02 +OH2MOH,KP30CR,,,,,,05/04 +OH2MPH,KP20KD,,,,,,01/04 +OH2NHP,KP20IF,,,,,144: IC970E 3CX800 MGF1302 preamp 2x15el,01/01 +OH2NY,KP20CM,,,,,144: IC202 RE035XB 320W Preamp 4x9el,04/03 +OH2PO,KP10XH,EME,,,,,11/97 +OH2TI,KP20KE,EME,,,,,01/01 +OH2Z,KP30CR,,,,,,08/04 +OH3AWW,KP11VJ,EME,,2nd QTH,,144: 150W 9el,09/04 +OH3BHL,KP10RR,,,,,IC746+ACOM1000 144: 100W 4x5el - 50: 200W 6el,08/03 +OH3BZY,KP10XP,,,,,,01/92 +OH3EX,KP20JR,,,,,,01/94 +OH3HOV,KP20MQ,EME,,= OH3JP,,144: ft847 sr-200 17b2 Ant,01/07 +OH3JP,KP20MQ,EME,,= OH3HOV,,144: ft847 sr-200 17b2 Ant,01/07 +OH3KLJ,KP21PH,EME,,,,144: 300W 4x 10el,08/08 +OH3KRH,KP21EB,,,,,,12/05 +OH3LPW,KP11WK,EME,,,,,01/94 +OH3NWQ,KP11WL,,,,,50: FT847 + GU74b,10/07 +OH3QN,KP20TX,,,,,FT-897,02/08 +OH3UW,KP21FA,EME,,,,144: 2x 17el 250W,04/06 +OH3VJ,KP21,,,SilentKey,,,01/94 +OH3XR,KP11TH,,,= OH9XX,,IC746,08/04 +OH4EA,KP32MG,EME,,,,144: FT2000D + XV-144 + LNA 0.4 dB ANT 4 x 18 el 5WL,04/08 +OH4GGW,KP31PQ,,,,,,12/04 +OH4HXK,KP21UM,,,,,,05/02 +OH4LA,KP20LG,EME,,,,144: 4x 17el 600W,07/06 +OH4MS,KP31WL,EME,,OH8LRB,,IC-910H 144: 15el X 100W 432: 24el X 75W 1296: 4x32el 10W,12/07 +OH5A,KP53NE,,,,,,09/99 +OH5AG,KP31,,,,,,02/98 +OH5HCJ,KP41EC,EME,,,,144: 4x 11el 600W,10/06 +OH5HMV,KP41EC,EME,,,,,04/05 +OH5IY,KP30HV,EME,,,,144: 1KW 4x15el - 432: 750W 8x21el,12/03 +OH5KJQ,KP41JC,,,,,FT847 144: 19el yagi 160W - 50: 4el 100W,10/98 +OH5KNG,KP30GU,EME,,,,144: 4x 9el yagis 1.2kw,03/06 +OH5LID,KP41KL,EME,,,,,07/09 +OH5LIZ,KP30HW,,,EXPEDITION,,144: 180W- 2x23el,08/01 +OH5LK,KP30ON,EME,,,,144: 1KW 4x15el,04/04 +OH5YW,KP30FU,,,,,,05/98 +OH6AA,KP03SD,,,,,144: 2x12el,12/05 +OH6AAO,KP14,,,Expedition,,,01/93 +OH6AI,KP13MW,,,,,,11/00 +OH6AW,KP03,,,,,,06/02 +OH6DD,KP22,EME,,qrv only at OH2TI,,,01/94 +OH6GDX,KP02QU,,,,,144: 60W 2x12el CueDee,08/03 +OH6HFX,KP14RA,EME,,,,FT847 400W 2x12el,06/07 +OH6JKW,KP02RN,,,,,FT847,12/06 +OH6JW,KP12AJ,EME,,ex OH6MPC,,FT847 IC7400 600W,09/03 +OH6JYW,KP22OR,EME,,,,Yaesu FT-817,01/08 +OH6KTL,KP02OJ,EME,,,,50: 6el 150W - 144: FT847+GI46B 4x15el 100W,05/06 +OH6LRL,KP13,,,,,,11/00 +OH6M,KP12KR,,,,,,06/04 +OH6MAZ,KP21IG,EME,,ex OH2MAZ,,144: FT847 4CX350 250W 2x15el MGF1302,12/04 +OH6MPC,KP12AJ,,,= OH6JW,,FT847 50: 200W - 144: 2KW - 432: 250W,01/02 +OH6MRD,KP12EP,,,,,,12/02 +OH6MSZ,KP21XU,,,,,,08/99 +OH6MW,KP20IM,,,,,144: 200W 11el,08/05 +OH6NDD,KP23VH,,,Expedition,,,01/94 +OH6NVQ,KP13IP,EME,,,,,02/05 +OH6PA,KP02PL,,,,,,08/04 +OH6QU,KP03SD,,,,,FT-1000MP + Kuhne TR 144 H + GU-78B 16 el (4.5 WL) at 44 m agl/50 m,09/05 +OH6UW,KP22WH,EME,,,,,07/07 +OH6ZZ,KP12BO,EME,,,,TS790E 2x 32XPol,02/04 +OH7AXB,KP32WH,,,,,,10/05 +OH7EU,KP33MQ,,,,,,01/95 +OH7HXH,KP53HG,EME,,,,144: 8x 3wl Antenna,08/07 +OH7LIX,KP43JQ,,,,,,09/95 +OH7MA,KP52EL,,,,,144: 4 x 10el,11/99 +OH7PI,KP32XG,EME,,,,,01/05 +OH7RJ,KP32TV,,,,,,08/02 +OH7TE,KP20IE,,,EX OH9NLO,,JUMA TRX2A 50: 200W - 144: 4el 300W - 1296: 10W - 5600: 3W,04/09 +OH7TX,KP32UV,,,,,144: FT847 50W 20el,07/05 +OH7UV,KP33MQ,,,,,50:Yaesu FT950 100W Dipole or 4 el (HB9CV 4),05/09 +OH7X,KP20IE,,,OH7PS,,IC-7700,06/08 +OH8GEJ,KP25QC,,,,,,05/02 +OH8HDL,KP34VJ,,,,,144: 130W 2x14el BF981,08/99 +OH8HTG,KP34DI,,,,,144: 9el 80W 432: 19el 80w,04/07 +OH8LRB,KP24HQ,EME,,OH4MS,,icom ic-910H,10/07 +OH8MFH,KP34UG,,,NO MS Skeds!,,144: TR751A 15el 6WU,01/00 +OH8MGK,KP23PQ,,,,,,03/08 +OH8N,KP34VJ,,,Expedition - QSL via OH8UV,,,12/98 +OH8NW,KP24SX,,,,,,01/85 +OH8NXE,KP25SB,,,,,144: TM255E Preamp 160W 2x14el,01/02 +OH8R,KP24HQ,,,ex OH8LBR,,144: 200W 8el,04/05 +OH8SW,KP22UP,,,,,,11/04 +OH8UV,KP34VJ,,,,,50: Yaesu FT950 100 W 6el (JP6m6) 144: FT225RD 350W 4CX250R 2x14el (QDee) BF981,05/09 +OH8VJ,KP22UN,,,,,,11/04 +OH9AB,KP26,,,not qrv now,,,10/05 +OH9AEM,KN08AJ,,,Expedition,,,01/93 +OH9GDT,KP26VL,,,,,144: 4 Yagis,04/06 +OH9MNO,KP46BI,,,Expedition,,,01/91 +OH9MTY,KP46BI,,,Expedition,,FT847 - 144: 700W 6x9el,06/04 +OH9NDD,KP26UM,,,,,FT847 144: 150W 4x15el preamp,08/03 +OH9NMS,KP36GA,EME,,,,,08/06 +OH9O,KP12BO,EME,,QSL VIA OH8MSM,,IC7400 gd power 15el 16el 37el loop,12/05 +OH9SCL,KP46BI,EME,,Expedition,,TR751/FT847 144: 6x9el LY 700W,06/01 +OI7UV,KP33MQ,,,SpecialCall,,,12/95 +OI8UV,KP34VJ,EME,,SpecialCall,,144: Ft225RD 130W 2x14el BF981,01/97 +OJ0LA,JP90NH,EME,,Expedition,,144: 9el 150W,09/06 +OK1AXH,JO70UR,,,,,,01/97 +OK1CA,JO70GM,EME,,,,,03/08 +OK1CDJ,JO70VA,,,,,144: 250W 17el MGF1302,08/06 +OK1COM,JN79GX,,,,,,01/03 +OK1CT,JN69TR,,,ex OK1URY,,144: 250W 2x16el CF300 - 50: 20W 5el,05/00 +OK1CU,JO80CF,EME,,,,144: 4x 17el 700W,09/06 +OK1DCF,JO80BJ,,,,,,04/02 +OK1DFC,JN79GW,EME,,,,144: 750W 18elM2 10m dish - 432: 750W 38elM2 10m dish - 1296: 100W 10m dish and up,08/06 +OK1DIG,JO60XJ,EME,,,,144: 4x17el M2 GS35 1.5KW MGF1302,04/02 +OK1DKZ,JN69XP,,,,,144: IC275H 100W MGF1302 11el,11/01 +OK1DO,JO60JD,,,ex OK1DDO,,IC7400 144: 150W 7el 50: 100W 5el,03/06 +OK1DQA,JO60TC,,,,,,08/99 +OK1DRY,JN79OW,,,,,,07/02 +OK1DST,JN79EX,EME,,,,,04/07 +OK1DTC,JO60TO,,,,,,08/03 +OK1DUO,JO80CA,,,,,HF: TS120S 500W 3el - 144: IC746 PA0MS ant,08/01 +OK1FAV,JO60CK,,,,,,01/97 +OK1FD,JO60CF,EME,,ex OK1FFD,,50: IC706 5el QUAD - 144: 300W 4CX250 10el 7ZB,08/06 +OK1FF,JN78GR,EME,,,,,01/95 +OK1FM,JN69QQ,,,not qrv MS now! (01/01),,144: 250W 17el MGF1302,11/02 +OK1FXX,JO70WL,,,,,144: TS790E 2xGI7B 3KW 4x17el F9FT 0-4db NF - 432: TS790E GI7B 1-5KW 4x21el 0-9db NF DSP,01/90 +OK1FZA,JO70FC,,,,,,01/92 +OK1HAG,JN79,,,,,,01/97 +OK1IBL,JO60CG,,,,,,01/91 +OK1IN,JO60XA,EME,,ex OK1UND,,TS515 FT221 144: 16el 100W Preamp,02/06 +OK1KEI,JO60JL,,,,,,01/97 +OK1KF,JN79IW,,,OK1DFM,,,01/09 +OK1KHI,JO70ED,,,,,,05/02 +OK1KIR,JN79,EME,,,,,01/94 +OK1KJB,JN79IO,,,,,,08/99 +OK1KKH,JN79,,,,,,01/93 +OK1KRQ,JN69QR,EME,,,,144: 400W 17el M2 CF300,10/99 +OK1KRY,JN69TR,,,,,50: 20W 5el - 144: 250W 2x16el CF300,04/05 +OK1KT,JO70WE,,,,,FT 847 - 50: 20W 5 el - 144: 600 W 15 el CueDee - 432: 50W 21 el F9FT,05/07 +OK1MAC,JN79PQ,,,,,,08/08 +OK1MDK,JN79TO,,,,,,06/08 +OK1MS,JO70SL,EME,,,,,10/08 +OK1MZM,JN69PR,,,,,144: 300W 9el 360m asl,06/04 +OK1NH,JN69UH,,,,,144: 10el 20W,05/04 +OK1RK,JO70KD,EME,,,,144: FT847 250W 10el DK7ZB,08/05 +OK1TEH,JO70FD,EME,,,,144: FT847 1KW 10el - 432: 500W 23el K1FO,12/06 +OK1UGA,JO80DD,,,,,144: Icom 821 + 200W + 5WL,01/07 +OK1UWA,JN69QT,EME,,,,1296: par 2.4m 180W 0-45db NF,08/00 +OK1VAO,JO70EB,EME,,OL1VAO,,,02/09 +OK1VBN,JN78,,,,,,01/97 +OK1VHF,JO70EB,,,,,144: 10ml M2 1200W - 432: 6m Tonna 600W - 1296: 5m Tonna 10W,01/05 +OK1VHH,JO70CK,,,,,144: 20W,04/02 +OK1VKC,JN79OW,,,,,,05/02 +OK1VSC,JN79OW,,,,,144: 100W 7el Quad,03/02 +OK1VT,JN79IX,,,,,,07/01 +OK1VVT,JO60TP,,,OL4VTD,,TS-790,04/07 +OK1WCF,JO80BJ,,,,,144: R2CW PA 100W 2x 16el F9FT,04/04 +OK1WN,JN69LK,,,,,144: 100W 16el CF300,10/01 +OK1XXT,JO70GA,,,,,,04/02 +OK1YA,JO70GC,EME,,,,144: 4x 11el 1500W,03/06 +OK1YK,JN78GX,EME,,ex OK1AYK,,FT 847 144: 750W 4x 17el MGF1302 - 432: 1kW 5m dish MGF 1801,10/06 +OK2AB,JN89TI,,,,,,12/03 +OK2BDS,JN79WF,,,,,144: BMT226 100W 10el.7ZB - 432:IC706MKIIG 100W 2x 23el.7ZB - 1296: FT817+transv. 50W 32el.9BV,04/06 +OK2BMU,JN99BU,,,EX OL7AVX,,TM255E/TM455E + PA 150W 144: 13 el 432: 21el,04/07 +OK2BON,JO70,,,,,,07/02 +OK2BRD,JN99ET,,,,,IC706MKIIG,08/03 +OK2BXE,JN89SJ,,,,,144: FT847 100W 16el MGF1302 - 10368: 1.5W Dish,07/01 +OK2DL,JN89AO,EME,,,,,06/02 +OK2GM,JN99GM,,,ex OK2BZQ,,FT897D+LNA,03/07 +OK2ILA,JN89WW,,,,,,12/08 +OK2IT,JN99BO,,,= M0ITY G6UT - ex OK2ITY,,TRX210 Snezka 750W 2x4el Yagi,07/06 +OK2KET,JN89JN,,,,,,03/01 +OK2KUB,JN89,,,,,,01/93 +OK2KZR,JN89BO,EME,,,,,01/93 +OK2MWR,JN99HQ,,,,,144: IC706 100W 14el PBM,08/00 +OK2PM,JN99AO,,,ex OK2BGQ,,IC706 FT736,08/03 +OK2PMA,JN89HF,,,,,FT-897,10/07 +OK2PMG,JN89SJ,,,,,144: FT847 100W 16el MGF1302 - 10368: 1.5W Dish,07/01 +OK2PMS,JN89WW,,,,,FT847 300W DK7ZB,04/08 +OK2PMX,JN88IW,,,,,IC706,04/04 +OK2POI,JN99AJ,EME,,,,,07/08 +OK2PTC,JN89MM,,,,,,08/04 +OK2PWY,JN89IW,,,,,,05/06 +OK2PZW,JN89HI,,,,,,01/03 +OK2QI,JO80OC,,,,,,01/95 +OK2SBL,JN99HQ,,,,,,08/00 +OK2SGY,JN89SS,,,,,,08/96 +OK2SLC,JN89ED,,,,,,04/05 +OK2TUH,JN89RB,EME,,,,144: 7el 200W,03/06 +OK2UGG,JN89EN,,,,,,12/01 +OK2UZL,JN79UG,EME,,,,144: 4x 9el 50W,12/05 +OK2VMD,JN89HI,,,,,,01/94 +OK2VSO,JN99AJ,EME,,,,,03/06 +OK2WO,JN89IH,,,,,,04/04 +OK2XPJ,JN89,,,,,,04/02 +OK2YT,JN88IW,,,ex OK2PMN,,144: 100W 15el,08/06 +OK2ZAW,JN79XN,EME,,,,144: IC-706 12el ZZ212 300W GI7bt,02/05 +OK2ZC,JN89HI,,,OK2BEE,,ICOM 746-PRO 100W 7EL DK7ZB YAGI,05/08 +OK2ZI,JN89AD,,,EX OK2XTE,,,06/08 +OK2ZW,JN89HI,,,ex OK2PZW,,,08/02 +OK2ZZ,JN89DF,,,,,,08/96 +OK3RM,JN69MS,,,,,,12/07 +OK5ACR,JO60NX,,,,,,05/00 +OK5TK,JO70MB,EME,,OK1UAK,,100W 10el 2.2wl Yagi,05/07 +OK6TW,JN89,,,,,,08/08 +OK8BXF,JO70VA,,,,,,06/04 +OL2O,JN79IO,,,,,,12/01 +OL5MS,JN69MJ,,,,,,08/99 +OM2TW,JN88UG,,,,,144: IC746 17el LY,07/01 +OM3AU,KN08OR,,,SilentKey,,,01/93 +OM3BC,JN98VG,EME,,EX OM3WBC,,144: 1KW 4x 12el 432: 1kW 4x 23el,06/08 +OM3KDX,KN19DB,,,Expedition,,144: IC-746 GS35b 4x6 el. 18el. M2 - 10368: 5W 60cm dish,06/04 +OM3KKF,JN88MD,,,,,144: 700W 13el,07/05 +OM3KMY,JN88MK,,,ex OK3KMY,,,01/94 +OM3LQ,JN88MK,,,ex OK3LQ,,,08/01 +OM3TZZ,JN88TI,,,,,FT847+PA 400W+7el. QUAD,12/08 +OM4EX,JN98HS,,,,,,07/04 +OM5CM,JN98DF,EME,,EX OK3YCM OM3YCM OM7YCM,,IC910H 144 MHz: 100W 9el 432 MHz: 75W 18el 1296 MHz: 10W 55el,10/07 +OM5KM,JN98AH,,,,,,01/02 +OM5UM,JN98EO,,,,,,04/02 +OM7AC,JN98NN,,,EX OM3YIH OK3YIH,,FT225RD FT780 FT897D/2x10el DK7ZB/2m+17el DK7ZB/70cm+crossyagi for satellite,07/08 +OM7AQ,JN98UI,EME,,OL9CQN OK3TEM OM3TEM,,144: FT897D 600W 16el F9FT MGF1302 - 432: 400W 4x18el or 4x21el MGF1302 - 1296/2320: 10W 1m dish,03/07 +OM7CM,JN98NR,EME,,OK3CKJ,,144: FT - 847 50W F9FT - 9el,04/07 +OM7JG,JN98TI,,,,,,01/02 +OM9AAW,JN98EP,,,Expedition,,,07/95 +OM9M,KN18AM,,,,,,08/99 +ON1AEN,JO10UV,,,,,,01/03 +ON1AFN,JO20SW,,,,,144: FT290r 150W,09/98 +ON1ALJ,JO10SS,,,,,144: TS790E 3CX800 MGF1302 10el 9BV - 432: TS790E 400W 2x18el 9BV MGF1302,11/01 +ON1DDC,JO21UD,,,,,144: 16el 800W,08/97 +ON1RR,JO11XA,,,ex ON1AXO,,FT100,09/01 +ON2MRT,JO21MB,,,,,,07/03 +ON3VHF,JO20EM,,,ex ON2VHF,,144: ft290r microset RV45,08/05 +ON4ADC,JO21FA,,,,,,09/03 +ON4AMX,JO20KV,,,= OQ4U,,144: IC910 2x8wl GS35b,05/08 +ON4ARF,JO10MV,,,,,,05/02 +ON4ASL,JO21,,,,,,01/94 +ON4AVJ,JO11UB,,,,,144: IC275HE 3CX800A7 17el MGF1302,10/04 +ON4BBD,JO21NA,,,ex ON1CBT,,FT736 TS440S,01/04 +ON4BG,JO10WM,,,,,,12/01 +ON4CHP,JO21JD,,,,,144: 150W B5016G 11el FX224 SP2000,10/07 +ON4CJU,JO20,,,,,,11/01 +ON4DPX,JO10NT,EME,,ex ON1DPX,,FT736 FT847 144: 4x 3wl 1KW - 432: 2x 26el 9BV - 1296: 4x 44el 6WU,09/06 +ON4FI,JO20IV,,,,,144: 3CX800 600W 13el MGF1302,12/99 +ON4GG,JO20AR,EME,,,,50: 9el MGF1302,04/05 +ON4IMM,JO11UB,,,EX ON1IM,,144: TS440S + LT2S MK2 Preamp PA3BIY design 4x7el 3CX800A7 600W,02/08 +ON4IQ,JO20AR,EME,,ex ON4ANT,,50: 4x 6M9KHW FT1000mpMkV FTV1000 - 144: 8x 2M18XXX TS2000X GS35,05/05 +ON4KEP,JO10WI,,,,,,08/08 +ON4KHG,JO10XO,EME,,EX ON1KHN,,144 : 300W 4 WL MGF1302,10/08 +ON4KNG,JO20DU,EME,,,,,01/04 +ON4KST,JO20HI,,,,,,05/04 +ON4LDP,JO10UM,,,,,50: HM tsvter 2m/6m 30W GP - 144: 150W 13el MGF1302 432: 35W 21el - 1296: tsvter DB6NT 20W FHX35,06/02 +ON4LN,JO20IV,EME,,EX ON4CGP,,144: IC-746/IC-7000 GS35b 17ele M� MGF1302,05/07 +ON4LUC,JO20TM,EME,,,,144: ft1000mp transverter 800w hf max amplifier 13 el Flexa (soon 4x 13el),01/04 +ON4MU,JO20SS,EME,,ex ON1KPW,,Ft847 150W 0.5dB 3wl,08/03 +ON4PS,JO20KQ,,,,,Yaesu Ft 847 + 8874,03/07 +ON4QQ,JO20FS,,,,,,07/95 +ON5AEN,JO10VW,,,EX ON1AEN,,FT225RD TS770e FT690RII,04/08 +ON5GS,JO20SS,,,EX ON1DLL,,144: IC821 600W 15el,08/08 +ON5LGS,JO10OS,,,ex ON1LGS 3X1SG,,,09/03 +ON5UE,JO11LF,,,EX ON1BCD,,TS2000DX,05/07 +ON6AB,JO21EC,,,,,TS930S,03/04 +ON6JY,JO20WP,EME,,,,HF + Transverters,10/05 +ON6NL,JO21UE,,,,,144: IC756PRO 125W 13el DL6WU,04/08 +ON6OD,JO20HW,,,,,,01/93 +ON7EH,JO20FV,EME,,,,,08/04 +ON7KGK,JO20BL,,,ON1KGK,,k3,02/08 +ON7RB,JO11VA,EME,,,,144: 8x13el hor. & 8x12e vert. Full Az/El 1KW,11/03 +ON7UC,JO11ND,EME,,,,144: 3CX800A7 4x16el 4.2wl,05/07 +ON7YK,JO20XL,,,,,TS2000,04/07 +OQ1AEN,JO10VW,,,,,FT225RD TS770E,11/01 +OQ4U,JO20KV,,,= ON4AMX,,144: IC910 2x8wl GS35b,05/08 +OT4G,JO10XO,,,= ON4KHG,,144 : 300W 4 WL MGF1302 - 1296 : 10W 35 el,04/06 +OU9S,JO54TU,EME,,= 5P9S OZ9S OV9S 5Q9S,,See www.oz9s.dk (click rig) for actual and updated info,05/07 +OV9S,JO54TU,EME,,= 5P9S OU9S OZ9S 5Q9S,,See www.oz9s.dk (click rig) for actual and updated info,05/07 +OX2K,GP47TA,EME,,,,144: 4x5wl - 432: 4x28el - 1296: 32m dish,05/00 +OY3JE,IP62OA,EME,,,,,03/08 +OY4TN,IP62NB,,,,,144: 300W 8el,03/08 +OY9JD,IP62OA,,,,,,01/04 +OZ0JX,JO54VU,,,,,IC761 IC756 50: 5el F9FT,01/03 +OZ1ALS,JO45VA,,,,,144: 2x9el 500W,04/07 +OZ1CDE,JO65CO,,,,,50: FT847 6el 850W,02/02 +OZ1CLL,JO65GQ,,,,,,06/05 +OZ1CTZ,JO46OE,,,,,,01/02 +OZ1DJJ,JO65HP,EME,,,,FT847 IC756pro2 transverters,04/07 +OZ1DPR,JO45IG,,,,,50: Yaesu FT-920 GS35b 1000W 5el,08/03 +OZ1FDH,JO65CS,,,,,,07/99 +OZ1FF,JO45BO,,,OZ9KY,,1296: 145W LNA 1 5m dish 2320: 125W LNA 1 5m dish - 5760: 7W 1 5m dish - 10368: 65cm dish 2W- 24048: 65 cm dish 2W,09/07 +OZ1FTU,JO55WW,,,,,,01/93 +OZ1GEH,JO65AL,EME,,,,,01/93 +OZ1HNE,JO57,EME,,,,144: 4x18el crossyagi 8877,12/05 +OZ1HTB,JO75,,,,,,11/96 +OZ1IEP,JO55XU,EME,,,,50: 100W 6el - 144: FT736 1KW 2x11el - 432: 600W 2x23el,03/05 +OZ1IPU,JO57JH,,,,,,01/93 +OZ1JFK,JO47WL,,,,,,10/08 +OZ1JVX,JO46DS,,,,,,01/96 +OZ1LPR,JO44UW,EME,,,,144: IC756PROII LT2SMK2 Transv. 2x M2XP20 Xpol full elevation 1KW YL1050 PA or TH347 PA,04/06 +OZ1MAX,JO57GI,,,,,Kenwood TS-2000,03/05 +OZ1MFP,JO55SK,EME,,,,kenwood ts 790e ts 2000e,08/08 +OZ1PIF,JO65AN,EME,,= 5Q2M,,FT847 50: 100W 4el - 144: 350W 17el Preamp,02/09 +OZ2BZQ,JN99GM,,,,,,05/06 +OZ2EEZ,JO45,,,,,,01/03 +OZ2ELA,JO65,,,,,,01/97 +OZ2M,JO65FR,EME,,,,,07/09 +OZ2TF,JO46PE,EME,,,,144: IC271h 750W 4x9el Preamp,10/02 +OZ3K,JO45TL,,,EX OZ1ELF,,IC746PRO,04/07 +OZ3TT,JO66CB,EME,,ex OZ1IUK,,144: ICOM 275H Amp. CS31 M2 18 el MGF130,12/04 +OZ4MM,JO55GH,EME,,,,10m dish,10/02 +OZ4VV,JO46QU,EME,,,,50:1000w 9el - 144:1000 Watt 15el MGF1302,02/05 +OZ50MHZ,JO55EJ,,,OZ1IZB G0DJJ & OZ7M,,,03/08 +OZ5AGJ,JO47IA,,,,,144: ICOM 706MK2G 160W 9Elem 2.2wl,05/07 +OZ5IQ,JO65AO,EME,,OZ1EME AS WELL STILL OK,,,06/07 +OZ5QF,JO45VB,,,,,,10/95 +OZ6ABA,JO57DJ,EME,,,,144: FT736r Mutek Preamp 1KW 15el DJ9BV,08/08 +OZ6EI,JO45TT,,,,,,08/01 +OZ6OL,JO65DJ,EME,,,,,09/06 +OZ6OM,JO55EJ,,,OZ1IZB G0DJJ & OZ7M,,,03/08 +OZ7LE,JO45,,,= DJ3LE,,144: 9el 400W,03/01 +OZ7U,JO45RL,,,ex OZ1BVW,,TS940S FT847,09/06 +OZ7Z,JO44VW,EME,,OZ1DSK,,144: FT736 500W WX20 Yagi,03/07 +OZ8FR,JO55SK,EME,,,,,03/05 +OZ8ZS,JO55RT,EME,,,,144: IC706 GI7b 400W 17 elm,02/08 +OZ9AAR,JO45TS,EME,,qrt EME,,8x15el Crossyagis- 1KW,12/99 +OZ9FW,JO65CO,,,,,Homebrew 1kW(2m 70cm),04/07 +OZ9S,JO54TU,EME,,= 5P9S OU9S OV9S 5Q9S,,See www.oz9s.dk (click rig) for actual and updated info,05/07 +PA0AVS,JO22,EME,,,,,01/94 +PA0BAT,JO31FX,EME,,,,,01/03 +PA0BWL,JO21SS,,,,,,08/08 +PA0C,JO22FD,EME,,ex PA0CIS,,Ft 847 QBL 5/3500 0.4 dB NF 2x 17 el,02/06 +PA0HIP,JO21JO,,,,,,01/93 +PA0JMV,JO21PM,EME,,,,144: 1x12 and 4x10 el 2x 3CX800A7 0.18dB NF,01/08 +PA0LPE,JO20WW,,,,,50: FT847 7el - 144: IC202 400W 2x11el,01/01 +PA0O,JO33HG,,,ex PA0OOS,,,08/03 +PA0PVW,JO22VA,,,,,144: 18el M2 3CX800,07/02 +PA0RDY,JO22KJ,,,,,144: 500W 15el MGF1302,10/99 +PA0RLS,JO22,,,,,,01/93 +PA0TBR,JO22PI,,,ZS4BU,,,05/07 +PA0V,JO33II,EME,,ex PA0OOM,,144: 6 x DJ9BV 4 WL Xpol 8 BLF278 Mos fet PA MGF 1801 preamp,04/05 +PA0WWM,JO22FE,,,,,144: 160W 9el MGF1302,04/01 +PA0ZH,JO33AB,EME,,,,,01/07 +PA1AW,JO21GU,EME,,EX PA3DMH PC1A PE1JUP PD0LGF,,144: IC7400 + 11el F9FT. 50: IC756Pro+ACOM10000+5 el.,05/09 +PA1BVM,JO21RI,,,ex PE1BVM,,50: IC202 Transv. dipol - 144: FT-225 IC 746 MGF1302 2x17ele,05/03 +PA1GYS,JO22WW,EME,,EX PA3BXH PE1DWI PD0HKC,,144: TS850 TR144H 2 x 2MXP20 700W,03/08 +PA1LA,JO32LS,EME,,EX PE1RWS,,144: FT857d - LNA atf54143 - 9 ele. vargarda - GS35b QRO.,12/08 +PA1T,JO33JF,EME,,EX PA9KT PA3FBN,,144: FT1000MP MV TR144H 8877 4x17el M2- 50: 1y. 70cm: 1y. 23: 1.2dish,08/07 +PA1VW,JO22IN,,,EX PE1OLD AND PA3GNF,,FT-897 100 Watt PA 16JXX2 4.4 wave13 m ASL,12/08 +PA25FMF,JO22XW,EME,,SpecialCall,,144: 4x 12el DK7ZB 600W no preamp,10/06 +PA2CHR,JO32DB,EME,,,,144: 2x 16el XPol,01/08 +PA2DW,JO22GD,EME,,ex PA2DWH- PE0DWH- GM5CJF,,144: TenTec Trvt 400W(2x4CX250b) 10el,09/04 +PA2GER,JO21EW,EME,,,,,09/99 +PA2KW,JO22SB,,,ex PE1FYJ PA3BZL,,144: 1x16el KLM 1.2KW MGF1302,10/04 +PA2M,JO21IP,,,ex PA3DYS,,FT847 144: 2x blf278 9el 432: 16 el,11/04 +PA2MRT,JO32HI,EME,,PD0HP,,144: 4x 7el DK7ZB ME1500V with GS35B 1200 W Icom 910H icom 7400 YAESU FT1000d,08/07 +PA2V,JO22IM,EME,,ex PA2VST,,Homebrew + IC756pro2 & IC706mk2g,03/07 +PA2XHF,JO32HN,,,PA2B,,,04/09 +PA3BGM,JO33CE,,,,,,08/99 +PA3BIY,JO22EB,,,,,144: 400W 2x9el,03/02 +PA3BZO,JO21RS,EME,,,,,08/03 +PA3CEE,JO33JI,EME,,PE1FMG PD0GIK,,144: 600W 2x 5wl M� MGF1302,08/07 +PA3CMC,JO21WI,EME,,ex PA9LB,,144: LT2s mod. MGF1801 PA8877 4x 16el X-pole I0JXX or FT736 Mutek or TS2000 MGF1302 PA 500W 13 el. DJ9BV,04/06 +PA3COB,JO32MF,EME,,,,144Mhz only: FT756proIII - Kuhne TR144H +40 - 4X7el - 1Kw,02/08 +PA3CPI,JO22JW,,,,,FT847,08/08 +PA3CSG,JO21WD,EME,,,,,01/07 +PA3CWI,JO11TK,EME,,,,144: FT736 6x12 el M2 MGF1302 8877-Ampl,10/06 +PA3CWN,JO33AH,EME,,,,144: 600 W 4x 9el 7ZB,03/07 +PA3DOL,JO22MT,EME,,,,144: 17el 3cx800 amplifier abt 700w EME 4x9el DK7ZB abt 700w,09/08 +PA3DRL,JO21PS,,,,,K2 + XV144 Elecraft 4x 7el dk7zb GI7-b preamp 20 dB nf 0.8,05/07 +PA3DUU,JO21IU,,,,,,01/93 +PA3DZL,JO21HM,EME,,,,144: 4x17el 3.6ld MGF1302 EME Pwr - 432: 2x21el EME Pwr - 1296: 2.5m Dish 150W,03/07 +PA3EAQ,JO31CI,,,,,FT767 50MHz: 100 watt 3 el 144MHz: 100 watt 7 el,08/08 +PA3ECU,JO32CF,EME,,PD0NEN PE1JSB,,144: Ft847 8877 2x8Xpol DK7ZB LNA .19Db,12/08 +PA3EON,JO21,,,,,,01/93 +PA3EPX,JO22RC,,,,,,01/93 +PA3EQS,JO22TI,,,,,,01/93 +PA3FOC,JO21FW,EME,,,,144: TenTec Paragon LT2S 17el (2x17el) PA MGF1302,07/05 +PA3FPQ,JO22XE,EME,,PE1GXU PD0JNN,,144: TS850 + TR144H 2x10 elem. DJ9BV H + V pol. 1KW,01/08 +PA3FSA,JO23RF,EME,,,,,10/05 +PA3FVE,JO21WG,,,,,,01/93 +PA3FXB,JO33KC,EME,,PE1CIO,,12 el DK7ZB 350 W,06/08 +PA3FXW,JO22QD,,,,,,01/93 +PA3FYF,JO22DB,,,,,,01/93 +PA3FYG,JO22SI,,,PE1GTE,,TS870,01/08 +PA3GBR,JO32LH,,,,,,01/93 +PA3GCV,JO32LU,EME,,,,50: FT897 7el 9.40 m Boom 21m asl 1kw,02/09 +PA3GVC,JO22MU,,,,,,12/04 +PA3HJG,JO32BG,,,,,TS2000 50: Dipol - 144: 13el,08/03 +PA4EME,JO20WX,EME,,PE1FEY - ON8YA - ON4AUD - PA3GIJ,,144: 0.22 dB 2.5 kW 3.2 wl DJ9BV,12/07 +PA4PS,JO33GH,EME,,PD2PS PE2PS,,144: 4x10 from YU7EF,01/09 +PA4VHF,JO32JE,,,EX PA3FJY,,50: 100W 7elM2 - 144: TS850 LT2S 400W 17B2,12/08 +PA5DD,JO22IC,,,ex PA3HDD OZ1DOQ,,144: GS35b 15ele CUE DEE,01/05 +PA5KM,JO11WL,EME,,,,144: IC 910 H +8877 2x12 EME 1x9 TR MS AU ES,09/07 +PA5M,JO21BS,,,ex PA5MD PA3GST,,,08/03 +PA5MS,JO21RQ,EME,,EX PE1OGF,,144: 11el GS35b 400W MGF1302,05/07 +PA60SHB,JO21OS,,,SpecialCall,,,12/04 +PA6BN,JO13OF,,,Expedition - QSL via PA3BIY,,,07/98 +PA6MS,JO32QF,,,SpecialCall,,,10/96 +PA6T,JO32GF,,,SpecialCall,,,12/98 +PA7AL,JO23VG,,,,,,12/04 +PA7C,JO32GF,,,ex PA2TAB,,50: 100W 6el - 144: R2CW GS31b 400W 14el MGF1302,09/03 +PA7FA,JO21PT,EME,,EX PE1OUC,,IC756-III,04/07 +PA7FE,JO22OC,,,ex PA3BFM,,50: 6el leg pwr,03/99 +PA7FM,JO21,,,ex PE1PZS,,,08/00 +PA7N,JO23WB,EME,,PE1LZX,,IC-910H TS-480HX,01/09 +PA7PYR,JO21UQ,,,ex PD0PYR,,TS450SAT HF: FB33 - 144: 25W 2x17el Tonna - 432: 25W 23el,09/03 +PA7RP,JO22EC,EME,,ex PA3BBA,,144: 400 Watt (GS35b) 17 el F9FT,01/06 +PA7WM,JO23TA,,,ex PA3DWD,,,03/99 +PA9RX,JO32MT,EME,,,,144: FT847 4x17el 200W,04/07 +PA9T,JO22KA,,,PD0TKS,,,06/09 +PB0AHX,JO22,EME,,,,icom 910H for 2-70-23 and icom7400 for 50mhz,04/08 +PB0ALS,JO21RV,,,,,,01/93 +PB1TT,JO22FF,,,ex PA3EFC,,144: 100W 10el CueDee,09/01 +PC7M,JO32GF,EME,,ex PA2TAB PE0TAB,,50 MHz : FT847/120W/6el - 144 MHz : FT847/400W/14el,04/06 +PD0ANQ,JO31EW,,,,,,11/01 +PD0CIF,JO32KT,,,,,FT-847 and FT-817,07/07 +PD0HCV,JO31FW,,,,,IC821 144: 15el QD 50W 432: 18el M2,08/05 +PD0ORT,JO23RE,,,,,,03/06 +PD1AIQ,JO22RM,,,,,144: 25W 4x9el,04/03 +PD1ALD,JO32FI,,,,,Yaesu FT897- Kenwood TR9130- Yaesu FT817,06/03 +PD2GCM,JO21ET,,,,,FT847,11/04 +PD2TW,JO33FI,,,,,,04/09 +PD2VDV,JO23RF,,,,,,08/04 +PD3AHW,JO32LF,,,,,,05/05 +PE1AHX,JO21OS,,,,,,02/05 +PE1BTX,JO22XW,EME,,,,144: 4x 12el DK7ZB 600W no preamp,10/06 +PE1DAB,JO23RD,,,,,144: 2x 8el JXX 100Wh,12/08 +PE1DCD,JO21FU,,,,,,05/03 +PE1GNP,JO31IX,,,,,,05/03 +PE1GUR,JO22TH,,,,,144: 16el 350W,07/05 +PE1HWO,JO21GV,,,,,144: FT101ZD + TRV FT225RD PA 17el MGF1302,04/07 +PE1IKX,JO11TM,,,,,144: 400W 15el Quedee,06/05 +PE1ITR,JO21QK,EME,,,,144: 2x10el 200W 3SK183 432: 2x16el GS35b 0 35db - 70: rx 5el - 222: rx 10el 3SK183 - 1296: 10W 26el,09/07 +PE1L,JO23WF,EME,,EX PE1LCH,,2 x 14 dk7zb,04/07 +PE1LWT,JO22VA,EME,,,,144: 300W 2x3wl-Xpol,07/05 +PE1M,JO23XE,,,ex PE1MCD,,,08/03 +PE1MVJ,JO21FV,,,,,,11/96 +PE1OID,JO33KI,EME,,,,144: TR 751e 160W 10el,10/05 +PE1OPK,JO23UE,,,PD0NXG,,IC821/IC202,12/08 +PE1PQX,JO32LS,,,ex PD0RJH,,,06/06 +PE1RBG,JO21,,,,,,11/01 +PE1RDP,JO21QK,EME,,,,FT847 144: 2x 10el DK7ZB GS35 MGF1801,09/07 +PE1RLF,JO32CG,,,,,144: TS850 LT2S 4CX250F 10el,05/07 +PE1RMN,JO11WR,EME,,,,FT857 FT847,08/07 +PE1RWS,JO32BM,,,,,,01/05 +PE2PE,JO21LU,,,ex PE1BNK,,144: 400W 15el Cue Dee - 50: 20W 6 El Cue Dee - HF: 10W,03/07 +PE2RMI,JO23MH,,,,,,01/02 +PE2S,JO31AU,EME,,EX PE2SVN,,FT1000 LT2s BLF278/3CX800,03/08 +PE9DX,JO33MD,EME,,,,144: TS711 600W 10 elm dk7zb VV atf 54143,10/07 +PE9GG,JO33NA,,,ex PE1PJG,,,04/05 +PE9HNE,JO22FB,EME,,ex PD1ABZ,,TS711,09/03 +PI4NYV,JO32EH,,,,,144: 400W 9el or 17el (/p JO32FI),12/96 +PI9CAM,JO32ET,EME,,,,,01/09 +PJ4CX,FK52UD,EME,,EXPEDITION,,,05/07 +PJ4EME,FK52UD,EME,,EXPEDITION,,,05/07 +PJ4LS,FK52UD,EME,,EXPEDITION,,,05/07 +PP2KR,GH53IG,EME,,,,TR9130,02/05 +PP5XX,GG53QW,EME,,,,144: 150W single yagi,05/08 +PR8ZX,GI64GL,EME,,EX CT1DYX,,144: 13 el dl6wu 150w mgf1312,05/07 +PT7ZAP,HI06RG,EME,,,,TS-2000,05/08 +PT7ZAP,HI06RG,EME,,,,TS-2000,05/08 +PT9FH,GH11EA,EME,,,,144: 4x12el 2x4CX250,04/00 +PT9PA,GG49DF,,,,,,04/08 +PY0FF,HI36TD,EME,,,,144: 4x 12el 100W,05/08 +PY1EPU,GG87KD,EME,,,,144: 6 x 16el 160W FT 1000 Mark V Field + Transvert,02/08 +PY1IAM,GG87,EME,,,,,04/04 +PY1RO,GG87LB,EME,,,,IC706MKIIg 1000W 8 over 8 el,09/06 +PY2ALR,GG66UB,EME,,,,,08/08 +PY2ANE,GG66SH,EME,,,,,05/05 +PY2BL,GG67LE,EME,,ex ZZ2RED,,144: TS2000 IC910 2x 15el 1KW,05706 +PY2BS,GG66PJ,,,,,,09/08 +PY2BVF,GG66TB,EME,,,,144: 4x 10el 1KW - 432: 2x 28el 800W,08/05 +PY2CLL,GG66RF,EME,,,,144: Kachina 505DSP Trvt 4x18el M2 LNA 300W,01/00 +PY2NI,GG66RK,EME,,,,,07/01 +PY2OC,GG66OT,EME,,,,50: 8el 100W - 144: 12el 160W,08/05 +PY2PD,GG66RF,EME,,,,MP1000- LT2S- 4xM2XP28- 3CX800 0-4db,03/99 +PY2PLL,GG66RF,EME,,,,144: 750W 16el or 2x15el - TS790A xverters for 432 and 902 and 1.2,03/01 +PY2SRB,GG48BC,EME,,,,144: 160W 4x 10el,06/06 +PY3CRX,GG66RF,,,,,144: 750W 16el or 2x15el,08/00 +PY3FF,GF49IU,EME,,,,,05/05 +PY4EPU,GG88PO,EME,,,,YAGI FULL SIZE FOR 14 21 28 50 144 220 440 MHZ,04/06 +PY4OG,GG78QQ,EME,,PY4LOG,,4x 12el 1KW,09/07 +PY5EW,GG46IP,EME,,,,144: 15el 100W,05/08 +PY5ZBU,GG54,EME,,,,,01/00 +PY8ELO,GI25AR,,,,,,01/08 +PZ5CY,GJ25JT,EME,,,,50: 1x 6el,03/06 +R1MVA,KP40GP,EME,,Expedition,,144: 150W,07/99 +R1MVW,KP40GP,EME,,EXPEDITION,,144: 2x 9el or 18el 500W - 432: 40el 500W,11/05 +R1MVZ,KP40GP,EME,,,,144: 4x14el 1.2KW,10/99 +R3VHF,LO16XG,,,SpecialCall,,,01/96 +RA0ACM,NO76EB,EME,,,,144: 4x 9el 300W,08/06 +RA0CGT,PN78NL,EME,,,,,10/08 +RA0FCA,QN16IW,EME,,,,144: 4x 15el Xpol 1KW,11/06 +RA0FU,QN16IW,EME,,,,144: 4x 15el Xpol 1KW,04/06 +RA0FW,QN16IW,EME,,,,144: 4x 15el Xpol 1KW,11/05 +RA1ASA,KP50FB,,,,,,01/76 +RA1AY,KP50EA,,,EX UA9KG,,144: 15 el TS2000 GI7B 300 W,04/07 +RA1QA,KO99WF,,,,,144: 300W 2 x10el 9BV,12/06 +RA1QAX,LO09CC,,,,,144: IC706 10el PA,10/04 +RA1QIB,KO99WG,,,,,,11/05 +RA1TBH,KO58PN,EME,,,,TS-2000X 100 W 10 el DK7ZB Pre Amp,03/09 +RA1TC,KO58ON,,,,,,01/92 +RA1TL,KO67,,,,,,05/04 +RA1TM,KO67PX,,,,,IC746,11/04 +RA1WL,KO47EV,,,,,Kenwood-2000X,03/08 +RA1WU,KO47ET,,,,,,05/08 +RA1WZ,KO47EV,,,,,,06/09 +RA1ZC,KP59JK,EME,,ex UA1ZCG,,IC706MK2 144: 2x10el DJ9BV 1KW,11/01 +RA1ZK,KP68MV,,,,,,11/04 +RA3AGS,KO85UU,,,,,,01/90 +RA3AQ,KO85JE,EME,,,,144: 6x 6.3 wl cross yagi 1500W,05/07 +RA3DHK,KO95JH,EME,,,,144: FT-736R Toshiba NB 500W 2x2M12,10/06 +RA3DQ,KO85US,,,,,144: IC746 100W 16el,09/01 +RA3DQT,KO95JH,,,,,144: FT-736R Toshiba NB 170W 1x2M12,07/06 +RA3DRC,KO95AP,,,,,144: FT-847 50Wtts 17el DJ9BV 9.2 m long,03/04 +RA3EC,KO82PT,EME,,,,1296: 3m Dish RA3AQ septum feed 200 W output,10/08 +RA3EL,KO82AX,,,ex UA3EAT,,144: 50W 16el,03/04 +RA3FO,KO86SI,,,,,,01/95 +RA3GES,KO92SO,EME,,,,144: 4x 7el 200W,11/05 +RA3IM,KO56UM,,,,,,06/04 +RA3IS,KO76WU,EME,,EX UA3IFI,,2m: 1 hp 1x19el SM2CEW 5wl crossyagi 70cm: 21F9FT 23cm 2m dish,09/07 +RA3LBK,KO65QA,,,,,144: 200W 17el,01/00 +RA3LE,KO64AR,EME,,ex UA3LBO,,144: 2x LY Xpols 400W,12/06 +RA3LW,KO54MQ,,,UA3LAW,,IC-7000 144:2x7el 432:24el 1296:22el G3JVL and PA,11/08 +RA3MR,KO98JC,,,ex UA3MEP,,IC910,08/05 +RA3QTT,LO01GQ,,,,,144: GS35 0.5KW 4 x 3.3wl 9BV 0.35db,11/03 +RA3TES,LO15WJ,,,,,,11/95 +RA3WDK,KO81BR,,,,,144: 60W 11el,04/04 +RA3XAL,KO84DM,,,,,,08/05 +RA3YCR,KO73DH,EME,,SilentKey,,,01/94 +RA4HCN,LO43SL,EME,,,,144: 1KW 4x13el,09/07 +RA4HGN,LO53BE,,,,,,08/07 +RA4NAK,LO58GH,,,,,,08/08 +RA6AAB,KN94UR,EME,,SilentKey,,,01/92 +RA6AX,KN95,EME,,,,,04/07 +RA6DA,KN96SA,EME,,,,144: 8x 12el 600W,05/06 +RA6HHT,LN04WX,EME,,,,144: 16el 1.2KW,06/07 +RA6HTT,LN05,,,,,,08/08 +RA9CAE,LO97,,,,,,08/08 +RA9FMT,LO87BW,EME,,,,,01/06 +RA9SO,LO71NS,,,,,,08/96 +RA9YDL,MO93HA,EME,,,,,10/08 +RA9YMI,NO13VI,EME,,,,144: 16el 250W,01/90 +RD3BD,KO85UQ,EME,,,,144: 4x 18el 1500W,04/06 +RD3DA,KO85PT,EME,,,,1296: 2m dish 35W,08/06 +RD3WAL,KO71IM,,,,,144: 100w 14el yagi(DK7ZB) Kenwood TS-790a,04/09 +RK1NA,KP71ET,EME,,ex UN1CD - QSL via DK3WG,,144: FT847 100W 14el circular,04/04 +RK1QWA,LO09AC,,,EXPEDITION,,,08/07 +RK2FWA,KO04FT,EME,,ex UZ2FWA,,,04/04 +RK3AF,KO75WO,,,EX UZ3AF- UA3AJK,,144: IC746 2xGI7B 450W ANT - DK7ZB 5WL,09/07 +RK3FG,KO86HP,EME,,,,144: 4x 14el 1200W,03/05 +RK3MWI,KO98JB,,,Expedition,,144: 100W 10el,01/07 +RK3PWJ,KO83XC,,,QSL via UA3PNO,,,05/04 +RK3WKB,KO81BR,,,,,,05/06 +RK3WWF,KO72QI,EME,,,,144: 4x 13el 1KW 432: 4x 26el 300W,09/06 +RK6GC,LN05AU,EME,,,,144: 50W 2x 12el,02/08 +RK6LXN,KN97LE,,,,,,06/06 +RK6MC,KN97LE,EME,,ex UA9XEA,,144: 4x 12el 1KW - 432: 8x23 el GS35B/1.1kW PA MGF1302 preamp,08/06 +RK9CC,MO06RT,EME,,QSL via DK3WG,,6x4lb 9BV GS35b,03/04 +RK9DK,MO09CS,EME,,,,,10/07 +RL1P,KO49VW,,,SpecialCall,,144: TR-751 300w 16el DJ9BV,05/03 +RL1X,KO59EW,,,SpecialCall,,,05/03 +RL3DO,KO85WV,EME,,,,,08/08 +RM3T,LO16XG,,,SpecialCall,,,08/97 +RN3QKG,KO91OM,,,,,,08/08 +RN3QLU,KO91OO,EME,,,,,06/05 +RN3QO,KO91OO,,,,,,07/05 +RN3QQ,LO00BK,,,,,144: 15el DJ9BV 100W,06/99 +RN4AT,LN29LA,EME,,ex RA4AOR,,144: 4x 14elX-Yagi 1.5KW,10/06 +RN4HFE,LO42XX,,,,,,09/07 +RN4NF,LO58GH,,,,,,08/08 +RN6BL,KN95,EME,,,,144: 80W 16el,01/08 +RN6BN,KN95LC,EME,,,,144: FT736 16x17el 1KW,04/05 +RN6DJ,KN96VC,EME,,RV6AHY,,TS-780 11 EL. 3 WL. 100 W.,01/09 +RN6HW,LN05XB,,,,,144: 1KW 13el Yagi,08/07 +RN6MT,KN97LN,EME,,EX RA6LDY,,144: 2.3KW 4xYagis,05/07 +RP3POT,KO93CD,,,,,,05/05 +RP6A,KN95LC,EME,,SpecialCall,,144: FT736 32x15el vertical & 32x15el horizontal 1KW,05/06 +RP9JTT,NO01,EME,,= RV9JD,,,05/06 +RU1A,KP40HK,EME,,QSL via DK3WG,,144: 6x16el 1KW,01/05 +RU1AA,KP40XD,EME,,QSL via DK3WG,,144: >2KW GU93b 4x15el Crossyagi,07/04 +RU1AC,KP50EJ,,,,,,07/04 +RU1AS,KO59,,,,,,05/03 +RU1R,KO82BW,,,Expedition,,,01/93 +RU1U,KO72XW,,,Expedition,,,01/93 +RU2FM,KO04GQ,,,UB5KCW RA1ACW RV1AB RV1AB/MM R750M UE3QRP/2,,home made transverter+ h.m. HF rig TS790,09/08 +RU3ACE,KO85SM,EME,,,,144: 2x 18el Xpole 300W,09/06 +RU3EC,KO82TK,,,EX UA3EEN,,144: IC746 15el 9BV,09/07 +RU3GX,KO92SO,EME,,QSL VIA DIRECT,,144: more than 1KW Gs35b 4x17el Crossyagi GAS-2020,11/07 +RU3ZD,KO81VG,,,ex UW3ZD,,144: 16el 200W,01/96 +RU4HU,LO43OM,,,,,144: FT290R 2x10el 50W,04/04 +RV1AO,KP50,,,,,,08/04 +RV3AO,KO85RR,,,ex RA3AIS,,144: 4x12el 1500W,07/03 +RV3APM,KO85RU,,,,,IC910H,03/04 +RV3IG,KO87OT,EME,,QSL via DK3WG,,144: 500W 4x15el,11/05 +RV3QX,LO00BK,,,,,,08/08 +RV3YM,KO63QQ,,,ex UA3YOZ,,FT 897 144: 5.5wl gs15 bf998 432: 11wl gs15 bf998,05/05 +RV3ZR,KO80CL,,,,,144: 500W YU0B KT939A,11/03 +RV4AQ,LN28GM,EME,,not active,,432: 4x4.2ld BV 2xGI7B 500W,10/99 +RV6YY,LN04AO,,,,,,05/08 +RV9AX,LO93LK,,,,,144: 600W 17el preamp - 50: 100W- 6el,10/96 +RV9JD,MP80GW,EME,,,,144: 4x 16el 1500W,06/05 +RV9PP,NO15LB,,,,,144: ft-847 4x 12el klm 350watts 432: 4x 22el,03/06 +RV9UV,NO34GA,EME,,,,FT857 4x 12el 50W,10/06 +RW1AW,KP50DA,EME,,QSL VIA DK3WG,,144: FT736r 2.4KW 2x19el MGF1302 - 432: 12x15el 1.5KW,11/07 +RW1AY,KO59CU,EME,,,,144: 15el 4wl 1500W,04/06 +RW1Q,KO99WJ,,,Expedition,,,12/95 +RW1ZC,KP69NA,,,,,,08/06 +RW2F,KO04PT,,,Expedition,,,12/97 +RW3AC,KO86SH,EME,,,,144: IC910H 18el 3AQ LNA-RW3AZ and GS35-RZ3BA,05/07 +RW3AZ,KO85TT,,,,,,08/03 +RW3DMQ,KO86RI,,,,,,05/05 +RW3FH,KO86VK,,,,,,08/07 +RW3PF,KO93CD,,,QSL via DK3WG,,144: 1500W 4x10el BVO 3wl Preamp - 432: 700W 4x24el Preamp,08/05 +RW3PX,KO83RJ,EME,,,,144: 8x 16el GS35B,11/05 +RW3TJ,LO16XG,,,ex UW3TJ,,,11/03 +RW3TU,LO25BR,,,UA3TFO UW3TU,,144:100Watts 12el 4wl. MGF1302 - 432: 400Watt 2x23 ele MGF1302,06/09 +RW3WR,KO71IM,,,ex UA3XJ,,,07/04 +RW3XR,KO73FU,,,UA3XFA,,,10/07 +RW4AK,LO20RC,,,ex UW4AK,,,01/96 +RW4HM,LO43RM,EME,,,,ICOM-910H,05/05 +RW4NQ,LO58,,,,,144: 4x 9el GI7B,08/05 +RW4WE,LO66PU,,,,,,04/05 +RW9FT,LO89TD,,,ex UW9FU,,,11/04 +RW9MD,MO64RX,EME,,,,,06/01 +RW9USA,NO33NS,EME,,,,TM255A IC 821H PA 1500W ant 8/6 yagi,05/05 +RX0AZ,NO86OD,EME,,,,700W 3wl Antenna,10/07 +RX1AS,KO59FX,EME,,QSL via DK3WG,,144: 4x21el LY GS35b linear,03/06 +RX1AX,KO59EW,,,,,,12/04 +RX3AGD,KO85UR,,,UV3AGD,,FT897d 50 watt 12 ele 3WL dk7zb,09/07 +RX3DUR,KO85XM,,,ex UV3DUR,,ICOM 706MK2G + PA GI7B,08/05 +RX3PX,KO84SD,EME,,,,144: 2x11el 210W MGF1302 - 432: 2x23el 180W MGF1302,06/99 +RX3QFM,KO91FM,EME,,QSL via DK3WG,,144: 2xBVO4wl yagi 0.4 dB LNA PWR 1.5 KW (2xGS35B),07/05 +RX6AKO,KN84PV,,,ex UV6AKO,,,06/96 +RX9AT,LO93LJ,EME,,,,ts-2000x,07/07 +RX9CHW,MO09CS,EME,,,,144: 4x 8el 100W,03/06 +RX9JP,MP22RD,EME,,,,144: 4x 18el 45W,10/08 +RX9SA,LO71NS,,,,,IC910H,08/04 +RY3E,KN75,,,Expedition,,,01/93 +RY5I,KP51BM,,,Expedition,,,01/92 +RZ1AP,KO49VW,,,,,144: TR-751 300w 16el DJ9BV,05/04 +RZ1AWR,KO59DX,,,,,144: 16el DJ9BV 50Watt,08/98 +RZ1AWT,KP40XD,,,QSL via DK3WG,,144: 20W 9el,06/98 +RZ1QZZ,LO09BC,,,,,,07/04 +RZ1ZZZ,KP76EQ,,,,,,08/04 +RZ2FWA,KO04FT,,,,,,01/03 +RZ3AED,KO86RD,EME,,UW1ZA,,TS2000 144: 4x 3WL F9FT 500W 432: 4x 21el F9FT,09/07 +RZ3AF,KO85CO,,,ex UA3AFA,,144: MGF 1302 2x14 el GI-7B,12/02 +RZ3DNT,KO86LE,,,,,,08/08 +RZ3QD,KO91OO,,,,,144: 4wl 1KW LNA,08/05 +RZ3QS,KO91SS,,,,,144: 2wl 100W LNA,08/02 +RZ3ZZ,KO80GP,,,,,144: IC-910H 100W 4x 10el A144S10 - 432: 1 A430S15,04/06 +RZ4HF,LO43TJ,EME,,,,144: TS-2000 IC-970 4x15el H/V 1500W,11/07 +RZ6BU,KN84PV,,,UV6AKO RX6AKO,,FT847 144: 400W 10el DK7ZB Preamp BF998 432: 50W 14el DK7ZB,12/07 +RZ6BY,KN84PV,,,ex UV6AIL,,,06/97 +RZ6DD,LN04MX,,,RW1ZC,,IC-746,02/09 +S50C,JN76JG,,,,,50: 5el 100W - 144: IC275h 2x15el 700W,08/01 +S50L,JN75ES,,,,,,08/08 +S50TA,JN76HD,,,,,,08/08 +S51AT,JN75GW,,,ex YU3FM,,144: 1KW 16el LY,08/05 +S51BA,JN75IX,,,,,,01/03 +S51DI,JN76VL,,,,,,09/03 +S51DX,JN75CC,,,ex YU3HR,,144: IC275H 100W 2x17el F9FT,11/01 +S51S,JN75GV,,,,,,08/96 +S51SLO,JN76GB,,,,,,03/01 +S51TE,JN76BI,,,,,,11/99 +S51WV,JN76SN,,,,,,01/03 +S51WX,JN75OS,,,,,144: 2x8el dk7zb 1kW,09/08 +S51ZO,JN86DR,EME,,,,144: 1.5KW 4x14el 9BV - 432: 800W 8x33el 9BV,04/06 +S52CW,JN76CI,EME,,,,,01/01 +S52EZ,JN86DT,,,,,,08/01 +S52LM,JN65TX,EME,,EX YU3ULM YT3LM,,144: 4X17M2 5WL- FT 1000MP- JAVORNIK 144/14 dual RX - MGF1801-1500W (GS35B homemade ),05/07 +S53AC,JN76GB,,,,,IC-746 M2-8wl 600W IC-746 17el,08/03 +S53CAB,JN76JG,,,,,,08/97 +S53J,JN75EV,EME,,,,144: FT847 4x5wl GS35 MGF1801 - 432: IC820H ATF43143 GS23B 4X9WL - 1296: FT736R SP23 55el F9FT 80W,03/05 +S53RM,JN76JCB,EME,,ex YT3RM,,432: 8 x 8.5wl BV OPT X yagi YL1055 Ampl.,04/05 +S53T,JN75GV,,,,,,06/01 +S53X,JN65WS,,,,,,11/99 +S54AA,JN76EG,,,NOT ACTIVE VHF,,144: IC275H 2x4CX250b (650W) 18el DJ9BV MGF1302,01/01 +S54M,JN86CL,,,ex 9A4ZM- N1MZ,,FT847 PA,05/02 +S54O,JN75NT,EME,,EX S51MQ,,50: 50W 6el 144: TH328 KW 2x17el MGF1302 432: th328 500W 2x24el,09/07 +S54T,JN75EW,EME,,,,144: 4x 17el M2 GS35B 1KW - 432: FT847 4x 28el M2 GS23B,05/05 +S55AW,JN75DS,,,EX YT3RY,,144: FT1000MP Javornik 14/144 XVRT GS35b 2x15el,05/07 +S55M,JN65VM,,,,,,10/07 +S55OO,JN76HD,,,,,50: IC706mkIIg 100W 5el - 144: IC706mkIIg 140W 15QD,08/07 +S55Z,JN76HB,,,S57TDA,,TS9130,08/08 +S560L,JN75ES,,,SPECIALCALL,,,08/07 +S57A,JN65TW,,,,,,11/99 +S57C,JN76HD,,,,,144: 700W 17el - 432: 400W 8x21,07/96 +S57EA,JN76HE,EME,,YT3QW,,144: FT-897D 50W 4x6 loop (full ele) MGF1302,08/07 +S57JA,JN76GB,,,,,,11/99 +S57LM,JN76HD,,,,,,04/03 +S57M,JN76PO,EME,,EX S51WV,,,04/07 +S57QM,JN76,EME,,,,,01/94 +S57RA,JN75FO,EME,,,,432: 4x 8.5wl dj9bv- 0.3db preamp atf35176- gs35b 800W,08/00 +S57S,JN76JB,,,,,144: TS850SAT h.m. transv MGF1302 preamp 300W 17B2,11/00 +S57SU,JN76EF,,,EX S57MSU,,144: TM255E 30W 2x13el (2.1L) 5�El 15db,02/08 +S57TW,JN75EX,EME,,,,144: IC275H 1500W MGF1302 4x2M28XP,08/07 +S57UUU,JN76EC,,,,,,01/03 +S58J,JN76EG,,,,,50: IC756 5el,11/99 +S58M,JN76ID,,,,,,01/09 +S58P,JN76ID,,,,,,04/09 +S59A,JN76XP,,,ex YU3ZV,,,11/95 +S59AX,JN65UU,,,,,,01/93 +S59DCD,JN76NL,,,,,,01/03 +S59EA,JN75,,,,,,01/95 +S59F,JN65TX,,,ex YU3HNI-YT3ET-S59AM,,50: 350w 6el - 70: 50w 5el - 144: 500w 12el - 432: 50w 23 el,04/03 +S59MA,JN76FD,EME,,,,,02/05 +S59UN,JN76XP,,,,,,01/03 +S79HP,LI75,EME,,Expedition,,,01/06 +S9TX,JJ30,,,,,,01/03 +SA3AJG,JP93IG,EME,,,,144: 15el 100W,01/08 +SA7U,JO65ML,,,,,FT897 144: 50w 2 x 8JXX2 432: 20w 25JXX70,06/07 +SC300VL,JO68SD,,,SPECIALCALL,,,04/07 +SD5D,JO89JT,,,,,TS-790E + LA-22+15el+mastpreamp,05/08 +SF6X,JO67AJ,,,= SM6CEN,,,08/06 +SF7WT,JO65QQ,,,SpecialCall,,144: IC-7400 PA 500 W 15 EL,08/06 +SG6T,JO68SE,,,ALSO 8S6T & SM6WET,,FT650 847 920,11/08 +SK0AR,JO99BT,,,,,,01/93 +SK0CC,JO99BD,,,,,,07/02 +SK0UX,JO99BM,EME,,,,,01/05 +SK2AT,KP03BU,EME,,= 7S2AT,,TS-790E,05/07 +SK3AH,JP82XO,,,,,,10/02 +SK3JR,JP62WK,,,Expedition,,,01/92 +SK3LH,JP93IH,,,,,,01/94 +SK3MF,JP92FW,,,,,144: 6x15el 1KW,07/02 +SK3SN,JP80IO,,,,,,01/94 +SK4BZ,JP61QM,,,,,,01/94 +SK4EA,JO79CO,,,,,,01/93 +SK6HD,JO68SD,,,,,144: 150W 2x15el,05/07 +SK6YH,JO58,,,,,,08/96 +SK7AX,JO77DS,,,,,,07/01 +SK7CY,JO65RJ,,,,,144:TS850 transverter 130 1000W MGF1302,06/06 +SK7JC,JO76KF,,,,,,08/99 +SL4BP,JP70TO,EME,,SPECIALCALL FOR MILITARY,,144: 800W 4x9el MGF1601 432: 100W 2x19el MGF1302,05/08 +SL4ZYX,JP70TO,EME,,SPECIALCALL FOR MILITARY VOLUNTARAY,,144: 800W 4x9el MGF1601 432: 100W 2x19el MGF1302,05/08 +SM0EJY,JO89SC,,,,,144: 500W 10 over 10el Preamp,06/06 +SM0EPO,JO89XM,,,,,144: 50W 2x6el,12/03 +SM0EPX,JO89SJ,,,,,144:1000 Watt 4CX1500 15el X-Y MGF1802,04/04 +SM0FFS,JO99AG,,,,,,01/94 +SM0FZH,JO89TG,,,,,,01/97 +SM0GWX,JO89XG,,,,,FT-920 + FT-847,01/09 +SM0HAX,JO99,EME,,,,144: IC820 6x 12el I0JXX 2x GU74b P-hemt,08/05 +SM0IKR,JO99CC,,,,,FT847,02/05 +SM0KAK,JO89XK,,,,,50: 100W 6el - 144: 180W 17el,08/03 +SM0LQB,JO89XK,,,,,144: 15el 130W - 432: 4W 21el,04/04 +SM0MXR,JO89WE,,,,,,01/03 +SM0NKZ,JO99IQ,,,,,,03/02 +SM0OUG,JO89VG,,,,,,10/96 +SM0PYP,JO89XG,EME,,,,,01/94 +SM0TSC,JO99CF,,,,,IC-7400 IC-703,10/07 +SM1BSA,JO97DP,,,NO SKEDS !!,,144: FT736r 300W 15el,06/06 +SM1HPV,JO97HO,,,,,144: 200Watts 2x15ele,01/02 +SM1SBI,JO97FK,EME,,,,144: 2x17el 800W,09/06 +SM200PAX,KP03BU,,,SPECIAL CALL,,,06/09 +SM2A,KP04NP,EME,,SM2ILF (BOTH CALLS ARE VALID),,IC910H 144: 6x16 el I0JXX 1kw 432: 4x32 el HB 1kw,03/08 +SM2AZG,KP03,,,,,,03/02 +SM2BLY,KP05RJ,,,,,,01/93 +SM2BYA,KP07DU,EME,,,,144: FT1000 4x3.2wl CueDee 3CX1000A7 MGF1100,08/00 +SM2CEW,KP15CR,EME,,,,144: 6x19el 1KW,04/05 +SM2CKR,KP03DQ,EME,,,,1kw 8x15el,10/07 +SM2ECL,KP05RH,,,,,144: 200W 4x15el 60m asl,07/03 +SM2EKM,KP05UW,EME,,,,,04/03 +SM2GCR,JP93TK,,,,,,07/00 +SM2GGF,KP05DV,,,SilentKey,,,01/84 +SM2ILF,KP04NP,EME,,SM2A (BOTH CALLS ARE VALID),,IC910H 144: 6x16 el I0JXX 1kw 432: 4x32 el HB 1kw,03/08 +SM2IUE,JP85,,,,,,01/93 +SM2IZV,JP84,,,,,,01/93 +SM2LKW,KP15BO,,,,,,01/94 +SM2LTA,JP94CW,,,,,,04/98 +SM2ODB,KP03EU,,,not qrv MS nw! (01/01),,144: 100W 15el,03/02 +SM2VBK,KP15BO,,,,,,08/02 +SM3AKW,JP92AO,EME,,,,144: 2x17LB 1KW - 432: 16x21el 1KW - 1296 4x23elLoops/5m dish 1KW- 2320: 6m/5m dish 100W- 10G:0.65/10W,07/07 +SM3AZV,JP83,,,SilentKey,,,01/93 +SM3BEI,JP81NG,,,EX SM5BEI,,144: 500W 432: 500W 1296: 130W 2320: 120W 5G: 15W 10G: 12W,10/07 +SM3BIU,JP73ST,,,,,,01/97 +SM3BYA,JP81NX,EME,,2nd QTH SM2BYA,,432: 450W 8x21el Tonna 750W MGF1412,05/05 +SM3COL,JP82,,,,,,11/96 +SM3GHB,JP72,,,,,,01/93 +SM3GHD,JP62,,,,,,01/93 +SM3IEK,JP73IT,,,,,144: 100Watt 15el,03/06 +SM3JBO,JP93IH,,,,,144: 2x 10el 200W,08/05 +SM3JGG,JP71WJ,,,,,,07/02 +SM3JGG,JP71TJ,,,,,FT-847 250watt 15el,07/07 +SM3JLA,JP93LH,,,,,144: 250W 15el,06/99 +SM3JQU,JP82QM,EME,,,,432: 4x 32el 750W 0.4db,09/05 +SM3KJO,JP92DX,,,,,,08/97 +SM3KYH,JP82NL,,,,,,04/04 +SM3LBN,JP80IO,,,,,,08/03 +SM3LGO,JP83VB,,,,,144: 1KW 80el Colinear,01/99 +SM3MXR,JP80GR,EME,,,,144: 4x17el M2 emepwr,08/01 +SM3PWM,JP81GF,EME,,,,,12/99 +SM3PXO,JP73GI,,,,,144: 400W 17el 5wl - 50: 50W 9el 2wl,04/03 +SM3RLJ,JP93OI,,,,,144: 100W 15el,07/97 +SM3RPQ,JP74BT,,,,,,08/08 +SM3RWZ,JP82MI,,,,,ICOM IC-275H 200W 9 ele,10/04 +SM3TFR,JP93IG,EME,,,,,01/94 +SM3VAC,JP83VA,,,,,144: 2x17el 1KW,08/01 +SM3VEE,JP81VI,,,,,,03/98 +SM3XGV,JP81OF,,,,,TS2000,08/04 +SM3YTF,JP81FI,,,,,,12/06 +SM4ANQ,JP70OC,,,,,,02/02 +SM4DHN,JP60VQ,EME,,,,,01/01 +SM4FXR,JO79OF,,,,,,01/05 +SM4GRP,JO69HF,,,,,IC-756PROIII DB6NT TR144H transverter + 15el @ 10m 45m ASL.,10/07 +SM4IVE,JO79SD,EME,,,,,08/00 +SM4KYN,JO79,,,,,,01/93 +SM4RPQ,JO79HH,,,,,TS2000,08/05 +SM4SJY,JP70OC,EME,,,,IC706MK2G 144: 9el 600W,09/05 +SM4VQP,JO79NB,EME,,,,144: 4x17el eme-pwr,01/02 +SM5BSZ,JO89IJ,EME,,NO SKEDS !!,,,07/99 +SM5CBN,JO78NH,,,,,,08/06 +SM5CFS,JO99IQ,EME,,,,144: 4x19el QBL5/3500 1.5KW 1296: 5.6 mtr solid 100w,09/07 +SM5CUI,JO89WW,EME,,,,144: 8x 10el 800W,07/05 +SM5DCX,JO89OI,,,,,,01/01 +SM5DIC,JO89JT,EME,,,,TS-790E+LA-22+4x15el+Mast preamp MGF1302,11/08 +SM5DRV,JO77MV,,,= SM0DRV,,144: IC-275H 100W 13el yagi,07/04 +SM5FRH,JO88BW,EME,,,,144: 32x19el horz. or 32x10el vert.,10/00 +SM5GEP,JO77IP,,,,,,01/03 +SM5HUA,JP80WA,EME,,SM3HUA,,Icom IC-910H,04/09 +SM5IOT,JO99BX,EME,,,,50: 2x 6el I0JXX - 144: 8x 8el I0JXX 2xGU74B P-hemts - 432: 8x 26 el DJ9BV opt2 GS23B P-hemts,03/06 +SM5LE,JO99BD,EME,,,,,04/06 +SM5TSP,JP90BD,EME,,,,144: 4x18el 750W,08/08 +SM6AEK,JO66,,,,,,01/93 +SM6AFH,JO66LQ,,,,,,01/94 +SM6CEN,JO67AJ,,,= SF6X,,,08/06 +SM6CKU,JO67,EME,,,,,04/05 +SM6CMU,JO57XK,,,,,IC7400 100-400W 50: 6el - 144: 9el,08/05 +SM6CWM,JO67,EME,,,,,01/94 +SM6EAN,JO57WQ,,,,,144: 600W 10el,01/01 +SM6EUP,JO57XQ,EME,,,,,01/94 +SM6FKF,JO68SA,,,,,,05/07 +SM6FUD,JO68JV,,,,,,12/04 +SM6KJX,JO67CK,,,,,FT736,07/04 +SM6MVE,JO67KW,,,,,50: 10W 3el 144: 25W 4x9el SP2 432: 75W 4x13el SP70,03/06 +SM6NET,JO68SD,,,,,144: 300Watt 2x 17el - 432: 50Watt 21el,05/09 +SM6SKH,JO66IT,,,SM7SKH,,,06/09 +SM6TZX,JO67EE,,,,,,05/02 +SM6U,JO67AT,,,SpecialCall,,144: FT290 9el 25W,05/00 +SM6UMO,JO68DH,,,,,144: TR751 170W 2x13el SP2000,01/94 +SM6USS,JO67AT,,,,,144: FT290 9el 25W,07/97 +SM6WET,JO68SE,,,ALSO 8S6T & SG6T,,FT650 847 920,11/08 +SM7AED,JO65NI,,,,,144: 50W 5el,06/07 +SM7DTT,JO65LJ,EME,,,,,05/07 +SM7EAN,JO86,,,,,,07/99 +SM7EOI,JO86FP,,,,,IC7400,01/04 +SM7FJE,JO65ML,EME,,,,4x9 el,07/08 +SM7FMX,JO65KN,,,,,,08/04 +SM7FWZ,JO78,,,,,,03/03 +SM7GVF,JO77GA,EME,,SM4GVF,,144: 8x8 el 1KW MGF1302,11/08 +SM7IWG,JO77IP,,,,,,04/04 +SM7JUQ,JO65WX,,,,,50: 100W 5el - 144: 750W 9el - 432: 50W 19el,08/04 +SM7KNK,JO75,,,,,,01/93 +SM7MRL,JO65NP,,,,,144: TS850 transverter 130 1000W MGF1302,03/03 +SM7MXO,JO77,,,,,,07/04 +SM7OYP,JO66JA,,,,,50: 100W 5el,09/01 +SM7SJR,JO87FB,,,,,,10/08 +SM7THS,JO76WR,,,,,144: 15el 170W MGF1302,11/99 +SM7TJC,JO67SH,EME,,,,144: FT-225RD 2xGi7b (800W) - 432: FT-757GX Trvt 60W,05/02 +SM7TUG,JO65OT,,,,,144: 2x4CX250b 17el MGF1302,08/98 +SM7WSJ,JO67WI,EME,,,,144: 2X16 optimized for EME 1KW - 432mhz 2X19el 2.4ghz RX on satellite,10/05 +SM7WT,JO65QQ,,,,,144: IC-7400 PA 500 W 15 EL,08/06 +SO3Z,JO82KL,,,CONTEST CALLSIGN,,2m: IC-275A - PA 150W - 2x 10el DK7ZB || 70cm: IC-275A + trv MMT432 PWR 10W 16el and 8x10el DK7ZB only contest.,06/09 +SO4DFC,KO13AX,,,Expedition,,,01/92 +SO4TEC,KO13CW,EME,,Expedition QSL via DL3BQA,,,06/02 +SO5AS,KO02JD,EME,,QSL via G4ASL or LOTW,,50: GS31b 5el 144: 150Watts 14el (no ant. elevation),04/06 +SO9AN,JO84NG,,,Expedition,,,05/00 +SO9FB,JO84NG,,,Expedition,,,05/00 +SP1JVG,JO84LL,,,= KG2IS,,,02/01 +SP1NQE,JO84LL,,,,,TS746 TS811E,04/04 +SP2CHY,JO94GO,,,ex SP4CHY,,,02/05 +SP2FAX,JO83VA,,,,,144: 2KW 6x17el,08/03 +SP2HAX,JO83,,,,,,12/5 +SP2HNF,JO94FK,,,,,,10/05 +SP2IQW,JO94GM,,,,,50: IC-746 5el - 144: IC7-46 100W 2M5WL,09/08 +SP2JAN,JO94,,,,,,09/94 +SP2JYR,JO92GP,,,,,144: 2x 14el 1KW,01/08 +SP2MKI,JO93AC,,,,,,03/02 +SP2MKO,JO93CB,,,,,icom706mkIIg tm255a,08/05 +SP2MSL,JO92NM,,,,,,01/97 +SP2NJI,JO92OS,EME,,,,50: IC736 100W 5el - 144: IC271 500 W 4x8 el - 432: IC471 150W 4x25el - 1296: HM 15W 44el - 2320: HM 1W 25el,10/08 +SP2OFW,JO93AC,EME,,,,144: 2xGS35b 2x15el,05/05 +SP2QBQ,JO94FL,,,,,,06/08 +SP2SGZ,JO82UU,,,,,,01/96 +SP3EPX,JO83ID,,,,,,11/01 +SP3FSM,JO81GU,,,,,,08/02 +SP3IYM,JO82KL,,,,,2m: IC-275A - PA 150W - 2x 10el DK7ZB Yagi - LNA || 70cm: IC-275A + trv MMT432 PWR 10W 16el and 8x10el DK7ZB only contest.,06/09 +SP3MFI,JO91,,,,,,01/93 +SP3RNW,JO81GQ,,,,,50: 100W -144: 200W 11el MGF1302 - 432: 100W MGF1302 21el,08/03 +SP3RNZ,JO92DF,EME,,,,IC746 7el TAGI,09/03 +SP3SUX,JO72OR,,,,,144: 80W 14el BF981,12/96 +SP3TYF,JO82FH,,,,,FT857D TR9000,10/08 +SP3VSC,JO92DF,,,,,144: IC746 2X13B2 PA GS35B,01/04 +SP4BY,KO13OD,,,,,,07/04 +SP4DGN,KO13OD,,,,,,01/88 +SP4JCQ,KO13NC,,,,,FT920 IC910H 144: 100W 17el,09/06 +SP4MPB,KO03HT,EME,,,,144: TS2000 GS35b ATF54143 4 x 13el 50MHz: 2 x 7el 1296MHz 100W + 200cm dish,06/09 +SP5CCC,KO02NF,,,,,,01/09 +SP5CJT,KO02OD,EME,,,,,01/94 +SP5EFO,KO02,EME,,SilentKey,,,04/97 +SP5HEJ,KO02,,,,,,01/97 +SP5KVW,KO03SB,,,Expedition,,,01/89 +SP5LJX,KO03,,,,,,08/02 +SP5QWB,KO02NF,,,,,50: 400W 7el - 144: 1KW 17el - 432: 50W 26el,05/04 +SP5XMU,KO02LG,,,,,50: 100W 6el 144: 170W 13el 432: 50W 21el,05/09 +SP6A,JO81NG,EME,,ex SP6AZT,,,11/03 +SP6ARE,JO81IL,,,,,IC202 + 4cx250 to 7 ele quad,10/07 +SP6ASD,JO81LC,,,,,,05/02 +SP6AZT,JO81NG,,,,,,01/03 +SP6CPH,JO81,,,,,,09/01 +SP6GVU,JO81LC,,,,,144: 17el F9FT 200W MGF1302,02/01 +SP6GWB,JO80HK,EME,,,,50: FT847 1 kW 9 el (2 lambda) - 144: FT847 4x16 el DJ9BV 1KW CF300,03/05 +SP6GZZ,JO80FX,,,,,,10/04 +SP6HED,JO80IK,EME,,,,144: 13el 100W,07/05 +SP6IWQ,JO80HK,,,,,TR751e FT757gxII Trnsv 100W Pas,11/04 +SP6JLW,JO80JK,EME,,,,70cm 8x32el 2xGS35 23cm 6.5m dish 16xBLV958,10/08 +SP6NVN,JO81CJ,,,,,IC-910 H,12/08 +SP6OJE,JO90CI,EME,,,,TS-711a IC-735 4x 5el,10/06 +SP6VGJ,JO81HU,EME,,,,144: 4wl Antenna 1KW,10/06 +SP7BUZ,KO00HU,,,ex SQ7IKT,,,04/04 +SP7DCS,JO91RT,EME,,,,144: FT736r DSP GS35vb 16x 8el antennas,10/06 +SP7EBM,JO91QR,,,,,,01/02 +SP7HKK,JO91QI,,,,,IC-746,12/07 +SP7JSG,KO01BW,,,,,,03/02 +SP7OGP,KO01AM,,,,,IC706MKIIG 12el 7ZB 50W,05/08 +SP7SZG,JO91RQ,,,,,144: TS700 + PA 50: TS700+Trsv 10W,12/08 +SP7VC,JO91SS,,,,,,10/04 +SP8AOV,KO11GG,,,,,144: FT480r 100W 2x10el,03/00 +SP8NCJ,KO12NA,,,,,,11/95 +SP8RHP,KO10FF,,,,,144: 200W 10el DJ9BV,02/05 +SP8SN,KO11GG,,,ex SQ8GKQ,,,07/04 +SP8UFT,KO11JI,,,,,,01/02 +SP8WJW,KN09SR,,,,,144: 50W 9el,03/06 +SP9COO,JO90GA,,,,,144: IC251 + PA 100Watt 44el YU0B MGF1302,04/04 +SP9EWO,JN99HW,,,,,,08/06 +SP9HWY,JO90NH,,,,,50: 80W 7el,10/06 +SP9KUR,KO00MA,,,Expedition,,,01/93 +SP9LCV,JO90KF,,,,,IC-756pro IC735 TRC PA GI7 home made,03/06 +SP9PRO,JN99,,,,,,03/97 +SP9PZU,JO90,,,,,,07/96 +SP9QMP,JO90FB,,,,,,08/02 +SP9TCE,JO90,,,,,,08/98 +SP9TTG,JO90NU,EME,,,,144: 4x 5el ZB 1kW,03/08 +SP9UX,KO00XA,,,,,,07/04 +SQ5GVY,KO02MQ,,,,,FT817 IC290 IC490 PA,08/08 +SQ7DQX,JO91RR,,,,,144: 13el 50W,11/04 +SQ8GUP,KN09VQ,,,,,,04/01 +SQ9PM,JN99MT,EME,,EX SQ9HYM,,FT847 50: 6el - 144: 14el - 432: 29el,05/07 +SQ9PV,JO90KF,,,,,,01/03 +SQ9QU,JO90KH,,,ex SP9MRT,,144: TM 255A 40W 15 el yagi LCF 78-50 coax line,07/05 +SQ9W,JO90NH,EME,,ex SP9EWU,,,08/06 +ST2NH,KK65GP,EME,,,,144: IC910 LNA 160W 6el,12/08 +ST2RS,KK65GN,EME,,= ZL1RS,,50: 6el 1KW 144: 4x 8el 140W,01/05 +SV0EC,KN10CJ,EME,,,,144: TS770 700W 20el Gruppe,02/99 +SV1AAF,KM17VX,EME,,,,,01/92 +SV1AWE,KM17VU,EME,,,,432: 4x 21el 1500W,09/05 +SV1BJY,KM18UA,,,,,ft897/ft290r w 4x6el.yagi,06/08 +SV1BTR,KM18NO,EME,,,,144: FT847 16x 6el X-Pol 1.5KW - 432: 8x 26el 1.5KW,04/06 +SV1EEX,KM18UA,,,,,FT897D-FT857D-FT817-IC7400,11/08 +SV1OE,KM17VX,,,,,,08/08 +SV1WE,KM18VA,,,,,144: 500W 17el,07/98 +SV2BFN,KN10LN,EME,,,,ICOM IC-910,09/08 +SV2DCD,KN00LI,,,,,,06/06 +SV2EVS,KN10KP,,,,,,04/02 +SV2JL,KN10LO,,,,,,06/04 +SV2KBS,KN20WU,EME,,SW2KBS,,ICOM IC-7000,04/08 +SV3AAF,KM17KO,EME,,,,144: 4x 8el. and 8877,05/07 +SV3KH,KM07PQ,EME,,,,144: 4x 28el Xpol KW,07/05 +SV5BY,KM46CG,,,,,,01/03 +SV5BYR,KM46CG,EME,,,,144: FT847 2x 13el 600W MGF1302,01/06 +SV6DBL,KM09KO,EME,,,,144: 4x17 el. full elevation 1300W,04/05 +SV6KRW,KM09,EME,, +SV8CS,KM07JS,EME,,= KC2INN,,50: 2x 7el 1KW - 144: IC821 TS2000 4x 16el MGF1302 1KW,04/05 +SV8KOM,KM07KS,EME,,ex SW8KOM,,144: 4x 9el 1KW,05/06 +SV9CVY,KM25KA,EME,,,,144: 4x 8el. H pol. and 2x 12el. V pol and 3cx800,05/07 +SW6IED,KM09KQ,EME,,,,Icom 910H,12/08 +SX1FRE,KM18OE,,,SPECIALCALL,,,04/08 +SX5AS,KM35JV,,,EXPEDITION,,,08/07 +T33C,RI49XC,,,,,,01/03 +T49C,EL72,,,CONTESTCALL,,50: 4el 100W - 144: 9el 120W - 432: 17el 100W,06/07 +T61AA,MM21OE,EME,,= VK1UN,,50: 600W 8el 144: 9el 1KW,04/08 +T77NM,JN63FW,,,,,,04/07 +T77WI,JN63FW,,,Expedition - QSL via DJ2QV,,144: 350W 9el 11el,06/98 +T90M,JN82TW,,,Expedition,,,08/96 +T90N,JN82TW,,,Expedition,,,08/96 +T94KU,JN94JF,,,,,144: FT480r 6el 50W,01/00 +T94ZQ,JN94FP,,,,,,07/99 +T98CHR,JN84AX,EME,,Expedition,,,04/99 +T98LWT,JN84AX,EME,,Expedition,,,04/99 +T9SO,JN94IM,,,SpecialCall,,144: FT480r 8el 150W,08/98 +TA1D,KN41LB,,,,,144: 150W 2x 9el,10/05 +TA2ZAF,KM69KV,,,ex TA2/OK1MU,,144: 700W 11el,09/06 +TF3EJ,HP84,,,,,,10/95 +TF8ITT,HP94CD,,,,,144: 1KW ERP,08/02 +TG9AKH,EK44RP,,,,,TX YAESU FT-857 RX ICOM 756PROII,10/06 +TI9K,EJ65LM,EME,,EXPEDITION,,50: 100W vertical 144: 10el 350W 432: 27el 120W,01/08 +TK1DX,JN42RM,,,,,144: 8el 200W,01/99 +TK5EP,JN41IW,,,,,144: 400W 9el or 16el 900m.asl.,11/01 +TK5JJ,JN41IW,EME,,EX FC6ABP,,144: 700W 3cx 800 a7 2x 12el M2 LNA PA3BIY,05/07 +TM0EME,IN88QM,EME,,Expedition QSL via ON4DPX,,144: 2x 10el 200W,08/05 +TM1E,JN32CX,,,EXPEDITION,,,12/07 +TM6OLW,JN37,,,SpecialCall,,,01/05 +TN5SN,JI75PR,EME,,QSL VIA IZ1BZV,,,10/08 +TO4E,LG07EQ,,,,,,01/03 +TS7N,JM54NQ,,,Expedition,,144: IC275 HLV600 2x7el FX213,11/00 +TV6YGS,IN86,,,Expedition,,,01/87 +TZ5A,IK62,EME,,Expedition,,,09/06 +UA0COO,PN78MK,EME,,,,144: 4x 9el QRO,11/08 +UA0FMU,QN16IW,EME,,,,144: 4x 15el Xpol 1KW,04/06 +UA0SNV,OO17IW,EME,,,,432: 21el 50W,10/05 +UA1AFA,KO59EV,,,,,,08/02 +UA1ALD,KO49KO,,,,,144: 11el 100W,07/06 +UA1ARX,KO48VR,,,Expedition,,,08/04 +UA1C,KO58BR,,,Expedition,,,01/93 +UA1CEA,KO69,,,,,,04/99 +UA1CFM,KO69AK,,,,,,10/07 +UA1MC,KO59DW,,,,,,08/04 +UA1NAN,KP71ES,,,,,IC260,01/03 +UA1OLJ,LP03DC,EME,,,,144: 150W 9el,12/99 +UA1QV,LO08IW,,,,,144: 300W,06/99 +UA1TDZ,KO58UN,EME,,,,144: Kenwood ts2000 100w 10el / ic706mkIIg diamond x510n,08/07 +UA1UM,KO68WJ,,,,,,01/88 +UA1WER,KO47EU,,,,,144: 50W 4x17el QSL via DL9USA,01/02 +UA1ZCG,KP59JK,,,,,,01/03 +UA1ZCL,KP78TX,EME,,not qrv MS nw,,,01/92 +UA2FF,KO04,,,,,,12/04 +UA2FL,KO04FQ,,,,,,06/97 +UA3AGU,KO86OB,,,,,4el Quad,10/07 +UA3AKJ,KO95AO,EME,,,,,08/06 +UA3AOG,KO85SQ,,,,,144: IC706 100W 11el,07/00 +UA3ARC,KO85SO,,,,,144 :IC-275H GS-35B MGF1302 2M18XXX,07/04 +UA3DHC,KO96CB,,,,,,04/04 +UA3DJG,KO95CN,,,,,144: 11el 800W,07/03 +UA3GA,KO92GO,,,,,,11/04 +UA3IAG,KO77FN,,,,,,07/05 +UA3IDQ,KO66JF,,,,,,06/00 +UA3MAS,KO97ST,,,,,,01/94 +UA3MBJ,KO88SA,EME,,QSL via DK3WG,,,12/06 +UA3ME,KO97TS,,,ex UA3MEE,,,07/05 +UA3MHJ,KO87SR,,,,,,01/03 +UA3OG,LO07KS,,,,,,01/92 +UA3PBR,KO93BD,,,,,,01/86 +UA3PBT,KO84UF,,,,,,01/82 +UA3PC,KO84TF,,,,,144: 13el 1KW,08/05 +UA3PI,KO94DA,,,,,,08/08 +UA3PTW,KO93BS,EME,,,,144: 16el DJ9BV 1KW - 432: 8 yagis 200W,04/01 +UA3QHS,KO91QR,,,,,,01/81 +UA3QPA,KO91OO,,,,,,08/06 +UA3QR,KO92KA,,,,,,01/92 +UA3RAW,LO02RR,EME,,,,FT-857D,06/09 +UA3RBO,LO03NG,,,,,,11/03 +UA3RFS,LO02SW,,,,,,01/80 +UA3T,LO16GM,,,,,,07/03 +UA3TCF,LO26IU,EME,,QSL via DK3WG,,144: 300W,03/06 +UA3TDB,LO16,,,,,,01/79 +UA3TIE,LO16,,,,,,01/97 +UA3UBD,LO06GU,,,,,,01/80 +UA3UES,LO07MF,,,,,,01/92 +UA3WM,KO72QI,,,,,,07/04 +UA3WU,KO81BQ,,,,,,11705 +UA3XEH,KO73FU,,,,,,08/98 +UA3XFA,KO73DU,,,,,,01/96 +UA3YCC,KO73EG,,,,,,09/07 +UA3YCV,KO62CS,,,,,50W X-Yagi,08/08 +UA3ZAT,KO80,,,,,,01/91 +UA4AAV,LO21FC,EME,,QSL via DK3WG,,,04/99 +UA4ALU,LN29LA,EME,,,,,01/92 +UA4API,LO20QC,EME,,QSL via DK3WG,,,12/99 +UA4AQL,LO20QB,EME,,QSL via DK3WG,,144: 4x13el DJ9BV Preamp 0.8db 1.2kW(EME) 700W(MS),04/05 +UA4CC,LO21XN,EME,,,,,05/05 +UA4CDT,LO41AX,,,,,,01/83 +UA4FRL,LO23AE,,,,,,10/06 +UA4HAK,LO43NM,EME,,,,144: 4x 8el 800W,11/05 +UA4LCF,LO44EH,EME,,,,144-2x4wl 200w 432-2x11wl 200w IC-706mkiig lna,03/08 +UA4NM,LO48UP,,,,,,03/04 +UA4NX,LO48SO,EME,,UA4NDV,,144: 300Watt 14el DJ9BV IC-910H,01/08 +UA4PCY,LO45NU,EME,,,,144: 4wl Antenna 700W,11/06 +UA4SF,LO36WP,,,,,,01/86 +UA4UK,LO14MA,,,,,,11/03 +UA6LGH,KN97LF,EME,,,,,07/96 +UA9CGP,MO06RT,,,,,,01/03 +UA9CS,MO06GU,EME,,,,,10/06 +UA9FAD,LO88DA,EME,,QSL VIA DK3WG,,144: 1KW 4x16el - 432: 1KW 8x15el,10/07 +UA9FD,LO87DX,,,,,,05/05 +UA9FU,LO87DX,,,,,,08/06 +UA9HK,MO99DF,EME,,,,144: 4x 9el 600W,06/05 +UA9SL,LO71NS,EME,,,,144: 4x 17el 800W,09/06 +UA9UIZ,NO46EC,EME,,,,144: 13el 100W,10/07 +UA9XQ,LP63UM,,,,,,01/97 +UA9YLU,MO92HX,EME,,QSL VIA DK3WG,,,02/08 +UB0QF,KN77NU,,,,,,01/88 +UB2GA,KN77AB,,,,,,01/90 +UE1NLO,KP51IQ,,,Expedition,,,07/06 +UE1TWO,KO67PW,,,Expedition,,,07/04 +UE3RST,LO03,,,SPECIALCALL,,,08/08 +UN6PD,MN69JM,EME,,,,14el 1KW,12/07 +UN7LU,MO13TD,,,,,,01/03 +UN7PV,MN69MV,,,,,144: 80W 10db Antenna,12/06 +UN7TQ,MN52VV,EME,,,,,09/98 +UN8AG,LN53PH,,,ex UL7AAX,,,07/96 +UN8BA,MO51RD,EME,,,,,01/92 +UN9L,MO13tf,EME,, +UP7QP,MN83FD,,,,,,10/08 +UR3CTB,KN59RS,,,,,IC-820H 40W dk7zb 10 el LNA Gafest,09/07 +UR3EE,KN88DC,EME,,,,,11/02 +UR3EP,KN78WR,,,ex RB4EE,,,01/96 +UR3UW,KO50LI,,,,,,08/08 +UR4EWF,KN67OW,,,,,,07/03 +UR4LL,KO70XG,,,,,,10/00 +UR5BAE,KN29SM,,,ex UB5BAE,,,07/01 +UR5LLW,KN89EQ,,,,,,06/03 +UR5LX,KO70WK,EME,,QSL via DK3WG,,144: 4x12el ve7bqh 800W 13el BF981,12/06 +UR5M,KN99FD,,,Expedition,,,01/94 +UR5MID,KN98OO,EME,,,,144: 4x 12el,09/06 +UR5NOY,KN48KV,,,,,,07/05 +UR5RCP,KO51OM,,,,,,01/92 +UR5WET,KN19RG,,,,,144: FT817nd -100W -9el,06/08 +UR5ZPV,KN56SN,,,,,10ele 500W,08/08 +UR7GN,KN66HP,,,,,,06/96 +UR8IDX,KN87TC,,,,,,07/04 +US0WA,KN29XT,,,,,,07/95 +US1VQ,KN58XA,,,,,,08/95 +US5CCO,KN59XG,,,ex RB5CCO,,,05/02 +US5II,KN88WA,,,,,FT847,07/05 +US5LKW,KN89KL,,,,,,08/08 +US5WU,KO20DI,,,,,,06/02 +US8ICM,KN87UB,,,,,,08/08 +US8IGT,KN87SC,EME,,,,144: 4x 7el 400W,08/06 +US8IPB,KN87SD,EME,,,,,08/08 +UT1E,KN57XX,EME,,,,,08/03 +UT1EA,KN68RA,EME,,ex UT1E UB4EWA,,,08/03 +UT1EWA,KN68RA,,,,,,01/03 +UT1PA,KO21FC,EME,,,,,06/98 +UT1Q,KN77,,,Expedition,,,08/95 +UT2CO,KN58CR,,,,,,01/92 +UT2HN,KN79OI,,,ex UR5HAX,,144: 100W 16el,11/03 +UT2UB,KO40UO,,,,,,08/08 +UT2XQ,KO40IG,EME,,,,IC910H 4x 12EL 1.5KW,10/07 +UT3BW,KN29UA,,,ex UB5BDC,,,05/99 +UT3LL,KO80AC,EME,,,,432: 6x 27el 500W,09/05 +UT4EQ,KN78MK,EME,,,,,06/98 +UT4NJ,KN48KQ,,,,,FT-897D,02/09 +UT4NZ,KN49FF,,,,,,01/09 +UT5AO,KO61XQ,EME,,,,,01/94 +UT5BN,KO40,,,,,,01/81 +UT5CO,KN58CQ,,,,,,01/95 +UT5DL,KN18EP,EME,,,,,07/02 +UT5EC,KN78MN,EME,,,,,11/99 +UT5EG,KN78GJ,EME,,,,,01/94 +UT5ER,KN78ER,EME,,UR5EF UB5EFS,,144: 4x4.4L DJ9BV 1KW MGF1302,09/07 +UT5GU,KN68,,,,,,01/94 +UT5JAX,KN64RQ,,,,,,01/94 +UT5JCW,KN64SN,EME,,,,TS-2000X 17b2 M2-9WL 3.7m Dish,04/08 +UT5ST,KN28IW,,,ex UR5SKB,,FT847,05/05 +UT5UBB,KO50,,,,,,01/04 +UT5UCP,KO50DG,,,,,,07/01 +UT5VD,KN68MT,,,ex UB5VEP,,,10/04 +UT6UG,KO50EI,,,,,Icom 910h 144: 4x7el DK7ZB 432: 4x13el DK7ZB,11/05 +UT7GA,KN66HP,,,ex RB5GU,,144: 1KW 16el F9FT,09/99 +UT7VF,KN68MQ,EME,,SilentKey,,,06/96 +UT8AL,KO61WP,EME,,ex RB5AL - QSL via DJ9YE,,,08/99 +UU1AA,KN74BV,,,,,,08/04 +UU1DX,KN74BW,,,,,144: 500W,07/05 +UU5JJ,KN74AV,,,,,,01/03 +UW9AH,LO93KK,,,,,,01/92 +UX0FF,KN45NI,,,,,,07/04 +UX1AS,KO59FX,,,,,,01/03 +UX3LV,KO80EA,EME,,,,,08/05 +UX5UL,KO50FL,EME,,,,144: IC910H 900W 432: IC910 75W,11/07 +UY0LL,KN89CX,EME,,UB5LMJ,,IC-910H GS35,08/07 +UY0UP,KO50FJ,,,,,,10/06 +UY5HF,KN66HP,,,= UT7GA,,,06/96 +UY5OE,KO80AB,,,,,,01/94 +UZ1OVW,KP94VN,,,,,,01/92 +UZ2HZ,KN69RA,,,,,,08/08 +UZ3DD,KO86JH,EME,,SilentKey,,,01/93 +V47YC,FK87,EME,,Expedition,,,07/96 +V5/KT6Q,JG73NI,EME,,EXPEDITION,,,01/09 +VA2CST,FN35BP,,,,,,01/03 +VA2MGL,FN74UQ,,,,,50: 25W 3el,11/01 +VA2PRC,FN46,,,,,50: deltaloop 144: IC706 13el,01/98 +VA3LK,FN14TO,,,,,,01/03 +VA3NFA,FN25BH,,,,,,12/06 +VA3TO,FN03BI,EME,,,,144: 2x 12el 300W,04/06 +VA3VFO,FN04FC,EME,,,,,09/07 +VA5VHF,DO70FJ,,,,,,01/03 +VA6DX,DO33IM,,,ex VE6MK,,144: 1KW 4x 2M9,01/01 +VA6SZ,DO33AP,EME,,EX VE6AQE,,IC910 IC756proII,10/07 +VA7MM,CN89OG,EME,,,,1296: 3m dish 400W 0.4db Rxampl,09/06 +VE1ALQ,FN65VH,EME,,,,,10/02 +VE1GRT,FN84IQ,,,,,,01/03 +VE1JF,FN74cq,EME,, +VE1KG,FN84CM,EME,,ex VE4XP FP4RS F8PZ,,144: 4x17el M2 50W,10/06 +VE1MQ,FN65,,,,,,01/03 +VE1RG,FN65PT,EME,,,,144: 170W longyagi,04/05 +VE1SKY,FN74,,,,,50: FT620B 3el,01/01 +VE1TAY,FN66,,,,,,01/01 +VE1XYL,FN65VH,,,,,,01/03 +VE1ZJ,FN96UC,EME,,,,144: 1.8KW 6x18el,12/01 +VE2BKL,FN48DJ,,,,,50: 1000W 6el - 144: 150W 19el,04/02 +VE2CST,FN35BP,,,,,,01/03 +VE2DIV,FN35BP,,,,,,01/03 +VE2DSB,FN35hs,EME,, +VE2JWH,FN35LM,EME,,,,144: 4 x 18el K1FO 1.5kw,09/07 +VE2PEP,FN46HC,,,,,KENWOOD,09/07 +VE2PIJ,FN36KA,EME,,,,50: 6el 200W 144: 4 x 18el. K1FO 1.5kw 432: 24el 25W,06/09 +VE2PIJ/P,FN35QI,EME,,,,50: 6el 200W 144: 4 x 18el. K1FO 1.5kw 432: 24el 25W,06/09 +VE2UG,FN35,,,,,,01/03 +VE2WHZ,FN08WN,,,,,,01/03 +VE2YAG,FN19ES,,,,,,01/03 +VE2ZAK,FN25BK,EME,,,,4 x 13 el. and 100W,10/08 +VE3AX,FN02CW,,,ex VE3VD,,1.5KW 50-432 multiple Yagi arays,01/02 +VE3BDR,EN98,,,,,,01/03 +VE3BFM,FN04AE,,,,,,01/03 +VE3CF,FN03,,,,,,01/03 +VE3CVG,FN25HM,,,,,,01/03 +VE3DBP,EN94EE,,,,,,01/03 +VE3DEW,FN04,EME,,,,,01/03 +VE3DIR,FN03,,,,,,01/03 +VE3DSS,FN03FQ,EME,,= VE3KU,,,07/06 +VE3DXP,EN92JW,EME,,,,144: 100W 2x 10el,04/06 +VE3FAC,FN03IS,EME,,,,,01/03 +VE3FAL,EN58DF,EME,,,,,03/05 +VE3FGU,FN04GG,EME,,,,50: 1000KW - 144: 600W 19el,10/06 +VE3FOD,EN76,,,,,,01/03 +VE3JJX,EN29SS,,,,,,01/03 +VE3KH,FN03AJ,EME,,EX VE3KDH,,FLEX-5000A & M2 6M5X,06/09 +VE3KRP,EN58IJ,EME,,,,,04/07 +VE3KU,FN03FQ,EME,,= VE3DSS,,,07/06 +VE3NE,FN03FQ,,,,,,01/03 +VE3OQC,FN03,,,,,,01/03 +VE3SCP,EN93WV,,,,,,01/03 +VE3SPW,FN04GG,EME,,,,144: 100W 17el,04/05 +VE3STZ,EN82,,,,,,01/03 +VE3WMD,EN92JN,,,,,,01/03 +VE4AAZ,EN19,,,,,,01/03 +VE4ACX,EN19,,,,,,01/03 +VE4AJB,EO00,,,,,,01/03 +VE4AP,EN19,,,,,,01/03 +VE4AQ,EN19OR,,,,,144: 1KW 4218XL,01/01 +VE4CCW,EN19,,,,,,01/03 +VE4CT,EN19OW,,,,,,01/03 +VE4DK,EN19,,,,,,01/03 +VE4FV,EN19,,,,,,01/03 +VE4GHR,EN19,,,,,,01/03 +VE4GLS,EN19,,,,,,01/03 +VE4HAY,EN19,,,,,,01/03 +VE4JX,EO00,,,,,,01/03 +VE4KQ,EN19,,,,,,01/03 +VE4KU,EN19,,,,,,01/03 +VE4LAR,EN19,,,,,,01/03 +VE4MA,EN19LU,EME,,,,,01/03 +VE4MBQ,EN19,,,,,,01/03 +VE4MHZ,EN19,,,,,,01/03 +VE4MX,EN19,,,,,,01/03 +VE4OV,EN19,,,,,,01/03 +VE4PQ,EN19,,,,,,01/03 +VE4RCJ,EN19,,,,,,01/03 +VE4RE,EN19,,,,,,01/03 +VE4TOM,EN-19,,,,,,01/03 +VE4TV,EN19CX,,,,,,01/03 +VE4UD,EN19,,,,,,01/03 +VE4ZI,EN19,,,,,,01/03 +VE4ZK,EN19,,,,,,01/03 +VE4ZV,EO10IH,,,,,,01/03 +VE5UF,DO61OV,EME,,,,50: 600W 5EL yagi 144: 325W 4 x 2M12,10/08 +VE6AFO,DO21,EME,,,,,01/03 +VE6AT,DO33GS,EME,,,,432: 5.5m dish GS23b,03/06 +VE6BPR,DO32BG,,,,,50: 150W 5el - 144: 250W 16el crossyagi,01/01 +VE6CPP,DN39ER,EME,,,,144: 2x 13el 170W,02/08 +VE6EGN,DO23QE,EME,,,,144: 22el Xpol 150W,06/05 +VE6LR,DO21,,,,,,01/03 +VE6NA,DO20,EME,,,,,01/03 +VE6NTT,DO31,,,,,144: 170W 17el,01/98 +VE6PY,DO20WW,,,,,,01/03 +VE6TA,DO33GS,EME,,,,432: 5m dish 800W,02/05 +VE6XT,DO,,,,,,01/03 +VE7BBG,CN88DT,EME,,,,,04/05 +VE7BEE,DN09HG,,,,,,01/03 +VE7BQH,CN89KI,EME,,,,384el Collininar,10/05 +VE7CFT,CN79ST,,,,,,01/03 +VE7CLD,CN89LD,EME,,,,,01/03 +VE7DUB,CO88RT,EME,,,,,09/06 +VE7DXG,CN88DT,EME,,ex VE3GBA/7,,50: 150W 5el - 144: 150W 15el,02/05 +VE7FYC,CN89,,,,,,01/03 +VE7IRA,CN89MF,EME,,,,144: 13el 200W,10/08 +VE7KPB,DN29CM,,,,,144: 1KW 5wl M2,06/01 +VE7LGF,CO90TQ,EME,,VE5AGJ,,FT100D 144: 17B2 500W,11/06 +VE7MDL,CN89,,,,,,01/98 +VE7RJ,DN09LL,,,,,,01/03 +VE7SKA,CN88GT,,,,,,01/01 +VE7TIL,CN89LG,,,,,144 : 4x 7el 500W,11/06 +VE7US,CN88IG,,,,,,01/03 +VE7VVW,DO00IF,,,,,144: 160W KLM2m22c - 432: 100W MBM88,01/02 +VE7ZD,CN89LG,,,,,,01/03 +VE9AA,FN66NA,,,,,,06/06 +VE9DX,FN75aj,,, +VE9PA,FN65SU,,,,,,01/03 +VK0MT,QD95KM,EME,,,,,03/05 +VK1VP,QF44NR,EME,,,,,03/05 +VK1WJ,QF44MS,,,EX DK3SA,,TS 50S IC 706 MK2 IC 490A 80W 2m PAm 50W 70cm PA,05/07 +VK2ALU,QF55KN,EME,,,,,01/03 +VK2AWD,QF56NG,EME,,,,144: 2x 13el 2.2ld 300W,10/06 +VK2CZ,QF56NH,,,,,,01/03 +VK2DJG,QF59VK,,,,,,01/04 +VK2FLR,QF56OD,,,,,,01/03 +VK2IT,QF56OH,EME,,,,144: FT-847 350W 1x 8el 12el coming soon,04/06 +VK2JKK,QF69LO,,,,,,01/03 +VK2KRR,QF34MR,EME,,,,144: 400W 4x 17el,07/06 +VK2KU,QF55AI,EME,,,,144: 600W 4x 12el horz,10/08 +VK2SN,QF56OC,EME,,,,432: 4x 28el legal pwr,12/05 +VK2XCI,QF27WD,,,,,,01/03 +VK2XDE,QF56MG,EME,,,,,04/05 +VK2ZT,QF57WF,EME,,,,,12/07 +VK2ZZF,QF43JP,EME,,,,144: 8 over 8 100W,10/06 +VK3AMZ,QF22IC,EME,,,,,01/93 +VK3AXH,QF12WI,EME,,,,144: 4x 18el 400W,08/06 +VK3CY,QF13,EME,,,,,04/00 +VK3DDU,QF22LG,EME,,,,144: 2x 10el 200W,02/09 +VK3HY,QF22PD,,,,,,01/03 +VK3HZ,QF22ME,EME,,,,,09/05 +VK3II,QF21RN,EME,,,,144: 14el 300W,12/06 +VK3OT,QF12AG,EME,,,,,01/94 +VK3VHF,QF32SE,EME,,,,IC910 GPS Locked 3WL Horz Antenna,07/08 +VK3ZYC,QF31NT,EME,,,,144: 2x 10el 4wl Yagis 300W,03/05 +VK4/DL2NUD/QG47,QG47WE,EME,,EXPEDITION,,144: 18el 1500W Preamp,02/09 +VK4/DL2NUD/QG49,QG49JR,EME,,EXPEDITION,,144: 18el 1500W Preamp,02/09 +VK4/DL2NUD/QG53,QG53WL,EME,,EXPEDITION,,144: 18el 1500W Preamp,02/09 +VK4/DL2NUD/QG55,QG55WU,EME,,EXPEDITION,,144: 18el 1500W Preamp,02/09 +VK4/DL2NUD/QG56,QG56IV,EME,,EXPEDITION,,144: 18el 1500W Preamp,02/09 +VK4/DL2NUD/QG64,QG64NC,EME,,EXPEDITION,,144: 18el 1500W Preamp,02/09 +VK4/DL2NUD/QG65,QG65FE,EME,,EXPEDITION,,144: 18el 1500W Preamp,02/09 +VK4ABW,QH30GT,EME,,,,144: 4x 17el 300W,10/06 +VK4ADC,QG62MJ,,,,,50 and 144: Icom IC-7400 100w PEP,01/08 +VK4AFL,QG62OG,EME,,,,432: 16x 15el 100W,10/06 +VK4APG,QG62LP,EME,,,,,01/94 +VK4CDI,QG52XH,EME,,,,144: 300W 4 x 12El Yagi - 432: 450W 4 x 22El Yagi,02/08 +VK4EME,QG63KQ,EME,,VK4KAZ,,TS2000,09/07 +VK4JMC,QG62FI,EME,,,,4x 14el 200W,08/08 +VK4JSR,QG62NM,,,,,50: 100W 8el - 144: 400W 12el - 432: 100W 28el,10/00 +VK4KAZ,QG63KQ,EME,,,,,01/03 +VK4KDD,QG62LP,EME,,,,,10/06 +VK4KZR,QG62LO,EME,,,,,08/00 +VK4WS,QG62OK,EME,,,,144: 12el QRP,12/06 +VK5DK,QF02JE,,,,,,01/03 +VK5MC,QF02EJ,EME,,,,,01/03 +VK5OA,QF02JE,,,,,,01/03 +VK5ZLX,PF95MK,EME,,,,,04/07 +VK5ZLX,PF95MK,EME,,,,,04/07 +VK6KDD,OG99HP,EME,,ex VK4KDD PE1OZH,,LT2S LT6S TS850,03/06 +VK6KXW,OF87JR,,,VK6ZDY,,,05/07 +VK7JG,QE38NN,EME,,,,144: 2x 12el 500W,07/06 +VK7MO,QE37PC,EME,,,,144: 4x 10el,03/05 +VK8MS,PH57PK,EME,,EXPEDITION,,,10/08 +VK9CD,NH87JU,,,,,,01/03 +VK9CMO,NH87KT,EME,,Expedititon,,144: 230W 1Yagi 6wl,08/05 +VK9XMO,OH29UN,EME,,Expedititon,,144: 230W 1Yagi 6wl,09/05 +VK9XW,OH29TI,,,,,,01/03 +VP2EC,FK88LD,,,,,,01/03 +VP2EDS,FK88,EME,,= KJ9I,,,05/07 +VP2MIS,FK86UV,EME,,,,,11/00 +VP2MR,FK86VS,,,,,,01/03 +VP5JM,FL31VS,,,,,,01/03 +VP8NO,GD18BH,EME,,EX G3VUI,,50: 5el Acom 1000 Ampl.,03/08 +VQ9LA,MI62,EME,,,,,09/02 +VR2KW,OL72LL,EME,,,,,06/07 +VS6BI,OL72CG,,,,,,01/03 +VT3AT,RJ38UR,,,,,,01/03 +VU2BMS,MK80EA,EME,,,,FT 857,02/08 +VU2KGB,MK80EA,EME,,,,144: 2x 5el 160W,02/09 +VU7RG,MK61JG,EME,,Expedition,,144: 1KW 28XPol Preamp,01/07 +W0AH,EM85WB,EME,,ex W2CRS,,144: 18el 700W,08/06 +W0AUS,EN35KA,,,,,,01/03 +W0BJ,DN91OD,,,,,,01/03 +W0DB,EN11VD,,,,,144: 50W 2x 8el,09/01 +W0DEN,EN41,,,,,,01/03 +W0DFK,EM47LX,,,,,,01/03 +W0DJM,EN25XK,,,,,,01/03 +W0DQY,EM48RS,,,,,144: 350W 4x8el - 432: 175W 2x88el - 1296: 10W 45el,01/01 +W0EKZ,EM17,,,,,,01/03 +W0ETT,DM79,,,,,,01/03 +W0FMS,EN42EB,,,,,,01/03 +W0FY,EM48,,,,,,01/03 +W0GAJ,EN11,,,,,,01/03 +W0GC,EN14SQ,,,,,,01/03 +W0GHZ,EN34LX,EME,,WA0BWE,,FT-736r TS-440 TS-930 TS-700SP 144: 17B2 1KW Xverters on 902Mhz - 10Ghz,12/07 +W0GN,EN42,,,,,,01/03 +W0GR,EM38AX,,,,,,01/03 +W0HHE,DM79,EME,,,,,01/03 +W0HL,EM27,,,,,,01/03 +W0HP,EN34IT,EME,,,,,11/06 +W0HRG,EM39,,,,,,01/03 +W0IC,DM79MR,,,,,,01/03 +W0IOH,DM78OU,,,not qrv MS nw! (02/01),,,01/01 +W0IPL,DN62UU,EME,,,,,01/04 +W0ITB,DM79,,,,,,01/03 +W0IZ,EN41,,,,,,01/03 +W0JRP,EM27RB,,,,,,01/03 +W0KFG,DN96OT,,,,,,09/01 +W0KJY,DN71,EME,,,,,09/01 +W0KRX,EN34LM,,,,,,01/03 +W0KT,EN21,,, +W0LD,DM78,,,,,144: 1KW 2x16el,04/01 +W0LER,EN35IE,,,,,,01/01 +W0LGQ,EN21DJ,,,EX N0EKT,,,05/07 +W0LMD,DM79,,,,,,01/03 +W0MD,EN36,,,,,,01/03 +W0NKN,EN42,,,,,,01/03 +W0OF,EM12,,,,,,01/03 +W0OHP,EN10,,,,,,01/03 +W0OHU,EN34OA,,,,,,01/03 +W0OZI,EN35,,,,,,01/03 +W0OZL,DN60FM,,,,,,01/03 +W0PEC,EN34,,,,,,01/03 +W0PHD,EN18OE,,,,,144: 190W 16lbx,09/01 +W0PPF,EN41,,,,,,01/03 +W0PT,EM28OD,EME,,,,144: 4X 19XXX and 1.2kw,03/06 +W0PW,EM26TW,,,,,,01/03 +W0QIN,EN34,,,,,,01/03 +W0RAP,EN42EB,,,,,,01/03 +W0RGU,EN35,,,,,,01/03 +W0RKP,EN31,,,,,,01/03 +W0RRY,EM26BX,EME,,,,144: 700W 9elM2 0.6db Preamp,01/01 +W0RSJ,FN20JQ,,,,,,01/03 +W0RTZ,DM79,,,,,,01/03 +W0RWH,EM39SX,EME,,,,144: 16x19el,10/98 +W0SD,EN13GQ,EME,,,,,10/98 +W0SII,DN71,,,,,,01/03 +W0TJ,EN10,,,,,,01/03 +W0TUP,DN98IF,,,,,144: 13B2,03/06 +W0UC,EN35,,,,,,01/03 +W0UHF,EN32,,,,,,01/03 +W0UN,EL07FV,,,,,,01/03 +W0UT,EM17,,,,,,01/03 +W0VB,EN34QB,EME,,,,144: 21el 1KW,10/06 +W0VD,EM27UD,EME,,,,144: TS790A 8877 (1-5KW) 18elM2,01/01 +W0VX,EM12,,,,,,01/03 +W0WGZ,EN42,,,,,,01/03 +W0WOI,EN22TA,,,,,,01/08 +W0WTG,EM48,,,,,,01/03 +W0XG,EN34GX,EME,,,,144: 2x 14el 1KW,11/05 +W0YPT,EN43,,,,,,01/03 +W0ZJY,EM28,,,,,,01/03 +W0ZQ,EN34IU,,,,,,01/03 +W0ZZQ,EM26,,,,,,01/03 +W1CDO,CN87XF,,,,,,01/04 +W1COT,FN31ST,,,,,,01/04 +W1CQD,FN34MR,,,,,,01/04 +W1FIG,FN41GV,EME,,ex PE1FIG,,50: 1KW 2x7el - 144: 9el M2 1KW 0.8db - 222: 450W 10el - 432: 450W 18el,01/01 +W1FKF,FN42JK,EME,,WB1FKF,,Kenwood TS 2000 4x6 el 800 watts EME 2 Meter,05/07 +W1FM,FN42,,,,,,01/03 +W1GHZ,FN42,EME,,ex N1BWT,,,11/06 +W1HY,FN41HV,,,,,,01/03 +W1IPL,FN54FC,EME,,,,144: 4x 12el 200W,01/09 +W1JJ,FN41FO,EME,,,,50: 4x 9el 1500W,05/05 +W1JR,FN42HN,EME,,,,,12/00 +W1LP,FN41SR,,,,,144: 1KW 2x2M9,01/01 +W1PWW,FN53DT,EME,,,,144: 2x 18el 1500W,08/05 +W1QA,FN32,EME,,PA3GCQ ZL2GCQ WF1R,,Orion - TS2000,05/07 +W1QC,FN42HU,EME,,,,,01/03 +W1REZ,FN55,,,,,,10/00 +W1RZF,FN42FC,,,,,,01/04 +W1TE,FN42EN,,,,,50: 1KW 7el - 144: 1KW 22el - 432: 44el,08/01 +W1TMZ,FN41GO,EME,,,,144: 4x 12el 1KW,12/08 +W1UHE,FN41,,,,,,01/03 +W1VT,FN33KE,,,,,,01/03 +W1XE,DM79GW,,,,,,01/03 +W1XR,FN42HW,,,,,,01/03 +W1ZC,FN42DR,,,,,144: 1KW - 432: 36el,01/02 +W1ZX,FM18LG,,,,,,01/03 +W2AXU,FN20OG,,,,,,01/03 +W2BZY,EL98HR,,,,,50: 700W 7el - 144: 400W 2X17el - 222: 300W 23el - 432: 500W 2X38el MGF - 903: 60W 47el - 1296: 50W 55el - 2304 15W 76el - 3456 45W 116el - 10368 1W 2'Dish,04/07 +W2CNS,FN13GA,EME,,,,144: 4x 20XP 1KW,07/06 +W2CRS,DM78,,,,,,01/03 +W2DBL,FN20TK,EME,,,,144: 4x 13el 700W,10/08 +W2DRZ,FN02LA,EME,,,,,01/01 +W2ETI,FN21,EME,,,,,01/03 +W2HBA,FN31TC,,,,,,01/03 +W2MPK,FN23BA,EME,,,,,10/99 +W2PU,FN20QI,EME,,,,432: 4x15XP 750W +W2SZ,FN22,,,,,,01/03 +W2TSL,FN41AA,EME,,,,144: 4x 9el 600W,12/07 +W2UHI,EN73AH,EME,,,,,01/03 +W2VU,FN20,,,,,,01/03 +W2WD,FN20TP,EME,,,,432: 9wl 600W,09/05 +W3ARS,FK88LC,,,,,,01/03 +W3BDP,FM29,,,,,,01/03 +W3BW,FN30AS,,,,,,01/03 +W3EME,CN85BE,EME,,ex K3VGX,,144: Icom 746 MGF2430A MGF1302 4x14el X-Pole 8877,01/05 +W3HQT,FN54,,,,,,01/03 +W3IKE,FM18SW,,,,,,01/03 +W3IOA,EM00,,,,,,01/03 +W3IWI,FM19ME,,,,,,10/05 +W3KJ,FN20HG,,,,,,01/03 +W3MRG,FN10UB,,,,,,01/03 +W3RY,FN10LL,,,,,,01/03 +W3SDZ,FN11,,,,,,01/03 +W3SE,DM03WW,,,,,50: 50W 5el - 144: 150W 12el,04/02 +W3SZ,FN20AH,EME,,ex WA3JYM,,144: 1500W 2x 2MXO32 - 432: 100W 9wl. - 1296: 10W 4x22el - 2304: 10W 2x2ft dish,10/06 +W3TMZ,EL88SU,,,,,,01/03 +W3TWO,FM28CA,,,,,144: 400W M2,07/01 +W3TWX,FN33UR,EME,,,,IC275H+8877+LNA145+4x18elM2,02/08 +W3TWX,FN33UR,EME,,,,IC275H+8877+LNA145+4x18elM2,02/08 +W3UR,FM19LG,,,ex WR3E WB3JRU,,FT1000MP FT847 C3I 7el 22ft 1KW,04/05 +W3UUM,EL29PW,EME,,ex WA3UUM,,144: 24el 1000W,08/06 +W3VH,FN32HG,EME,,,,,01/03 +W3WJR,FN20LL,,,,,,01/03 +W3XO,EM00KD,,,,,,01/03 +W3XS,FN10,EME,,,,,01/00 +W3ZZ,FM19JD,,,,,50: 1-5kw 8el 144: 1-5kw 17 el - 432: 1Kw 33el,07/01 +W4ABC,EL87PT,,,,,50: 100W 7el qubical quad,01/01 +W4AD,FM18IP,EME,,ex K4HWG,,,07/01 +W4AME,EM75FG,,,,,,01/03 +W4AS,EL95to,,, +W4CHA,EL88QA,,,ex WA4CHA,,50: 150W 9el M2 - 144: 1-5KW 2M18xxx - 432: 500W 424B - 1296: 110W 45el - 2304: 5W 45el - 10G: 2W 10ft,01/01 +W4CN,EM17JP,,,,,,09/01 +W4DNR,EM64rr,,, +W4ET,EM56TP,,,,,,01/04 +W4FJ,FM17,,,,,,01/03 +W4GHW,EM81EQ,,,,,,01/04 +W4HTB,EM66,,,,,,01/03 +W4KXY,EM84,,,ex WA4KXY,,,01/01 +W4LNG,EM73VK,,,,,,01/03 +W4LSC,DM25XF,,,,,ICOM 910 w/23 cm,04/08 +W4MOP,EM78,,,,,,01/03 +W4OZK,EM73,,,,,,01/03 +W4PJV,EM65SU,,,,,,01/03 +W4PZA,EM66NC,,,,,,01/03 +W4RBO,EL99KF,,,,,,01/03 +W4RDI,EL96BQ,EME,,,,,01/03 +W4REB,EM78,,,,,,01/03 +W4RFR,EM65,,,,,,01/03 +W4SM,FM08QA,EME,,,,,01/04 +W4SW,FM18IW,EME,,,,144: 4x 10el X-Pol 1.5KW Yaesu 767 and 736 to linears through 1296 Yaesu 817 with trvt on 2304 and above,10/05 +W4TJ,FM08,EME,,,,,06/00 +W4TNV,FM05XD,,,,,,01/03 +W4UDH,EM52AG,,,,,,10/07 +W4UDQ,EM55DB,,,,,,01/03 +W4UE,EM90GC,,,,,,12/97 +W4VHF,EM95,,,,,,01/03 +W4WD,DN40AM,,,,,,01/03 +W4WDH,EM83,,,,,,01/03 +W4WHN,EL94HP,,,,,,09/01 +W4WSR,EM85CB,EME,,,,144: 4x 8el 700W,12/05 +W4WTA,EM83XJ,,,,,144: 160W 18el,11/01 +W4XP,FM18EW,EME,,,,FT-2000 FT-847 DEMI 222 DB6NT 1.2 - 10 GHz,09/07 +W4ZPG,EM73WU,,,,,,01/03 +W4ZRZ,EM63SS,,,,,,01/03 +W5AK,EL29,,,,,,01/03 +W5AL,DM95XB,,,,,50: 150W - 144: 1KW 18el M2 - 222: 130W - 432: 100W,01/01 +W5CTV,EL49WU,,,,,,01/03 +W5DBY,EM12,,,,,,01/03 +W5DID,EL29,,,,,,01/03 +W5DKE,EM12LL,,,,,,01/03 +W5DS,EM15,,,,,,01/03 +W5ETG,EM12LS,,,,,,01/03 +W5FR,EM12KX,,,,,,01/03 +W5FYZ,EM32,,,,,,01/03 +W5GDL,EM15GM,,,,,,01/03 +W5GEL,EL17,,,,,,01/03 +W5GG,EM12,,,,,,01/03 +W5GKO,EM35,,,,,,01/03 +W5GNB,DM73VB,,,,,,01/03 +W5GVE,EM01,,,,,,01/03 +W5HES,EM12HQ,,,,,,01/03 +W5HPT,EM12,,,,,,01/03 +W5HTZ,EM16,,,,,,01/03 +W5HUQ,EM35BC,,,,,,07/01 +W5ITI,EM32,,,,,,01/03 +W5IU,EM12HP,,,,,,01/03 +W5IXR,DM76,,,,,,01/03 +W5JBP,EM12,,,,,,01/03 +W5KDA,EM41HM,EME,,,,144: TS790A 4x 17el 500W,08/06 +W5KI,EM36cl,,,,,756ProII Acom 1000,08/05 +W5KLF,EM31PJ,,,,,,01/03 +W5KQJ,EM12BS,,,,,,01/03 +W5LBT,EM40KV,EME,,= WB5LBT,,,08/05 +W5LUA,EM13QC,EME,,,,,01/03 +W5LUU,EL09QO,EME,,,,144: FT736r 1.5KW 4x5wl - 432: 1.5KW 1x5wl,08/01 +W5MRF,EM12,,,,,,01/03 +W5NFC,EM10,,,,,,01/03 +W5PIC,EM16LJ,,,,,,01/03 +W5PLN,EM12,,,,,,01/03 +W5RCI,EM44UF,EME,,,,,01/97 +W5SNX,EM73WT,,,,,50: 150Watts 6M7JHV @65ft - 144MHz : 500Watts 8wl @65ft,01/02 +W5SXD,EM02XS,EME,,,,ic-756 ts2000x commander 1500 w on six,06/09 +W5TCD,EM12,,,,,,01/03 +W5TVG,EM26,,,,,,01/03 +W5UC,EM21PI,EME,,,,144:,11/05 +W5UN,EM23MG,EME,,,,144: 32x 2M5WL,04/07 +W5UPR,EL29,,,,,,01/03 +W5UWB,EL17AX,EME,,,,50: 6el 1000W 144: 21el (8wl) 1500W NO elevation 432: 23el 150W,03/07 +W5VUY,EM40,,,,,,01/03 +W5WJP,EM12HO,,,,,,01/03 +W5YUO,EM12,,,,,,01/03 +W5ZN,EM45DH,EME,,,,,12/00 +W6CAP,DM14,,,,,144: FT726r 1KW 2yagis,01/01 +W6CPL,DM04,,,,,,01/03 +W6FC,DM03,,,,,,01/03 +W6HD,CM98PF,EME,,,,,01/03 +W6IHG,FM09TB,EME,,,,144: 11el 300W,01/06 +W6IZU,CM98NO,,,,,,01/03 +W6KH,CM97,,,,,,01/03 +W6MT,CM87XH,,,,,,01/03 +W6NQ,DM13,,,,,,01/03 +W6OMF,CM98AK,,,ex WB5OMF,,144: 650W 2x17el - 222: 120W 7wl - 432: 175W 2x9el,01/01 +W6OUU,DN22SN,EME,,,,144: 700W 18el MXXX,10/08 +W6OYJ,DM12,,,,,,01/03 +W6QT,CM87,,,,,,01/03 +W6SZ,DM14ED,EME,,,,TS-850 TS-700,02/08 +W6TE,DM06CT,EME,,,,,01/03 +W6US,DM13JA,,,,,,01/03 +W6WE,CM95RD,EME,,,,,11/03 +W6YLZ,DM04RF,,,,,50: 80W 4el - 144: 150W 14el,01/01 +W6YX,CM87WJ,EME,,,,,01/04 +W7ALW,DN36AU,EME,,,,50: 8877 9el - 144: 1KW 2x 18xxx - 432: 1500W 4x13wl,06/06 +W7AMI,DN13VO,EME,,ex KJ7F,,432: 4x 28el 750W,09/05 +W7ANF,DM43AS,,,,,144: 15W Vertical,07/01 +W7AV,CN88MB,EME,,,,144: 4x 20XP 600W,07/06 +W7BBM,DM42MB,EME,,,,,01/03 +W7CE,CN87OA,EME,,,,50: IC-756 PRO III 1500W 1x7MJHV - 144: FT-736R 500W 1x18MXXX Yagi,05/08 +W7CI,DM41UN,EME,,,,,01/03 +W7CNK,EM15FI,EME,,,,144: 2x 9el 400W,10/06 +W7CQ,CN83JX,,,,,,01/03 +W7CS,DM42OO,EME,,ex WA6MGZ,,50: 1.5KW 7el - 144: 500W 4x13el - 432: 500W 2x22el - 1296: 15W,08/01 +W7DHH,DM48LL,,,,,,01/03 +W7DWW,CN87,,,,,,01/03 +W7EME,CN85BE,EME,,,,50: 2x 9el 8877 - 144: FT736r Mutek DSP Preamp GS23B 6x 7wl - 432: 8x 42el Xpol 8877,10/08 +W7EME/CN72,CN72,EME,,EXPEDITION,,,02/09 +W7EME/CN76,CN76,EME,,EXPEDITION,,,02/09 +W7EME/CN86,CN86,EME,,EXPEDITION,,,02/09 +W7EME/DN11,DN11,EME,,EXPEDITION,,,02/09 +W7EME/DN42,DN42WQ,EME,,EXPEDITION,,,03/09 +W7EME/DN53,DN53WV,EME,,EXPEDITION,,,03/09 +W7EME/EN17,EN17,EME,,EXPEDITION,,,03/09 +W7EW,CN84LV,,,ex W7AT N7AVK,,FT1000MP 144: 1-5KW,08/03 +W7FN,CN88SA,EME,,,,,11/03 +W7GJ,DN27UB,EME,,ex WA1JXN,,50: 4x 9el 1.5KW 144: 16x 17el 1.5KW MGF1402,08/05 +W7GTM,CN87VU,,,,,,01/03 +W7GZ,DM42NF,,,,,,01/03 +W7ID,DN13UN,EME,,,,,01/02 +W7IUV,DN07DG,EME,,,,144: 4x 8el 500W 432: 33el 50W,04/06 +W7IXL,DM03US,,,,,,01/03 +W7JF,DN55RS,,,,,,01/03 +W7JW,EN82HJ,,,,,,01/03 +W7KK,DM18,EME,,Expedition,,144: 2 x 18XXX at 40'/50' KW Output FT847,04/01 +W7LD,DM78OV,,,,,,01/03 +W7MEM,DN17NT,EME,,ex N7EIJ,,50: 600W 9el - 144: FT726r 2002A 800W 4x5wl - 432: 800W 4x30lbx,09/01 +W7NS,DM33WP,,,,,,01/03 +W7NTF,CN87TB,,,,,50: 160W 6el - 144: 160W 13el,01/01 +W7OJT,DM26KB,EME,,,,,10/06 +W7PW,DM09JI,,,,,,01/03 +W7QX,DM44AR,EME,,,,1296: 10 1/2Dish 75Watt,03/04 +W7SZ,CN85UO,EME,,,,432: 4x32el X-pol 1.5KW - 1296: 3m dish 500W,01/00 +W7TVF,DM26,EME,,,,,01/03 +W7UPF,DM42MF,EME,,,,,08/05 +W7VQQ,DM19,EME,,,,,01/03 +W7VX,DM03TV,,,,,,01/03 +W7XU,EN13LM,,,,,144: 1-5KW,08/03 +W7ZRC,DN13,EME,,,,,01/03 +W8ATH,EN80,EME,,,,,01/03 +W8BYA,EN70JT,EME,,,,144: 2x 17elB2 650W Preamp,02/05 +W8CM,EM13,,,,,50: IC575H 800W 7el - 144: IC275H 800W 4x9el - 432: IC475H 500W 4x18el,01/02 +W8CRZ,EN80TB,,,,,,01/04 +W8DQ,EM79NC,,,,,,01/04 +W8HOM,EN71LA,,,,,,01/03 +W8IDU,EN83,EME,,,,,01/03 +W8ISS,EN82JG,,,KD4DLA,,,10/08 +W8KSE,EM80,,,,,,01/03 +W8LON,EN73JB,EME,,,,144: 2x 17el 400W,08/05 +W8MGJ,EM79,,,,,,01/03 +W8MM,EM79SD,,,,,,01/03 +W8MQW,EN72UR,EME,,,,,01/03 +W8OUD,EM79RJ,,,,,,01/03 +W8PAT,EN81VG,EME,,,,144: 350 watts 2x12 V or H,04/05 +W8SCA,EM79UN,,,,,,01/04 +W8TAH,EN91CD,,,,,,01/03 +W8TL,FM09BM,,,,,50: FT767 1KW 11el - 144: FT736 1KW 17B2,01/01 +W8TN,EM98AL,,,,,,10/07 +W8VHF,EN64,,,,,,01/03 +W8WN,EM77BQ,EME,,,,50: 600W 4el - 144: 1.2KW 4x16el KLM - 432: 10W,04/05 +W9BLI,EN64DP,EME,,,,144: 14db up 40 200 W 432: 17db up 15 100 W,05/06 +W9BN,EM34TT,,,,,,01/03 +W9CGI,EN60WC,,,,,,01/03 +W9DWP,EN52,,,,,,01/03 +W9EQI,EM49,,,,,,01/03 +W9FF,EN40,,, +W9FX,EM57MX,,,,,144: 1KW 17el,07/01 +W9FY,EN52,,,,,,01/03 +W9FZ,EN43,,,,,,01/03 +W9GIR,EN44OG,,,,,,01/03 +W9GKA,EM58CP,,,WB9GKA,,K1FO's at 65 feet 100W on all 4 bands,05/07 +W9GM,EN43JU,,,,,50: 100W 6el - 144: 100W 13el,05/02 +W9HLY,EN70NT,,,,,,01/03 +W9IIX,EN61DR,,,,,,01/03 +W9IP,FN24KO,,,,,,01/03 +W9JMS,EM69,,,,,,01/03 +W9JN,EN54DN,EME,,,,50: 1KW 9el m29khw- 144: 1KW M218XXX,12/07 +W9KFB,EN60,,,,,,01/03 +W9KHH,EN63AH,,,,,,01/03 +W9LT,EN52XG,,,,,,01/04 +W9NHE,EN53XB,EME,,,,144: 17el M2 400W,06/06 +W9NLP,EN52WN,,,,,,01/03 +W9NTP,EM79,,,,,,01/03 +W9NWR,EN55FW,,,,,,01/04 +W9RM,EN52RB,EME,,,,,10/07 +W9RPM,EN43JT,,,,,,05/07 +W9RVG,EM57RN,EME,,,,IC746 IC910H FT736,06/07 +W9SE,EN90LM,,,,,,03/06 +W9VA,EN62,,,,,,01/03 +W9VNE,EM79,,,,,,01/03 +W9XA,EN51UT,EME,,,,144: 8x 13el 600W,10/06 +W9XT,EN53,,,,,,01/98 +W9ZIH,EN51NV,,,,,,01/03 +WA0AUQ,EN41,,,,,,01/03 +WA0BWE,EN34LX,,,,,,01/98 +WA0CQG,EN34,,,,,,01/03 +WA0DXZ,EN41,,,,,,01/97 +WA0ETH,EM38PH,,,,,,01/03 +WA0JDU,EN34,,,,,,01/03 +WA0JMP,EN34,,,,,,01/03 +WA0JYF,EN42,,,,,,01/03 +WA0KBZ,EM48HB,EME,,,,FT857D 144: 400W 17elB2,03/07 +WA0MWW,EN30VX,,,,,,01/04 +WA0NOK,EM28,,,,,,01/03 +WA0QII,CM97,,,,,,01/03 +WA0RDX,EM17,,,,,,01/03 +WA0RJT,EN41,,,,,,01/03 +WA0SJR,EM56,,,,,,01/03 +WA0TAQ,EN61QU,,,,,,01/04 +WA0VSL,DM79OB,,,,,50W,08/04 +WA0WPJ,EM29,,,,,,01/03 +WA0WQI,EM55AA,,,,,,01/03 +WA0WRI,EN10,,,,,,01/03 +WA1FVJ,FN31QS,,,,,144: 13B2 40W,08/04 +WA1HOG,FN42AS,,,,,144: 100W,01/01 +WA1JOF,FN44XV,EME,,,,,01/03 +WA1JXN,DN27UB,,,,,,01/03 +WA1MBA,FN32SL,,,,,,01/03 +WA1MEK,FN42,,,,,,01/03 +WA1MKE,EN70GH,,,,,,01/03 +WA1OFR,FN42MA,,,,,,01/01 +WA1T,FN43LK,EME,,,,144: 15el 500W,06/06 +WA1TMQ,FN31OJ,,,,,,01/03 +WA2ALV,FN33,,,,,,01/03 +WA2FGK,FN21BF,EME,,,,144: 4x 12el 1KW,12/08 +WA2FUZ,FN22XJ,,,,,,01/03 +WA2GFP,FN20,,,,,,01/03 +WA2JGY,DM79,,,,,,01/03 +WA2LSE,FN20,,,,,,01/03 +WA2LTM,FN20,,,,,,01/03 +WA2ODO,EM94NX,EME,,,,144: 4x 12el 300W,11/07 +WA2VOI,EN35JA,,,,,,01/03 +WA2YJF,FN30FR,,,,,,01/03 +WA3BZT,FM29EP,EME,,,,144: Flex-5000A GU78b 1.5KW 4x2MXP20,03/08 +WA3FFC,FN01,EME,,,,,01/03 +WA3KQA,EM98LL,,,,,,01/03 +WA3LTB,EN92TA,EME,,,,144: 100W 17el,04/07 +WA3RQD,FM19QK,,,,,,01/03 +WA3SIX,FN10UB,,,,,,01/03 +WA3TTS,EN90,,, +WA3USG,FN10LL,,,,,,01/03 +WA4ALJ,EM63,,,,,,01/03 +WA4CHA,EL88QA,,,,,,01/03 +WA4CQG,EM72fo,,, +WA4DFS,EM96,,,,,,01/03 +WA4EWA,EM63LL,,,,,,01/03 +WA4EWV,EM70CE,EME,,,,TS2000 144: 2x 17 element Yagi - QRO,10/08 +WA4HEI,EN65UX,,,,,,01/03 +WA4HFN,EM55AB,EME,,,,,08/05 +WA4JQS,EM77TA,,,,,144: 2x33el 2.5WL,08/01 +WA4LBT,EM95,EME,,,,,01/03 +WA4NJP,EM84DG,EME,,,,,03/05 +WA4PCS,EM78,,,,,,01/03 +WA4PGJ,EM55,,,,,,01/03 +WA4PGM,FM07TI,,,,,144. 170W 17el,01/98 +WA4VWR,EM55,,,,,,01/03 +WA4YRK,EM75WV,,,,,IC910 IC756,05/02 +WA4ZTK,EM85,EME,,,,,01/03 +WA5CJG,EM15,,,,,,01/03 +WA5DJJ,DM62PH,,,,,,01/03 +WA5ETV,EM15,EME,,,,,01/03 +WA5ICW,EM26,EME,,,,,01/03 +WA5IYX,EL09,,,,,,01/03 +WA5JAT,EM12ET,,,,,,01/03 +WA5JCI,EM21,,,,,,01/01 +WA5KBH,EM30HL,,,,,,01/03 +WA5NFC,EM45,,,,,,01/03 +WA5TKU,EM13II,,,,,,01/03 +WA5TNY,EM12,,,,,,01/03 +WA5UAJ,EM32,,,,,,01/03 +WA5UFH,EL19,,,,,,09/01 +WA5VKS,EM13PA,,,,,,01/03 +WA5WCP,EM12,,,,,,01/03 +WA5YOU,EM53EE,,,,,,01/03 +WA5YWC,EM13OB,,,,,,01/03 +WA5ZIB,EL29,,,,,,01/03 +WA6BJE,DM13,EME,,,,,01/03 +WA6BYA,CM86,,,,,,01/03 +WA6EIW,EM15DI,,,,,,01/03 +WA6ERB,DM79,,,,,,01/03 +WA6FXL,CM89OB,,,,,144: 9el 100W,09/06 +WA6GXF,DM06DX,,,,,,01/03 +WA6IJZ,DM44KM,,,,,,01/03 +WA6KBL,CM97AG,EME,,,,,01/03 +WA6KOU,DN17,,,,,,01/03 +WA6LHD,CM88XF,,,,,,01/97 +WA6OWM,DM03TU,,,,,50: 100W Loop - 144: 100W 15el,09/01 +WA6PXO,DM13DO,EME,,,,144: 2x 9el 200W,10/06 +WA6PY,DM13LA,EME,,,,144: 2x20el VE7BQH 700W,11/06 +WA6TTY,DM78,,,,,,01/03 +WA6UCT,DM34,,,,,,01/03 +WA6YGB,DM04WA,,,,,,01/03 +WA6ZKY,CM98,EME,,,,,01/03 +WA7ADK,DN31WD,EME,,,,,01/05 +WA7BJU,CN85,,,,,,01/05 +WA7CJO,DM33XL,EME,,,,,01/03 +WA7EPU,DM62,,,,,,01/03 +WA7GSK,DN13SO,EME,,,,144: 1KW 4x16el K1FO,11/06 +WA7HQD,DN31XA,,,,,,01/98 +WA7KHO,DN47,,,,,,01/03 +WA7SKT,CN86CX,EME,,,,,11/05 +WA7TZY,CN87,EME,,,,,12/00 +WA8CLT,EN80LA,EME,,,,144: 1500W 4x9M2,03/05 +WA8CXI,EM99WK,EME,,PSE QSL direct,,FT847 - 144: 2x 18el CC with max 68deg elevation 8877ampl with 1500W,04/06 +WA8EUU,EN82,,,,,,01/03 +WA8MIL,EN63,,,,,,01/03 +WA8NLC,EM73,,,,,,01/03 +WA8OGS,EM79,,,,,,01/03 +WA8RJF,EN91IQ,EME,,,,144: 17el 250W,03/05 +WA8VPD,EN82,EME,,,,,01/03 +WA8WZG,EN81OM,EME,,,,,01/01 +WA8YTB,EN72JH,,,,,,01/03 +WA9BTT,EN40,,,,,,01/03 +WA9BVS,EM69WV,,,,,,01/03 +WA9ENA,EN42,,,,,,01/03 +WA9FWD,EN53,EME,,,,,01/03 +WA9HCZ,EN43JV,,,,,,01/03 +WA9HIR,EN61CU,,,,,,01/03 +WA9HUV,EN51,,,,,,01/03 +WA9JML,EN51PW,,,,,,01/01 +WA9NBU,DM14JG,,,,,FT736R - Mirage 160W,05/07 +WA9NRB,EM48,,,,,,01/03 +WA9O,EN62BX,,,,,,01/03 +WA9OUU,EM89,EME,,,,,01/03 +WA9PAM,EN44,,,,,,01/03 +WA9PSI,EN51,,,,,,01/03 +WA9PZL,EM32DN,,,,,,01/03 +WB0CLL,EM28,,,,,,01/03 +WB0CQO,EN31,,,,,,01/03 +WB0DBS,EM17,,,,,,01/03 +WB0DGF,EN10PT,,,,,,01/03 +WB0DRL,EM18CT,EME,,,,,01/03 +WB0GAZ,DM79,,,,,,01/03 +WB0GGM,EN34,EME,,,,,01/03 +WB0HXY,EN10,,,,,,01/03 +WB0ITA,EM29,,,,,,01/03 +WB0IUT,EN10,,,,,,01/03 +WB0LJC,EN34JV,,,,,,01/03 +WB0MLL,EN35,,,,,,01/03 +WB0NCR,EN42,,,,,,01/03 +WB0OOL,EM48,,,,,,01/03 +WB0QGH,EM84,,,,,,01/03 +WB0QIY,EN10,,,,,,01/03 +WB0QQS,EN10,,,,,,01/03 +WB0SIP,EN10,,,,,,01/03 +WB0TEM,EN12RT,EME,,,,,10/05 +WB0VGI,EN34LL,,,,,,01/03 +WB0YFL,EN42,,,,,,01/03 +WB0YRQ,EN12,,,,,,01/03 +WB0ZJP,EM48,,,,,,01/03 +WB1FLD,FN42IW,,,,,,01/02 +WB1GQR,FN33KL,,,,,,01/04 +WB2BYP,FN13FF,EME,,,,144: 4x 9el 8877,07/05 +WB2LSP,FM29DP,,,,,,01/03 +WB2OYC,FM29NN,,,,,,01/03 +WB2QLP,EL96DE,,,,,50: 400W- 144: 400W- 432: 170W,01/01 +WB2RVX,FM29MT,EME,,,,144: 4XP20 700w 432: 28el kW,10/08 +WB2SEB,FN31DD,,,,,144: 175W 13el - 222: 100W 10el,03/02 +WB2SIH,FN31DD,EME,,,,144: 13B2 800W FT736R SSB-preamp,09/06 +WB2SZR,FN20LL,,,,,144: 100W 16el,01/07 +WB2VVV,FN21,EME,,,,,01/00 +WB4AXQ,EM64,,,,,,01/03 +WB4BKC,EL96,EME,,,,,01/03 +WB4ECR,EM66QF,,,,,,01/04 +WB4EFZ,EM94,,,,,,01/03 +WB4GTB,EM73VW,,,,,,01/03 +WB4JEM,EL89QU,,,,,50: 6elQuad 500W - 144: 16x10el preamp 1-5KW - 222: 17el 160W - 432: 24el 500W,01/01 +WB4KMH,EM75RV,,,,,,01/01 +WB4LHD,EM55DB,EME,,,,,02/05 +WB4NFS,FM18HP,,,,,144: 400W,01/97 +WB5AFY,EM04ID,EME,,,,,02/05 +WB5APD,EM84AK,,,,,144: 1.5kw 17 el,01/01 +WB5DSH,EM15,,,,,,01/03 +WB5IPM,EM12,,,,,,01/03 +WB5KDC,EM15,,,,,,01/03 +WB5KYK,EM51JQ,,,,,,01/03 +WB5LBT,EM40LK,EME,,= W5LBT,,,01/01 +WB5NIF,EM42AM,,,,,,01/03 +WB5R,DM93PB,,,,,,01/09 +WB5ROR,EM23,,,,,,01/03 +WB5TBL,EM12,,,,,,01/03 +WB5TCO,EN64,,,,,,01/03 +WB5VPC,EM12,,,,,,01/03 +WB6WLR,DM13AT,,,,,144: 8877 2x17B2 - 432: 8938 2xFO33,01/01 +WB7OSE,CN87XT,,,,,,01/03 +WB7UNU,CN85OJ,EME,,,,144: 170W 17el,11/05 +WB8AGV,EN34,,,,,,01/03 +WB8IFM,EM79WS,,,,,,01/03 +WB8NUT,EM79UB,,,,,,01/03 +WB8SKP,EN66UC,,,,,,01/04 +WB8TFV,FM19AL,,,,,,01/03 +WB8TGY,EN72PP,EME,,,,144: 13B2 antenna,03/05 +WB8WTB,EN72,,,,,,01/03 +WB8XX,EM79,,,,,,12/00 +WB9BWP,EN52,,,,,,01/03 +WB9F,EM57QQ,,,,,ICOM 756 PRP III,10/05 +WB9HLM,EN52IW,,,,,,01/03 +WB9IHS,EM69,,,,,,01/03 +WB9IIV,EM69ST,EME,,,,144: 11el 150W,02/06 +WB9OGM,EN61,,,,,,01/03 +WB9OQB,EN44WP,,,,,FT 817,05/08 +WB9OWN,EN52,,,,,,01/03 +WB9PNU,EM48TN,EME,,,,144: Antenna: 4x M2 2M9 Icom 756Pro DEMI Transverter Lunar Link LA22,09/07 +WB9SNR,EN62AC,,,,,,01/03 +WB9SPT,EN71AS,,,,,,01/03 +WB9USX,EM79,,,,,,01/03 +WB9UWA,EN50KK,EME,,,,144: 4x UWA12's 18.5 dbd low temperature MC2K 2x GU74B's MGF1302,10/00 +WB9ZAI,EN61GM,,,,,,01/03 +WC4N,EM86,,, +WC9C,EM69HH,,,,,,01/03 +WD0AAD,DM79,,,,,,01/03 +WD0ALN,EM32,,,,,,01/03 +WD0APF,EN10,,,,,,01/03 +WD0BQM,DN81CW,,,,,,01/03 +WD0CJM,EN25FH,,,,,,01/03 +WD0EDO,EN10TL,,,,,,01/03 +WD0FCH,EM48,,,,,,01/03 +WD0GML,EM48,,,,,,01/03 +WD0HOJ,EN41,,,,,,01/03 +WD0L,EM17IH,,,,,,01/03 +WD0M,DM67KG,,,,,,01/04 +WD4ECK,CN82,,,,,,01/03 +WD4FAB,EL98HP,,,,,,01/03 +WD4KPD,FM15MM,,,,,,05/02 +WD4MUO,DM79GX,,,,,,01/03 +WD4OZN,EM55LK,,,,,,01/03 +WD5AGO,EM26BD,EME,,,,,03/00 +WD5CAN,EM36,,,,,,01/03 +WD5CAP,EM36,,,,,,01/03 +WD5DJT,EM12OO,,,,,,01/03 +WD5EAE,EM22KQ,EME,,,,FT-847,11/07 +WD5EWD,EM22,,,,,,01/03 +WD5G,EM05,,,,,,01/03 +WD6BXE,DM22,,,,,,01/03 +WD6DBM,CM97AI,EME,,,,144: 2x 17el 500W,10/06 +WD8BYA,FM18IP,,,,,,01/03 +WD8SDL,EM79,,,,,,01/03 +WD9BGA,EN53BA,,,,,,01/03 +WD9EGE,EN64,,,,,,01/03 +WD9EXD,EN61,,,,,,01/03 +WD9FBL,EN61BV,,,,,,01/03 +WD9IIX,EN61,,,,,,01/03 +WE2Y,FN02SR,EME,,,,,01/03 +WE4K,EM77BQ,,,,,,01/03 +WE7L,DM41,,,,,,01/03 +WE7P,DN13RP,EME,,,,,01/03 +WE9D,EN52,,,,,,01/03 +WE9V,EN52XN,,,,,,07/08 +WE9Y,EN82EW,EME,,,,IC910H LA22 AM6155 144: 2x 18el 1500W,04/07 +WF1F,FN42,,,,,,01/03 +WF1R,FN32,,,,,,01/03 +WF4R,FM16TS,,,,,,01/03 +WF9M,EM79,,,,,,01/03 +WH6LR,EM04LL,,,,,,01/03 +WI7P,DN40ER,EME,,,,144: 2x 11el 1000W,11/06 +WJ6T,DM05HL,EME,,,,144: 4x 9el 500W and new 7/8,04/07 +WK9E,EN53,,,,,,01/03 +WL7M,BO49IR,,,,,,01/03 +WL7U,BP51,EME,,,,50: 150W 5el - 144: 300W 2x10el - 432: 900W- 6x20el,01/98 +WM2Z,FN31SA,,,,,IC-746PRO TS-850SAT,10/07 +WM5Y,EN31,,,,,,01/03 +WN3CDW,FN11XB,EME,,,,50 MHZ: 1200 Watts 5 Element M2 6M5X Yagi,08/08 +WN4BML,EL89LL,,,,,,01/03 +WN4KKN,EM10,,,,,,01/03 +WN4M,EM66,,,,,100W,01/04 +WO9S,EN61ET,EME,,,,144: 13el 140W,10/06 +WP4G,FK68VG,EME,,,,144: 1KW 2x2MX28P,08/05 +WP4O,FK68,,,,,144: FT736r 400W 18ft langyagi preamp,01/01 +WQ0P,EM19VF,,,,,,09/01 +WQ5S,EM13RC,EME,,EX KA5UIQ KF5FQ,,144: FT847 4x2M12el 1500 432: 1x31 50W,04/07 +WQ5W,EM12FW,EME,,,,TS2000,09/06 +WR0F,EM29TC,,,,,,01/03 +WR0I,EM17,,,,,,01/03 +WR6S,DM14CP,,,,,,01/03 +WR9W,EM68FA,,,,,,01/03 +WS5R,DM95,,,,,,01/03 +WT0W,EN34,,,,,,01/03 +WU8Y,EN82JW,,,KC8DQH,,,07/07 +WV0K,EN13,,,,,,01/03 +WV1K,FN41WR,,,,,,01/05 +WV2C,FN30,,,,,144: IC706 180W 15el,01/98 +WW2R,EM13QD,EME,,,,,04/06 +WW4T,EM83,,,,,,01/03 +WW8M,EN72XF,EME,,,,144: 4x 18 M2XXX 1KW,03/07 +WX9M,EN54FL,,,,,,01/03 +WY0C,EM17IT,,,,,,01/03 +WY0V,EN12,,,,,,01/98 +WY3G,EM55,,,,,,01/03 +WY5R,DM95BE,,,,,TS2000,06/08 +WZ1V,FN31MP,,,,,50: 600W 5el - 144: 1kw 17el - 222: 500W 15el - 432: 500W 24el,05/07 +WZ8D,EM89BI,,,ex WB8IGY,,50: 1.5KW 6el - 144: 1.5KW 2x 17el,03/06 +WZ9D,EN51,,,,,,01/03 +XE1AVM,DK79UA,,,,,,01/03 +XE1GE,EK08,,,,,,01/03 +XE1GRR,DL80IP,EME,,,,50: 4x 6 el - 144: FT736 2x 17el H+V 250W - 432: 4x 33el H+V,09/06 +XE1XA,EK09,EME,,,,,01/03 +XE2AT,DL81UU,EME,,ex XE2YVW,,144: IC820 400W 4x 9el,01/07 +XE2NS,EL05AG,EME,,,,144: 2x 17el 160W,11/08 +XE2OR,DL98OK,,,,,144: 13B2 160W,08/05 +XF4DL,DK48MS,EME,,SpecialCall,,144: 2x 11el 350W,10/06 +YB0US,OI33JU,,,,,,01/03 +YL1A,KO07UN,,,Expedition,,,05/03 +YL27HF,KO27VC,,,SPECIALCALL,,,09/07 +YL2AO,KO16DK,,,,,,08/07 +YL2GJW,KO06MM,,,AS WELL KO06RM,,TS2000x TE-1452g(400W) 2xEF208 (vert stack) 9el Yagi for additional rx,12/08 +YL2GUI,KO06MM,,,,,144: TS-570+FTV-250 9el 30W,03/04 +YL2HA,KO26BV,EME,,,,144: 4x 16el 400W,08/08 +YL2IV,KO06MM,,,UQ2IV,,FT-817D 144: 7el QYAGI 432: 11el QYAGI,04/08 +YL2KA,KO26AX,,,,,,03/02 +YL2LW,KO26CW,,,,,,07/05 +YL2OK,KO37AS,,,,,,11/04 +YL2OW,KO26WL,,,ex UQ2OW,,FT736R IC706MKIIG,01/05 +YL3DW,KO26CW,,,,,,11/02 +YL3GCT,KO26BW,EME,,,,432: 8x9el DK7ZB 180W,11/05 +YL3GDF,KO26XM,EME,,,,144: 8x 13el 1KW,03/07 +YL3GDJ,KO26AX,,,,,,01/05 +YL3GDR,KO26HT,EME,,,,,03/07 +YL3HA,KO26DW,,,,,,12/07 +YL90HA,KO26BV,EME,,SPECIALCALL,,,10/08 +YM3XC,KN30FC,,,Expedition,,,11/02 +YO0IS,KN05PS,,,SpecialCall,,,01/93 +YO2AMU,KN06OC,EME,,,,144: 4x16el MGF1302 1KW 432: 4x 21el 1KW,08/05 +YO2BBT,KN05WG,,,,,144: FT897 300W 10el,12/08 +YO2IS,KN05PS,EME,,,,144: 4CX250B 10el BF981 - 432: 4X150D 17el 3SK97,01/06 +YO2KQT,KN05PS,,,,,FT-847 50W 1xF9FT 3WL,09/07 +YO2LEA,KN06WK,,,,,144: IC-211 lin.Mirage B 215G - 6m and 70 cm transverters,03/01 +YO2NAA,KN05OS,,,YO5QCF,,FT-847 8EL Yagi,05/08 +YO3DMU,KN34BJ,EME,,,,144: TS870 +Trsv 1KW MGF1302 16el,03/07 +YO3FFF,KN34CJ,EME,,,,144: TS450 Trvtr 100W B-310G GaAs Preamp 16el Tonna,04/05 +YO3IZI,KN34BK,EME,,,,TS2000,01/04 +YO3JW,KN34CK,,,,,144: 400W 16el F9FT 3P602A-2,04/00 +YO3KWJ,KN24,,,Expedition,,,01/93 +YO4AUL,KN44HE,EME,,,,144: FT897 200W 1x16el 10m boom,04/07 +YO4BZC,KN45AK,,,,,IC 706 5 el delta loop HM PA 70W,07/05 +YO4FEI,KN45NB,,,,,144: 50W 9el,11/06 +YO4FNG,KN44HD,EME,,,,144:FT847/MGF1302/12 el. DK7ZB/GS35 432:16 el. DL6WU/50W 1296: DB6NT/20W 15 el. DL6WU,05/08 +YO4FYQ,KN44HE,EME,,,,FT-847 50: 100W 5el 7ZB - 70: 25W 5el 7ZB - 144: 10el 7ZB 700W - 432: 50W 13el,05/06 +YO4GJH,KN35XG,,,,,FT 847 MIRAGE B2518G 2xGI7b DK7ZB 14 el.,10/07 +YO4KRB,KN44HE,EME,,,,144: 400 W 10 el 7ZB FT 847 MGF 1302,01/06 +YO4RFV,KN45AK,,,,,,08/02 +YO4RXX,KN45AK,,,,,,07/03 +YO5AVN,KN34,,,,,,01/93 +YO5BIM,KN07XB,,,,,,05/04 +YO5BIN,KN17WW,EME,,,,HM Transverter + TS 140 800W 4x 9el F9FT MGF1302,05/07 +YO5BWD,KN27GD,,,,,,08/00 +YO5CFI,KN16WJ,,,,,FT857D HF PSK: 40W 50 MHz: 100W dipole 144 MHz: 150W 2x9el TONNA,06/09 +YO5CXI,KN16WJ,,,,,144: 50W 2x 9el,10/06 +YO5DJM,KN17,EME,,,,,01/93 +YO5KAI,KN16TE,EME,,,,,06/99 +YO5KAV,KN16TS,EME,,,,,06/99 +YO5KUW,KN17UL,,,Expedition,,,08/06 +YO5OCZ,KN17UL,,,,,TS 2000 X TS 700 S TS 820 + TV 502 QRO GI7B,03/09 +YO5OHY,KN17SP,,,,,,12/06 +YO5TE,KN16TS,EME,,,,144: 1KW 4x10el MGF1302,01/02 +YO5TP,KN16SS,,,,,144: 40W 16el,05/06 +YO7CGS,KN15OA,,,,,,08/97 +YO7CKQ,KN15OA,,,,,,05/01 +YO7HLI,KN25EC,,,,,,08/08 +YO7IV,KN24MT,,,,,144: TS850 + Tcvr 2x4CX250b 800W 15el 9BV,05/03 +YO7NE,KN25EC,EME,,,,FT857 144: 100W 2x17el F9FT,01/08 +YO7VS,KN14VH,,,,,50: 2XQB3/300 2xBF981 5el LY J-Pol crossdipole - 144: 2x4CX250b CF300 Swan/Swan,10/98 +YO7VT,KN25EC,EME,,,,,12/08 +YO8BCF,KN36KN,EME,,,,TS2000X 4x 10el 1KW,04/07 +YO8BSE,KN36EW,,,,,,10/95 +YO8CLN,KN27QG,,,,,,08/08 +YO8CYN,KN36LW,,,,,,08/01 +YO8RHI,KN37TE,,,,,,07/05 +YO8RTS,KN27SM,,,,,144:FT847 11 el f9ft 150 W RF Concepts,01/07 +YO8TNA,KN37EW,,,,,,05/08 +YO8TNB,KN37EW,,,,,,06/09 +YO9FRJ,KN34AW,EME,,EX YO4FRJ,,144: 2 x3CPX800 + 4x17B2 + MGF1801 - 432: 50W 18el. Yagi CPol - SAT - 1296: 4 x 67el + FT736,03/08 +YO9HP,KN35BA,EME,,,,,09/07 +YP0A,KN27GD,,,Expedition,,,01/92 +YP2U,KN05OS,,,,,,05/08 +YR0A,KN16TS,EME,,Expedition,,,06/99 +YR5A,KN16TS,EME,,Expedition,,,06/99 +YR99E,KN34,,,Expedition,,,08/99 +YT1VP,JN94XC,,,,,TS440 FT225,08/08 +YT1VV,JN94US,,,ex YU1VG,,,07/00 +YT1W,JN91,,,Expedition,,,01/90 +YT2ACA,KN03WE,,,,,FT-221r,05/08 +YT3I,KN05HP,EME,,EX YU7EW,,144: 500Watt 4x 9el MGF1302,01/09 +YT4D,JN94CP,,,,,144: 250W 11el,08/00 +YT6A,JN92,,,,,,08/06 +YT7AC,JN95,,,,,,03/97 +YT7C,KN05FJ,,,YU7AAA 4O9T,,144: GS35B 4x10+2x10 el BVO 3WL,11/08 +YT7G,JN94XC,,,= YU7GOL,,144: MGF1302 GS35B 4x10el + 2x10el BVO-3wl,07/06 +YT7W,KN05QD,,,,,,08/08 +YT7WA,KN05EJ,,,SpecialCall,,144: 1KW 4x4el Loop 11el WU MGF1302,12/01 +YU0TESLA,KN03QM,EME,,SpecialCall,,144: 16 x 7el Yagi (by Dual) full elevation 25dBi 1.5Kw MGF1302,04/06 +YU150CF,KN03QM,EME,,SpecialCall,,144: 16 x 7el Yagi (by Dual) full elevation 25dBi 1.5Kw MGF1302,04/06 +YU150FU,KN05DK,,,SPECIALCALL,,,07/06 +YU1ADN,KN03KN,,,,,,06/96 +YU1AFS,KN04FT,,,,,,01/92 +YU1AGP,KN03WE,,,,,FT-221R,07/07 +YU1AZK,KN04,,,,,144: 25W 2x11el,10/98 +YU1BT,KN03KN,,,,,,07/06 +YU1BW,KN04GT,,,,,,04/02 +YU1CF,KN03QM,EME,,ex YU1OYA,,IC746PRO 50: 4x 6el Yagi 1KW preamp 144: 1500W 16x 7el Yagi MGF1302,11/06 +YU1EU,KN04DW,,,,,,08/98 +YU1EV,KN04CN,,,,,,04/06 +YU1EXY,KN04FT,,,,,144: FT225rd 350W 16el F9FT MGF1302,01/02 +YU1HFG,KN02XX,,,,,,12/95 +YU1IO,KN04IQ,,,,,144: 600W 4x17el,11/97 +YU1JB,KN04GT,EME,,EX YU1PTB,,144: 4x 10el 500W,12/07 +YU1L,KN02XX,,,,,,12/95 +YU1LA,KN04FR,,,,,144: IC910 17B2 LY,10/05 +YU1MS,KN04ET,,,,,,11/07 +YU1OO,KN02XX,,,,,,01/93 +YU1OS,KN04FS,,,,,144: FT225rd 100W 2x9el MGF1302,11/99 +YU1S,JN94US,,,,,144: 17el 400W,11/97 +YU1WP,JN94OM,,,,,,07/96 +YU1ZF,KN03IR,,,,,,01/91 +YU3LT,KN05HP,EME,,YZ7RLT YT7RLT,,YAESU FT225RD,01/08 +YU4AR,JN94AS,,,= 4O4AR,,144: TR9130 250W 10el PA0MS-ant Preamp,11/02 +YU6AO,JN92,,,,,,08/06 +YU7AA,JN95NS,EME,,ex YU1NOK,,TS850 - 144: 4x 10el 7ZB 500W - 432: 2x 2x 22el,04/06 +YU7AAA,KN05FJ,,,YT7C 4O9T,,144: GS35B 4x10+2x10 el BVO 3WL,11/08 +YU7ACO,KN05QC,,,,,144: FT221r PA 200W 2x 10el. DJ9BV,08/00 +YU7AJH,JN95WF,,,,,,01/90 +YU7AR,KN05BW,,,ex YU7PXB,,IC745- FT225RD- 144: 4x5wl MGF1412 YL1056,12/01 +YU7AS,KN05DJ,,,,,144: 150W 8x 6el Loop,08/05 +YU7AU,KN04HV,,,,,144: 250W 2x11el,12/01 +YU7AZX,KN04AX,,,,,,08/03 +YU7BCL,KN05FW,,,,,,12/97 +YU7BCX,KN05HP,,,,,,08/96 +YU7CV,JN95WK,,,,,,01/95 +YU7EF,KN04HV,EME,,EX YU7PFR,,FT847,01/09 +YU7FF,KN05EP,,,,,,01/94 +YU7FU,KN04,,,EX YU7MJA,,,05/07 +YU7GOL,JN94XC,,,= YT7G,,144: MGF1302 GS35B 4x10el + 2x10el BVO-3wl,03/06 +YU7KB,JN94XX,,,,,144: IC202 2x11el 800W Preamp (MGF1302),02/04 +YU7MS,KN05EF,,,,,144: 400/1KW 2x11el WU MGF1302,11/08 +YU7ON,KN04AX,,,,,144. TR751 4x11el 25W,08/00 +YU7PAA,KN04AX,,,ex YZ7MON,,MGF1302 GS35B 11el Yagi,12/07 +YU7PS,KN05FJ,,,,,144: 400/1KW 2x11el WU MGF1302,11/08 +YU7VA,KN05EJ,,,,,144: 100Watt 11el BFT 66,05/00 +YU7XL,JN95NT,EME,,YU2JL YU2RTU,,FT897 50: 100W 8el yagi 144: 1000Watt 16x8 yagi my design MGF1802,10/08 +YV5KXE,FK60NM,EME,,,,144: 11el Yagi 150W,06/06 +YV5LIX,FK60NM,EME,,,,IC-275H FT-100D TS-600 200W 18db Antenna,04/05 +YV5ZZ,FK60SM,EME,,,,,01/05 +YZ1DO,KN04ER,,,,,,08/99 +YZ1KU,KN04EU,,,,,144: 10W 9el F9FT,05/03 +YZ7UN,KN05EI,,,,,144: 4x6el Loop 100W,01/01 +Z30B,KN01PA,EME,,,,144: 1-5KW 4xYU0B (17-5db) MGF1302,08/00 +Z31DX,KN11GD,,,ex YT5G,,,06/99 +Z35Z,KN11CR,EME,,EXZ32UC YU5UC - QSLS VIA DL8EBW,,144: IC202 500W 4x4el Loop MGF1302 432: 15W 1296: 10W,11/07 +Z37CEF,KN01QA,,,ex YU5CEF,,,11/99 +Z38C,KN01QX,,,EX HA1CA,,FT847,10/07 +Z38R,KN12AG,,,,,FT847,10/07 +ZA0DXC,KN01,,,Expedition,,,01/91 +ZB0W,IM76HE,,,Expedition,,,01/93 +ZD8B,II22TB,EME,,= W1MRQ,,144: 4x 5el 180W,11/08 +ZK1EME,BG08CT,EME,,EXPEDITION,,144: 2x 3.2wl X-Pol yagis 8877 1.5KW,01/08 +ZL1BT,RF73LC,EME,,,,144: 12el 400W,03/06 +ZL1IU,RF64VR,EME,,,,144: 4x12el 1.2KW,10/05 +ZL1PE,RF74DG,,,,,,01/03 +ZL1RS,RF64VS,EME,,,,,09/08 +ZL1WN,RF73HG,EME,,,,144: 4x 18el 400W,06/06 +ZL2DX,RE78RR,EME,,ZL4OY ZL4OY/A ZL4OY/C ZL7OY ZM8OY ZL8OY,,144: 4x 10el 500W full elevation - 432: 18el 100W,04/07 +ZL3AAD,RE66GR,EME,,,,,01/03 +ZL3AAU,RE66EL,EME,,,,,06/07 +ZL3CU,RE66GL,EME,,,,144: 250W 2 by 12 element,03/07 +ZL3NW,RE66HO,EME,,,,,03/05 +ZL3TY,RE57OM,EME,,,,,05/05 +ZP4KFX,GG15LV,,,,,,03/01 +ZR1ADI,JF95KU,,,,,,01/02 +ZR1AEE,JF96IA,,,,,,01/02 +ZR1EV,JF96IC,,,,,50: FT690r 200W 4el,11/96 +ZR1L,JF96HD,,,,,,10/02 +ZR1TRD,JF96HC,,,,,,01/02 +ZR1WZ,KF05QP,,,,,,01/04 +ZR2DX,KF26,,,,,,02/02 +ZR5ADQ,KG50IA,,,,,,01/02 +ZR6ABU,KG33XV,,,,,,01/03 +ZR6CRW,KG33,,,ex ZR6ABU,,,10/02 +ZR6DXB,KG33XX,,,,,,10/02 +ZR6GE,KG43AR,,,,,,10/02 +ZR6KHJ,KG43CU,,,,,,02/02 +ZS1EK,JF95FU,,,,,,01/02 +ZS1LS,JF96FD,EME,,,,IC-910H,05/09 +ZS2ACP,KF26SA,EME,,,,144: 2x 8el 150W,12/07 +ZS2BWB,KF26TD,,,,,,02/02 +ZS2GK,KF47KT,EME,,S83X,,Icom IC-746Pro Yaesu FT-847,03/09 +ZS4JJ,KG30FV,EME,,,,Kenwood TR900 144: 16el 60W,10/08 +ZS4KB,KG32,,,,,,10/02 +ZS4NS,KG32IA,,,,,50: IC551D 6el 80W - QSL via N7RO,02/01 +ZS4TX,KG30BW,,,,,,01/02 +ZS5AV,KF69GX,,,,,,01/03 +ZS5DJ,KG59AA,,,,,,01/02 +ZS5LEE,KG50JF,EME,,,,IC821 706MKIIG 144: 4x 2m18XXX QRO 432: 2x 27el 100W,04/05 +ZS5Y,KF59JR,EME,,,,1296: 3.7m dish 50W,08/05 +ZS6AVP,KG44OD,,,,,,05/02 +ZS6AXT,KG33VV,EME,,,,,03/05 +ZS6BTE,KG33XV,EME,,,,144: 2x 4wl Yagis 100W,08/05 +ZS6BUN,KG43CU,EME,,,,144: 12el 300W,06/06 +ZS6DTS,KG43AR,,,,,,10/02 +ZS6EGB,KG43BQ,,,,,,10/02 +ZS6GER,KG33,,,,,,02/02 +ZS6GPM,KG33XU,,,,,,10/02 +ZS6HS,KG33XR,,,,,,01/02 +ZS6JDE,KG44DG,EME,,,,144: 2x 9el 400W,08/06 +ZS6JON,KG33VV,,,,,,10/02 +ZS6JR,KG44,EME,,,,,07/05 +ZS6MRK,KG34XH,EME,,,,144: 400W 2M7,03/06 +ZS6NK,KG46RC,EME,,ex ZS6PJS,,144: 2x 13wl 120W,09/05 +ZS6OB,KG44DE,EME,,,,144: 4x 16el 300W,01/07 +ZS6RAD,KG44CA,,,,,,10/02 +ZS6UT,KG44EF,,,,,,01/02 +ZS6WAB,KG46RC,EME,,,,144: 8x 17el 350W,09/06 +ZS6WB,KG44DH,EME,,,,144: 2x9 el 350W,11/06 +ZS6WI,KG46RC,,,,,,01/03 +ZS6Y,KG33WU,,,,,,02/02 +ZZZZZZ,End-Of-Call3-Database 2009-07-01 01:15:53 UTC VHF-DATABASE Export � 2009 by DG2KBC & DL8EBW + + + + + + + + + diff --git a/qmap/resources/README.qthid.txt b/qmap/resources/README.qthid.txt new file mode 100644 index 000000000..4210d0625 --- /dev/null +++ b/qmap/resources/README.qthid.txt @@ -0,0 +1,22 @@ +QTHID INFORMATION + +Qthid is simple cross platform controller application for the Funcube Dongle +Pro and Pro+ software defined radio receivers. + +Author........: OZ9AEC +License.......: GNU General Public License +Site..........: http://www.oz9aec.net/index.php/funcube-dongle/qthid-fcd-controller +Source........: http://sourceforge.net/projects/qthid/files +Yahoo Group ..: https://uk.groups.yahoo.com/neo/groups/FCDevelopment/info + +The qthid folder contains two binaries: + +* qthid-4.0.exe +* qthid-4.1.exe + +QTHID 4.0 is the current stable providing full support for the Funcube Dongle +API available with firmware 18f or later. + +QTHID 4.1 is an updated version that supports the new Funcube Dongle Pro+ +devices. This does not work with the original Funcube Dongle Pro! + diff --git a/qmap/resources/qt.conf b/qmap/resources/qt.conf new file mode 100644 index 000000000..e69f24eba --- /dev/null +++ b/qmap/resources/qt.conf @@ -0,0 +1,2 @@ +[Paths] +Plugins = . diff --git a/qmap/resources/qthid/AUTHORS.qthid.4.1.txt b/qmap/resources/qthid/AUTHORS.qthid.4.1.txt new file mode 100644 index 000000000..e3f10328c --- /dev/null +++ b/qmap/resources/qthid/AUTHORS.qthid.4.1.txt @@ -0,0 +1,16 @@ +Original work by Howard Long, G6LVB. +Current maintainer: Alexandru Csete, OZ9AEC. + +Contributors: +- Mike Willis G0MJW and David Barber +- Mario Lorenz DL5MLO +- Andrew Elwell +- Mike K0ZAP (OSX Lion fix) + +The frequency controller was taken from Cutesdr by Moe Wheatley. + +Application icon by ~DarKobra at Deviantart. +Source: http://commons.wikimedia.org/wiki/File:Radio.svg + +Other icons were taken from the GNOME desktop theme and the Tango theme. + diff --git a/qmap/resources/qthid/AUTHORS.qthid4.0.txt b/qmap/resources/qthid/AUTHORS.qthid4.0.txt new file mode 100644 index 000000000..e3f10328c --- /dev/null +++ b/qmap/resources/qthid/AUTHORS.qthid4.0.txt @@ -0,0 +1,16 @@ +Original work by Howard Long, G6LVB. +Current maintainer: Alexandru Csete, OZ9AEC. + +Contributors: +- Mike Willis G0MJW and David Barber +- Mario Lorenz DL5MLO +- Andrew Elwell +- Mike K0ZAP (OSX Lion fix) + +The frequency controller was taken from Cutesdr by Moe Wheatley. + +Application icon by ~DarKobra at Deviantart. +Source: http://commons.wikimedia.org/wiki/File:Radio.svg + +Other icons were taken from the GNOME desktop theme and the Tango theme. + diff --git a/qmap/resources/qthid/LICENSE.txt b/qmap/resources/qthid/LICENSE.txt new file mode 100644 index 000000000..94a9ed024 --- /dev/null +++ b/qmap/resources/qthid/LICENSE.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/qmap/resources/qthid/NEWS.qhid-4.0.txt b/qmap/resources/qthid/NEWS.qhid-4.0.txt new file mode 100644 index 000000000..a4637e8e3 --- /dev/null +++ b/qmap/resources/qthid/NEWS.qhid-4.0.txt @@ -0,0 +1,64 @@ +Changes in version 4.0: + +- New layout with IF, IQ and firmware controls hidden by default. +- New frequency controller widget. +- Support for up- and downconverters + + +Changes in version 3.2: + +- Switch to using hidraw driver on Linux 2.6.38 or later (fixes crashes + experienced on recent Linux with libusb-1.0.9). +- Update HID API. +- Reduce widow width. + + +Changes in version 3.1: + +- Support for Mac OS X 10.7 Lion +- Support for Bias-T with firmware 18h and later. +- Allow user to force band selection to be different from the one chosen + by the FCD (temporary workaround for a FW 18f bug occurring at 861 MHz). +- Change default value of IQ gain correction from 0.0 to 1.0. +- Use correct FCD command for setting IQ phase correction (GH-5). +- Various fixes for windows build using latest SDK (7.0). +- Removed RSSI indicator since it is unlikely that it will ever work. + + +Changes in version 3.0: + +- Implement full API in firmware 18f (thanks Mario Lorenz, DL5MLO). +- Requires firmware 18f or later (earlier firmwares are not detected). +- Added auto-repeat to tuning buttons (click and hold the button to scan). +- Added new RF chain diagram. +- Show firmware version in status message. + + +Changes in version 2.3: + +- No code changes, just a Mac OS X build. + + +Changes in version 2.2: + +- Use native toolbar and status bar on Mac OS X +- New application icon based on SVG drawing +- Correctly set application and bundle icon on Mac OS X and Windows +- Minor UI tweaks. +- Fix qthid.pro to allow correct build on Ubuntu 9.04 (thanks EA4FVS). +- Correct application name in file headers (thanks Andrew Elwell) + + +Changes in version 2.1: + +- Various fixes and workarounds to prevent crash and freeze when switching + between application and bootloader mode. The application can now run with or + without FCD (hotplug). Upgrade and verify firmware have been tested on Linux + (32 and 64 bit) and OSX 10.6. +- Updated HID API to hidapi/master from 2011-02-17 +- Retrieve libusb configuration on Linux using pkg-config +- Remove local Qt Creator configuration from distribution +- Improvements to the UI layout and widgets +- Added application icon +- Applied GPL V3 license + diff --git a/qmap/resources/qthid/NEWS.qthid-4.1.txt b/qmap/resources/qthid/NEWS.qthid-4.1.txt new file mode 100644 index 000000000..426dff77b --- /dev/null +++ b/qmap/resources/qthid/NEWS.qthid-4.1.txt @@ -0,0 +1,64 @@ +Changes in version 4.1: + +- Special release with Funcube Dongle Pro+ support. + + +Changes in version 4.0: + +- New layout with IF, IQ and firmware controls hidden by default. +- New frequency controller widget. +- Support for up- and downconverters. + + +Changes in version 3.2: + +- Switch to using hidraw driver on Linux 2.6.38 or later (fixes crashes + experienced on recent Linux with libusb-1.0.9). +- Update HID API. +- Reduce widow width. + + +Changes in version 3.1: + +- Support for Mac OS X 10.7 Lion. +- Support for Bias-T with firmware 18h and later. +- Allow user to force band selection to be different from the one chosen by + the FCD (temporary workaround for a FW 18f bug occurring at 861 MHz). +- Change default value of IQ gain correction from 0.0 to 1.0. +- Use correct FCD command for setting IQ phase correction (GH-5). +- Various fixes for windows build using latest SDK (7.0). +- Removed RSSI indicator since it is unlikely that it will ever work. + + +Changes in version 3.0: + +- Implement full API in firmware 18f (thanks Mario Lorenz, DL5MLO). +- Requires firmware 18f or later (earlier firmwares are not detected). +- Added auto-repeat to tuning buttons (click and hold the button to scan). +- Added new RF chain diagram. +- Show firmware version in status message. + + +Changes in version 2.2: + +- Use native toolbar and status bar on Mac OS X +- New application icon based on SVG drawing +- Correctly set application and bundle icon on Mac OS X and Windows +- Minor UI tweaks. +- Fix qthid.pro to allow correct build on Ubuntu 9.04 (thanks EA4FVS). +- Correct application name in file headers (thanks Andrew Elwell) + + +Changes in version 2.1: + +- Various fixes and workarounds to prevent crash and freeze when switching + between application and bootloader mode. The application can now run with or + without FCD (hotplug). Upgrade and verify firmware have been tested on Linux + (32 and 64 bit) and OSX 10.6. +- Updated HID API to hidapi/master from 2011-02-17 +- Retrieve libusb configuration on Linux using pkg-config +- Remove local Qt Creator configuration from distribution +- Improvements to the UI layout and widgets +- Added application icon +- Applied GPL V3 license + diff --git a/qmap/resources/qthid/README-qthid-4.1.txt b/qmap/resources/qthid/README-qthid-4.1.txt new file mode 100644 index 000000000..a4eb91747 --- /dev/null +++ b/qmap/resources/qthid/README-qthid-4.1.txt @@ -0,0 +1,72 @@ +1. INTRODUCTION + +Qthid is a small control application for the Funcube Dongle devices. It is an evolution of the qthid002 package by Howard Long G6LVB. + +This version 4.1 is a special version that adds support for the Funcube Dongle Pro+ (see http://www.funcubedongle.com/?page_id=1073). The original Funcube Dongle Pro is not supported by this version. + +Qthid uses the HIDAPI cross platform library by Signal 11 Software (http://www.signal11.us/oss/hidapi/). All the required files are bundled with qthid and no installation of the library is required. + + +2. INSTALLATION AND USAGE + +2.1 Linux + +Precompiled binaries (32 or 64 bit) are avaialble for download but users are required to install the Qt runtime libraries on their own. All common Linux distrib utions have the Qt libraries packaged and they can be installed using the package manager for the platform. Qt 4.7 and 4.8 has been tested. + +In order to use the Funcube Dongle Pro+ as regular user and udev rule is required. An example funcube-dongle.rules file is included with the package and you can simply copy that file to the /etc/udev/rules.d/ directory (hint: open a terminal and type: "sudo cp funcube-dongle.rules /etc/udev/rules.d/" without the quotes) + +Qthid should now detect your Funcube Dongle Pro+ when you plug it in. No reboot or udev restart is necessary. + + +2.2 Mac OS X (10.6+) + +The Mac OS X bundle contains all the necessary Qt libraries and no additional installation or configuration is required. Unlike Linux, the Funcube Dongle will just work. + + +2.3 Windows + +The windows package is self containing and does not require and Qt libs to be installed separately. This release has been tested on Windows 7. + + +2.4 Building from source + +- Install Qt Creator 2.0.1 or newer and Qt SDK 4.7. On recent linux it is normally sufficient to select Qt Creator and the required Qt libraries will be installed as dependencies. On Mac and Windows you need to download the full Qt SDK. On Windows you also need the MS Windows SDK. +- On linux you also need to install the libudev-dev package using the package manager (the name may be different depending on distribution but it should have libudev and dev int he name). +- Open the qthid.pro file in Qt Creator. It will say something about setting up a target; say OK or Finish or Done (depends on version and OS). +- You can now build and execute the project. + +It is also possible to build in a terminal: + +$ tar xvfz qthid-X.Y.tar.gz +$ cd qthid-X.Y +$ mkdir build +$ cd build +$ qmake ../qthid.pro +$ make + +You should now have a qthid binary. + + +3. License + +Qthid is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with this program. If not, see . + + +The frequency controller widget was taken from Cutesdr by Moe Wheatley, released under the following "Simplified BSD License": + +Copyright 2010 Moe Wheatley. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY Moe Wheatley "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Moe Wheatley OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Moe Wheatley. + diff --git a/qmap/resources/qthid/README.qthid-4.0.txt b/qmap/resources/qthid/README.qthid-4.0.txt new file mode 100644 index 000000000..a5f3761ec --- /dev/null +++ b/qmap/resources/qthid/README.qthid-4.0.txt @@ -0,0 +1,85 @@ +1. INTRODUCTION + +Qthid is a Funcube Dongle control application with Qt user interface. It is an evolution of the qthid002 package by Howard Long G6LVB. + +The Funcube Dongle (http://www.funcubedongle.com/) is a small software defined radio receiver for 64 MHz - 1.7 GHz. It fits into a computer's USB port and uses USB audio to transfer complex I/Q data to SDR applications. The control API for setting frequency, gain, filter, etc. uses the USB HID standard, thus the Funcube Dongle does not require any specific hardware drivers as long as the host operating system supports USB audio and HID. + +Qthid uses the HIDAPI cross platform library by Signal 11 Software (http://www.signal11.us/oss/hidapi/). All the required files are bundled with qthid and no installation of the library is required. + +The current version 4.0 implements the full API available with the 18f firmware. It should cover all the functionality provided by the "fully functional windows frontend". Note that the majority of this full API is only available since firmware 18f and qthid 4 will not work with earlier firmware. The application will simply fail to detect the FCD with earlier firmwares. + +You can use qthid 2.x to upgrade your firmware to 18f or later. + + +2. INSTALLATION AND USAGE + +2.1 Linux + +If you are using Debian testing or Ubuntu, you can install the qthid-fcd-controller package. This should set everything up and you can skip the rest of this section. + +Otherwise you can use the precompiled binaries (32 or 64 bit) but you need the Qt runtime libraries installed. On Ubuntu these are called libqtcore4 and libqtgui4 and their dependencies. You can simply install everything Qt version 4 (not version 3!). Qt 4.8 has been tested, Qt 4.7 will probably also work. + +In order to use the Funcube Dongle as regular user, you need to create an udev rule. An example funcube-dongle.rules file is included with the package and you can simply copy that into the /lib/udev/rules.d/ directory. + +(hint: open a terminal and type: sudo cp funcube-dongle.rules /lib/udev/rules.d/funcube-dongle.rules) + +Qthid should now detect your FCD when you plug it in. No need to restart udev. + + +2.2 Mac OS X (10.6+) + +The Mac OS X bundle contains all the necessary Qt libraries and no additional installation or configuration is required. Unlike Linux, the Funcube Dongle will just work. + + +2.3 Windows + +The windows package is self containing and does not require and Qt libs to be installed separately. It is known to work on Windows XP and Windows 7. + + +2.4 Building from source + +- Install Qt Creator 2.0.1 or newer and Qt SDK 4.7. On recent linux it is normally sufficient to select Qt Creator and the required Qt libraries will be installed as dependencies. On Mac and Windows you need to download the full Qt SDK. On Windows you also need the MS Windows SDK. +- On linux you also need to install the libudev-dev package using the package manager (the name may be different depending on distribution but it should have libudev and dev int he name). +- Open the qthid.pro file in Qt Creator. It will say something about setting up a target; say OK or Finish or Done (depends on version and OS). +- You can now build and execute the project. + +If you want to try the latest experimental code you can check it out from Github: https://github.com/csete/qthid + + +3. License + +Qthid is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with this program. If not, see . + + +The frequency controller widget was taken from Cutesdr by Moe Wheatley, released under the following "Simplified BSD License": + +Copyright 2010 Moe Wheatley. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are +permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY Moe Wheatley ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Moe Wheatley OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation are those of the +authors and should not be interpreted as representing official policies, either expressed +or implied, of Moe Wheatley. + diff --git a/qmap/resources/wisdom1.bat b/qmap/resources/wisdom1.bat new file mode 100644 index 000000000..2d5e3519f --- /dev/null +++ b/qmap/resources/wisdom1.bat @@ -0,0 +1,7 @@ +fftwf-wisdom -o fftwf_wisdom.dat -t 1 -m cif256 rif512 rib512 cif1024 cib1024 cib32768 + +fftwf-wisdom -w fftwf_wisdom.dat -o fftwf_wisdom.dat -t 1 -m cif77175 cib77175 cib5376000 cif74088 cib74088 cib5120000 + +fftwf-wisdom -w fftwf_wisdom.dat -o fftwf_wisdom.dat -t 1 -m cif37632 cib37632 cib2621440 cif37044 cib37044 cib2560000 + +fftwf-wisdom -w fftwf_wisdom.dat -o fftwf_wisdom.dat -t 1 -m cif24192 cif3456 cif336000 diff --git a/qmap/resources/wisdom2.bat b/qmap/resources/wisdom2.bat new file mode 100644 index 000000000..6ced98548 --- /dev/null +++ b/qmap/resources/wisdom2.bat @@ -0,0 +1,7 @@ +fftwf-wisdom -o fftwf_wisdom.dat -t 1 cif256 rif512 rib512 cif1024 cib1024 cib32768 + +fftwf-wisdom -w fftwf_wisdom.dat -o fftwf_wisdom.dat -t 1 cif77175 cib77175 cib5376000 cif74088 cib74088 cib5120000 + +fftwf-wisdom -w fftwf_wisdom.dat -o fftwf_wisdom.dat -t 1 cif37632 cib37632 cib2621440 cif37044 cib37044 cib2560000 + +fftwf-wisdom -w fftwf_wisdom.dat -o fftwf_wisdom.dat -t 1 cif24192 cif3456 cif336000 diff --git a/qmap/signalmeter.cpp b/qmap/signalmeter.cpp new file mode 100644 index 000000000..c6c27618b --- /dev/null +++ b/qmap/signalmeter.cpp @@ -0,0 +1,53 @@ +// Simple bargraph dB meter +// Implemented by Edson Pereira PY2SDR +// +// Limits and geometry are hardcded for now. + +#include "signalmeter.h" + +SignalMeter::SignalMeter(QWidget *parent) : + QWidget(parent) +{ + resize(parent->size()); + + m_meter = new MeterWidget(this); + m_meter->setGeometry(10, 10, 10, 120); + + m_label = new QLabel(this); + m_label->setGeometry(10, 135, 20, 20); + + QLabel *dbLabel = new QLabel(this); + dbLabel->setText("dB"); + dbLabel->setGeometry(30, 135, 20, 20); +} + +SignalMeter::~SignalMeter() +{ + +} + +void SignalMeter::paintEvent( QPaintEvent * ) +{ + QPainter p {this}; + + p.drawLine(22, 10, 22, 130); + + for ( int i = 0; i <= 60; i += 10 ) { + p.drawLine(22, i*2 + 10, 25, i*2 + 10); + } + + for ( int i = 10; i < 60; i += 10 ) { + p.drawText(30, i*2 + 15, QString::number(60 - i)); + } +} + +void SignalMeter::setValue(int value) +{ + m_meter->setValue(value); + m_label->setText(QString::number(value)); +} + +void SignalMeter::resizeEvent(QResizeEvent *s) +{ + resize(s->size()); +} diff --git a/qmap/signalmeter.h b/qmap/signalmeter.h new file mode 100644 index 000000000..ea1aa6295 --- /dev/null +++ b/qmap/signalmeter.h @@ -0,0 +1,32 @@ +#ifndef SIGNALMETER_H +#define SIGNALMETER_H + +#include +#include +#include + +class SignalMeter : public QWidget +{ + Q_OBJECT + +public: + explicit SignalMeter(QWidget *parent = 0); + ~SignalMeter(); + +public slots: + void setValue(int value); + +private: + MeterWidget *m_meter; + + QLabel *m_label; + + int m_signal; + int m_sigPeak; + +protected: + void paintEvent( QPaintEvent * ); + void resizeEvent(QResizeEvent *s); +}; + +#endif // SIGNALMETER_H diff --git a/qmap/sleep.h b/qmap/sleep.h new file mode 100644 index 000000000..c11188c2a --- /dev/null +++ b/qmap/sleep.h @@ -0,0 +1,16 @@ +#ifndef SLEEP_H +#define SLEEP_H +#include + +class Sleep : public QThread +{ +public: + static void msleep(int ms) { + QThread::msleep(ms); + } + static int idealThreadCount() { + return QThread::idealThreadCount(); + } +}; + +#endif // SLEEP_H diff --git a/qmap/soundin.cpp b/qmap/soundin.cpp new file mode 100644 index 000000000..2c194a809 --- /dev/null +++ b/qmap/soundin.cpp @@ -0,0 +1,231 @@ +#include "soundin.h" +#include + +#ifdef Q_OS_WIN32 +#include +#else +#include +#endif + +#define NFFT 32768 +#define FRAMES_PER_BUFFER 1024 + +extern "C" +{ + struct + { + double d8[60*96000]; //This is "common/datcom/..." in fortran + float ss[322*NFFT]; + float savg[NFFT]; + double fcenter; + int nutc; + float fselected; //Selected frequency for nagain decodes + int mousedf; //User-selected DF + int mousefqso; //User-selected QSO freq (kHz) + int nagain; //1 ==> decode only at fQSO +/- Tol + int ndepth; //How much hinted decoding to do? + int ndiskdat; //1 ==> data read from *.tf2 or *.iq file + int neme; //Hinted decoding tries only for EME calls + int newdat; //1 ==> new data, must do long FFT + int nfa; //Low decode limit (kHz) + int nfb; //High decode limit (kHz) + int nfcal; //Frequency correction, for calibration (Hz) + int nfshift; //Shift of displayed center freq (kHz) + int mcall3; //1 ==> CALL3.TXT has been modified + int ntimeout; //Max for timeouts in Messages and BandMap + int ntol; //+/- decoding range around fQSO (Hz) + int nxant; //1 ==> add 45 deg to measured pol angle + int junk_1; //Flags to control log files + int nfsample; //Input sample rate + int nxpol; //1 if using xpol antennas, 0 otherwise + int mode65; //JT65 sub-mode: A=1, B=2, C=4 + int nfast; //1No longer used + int nsave; //Number of s3(64,63) spectra saved + char mycall[12]; + char mygrid[6]; + char hiscall[12]; + char hisgrid[6]; + char datetime[20]; + } datcom_; +} + +namespace +{ + struct COMWrapper + { + explicit COMWrapper () + { +#ifdef Q_OS_WIN32 + // required because Qt only does this for GUI thread + CoInitializeEx (nullptr, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE); +#endif + } + ~COMWrapper () + { +#ifdef Q_OS_WIN32 + CoUninitialize (); +#endif + } + }; +} + +void SoundInThread::run() //SoundInThread::run() +{ + quitExecution = false; + + if (m_net) { + inputUDP(); + return; + } +} + +void SoundInThread::setScale(qint32 n) +{ + m_dB=n; +} +void SoundInThread::setPort(int n) //setPort() +{ + if (isRunning()) return; + this->m_udpPort=n; +} + +void SoundInThread::setRate(double rate) //setRate() +{ + if (isRunning()) return; + this->m_rate = rate; +} + +void SoundInThread::setBufSize(unsigned n) //setBufSize() +{ + if (isRunning()) return; + this->bufSize = n; +} + +void SoundInThread::setFadd(double x) +{ + m_fAdd=x; +} + + +void SoundInThread::quit() //quit() +{ + quitExecution = true; +} + +void SoundInThread::setNetwork(bool b) //setNetwork() +{ + m_net = b; +} + +void SoundInThread::setMonitoring(bool b) //setMonitoring() +{ + m_monitoring = b; +} + +void SoundInThread::setNrx(int n) //setNrx() +{ + m_nrx = n; +} + +int SoundInThread::nrx() +{ + return m_nrx; +} + +int SoundInThread::mhsym() +{ + return m_hsym; +} + +void SoundInThread::setPeriod(int n) +{ + m_TRperiod=n; +} + +//--------------------------------------------------------------- inputUDP() +void SoundInThread::inputUDP() +{ + udpSocket = new QUdpSocket(); + if(!udpSocket->bind(m_udpPort,QUdpSocket::ShareAddress) ) + { + emit error(tr("UDP Socket bind failed.")); + return; + } + + // Set this socket's total buffer space for received UDP packets + udpSocket->setSocketOption (QUdpSocket::ReceiveBufferSizeSocketOption, 141600); + + bool qe = quitExecution; + struct linradBuffer { + double cfreq; + int msec; + float userfreq; + int iptr; + quint16 iblk; + qint8 nrx; + char iusb; + double d8[174]; + } b; + + int ntr0=99; + int k=0; + int nsec; + int ntr; + int nhsym0=0; + int iz=174; + int nBusy=0; + + // Main loop for input of UDP packets over the network: + while (!qe) { + qe = quitExecution; + if (qe) break; + if (!udpSocket->hasPendingDatagrams()) { +// msleep(2); // Sleep if no packet available + QObject().thread()->usleep(2000); + } else { + int nBytesRead = udpSocket->readDatagram((char *)&b,1416); + if (nBytesRead != 1416) qDebug() << "UDP Read Error:" << nBytesRead; + + qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; + nsec = ms/1000; // Time according to this computer + ntr = nsec % m_TRperiod; + +// Reset buffer pointer and symbol number at start of minute + if(ntr < ntr0 or !m_monitoring or m_TRperiod!=m_TRperiod0) { + k=0; + nhsym0=0; + m_TRperiod0=m_TRperiod; + } + + ntr0=ntr; + + if(m_monitoring) { + m_nrx=b.nrx; + if(m_nrx == +1) iz=348; //One RF channel, i*2 data + if(m_nrx == -1 or m_nrx == +2) iz=174; //One Rf channel, r*4 data + // or 2 RF channels, i*2 data + if(m_nrx == -2) iz=87; // Two RF channels, r*4 data + + // If buffer will not overflow, move data into datcom_ + if ((k+iz) <= 60*96000) { + int nsam=-1; + recvpkt_(&nsam, &b.iblk, &b.nrx, &k, b.d8, b.d8); + datcom_.fcenter=b.cfreq + m_fAdd; +// qDebug() << "aaa" << b.cfreq << m_fAdd << datcom_.fcenter; + } + + m_hsym=(k-2048)*11025.0/(2048.0*m_rate); + if(m_hsym != nhsym0) { + if(m_dataSinkBusy) { + nBusy++; + } else { + m_dataSinkBusy=true; + emit readyForFFT(k); //Signal to compute new FFTs + } + nhsym0=m_hsym; + } + } + } + } + delete udpSocket; +} diff --git a/qmap/soundin.h b/qmap/soundin.h new file mode 100644 index 000000000..a0900ba6e --- /dev/null +++ b/qmap/soundin.h @@ -0,0 +1,73 @@ +#ifndef SOUNDIN_H +#define SOUNDIN_H + +#include +#include +#include +#include + +// Thread gets audio data from soundcard and signals when a buffer of +// specified size is available. +class SoundInThread : public QThread +{ + Q_OBJECT + bool quitExecution; // if true, thread exits gracefully + double m_rate; // sample rate + unsigned bufSize; // user's buffer size + +protected: + virtual void run(); + +public: + bool m_dataSinkBusy; + + SoundInThread(): + quitExecution(false), + m_rate(0), + bufSize(0), + m_dataSinkBusy(false) + { + } + + void setScale(qint32 n); + void setPort(qint32 n); + void setRate(double rate); + void setBufSize(unsigned bufSize); + void setNetwork(bool b); + void setMonitoring(bool b); + void setFadd(double x); + void setNrx(int n); + void setPeriod(int n); + int nrx(); + int mhsym(); + +signals: + void bufferAvailable(std::valarray samples, double rate); + void readyForFFT(int k); + void error(const QString& message); + void status(const QString& message); + +public slots: + void quit(); + +private: + void inputUDP(); + + double m_fAdd; + bool m_net; + bool m_monitoring; + qint32 m_nrx; + qint32 m_hsym; + qint32 m_udpPort; + qint32 m_TRperiod; + qint32 m_TRperiod0; + qint32 m_dB; + + QUdpSocket *udpSocket; +}; + +extern "C" { + void recvpkt_(int* nsam, quint16* iblk, qint8* nrx, int* k, double s1[], double s2[]); +} + +#endif // SOUNDIN_H diff --git a/qmap/ss.bat b/qmap/ss.bat new file mode 100644 index 000000000..3ea6cc6dc --- /dev/null +++ b/qmap/ss.bat @@ -0,0 +1 @@ +svn status | grep -v "?" diff --git a/qmap/sss.bat b/qmap/sss.bat new file mode 100644 index 000000000..63b4044f2 --- /dev/null +++ b/qmap/sss.bat @@ -0,0 +1 @@ +svn status diff --git a/qmap/widegraph.cpp b/qmap/widegraph.cpp new file mode 100644 index 000000000..bc64fd50b --- /dev/null +++ b/qmap/widegraph.cpp @@ -0,0 +1,276 @@ +#include "widegraph.h" +#include +#include +#include "SettingsGroup.hpp" +#include "ui_widegraph.h" + +#define NFFT 32768 + +WideGraph::WideGraph (QString const& settings_filename, QWidget * parent) + : QDialog {parent}, + ui {new Ui::WideGraph}, + m_settings_filename {settings_filename} +{ + ui->setupUi(this); + setWindowTitle("Wideband Waterfall"); + setWindowFlags(Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint); + installEventFilter(parent); //Installing the filter + ui->widePlot->setCursor(Qt::CrossCursor); + setMaximumWidth(2048); + setMaximumHeight(880); + ui->widePlot->setMaximumHeight(800); + connect(ui->widePlot, SIGNAL(freezeDecode1(int)),this, + SLOT(wideFreezeDecode(int))); + + //Restore user's settings + QSettings settings {m_settings_filename, QSettings::IniFormat}; + { + SettingsGroup g {&settings, "MainWindow"}; // historical reasons + setGeometry (settings.value ("WideGraphGeom", QRect {45,30,1023,340}).toRect ()); + } + SettingsGroup g {&settings, "WideGraph"}; + ui->widePlot->setPlotZero(settings.value("PlotZero", 20).toInt()); + ui->widePlot->setPlotGain(settings.value("PlotGain", 0).toInt()); + ui->zeroSpinBox->setValue(ui->widePlot->getPlotZero()); + ui->gainSpinBox->setValue(ui->widePlot->getPlotGain()); + int n = settings.value("FreqSpan",60).toInt(); + int w = settings.value("PlotWidth",1000).toInt(); + ui->freqSpanSpinBox->setValue(n); + ui->widePlot->setNSpan(n); + int nbpp = n * 32768.0/(w*96.0) + 0.5; + ui->widePlot->setBinsPerPixel(nbpp); + m_waterfallAvg = settings.value("WaterfallAvg",10).toInt(); + ui->waterfallAvgSpinBox->setValue(m_waterfallAvg); +} + +WideGraph::~WideGraph() +{ + saveSettings(); + delete ui; +} + +void WideGraph::resizeEvent(QResizeEvent* ) //resizeEvent() +{ + if(!size().isValid()) return; + int w = size().width(); + int h = size().height(); + ui->labFreq->setGeometry(QRect(w-256,h-100,227,41)); +} + +void WideGraph::saveSettings() +{ + //Save user's settings + QSettings settings {m_settings_filename, QSettings::IniFormat}; + { + SettingsGroup g {&settings, "MainWindow"}; // for historical reasons + settings.setValue ("WideGraphGeom", geometry()); + } + SettingsGroup g {&settings, "WideGraph"}; + settings.setValue("PlotZero",ui->widePlot->m_plotZero); + settings.setValue("PlotGain",ui->widePlot->m_plotGain); + settings.setValue("PlotWidth",ui->widePlot->plotWidth()); + settings.setValue("FreqSpan",ui->freqSpanSpinBox->value()); + settings.setValue("WaterfallAvg",ui->waterfallAvgSpinBox->value()); +} + +void WideGraph::dataSink2(float s[], int nkhz, int ihsym, int ndiskdata, + uchar lstrong[]) +{ + static float splot[NFFT]; + float swide[2048]; + float smax; + double df; + int nbpp = ui->widePlot->binsPerPixel(); + static int n=0; + static int nkhz0=-999; + static int ntrz=0; + + df = m_fSample/32768.0; + if(nkhz != nkhz0) { + ui->widePlot->setNkhz(nkhz); //Why do we need both? + ui->widePlot->SetCenterFreq(nkhz); //Why do we need both? + ui->widePlot->setFQSO(nkhz,true); + nkhz0 = nkhz; + } + + //Average spectra over specified number, m_waterfallAvg + if (n==0) { + for (int i=0; i=m_waterfallAvg) { + for (int i=0; iwidePlot->plotWidth(); + qint64 sf = nkhz - 0.5*w*nbpp*df/1000.0; + if(sf != ui->widePlot->startFreq()) ui->widePlot->SetStartFreq(sf); + int i0=16384.0+(ui->widePlot->startFreq()-nkhz+0.001*m_fCal) * 1000.0/df + 0.5; + int i=i0; + for (int j=0; j<2048; j++) { + smax=0; + for (int k=0; ksmax) smax=splot[i]; + } + swide[j]=smax; + if(lstrong[1 + i/32]!=0) swide[j]=-smax; //Tag strong signals + } + +// Time according to this computer + qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; + int ntr = (ms/1000) % m_TRperiod; + + if((ndiskdata && ihsym <= m_waterfallAvg) || (!ndiskdata && ntrwidePlot->draw(swide,i0,splot); + } +} + +void WideGraph::on_waterfallAvgSpinBox_valueChanged(int n) +{ + m_waterfallAvg = n; +} + +void WideGraph::on_zeroSpinBox_valueChanged(int value) +{ + ui->widePlot->setPlotZero(value); +} + +void WideGraph::on_gainSpinBox_valueChanged(int value) +{ + ui->widePlot->setPlotGain(value); +} + +void WideGraph::keyPressEvent(QKeyEvent *e) +{ + switch(e->key()) + { + case Qt::Key_F11: + emit f11f12(11); + break; + case Qt::Key_F12: + emit f11f12(12); + break; + default: + e->ignore(); + } +} + +int WideGraph::QSOfreq() +{ + return ui->widePlot->fQSO(); +} + +int WideGraph::nSpan() +{ + return ui->widePlot->m_nSpan; +} + +float WideGraph::fSpan() +{ + return ui->widePlot->m_fSpan; +} + +int WideGraph::nStartFreq() +{ + return ui->widePlot->startFreq(); +} + +void WideGraph::wideFreezeDecode(int n) +{ + emit freezeDecode2(n); +} + +void WideGraph::setTol(int n) +{ + ui->widePlot->m_tol=n; + ui->widePlot->DrawOverlay(); + ui->widePlot->update(); +} + +int WideGraph::Tol() +{ + return ui->widePlot->m_tol; +} + +void WideGraph::setDF(int n) +{ + ui->widePlot->m_DF=n; + ui->widePlot->DrawOverlay(); + ui->widePlot->update(); +} + +void WideGraph::setFcal(int n) +{ + m_fCal=n; + ui->widePlot->setFcal(n); +} + +void WideGraph::setDecodeFinished() +{ + ui->widePlot->DecodeFinished(); +} + +int WideGraph::DF() +{ + return ui->widePlot->m_DF; +} + +void WideGraph::on_autoZeroPushButton_clicked() +{ + int nzero=ui->widePlot->autoZero(); + ui->zeroSpinBox->setValue(nzero); +} + +void WideGraph::setPalette(QString palette) +{ + ui->widePlot->setPalette(palette); +} +void WideGraph::setFsample(int n) +{ + m_fSample=n; + ui->widePlot->setFsample(n); +} + +void WideGraph::setMode65(int n) +{ + m_mode65=n; + ui->widePlot->setMode65(n); +} + +void WideGraph::on_cbSpec2d_toggled(bool b) +{ + ui->widePlot->set2Dspec(b); +} + +double WideGraph::fGreen() +{ + return ui->widePlot->fGreen(); +} + +void WideGraph::setPeriod(int n) +{ + m_TRperiod=n; +} + +void WideGraph::updateFreqLabel() +{ + auto rxFreq = QString {"%1"}.arg (ui->widePlot->rxFreq (), 10, 'f', 6); + rxFreq.insert (rxFreq.size () - 3, '.'); + ui->labFreq->setText (QString {"Center freq: %1"}.arg (rxFreq)); +} diff --git a/qmap/widegraph.h b/qmap/widegraph.h new file mode 100644 index 000000000..e678a6646 --- /dev/null +++ b/qmap/widegraph.h @@ -0,0 +1,73 @@ +#ifndef WIDEGRAPH_H +#define WIDEGRAPH_H + +#include + +namespace Ui { + class WideGraph; +} + +class WideGraph : public QDialog +{ + Q_OBJECT + +public: + explicit WideGraph (QString const& settings_filename, QWidget * parent = nullptr); + ~WideGraph(); + + void dataSink2(float s[], int nkhz, int ihsym, int ndiskdata, + uchar lstrong[]); + int QSOfreq(); + int nSpan(); + int nStartFreq(); + float fSpan(); + void saveSettings(); + void setDF(int n); + int DF(); + int Tol(); + void setTol(int n); + void setFcal(int n); + void setPalette(QString palette); + void setFsample(int n); + void setMode65(int n); + void setPeriod(int n); + void setDecodeFinished(); + double fGreen(); + void updateFreqLabel(); + void enableSetRxHardware(bool b); + + qint32 m_qsoFreq; + +signals: + void freezeDecode2(int n); + void f11f12(int n); + +public slots: + void wideFreezeDecode(int n); + +protected: + virtual void keyPressEvent( QKeyEvent *e ); + void resizeEvent(QResizeEvent* event); + +private slots: + void on_waterfallAvgSpinBox_valueChanged(int arg1); + void on_zeroSpinBox_valueChanged(int arg1); + void on_gainSpinBox_valueChanged(int arg1); + void on_autoZeroPushButton_clicked(); + void on_cbSpec2d_toggled(bool checked); + +private: + Ui::WideGraph * ui; + QString m_settings_filename; + bool m_bLockTxRx; +public: + double m_TxOffset; +private: + qint32 m_waterfallAvg; + qint32 m_fCal; + qint32 m_fSample; + qint32 m_mode65; + qint32 m_TRperiod=60; +}; + +#endif // WIDEGRAPH_H diff --git a/qmap/widegraph.ui b/qmap/widegraph.ui new file mode 100644 index 000000000..4e7fc9d54 --- /dev/null +++ b/qmap/widegraph.ui @@ -0,0 +1,329 @@ + + + WideGraph + + + + 0 + 0 + 1178 + 326 + + + + Dialog + + + + + + true + + + + 0 + 0 + + + + + 400 + 200 + + + + QFrame::StyledPanel + + + QFrame::Sunken + + + 1 + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 60 + 0 + + + + + 16777215 + 16777215 + + + + kHz + + + Span + + + 5 + + + 90 + + + 5 + + + 60 + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + N Avg + + + 1 + + + 20 + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Gain + + + -20 + + + 20 + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Zero + + + -100 + + + 100 + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + Auto Zero + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + 2D Spectrum + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + <html><head/><body><p>Center freq: 1296.065.000</p></body></html> + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + CPlotter + QFrame +
plotter.h
+ 1 +
+
+ + +
diff --git a/qmap/wsjt.ico b/qmap/wsjt.ico new file mode 100644 index 000000000..8a55550f5 Binary files /dev/null and b/qmap/wsjt.ico differ diff --git a/widgets/activeStations.cpp b/widgets/activeStations.cpp index b5ecbf737..619a710dd 100644 --- a/widgets/activeStations.cpp +++ b/widgets/activeStations.cpp @@ -23,8 +23,8 @@ ActiveStations::ActiveStations(QSettings * settings, QFont const& font, QWidget changeFont (font); read_settings (); ui->header_label2->setText(" N Call Grid Az S/N Freq Tx Age Pts"); - connect(ui->RecentStationsPlainTextEdit, SIGNAL(selectionChanged()), this, SLOT(select())); connect(ui->cbReadyOnly, SIGNAL(toggled(bool)), this, SLOT(on_cbReadyOnly_toggled(bool))); + connect(ui->RecentStationsPlainTextEdit, SIGNAL(cursorPositionChanged()), this, SLOT(on_textEdit_clicked())); } ActiveStations::~ActiveStations() @@ -57,9 +57,33 @@ void ActiveStations::write_settings () settings_->setValue("ReadyOnly",ui->cbReadyOnly->isChecked()); } -void ActiveStations::displayRecentStations(QString const& t) +void ActiveStations::displayRecentStations(QString mode, QString const& t) { - ui->RecentStationsPlainTextEdit->setPlainText(t); + if(mode!=m_mode) { + m_mode=mode; + if(m_mode=="Q65") { + ui->header_label2->setText(" N Frx Fsked S/N Call Grid Tx Age"); + ui->label->setText("QSOs:"); + } else if(m_mode=="Q65-pileup") { + ui->header_label2->setText(" N Freq Call Grid El Age(h)"); + } else { + ui->header_label2->setText(" N Call Grid Az S/N Freq Tx Age Pts"); + ui->label->setText("Rate:"); + } + bool b=(m_mode.left(3)=="Q65"); + ui->bandChanges->setVisible(!b); + ui->cbReadyOnly->setVisible(!b); + ui->label_2->setVisible(!b); + ui->label_3->setVisible(!b); + ui->score->setVisible(!b); + ui->sbMaxRecent->setVisible(!b); + + b=(m_mode!="Q65-pileup"); + ui->sbMaxAge->setVisible(b); + ui->label->setVisible(b); + ui->rate->setVisible(b); + } + ui->RecentStationsPlainTextEdit->insertPlainText(t); } int ActiveStations::maxRecent() @@ -72,14 +96,19 @@ int ActiveStations::maxAge() return ui->sbMaxAge->value(); } -void ActiveStations::select() +void ActiveStations::on_textEdit_clicked() { if(m_clickOK) { - qint64 msec=QDateTime::currentMSecsSinceEpoch(); - if((msec-m_msec0)<500) return; - m_msec0=msec; - int nline=ui->RecentStationsPlainTextEdit->textCursor().blockNumber(); - emit callSandP(nline); + QTextCursor cursor; + QString text; + cursor = ui->RecentStationsPlainTextEdit->textCursor(); + cursor.movePosition(QTextCursor::StartOfBlock); + cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); + text = cursor.selectedText(); + if(text!="") { + int nline=text.left(2).toInt()-1; + emit callSandP(nline); + } } } diff --git a/widgets/activeStations.h b/widgets/activeStations.h index 1897f08d9..69c065537 100644 --- a/widgets/activeStations.h +++ b/widgets/activeStations.h @@ -19,7 +19,7 @@ class ActiveStations public: explicit ActiveStations(QSettings *, QFont const&, QWidget * parent = 0); ~ActiveStations(); - void displayRecentStations(QString const&); + void displayRecentStations(QString mode, QString const&); void changeFont (QFont const&); int maxRecent(); int maxAge(); @@ -29,21 +29,22 @@ public: void setRate(int n); void setBandChanges(int n); void setScore(int n); - Q_SLOT void select(); bool m_clickOK=false; bool m_bReadyOnly; -signals: - void callSandP(int nline); - void activeStationsDisplay(); - private: void read_settings (); void write_settings (); + Q_SIGNAL void callSandP(int nline); + Q_SIGNAL void activeStationsDisplay(); + Q_SIGNAL void cursorPositionChanged(); + Q_SLOT void on_cbReadyOnly_toggled(bool b); + Q_SLOT void on_textEdit_clicked(); qint64 m_msec0=0; + QString m_mode=""; QSettings * settings_; QScopedPointer ui; diff --git a/widgets/activeStations.ui b/widgets/activeStations.ui index 02b1f618a..262fa7d09 100644 --- a/widgets/activeStations.ui +++ b/widgets/activeStations.ui @@ -50,7 +50,7 @@ - 16777215 + 80 16777215 @@ -82,6 +82,12 @@ 0 + + + 80 + 16777215 + + <html><head/><body><p>Set maximum elapsed number of T/R sequences.</p></body></html> @@ -92,7 +98,7 @@ 0 - 10 + 60 4 @@ -189,7 +195,7 @@ - Call Grid Age Points + diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 845441c0a..880c19ff3 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -185,13 +185,16 @@ extern "C" { void save_dxbase_(char* dxbase, FCL len); void indexx_(float arr[], int* n, int indx[]); + + void get_q3list_(char* fname, int* nlist, char* list, FCL len1, FCL len2); + + void jpl_setup_(char* fname, FCL len); } int volatile itone[MAX_NUM_SYMBOLS]; //Audio tones for all Tx symbols int volatile itone0[MAX_NUM_SYMBOLS]; //Dummy array, data not actually used int volatile icw[NUM_CW_SYMBOLS]; //Dits for CW ID dec_data_t dec_data; // for sharing with Fortran - int outBufSize; int rc; qint32 g_iptt {0}; @@ -212,6 +215,17 @@ bool m_displayBand = false; bool no_a7_decodes = false; bool keep_frequency = false; +QSharedMemory mem_qmap("mem_qmap"); //Memory segment to be shared (optionally) with QMAP +struct { + int ndecodes; //Number of QMAP decodes available (so far) + int ncand; //Number of QMAP candidates considered for decoding + int nQDecoderDone; //QMAP decoder is finished (0 or 1) + int nWDecoderBusy; //WSJT-X decoder is busy (0 or 1) + int nWTransmitting; //WSJT-X is transmitting (0 or 1) + char result[50][60]; //Decodes as character*60 arrays +} qmapcom; +int* ipc_qmap; + namespace { Radio::Frequency constexpr default_frequency {14074000}; @@ -453,6 +467,19 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_optimizingProgress.setAutoReset (false); m_optimizingProgress.setMinimumDuration (15000); // only show after 15s delay + //Attach or create a memory segment to be shared with QMAP. + int memSize=4096; + if(!mem_qmap.attach()) { + if(!mem_qmap.create(memSize)) { + MessageBox::information_message (this, + "Unable to create shared memory segment mem_qmap."); + } + } + ipc_qmap = (int*)mem_qmap.data(); + mem_qmap.lock(); + memset(ipc_qmap,0,memSize); //Zero all of QMAP shared memory + mem_qmap.unlock(); + // Closedown. connect (ui->actionExit, &QAction::triggered, this, &QMainWindow::close); @@ -880,6 +907,10 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->lh_decodes_headings_label->setText(t); ui->rh_decodes_headings_label->setText(t); readSettings(); //Restore user's setup parameters + if(m_mode=="Q65") { + m_score=0; + read_log(); + } m_audioThread.start (m_audioThreadPriority); #ifdef WIN32 @@ -1049,12 +1080,16 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->labDXped->setStyleSheet("QLabel {background-color: red; color: white;}"); ui->pbBestSP->setVisible(m_mode=="FT4"); + QString jpleph = m_config.data_dir().absoluteFilePath("JPLEPH"); + jpl_setup_(const_cast(jpleph.toLocal8Bit().constData()),256); + // this must be the last statement of constructor if (!m_valid) throw std::runtime_error {"Fatal initialization exception"}; } void MainWindow::not_GA_warning_message () { + /* ### TEMPORARY ### MessageBox::critical_message (this, "This is a pre-release version of WSJT-X 2.6.0 made\n" "available for testing purposes. By design it will\n" @@ -1063,6 +1098,7 @@ void MainWindow::not_GA_warning_message () if (now >= QDateTime {{2023, 03, 31}, {23, 59, 59, 999}, Qt::UTC}) { Q_EMIT finished (); } + */ } void MainWindow::initialize_fonts () @@ -1118,6 +1154,7 @@ MainWindow::~MainWindow() m_audioThread.quit (); m_audioThread.wait (); remove_child_from_event_filter (this); + memset(ipc_qmap,0,4096); //Zero all of QMAP shared memory } //-------------------------------------------------------- writeSettings() @@ -1378,7 +1415,6 @@ void MainWindow::readSettings() if (displayContestLog) on_contest_log_action_triggered (); if(displayActiveStations) { on_actionActiveStations_triggered(); -// QFile f {m_config.writeable_data_dir ().absoluteFilePath ("activeCalls.txt")}; } } @@ -2422,6 +2458,7 @@ void MainWindow::displayDialFrequency () void MainWindow::statusChanged() { + if (m_specOp==SpecOp::Q65_PILEUP && m_mode != "Q65") on_actionQ65_triggered(); statusUpdate (); QFile f {m_config.temp_dir ().absoluteFilePath ("wsjtx_status.txt")}; if(f.open(QFile::WriteOnly | QIODevice::Text)) { @@ -2661,6 +2698,11 @@ void MainWindow::on_actionQSG_X250_M3_triggered() QDesktopServices::openUrl (QUrl {"https://wsjt.sourceforge.io/WSJTX_2.5.0_MAP65_3.0_Quick_Start.pdf"}); } +void MainWindow::on_actionQuick_Start_Guide_to_WSJT_X_2_7_0_and_QMAP_triggered() +{ + QDesktopServices::openUrl (QUrl {"https://wsjt.sourceforge.io/Quick_Start_WSJT-X_2.7_QMAP.pdf"}); +} + void MainWindow::on_actionOnline_User_Guide_triggered() //Display manual { #if defined (CMAKE_BUILD) @@ -2914,6 +2956,7 @@ void MainWindow::on_actionActiveStations_triggered() connect(m_ActiveStationsWidget.data(), SIGNAL(callSandP(int)),this,SLOT(callSandP2(int))); connect(m_ActiveStationsWidget.data(), SIGNAL(activeStationsDisplay()),this,SLOT(ARRL_Digi_Display())); m_ActiveStationsWidget->setScore(m_score); + if(m_mode=="Q65") m_ActiveStationsWidget->setRate(m_score); } void MainWindow::on_actionOpen_triggered() //Open File @@ -3231,6 +3274,7 @@ void MainWindow::msgAvgDecode2() void MainWindow::decode() //decode() { if(m_decoderBusy) return; //Don't start decoder if it's already busy. + m_fetched=0; QDateTime now = QDateTime::currentDateTimeUtc (); if( m_dateTimeLastTX.isValid () ) { qint64 isecs_since_tx = m_dateTimeLastTX.secsTo(now); @@ -3283,7 +3327,9 @@ void MainWindow::decode() //decode() dec_data.params.ndiskdat=0; if(m_diskData) dec_data.params.ndiskdat=1; dec_data.params.nfa=m_wideGraph->nStartFreq(); - dec_data.params.nfSplit=m_wideGraph->Fmin(); + dec_data.params.nfSplit=m_wideGraph->Fmin(); // Not used any more? + if(dec_data.params.nfSplit==8) dec_data.params.nfSplit=1; + dec_data.params.nfb=m_wideGraph->Fmax(); if(m_mode=="FT8" and SpecOp::HOUND == m_specOp and !ui->cbRxAll->isChecked()) dec_data.params.nfb=1000; if(m_mode=="FT8" and SpecOp::FOX == m_specOp ) dec_data.params.nfqso=200; @@ -3339,7 +3385,10 @@ void MainWindow::decode() //decode() dec_data.params.emedelay=0.0; if(m_config.decode_at_52s()) dec_data.params.emedelay=2.5; dec_data.params.minSync=ui->syncSpinBox->isVisible () ? m_minSync : 0; - dec_data.params.nexp_decode = static_cast (m_specOp); + dec_data.params.nexp_decode=int(m_specOp); + if(dec_data.params.nexp_decode==5) dec_data.params.nexp_decode=1; //NA VHF, WW Digi, ARRL Digi contests + if(dec_data.params.nexp_decode==8) dec_data.params.nexp_decode=1; //and Q65 Pileup all use 4-character + if(dec_data.params.nexp_decode==9) dec_data.params.nexp_decode=1; //grid exchange if(m_config.single_decode()) dec_data.params.nexp_decode += 32; if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64; if(m_mode.startsWith("FST4")) dec_data.params.nexp_decode += 256*(ui->sbNB->value()+3); @@ -3407,8 +3456,8 @@ void MainWindow::decode() //decode() decodeBusy(true); } } - if((m_mode=="FT4" or (m_mode=="FT8" and m_ihsym==41) or m_diskData) and - m_ActiveStationsWidget != NULL) m_ActiveStationsWidget->erase(); + if((m_mode=="FT4" or (m_mode=="FT8" and m_ihsym==41) or m_diskData or m_mode=="Q65") and + m_ActiveStationsWidget != NULL) m_ActiveStationsWidget->erase(); //TEMP } void::MainWindow::fast_decode_done() @@ -3521,6 +3570,58 @@ void MainWindow::decodeDone () ARRL_Digi_Display(); // Update the ARRL_DIGI display } if(m_mode!="FT8" or dec_data.params.nzhsym==50) m_nDecodes=0; + + if(m_mode=="Q65" and (m_specOp==SpecOp::NA_VHF or m_specOp==SpecOp::ARRL_DIGI + or m_specOp==SpecOp::WW_DIGI or m_specOp==SpecOp::Q65_PILEUP) + and m_ActiveStationsWidget!=NULL) { + + int nlist=0; + char list[2000]; + char line[36]; + list[0]=0; +// QString t="1200 W9XYZ EN37"; + auto fname {QDir::toNativeSeparators(m_config.writeable_data_dir ().absoluteFilePath ("tsil.3q"))}; + +// morse_(const_cast (m_config.my_callsign ().toLatin1().constData()), +// const_cast (icw), &m_ncw, (FCL)m_config.my_callsign().length()); + get_q3list_(const_cast (fname.toLatin1().constData()), &nlist, + &list[0], (FCL)fname.length(), (FCL)2000); + QString t=""; + QString t0=""; + for(int i=0; isetClickOK(false); + m_ActiveStationsWidget->displayRecentStations("Q65-pileup",t); + m_ActiveStationsWidget->setClickOK(true); + } +} + +void MainWindow::read_log() +{ + static QFile f {QDir {QStandardPaths::writableLocation (QStandardPaths::DataLocation)}.absoluteFilePath ("wsjtx.log")}; + f.open(QIODevice::ReadOnly); + if(f.isOpen()) { + QTextStream in(&f); + QString line,callsign; + for(int i=0; i<99999; i++) { + line=in.readLine(); + if(line.length()<=0) break; + callsign=line.mid(40,6); + int n=callsign.indexOf(","); + if(n>0) callsign=callsign.left(n); + m_EMEworked[callsign]=true; + m_score++; + } + f.close(); + } + if(m_ActiveStationsWidget!=NULL) { + m_ActiveStationsWidget->setScore(m_score); + if(m_mode=="Q65") m_ActiveStationsWidget->setRate(m_score); + } } void MainWindow::ARRL_Digi_Update(DecodedText dt) @@ -3654,23 +3755,56 @@ void MainWindow::ARRL_Digi_Display() t += (t1 + list[k] + "\n"); if(i>=maxRecent) break; } - if(m_ActiveStationsWidget!=NULL) m_ActiveStationsWidget->displayRecentStations(t); + if(m_ActiveStationsWidget!=NULL) m_ActiveStationsWidget->displayRecentStations(m_mode,t); m_ActiveStationsWidget->setClickOK(true); } void MainWindow::callSandP2(int n) { - if(m_ready2call[n]=="") return; + if(m_mode!="Q65" and m_ready2call[n]=="") return; QStringList w=m_ready2call[n].split(' ', SkipEmptyParts); - m_deCall=w[0]; - m_deGrid=w[1]; + if(m_mode=="Q65" and m_specOp==SpecOp::Q65_PILEUP) { + // This is the mode for 6m EME DXpeditions + w=m_callers[n].split(' ', SkipEmptyParts); + m_deCall=w[2]; + m_deGrid=w[3]; + m_bDoubleClicked=true; //### needed? + m_txFirst=true; + ui->dxCallEntry->setText(m_deCall); + ui->dxGridEntry->setText(m_deGrid); + ui->txFirstCheckBox->setChecked(m_txFirst); + genStdMsgs("-22"); + setTxMsg(3); + if (!ui->autoButton->isChecked()) ui->autoButton->click(); // Enable Tx + if(m_transmitting) m_restart=true; +// qDebug() << "aa" << int(m_specOp) << n << m_callers[n]; + return; + } + + if(m_mode=="Q65") { + double kHz=w[1].toDouble(); + int nMHz=m_freqNominal/1000000; + m_freqNominal=(nMHz*1000 + kHz)* 1000; + m_deCall=w[3]; + m_deGrid=w[4]; + m_txFirst=(w[5]=="0"); +// ui->TxFreqSpinBox->setValue(1500); + } else { + m_deCall=w[0]; + m_deGrid=w[1]; + ui->RxFreqSpinBox->setValue(w[4].toInt()); + m_txFirst = (w[5]=="0"); + } m_bDoubleClicked=true; //### needed? ui->dxCallEntry->setText(m_deCall); ui->dxGridEntry->setText(m_deGrid); - genStdMsgs(w[3]); //### real SNR would be better here? - ui->RxFreqSpinBox->setValue(w[4].toInt()); + if(m_mode=="Q65") { + ui->rptSpinBox->setValue(w[2].toInt()); + genStdMsgs(w[2]); + } else { + genStdMsgs(w[3]); + } setTxMsg(1); - m_txFirst = (w[5]=="0"); ui->txFirstCheckBox->setChecked(m_txFirst); if (!ui->autoButton->isChecked()) ui->autoButton->click(); // Enable Tx if(m_transmitting) m_restart=true; @@ -4774,7 +4908,8 @@ void MainWindow::guiUpdate() SpecOp::FIELD_DAY==m_specOp or SpecOp::RTTY==m_specOp or SpecOp::WW_DIGI==m_specOp or - SpecOp::ARRL_DIGI==m_specOp) ) { + SpecOp::ARRL_DIGI==m_specOp or + SpecOp::Q65_PILEUP==m_specOp) ) { //We're in a contest-like mode other than EU_VHF: start QSO with Tx2. ui->tx1->setEnabled(false); ui->txb1->setEnabled(false); @@ -4787,9 +4922,24 @@ void MainWindow::guiUpdate() } if(m_mode=="Echo" and !m_monitoring and !m_auto and !m_diskData) m_echoRunning=false; + if(m_mode=="Q65") { + mem_qmap.lock(); + int n=0; + if(m_decoderBusy) n=1; + ipc_qmap[3]=n; + n=0; + if(m_transmitting) n=1; + ipc_qmap[4]=n; + if(ipc_qmap[0] > 0) { //ndecodes + memcpy(&qmapcom, (char*)ipc_qmap, sizeof(qmapcom)); //Fetch the new decode(s) + readWidebandDecodes(); + } + mem_qmap.unlock(); + } + //Once per second (onesec) if(nsec != m_sec0) { -// qDebug() << "AAA" << nsec << m_bFastMode << m_bFast9; +// qDebug() << "AAA" << nsec%60 << int(m_specOp); if(m_mode=="FST4") chk_FST4_freq_range(); m_currentBand=m_config.bands()->find(m_freqNominal); @@ -5403,7 +5553,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie or bEU_VHF_w2 or (m_QSOProgress==CALLING))) { if(message_words.at(4).contains(grid_regexp) and SpecOp::EU_VHF!=m_specOp) { if((SpecOp::NA_VHF==m_specOp or SpecOp::WW_DIGI==m_specOp or - SpecOp::ARRL_DIGI==m_specOp ) + SpecOp::ARRL_DIGI==m_specOp or SpecOp::Q65_PILEUP==m_specOp) and bContestOK) { setTxMsg(3); m_QSOProgress=ROGER_REPORT; @@ -5767,7 +5917,7 @@ void MainWindow::genCQMsg () QString t=ui->tx6->text(); QStringList tlist=t.split(" "); if((m_mode=="FT4" or m_mode=="FT8" or m_mode=="MSK144" || "Q65" == m_mode) and - SpecOp::NONE != m_specOp and SpecOp::HOUND != m_specOp and + SpecOp::NONE != m_specOp and SpecOp::HOUND != m_specOp and SpecOp::Q65_PILEUP != m_specOp and ( tlist.at(1)==my_callsign or tlist.at(2)==my_callsign ) and stdCall(my_callsign)) { @@ -5891,6 +6041,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) if(SpecOp::NA_VHF==m_specOp) sent=my_grid; if(SpecOp::WW_DIGI==m_specOp) sent=my_grid; if(SpecOp::ARRL_DIGI==m_specOp) sent=my_grid; + if(SpecOp::Q65_PILEUP==m_specOp) sent=my_grid; if(SpecOp::FIELD_DAY==m_specOp) sent=m_config.Field_Day_Exchange(); if(SpecOp::RTTY==m_specOp) { sent=rst + m_config.RTTY_Exchange(); @@ -6315,6 +6466,21 @@ void MainWindow::on_RoundRobin_currentTextChanged(QString text) ui->sbTxPercent->setEnabled (text == tr ("Random")); } +void MainWindow::mousePressEvent(QMouseEvent *event) +{ + if(ui->q65Button->hasFocus() && (event->button() & Qt::RightButton)) { + m_specOp=m_config.special_op_id(); + if (m_specOp==SpecOp::Q65_PILEUP) { + m_config.setSpecial_None(); + } else { + m_config.setSpecial_Q65_Pileup(); + ui->houndButton->setChecked(false); + ui->houndButton->setStyleSheet(""); + } + m_specOp=m_config.special_op_id(); + on_actionQ65_triggered(); + } +} void MainWindow::on_dxCallEntry_textChanged (QString const& call) { @@ -6482,16 +6648,22 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call, } if(m_ActiveStationsWidget!=NULL) { - QString band=m_config.bands()->find(dial_freq); - activeWorked(call,band); - int points=m_activeCall[call].points; - m_score += points; - ARRL_logged al; - al.time=QDateTime::currentDateTimeUtc(); - al.band=band; - al.points=points; - m_arrl_log.append(al); - updateRate(); + if(m_mode=="Q65") { + m_score++; + m_EMEworked[call]=true; + m_ActiveStationsWidget->setRate(m_score); + } else { + QString band=m_config.bands()->find(dial_freq); + activeWorked(call,band); + int points=m_activeCall[call].points; + m_score += points; + ARRL_logged al; + al.time=QDateTime::currentDateTimeUtc(); + al.band=band; + al.points=points; + m_arrl_log.append(al); + updateRate(); + } } m_xSent.clear (); @@ -6825,15 +6997,17 @@ void MainWindow::on_actionFT8_triggered() if(SpecOp::EU_VHF==m_specOp) t0="EU VHF"; if(SpecOp::FIELD_DAY==m_specOp) t0="Field Day"; if(SpecOp::RTTY==m_specOp) t0="FT RU"; - if(SpecOp::WW_DIGI==m_specOp) t0="WW_DIGI"; - if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL_DIGI"; + if(SpecOp::WW_DIGI==m_specOp) t0="WW Digi"; + if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL Digi"; + if(SpecOp::Q65_PILEUP==m_specOp) t0="Q65 Pileup"; if(t0=="") { ui->labDXped->setVisible(false); } else { ui->labDXped->setVisible(true); ui->labDXped->setText(t0); } - on_contest_log_action_triggered(); + qDebug() << "aa" << int(m_specOp); + if(m_specOp!=SpecOp::Q65_PILEUP) on_contest_log_action_triggered(); } if((SpecOp::FOX==m_specOp or SpecOp::HOUND==m_specOp) and !m_config.split_mode() and !m_bWarnedSplit) { @@ -7061,17 +7235,17 @@ void MainWindow::on_actionQ65_triggered() if(SpecOp::EU_VHF==m_specOp) t0="EU VHF"; if(SpecOp::FIELD_DAY==m_specOp) t0="Field Day"; if(SpecOp::RTTY==m_specOp) t0="FT RU"; - if(SpecOp::WW_DIGI==m_specOp) t0="WW_DIGI"; - if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL_DIGI"; + if(SpecOp::WW_DIGI==m_specOp) t0="WW Digi"; + if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL Digi"; + if(SpecOp::Q65_PILEUP==m_specOp) t0="Q65 Pileup"; if(t0=="") { ui->labDXped->setVisible(false); } else { ui->labDXped->setVisible(true); ui->labDXped->setText(t0); } - on_contest_log_action_triggered(); + if(m_specOp!=SpecOp::Q65_PILEUP) on_contest_log_action_triggered(); } - } void MainWindow::on_actionMSK144_triggered() @@ -7247,6 +7421,10 @@ void MainWindow::on_actionFreqCal_triggered() void MainWindow::switch_mode (Mode mode) { + if (m_mode != "Q65" && m_specOp==SpecOp::Q65_PILEUP) { + m_config.setSpecial_None(); + m_specOp=m_config.special_op_id(); + } m_fastGraph->setMode(m_mode); m_config.frequencies ()->filter (m_config.region (), mode, true); // filter on current time auto const& row = m_config.frequencies ()->best_working_frequency (m_freqNominal); @@ -7450,8 +7628,12 @@ void MainWindow::on_reset_cabrillo_log_action_triggered () if(m_config.RTTY_Exchange()!="SCC") ui->sbSerialNumber->setValue(1); m_logBook.contest_log ()->reset (); m_activeCall.clear(); //Erase the QMap of active calls + m_EMECall.clear(); //ditto for EME calls m_score=0; - if (m_ActiveStationsWidget) m_ActiveStationsWidget->setScore(0); + if (m_ActiveStationsWidget) { + m_ActiveStationsWidget->setScore(0); + if(m_mode=="Q65") m_ActiveStationsWidget->setRate(0); + } } } @@ -9175,6 +9357,107 @@ void MainWindow::write_transmit_entry (QString const& file_name) } } +void MainWindow::readWidebandDecodes() +{ + if(m_ActiveStationsWidget==NULL) return; + + int nhr=0; + int nmin=0; + int nsnr=0; + while(m_fetched < qmapcom.ndecodes) { + QString line=QString::fromLatin1(qmapcom.result[m_fetched]); + nhr=line.mid(0,2).toInt(); + nmin=line.mid(2,2).toInt(); + double frx=line.mid(4,9).toDouble(); + double fsked=line.mid(13,7).toDouble(); + QString msg=line.mid(34,-1); + int i1=msg.indexOf(" "); + int i2=i1 +1 + msg.mid(i1+1,-1).indexOf(" "); + QString dxcall=msg.mid(i1+1,i2-i1-1); + QString w3=msg.mid(i2+1,-1); + nsnr=line.mid(29,3).toInt(); + m_EMECall[dxcall].frx=frx; + m_EMECall[dxcall].fsked=fsked; + m_EMECall[dxcall].nsnr=nsnr; + m_EMECall[dxcall].t=60*nhr + nmin; + if(w3.contains(grid_regexp)) m_EMECall[dxcall].grid4=w3; + m_fetched++; + + Frequency frequency = (m_freqNominal/1000000) * 1000000 + int(fsked*1000.0); + bool bCQ=line.contains(" CQ "); + bool bFromDisk=qmapcom.nQDecoderDone==2; + if(!bFromDisk and (m_EMECall[dxcall].grid4.contains(grid_regexp) or bCQ)) { + qDebug() << "To PSKreporter:" << dxcall << m_EMECall[dxcall].grid4 << frequency << m_mode << nsnr; + if (!m_psk_Reporter.addRemoteStation (dxcall, m_EMECall[dxcall].grid4, frequency, m_mode, nsnr)) { + showStatusMessage (tr ("Spotting to PSK Reporter unavailable")); + } + } + } + + if (m_config.spot_to_psk_reporter ()) { + m_psk_Reporter.sendReport(); // Upload any queued spots + } + +// Update "m_wEMECall" by reading qmap_decodes.txt + QMap::iterator i; + QString t=""; + QString t1; + QString dxcall; + QString dxgrid4; + QStringList list; + float f[100]; + int indx[100]; + int maxAge=m_ActiveStationsWidget->maxAge(); + + m_ActiveStationsWidget->setClickOK(false); + int k=0; + for(i=m_EMECall.begin(); i!=m_EMECall.end(); i++) { + int snr=i->nsnr; + int odd=1 - (i->t)%2; + int age=60*nhr + nmin - (i->t); + if(age<0) age += 1440; + if(age<=maxAge) { + dxcall=(i.key()+" ").left(8); + dxgrid4=(i->grid4+"... ").left(4); + if(m_EMEworked[dxcall.trimmed()]) { + t1=t1.asprintf("%7.3f %5.1f %+03d %8s %4s %3d %3d\n",i->frx,i->fsked,snr,dxcall.toLatin1().constData(), + dxgrid4.toLatin1().constData(),odd,age); + } else { + t1=t1.asprintf("%7.3f %5.1f %+03d %8s %4s %3d %3d*\n",i->frx,i->fsked,snr,dxcall.toLatin1().constData(), + dxgrid4.toLatin1().constData(),odd,age); + } + f[k]=i->fsked; + list.append(t1); + k++; + } + m_ActiveStationsWidget->setClickOK(true); + } + + if(k>0) { + t1=""; + int kz=k; + indexx_(f,&kz,indx); + for(int k=0; kerase(); + m_ActiveStationsWidget->displayRecentStations(m_mode,t); + m_ActiveStationsWidget->setClickOK(true); + } + if(ipc_qmap[2]!=0) { + m_fetched=0; + ipc_qmap[0]=0; + ipc_qmap[2]=0; + } +} + // -------------------------- Code for FT8 DXpedition Mode --------------------------- void MainWindow::hound_reply () @@ -10025,15 +10308,16 @@ void MainWindow::chkFT4() if(SpecOp::EU_VHF==m_specOp) t0="EU VHF"; if(SpecOp::FIELD_DAY==m_specOp) t0="Field Day"; if(SpecOp::RTTY==m_specOp) t0="FT RU"; - if(SpecOp::WW_DIGI==m_specOp) t0="WW_DIGI"; - if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL_DIGI"; + if(SpecOp::WW_DIGI==m_specOp) t0="WW Digi"; + if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL Digi"; + if(SpecOp::Q65_PILEUP==m_specOp) t0="Q65 Pileup"; if(t0=="") { ui->labDXped->setVisible(false); } else { ui->labDXped->setVisible(true); ui->labDXped->setText(t0); } - on_contest_log_action_triggered(); + if(m_specOp!=SpecOp::Q65_PILEUP) on_contest_log_action_triggered(); } if (SpecOp::HOUND == m_specOp or SpecOp::FOX == m_specOp) { ui->labDXped->setVisible(false); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index a2558fe81..a0cf8328b 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -167,6 +167,7 @@ private slots: void on_actionQSG_FST4_triggered(); void on_actionQSG_Q65_triggered(); void on_actionQSG_X250_M3_triggered(); + void on_actionQuick_Start_Guide_to_WSJT_X_2_7_0_and_QMAP_triggered(); void on_actionOnline_User_Guide_triggered(); void on_actionLocal_User_Guide_triggered(); void on_actionWide_Waterfall_triggered(); @@ -211,6 +212,7 @@ private slots: void on_txb6_clicked(); void on_lookupButton_clicked(); void on_addButton_clicked(); + void mousePressEvent(QMouseEvent *event) override; void on_dxCallEntry_textChanged (QString const&); void on_dxGridEntry_textChanged (QString const&); void on_dxCallEntry_editingFinished(); @@ -373,6 +375,7 @@ private: void setColorHighlighting(); void chkFT4(); bool elide_tx1_not_allowed () const; + void readWidebandDecodes(); QProcessEnvironment const& m_env; NetworkAccessManager m_network_manager; @@ -508,6 +511,7 @@ private: qint32 m_score=0; qint32 m_fDop=0; qint32 m_echoSec0=0; + qint32 m_fetched=0; bool m_btxok; //True if OK to transmit bool m_diskData; @@ -665,6 +669,7 @@ private: QString m_deCall; QString m_deGrid; QString m_ready2call[50]; + QString m_callers[40]; QSet m_pfx; QSet m_sfx; @@ -701,6 +706,19 @@ private: }; QMap m_activeCall; //Key = callsign, value = grid4, az, points for ARRL_DIGI + struct EMECall + { + QString grid4; + double frx; + double fsked; + qint32 nsnr; + qint32 t; + bool worked; + }; + QMap m_EMECall; + + QMap m_EMEworked; + struct RecentCall { qint64 dialFreq; @@ -848,6 +866,7 @@ private: Q_SLOT void ARRL_Digi_Display(); void ARRL_Digi_Update(DecodedText dt); void activeWorked(QString call, QString band); + void read_log(); }; extern int killbyname(const char* progName); diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index e5ed6cefe..21ce1fb1b 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -42,6 +42,7 @@ 10 + 50 false @@ -185,6 +186,7 @@ 10 + 50 false @@ -2982,7 +2984,7 @@ QLabel[oob="true"] { - Switch to Q65 mode + <html><head/><body><p>Switch to Q65 mode. Right-click to toggle Q65 Pileup mode On/Off.</p></body></html> Q65 @@ -3151,7 +3153,7 @@ QPushButton[state="ok"] { 0 0 880 - 22 + 21 @@ -3229,6 +3231,7 @@ QPushButton[state="ok"] { + @@ -3805,6 +3808,11 @@ QPushButton[state="ok"] { Active Stations + + + Quick-Start Guide to WSJT-X 2.7.0 and QMAP + + diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index da211a228..f9dc521d9 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -280,27 +280,28 @@ void CPlotter::draw(float swide[], bool bScroll, bool bRed) painter2D.drawText(x1-4,y,"73"); } - if(bRed and m_bQ65_Sync) { //Plot the Q65 red/orange sync curves + if(bRed and m_bQ65_Sync) { //Plot the Q65 orange (current) and red (average) sync curves int k=0; int k2=0; std::ifstream f; f.open(m_redFile.toLatin1()); if(f) { int x,y; - float freq,xdt,smin,smax,sync,sync2; + float freq,xdt,smin,smax,sync_avg,sync_current; f >> xdt >> smin >> smax; if(f) { for(int i=0; i<99999; i++) { - f >> freq >> sync >> sync2; + f >> freq >> sync_avg >> sync_current; if(!f or f.eof() or k>=MAX_SCREENSIZE or k2>=MAX_SCREENSIZE) break; x=XfromFreq(freq); - if(sync > -99.0 and (smin!=0.0 or smax != 0.0)) { - y=m_h2*(0.9 - 0.09*gain2d*sync) - m_plot2dZero - 10; - LineBuf2[k2].setX(x); //Red sync curve + // Plot the red curve only if we have averaged 2 or more Rx sequences. + if(sync_avg > -99.0 and (smin!=0.0 or smax != 0.0)) { + y=m_h2*(0.9 - 0.09*gain2d*gain2d*sync_avg) - m_plot2dZero - 10; + LineBuf2[k2].setX(x); //Red sync curve (average) LineBuf2[k2].setY(y); k2++; } - y=m_h2*(0.9 - 0.09*gain2d*sync2) - m_plot2dZero; + y=m_h2*(0.9 - 0.09*gain2d*gain2d*sync_current) - m_plot2dZero; LineBuf3[k].setX(x); //Orange sync curve LineBuf3[k].setY(y); k++;