mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	First functional decoder for QRA01.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6805 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									6a8e4a7d01
								
							
						
					
					
						commit
						529ad6eec9
					
				@ -30,7 +30,7 @@ subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials,     &
 | 
			
		||||
! NB: cx has sample rate 12000*77125/672000 = 1378.125 Hz
 | 
			
		||||
 | 
			
		||||
! Check for a shorthand message
 | 
			
		||||
  if(single_decode) then
 | 
			
		||||
  if(single_decode .and. mode65.ne.101) then
 | 
			
		||||
     call sh65(cx,n5,mode65,ntol,xdf,nspecial,sync2)
 | 
			
		||||
     if(nspecial.gt.0) then
 | 
			
		||||
        a=0.
 | 
			
		||||
@ -96,7 +96,7 @@ subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials,     &
 | 
			
		||||
  qual0=-1.e30
 | 
			
		||||
  minsmo=0
 | 
			
		||||
  maxsmo=0
 | 
			
		||||
  if(mode65.ge.2) then
 | 
			
		||||
  if(mode65.ge.2 .and. mode65.ne.101) then
 | 
			
		||||
     minsmo=nint(width/df)
 | 
			
		||||
     maxsmo=2*minsmo
 | 
			
		||||
  endif
 | 
			
		||||
 | 
			
		||||
@ -84,7 +84,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
 | 
			
		||||
!$omp parallel sections num_threads(2) copyin(/timer_private/) shared(ndecoded) if(.true.) !iif() needed on Mac
 | 
			
		||||
 | 
			
		||||
!$omp section
 | 
			
		||||
  if(params%nmode.eq.65 .or. (params%nmode.eq.(65+9) .and. params%ntxmode.eq.65)) then
 | 
			
		||||
  if(params%nmode.eq.65 .or. params%nmode.eq.165 .or.                      &
 | 
			
		||||
       (params%nmode.eq.(65+9) .and. params%ntxmode.eq.65)) then
 | 
			
		||||
! We're in JT65 mode, or should do JT65 first
 | 
			
		||||
     if(newdat65) dd(1:npts65)=id2(1:npts65)
 | 
			
		||||
     nf1=params%nfa
 | 
			
		||||
@ -274,9 +275,14 @@ contains
 | 
			
		||||
             endif
 | 
			
		||||
          endif
 | 
			
		||||
       endif
 | 
			
		||||
       if(ft.ge.100) then
 | 
			
		||||
          write(*,1009) params%nutc,snr,dt,freq,csync,decoded,ft-100
 | 
			
		||||
1009      format(i4.4,i4,f5.1,i5,1x,a2,1x,a22,i2)
 | 
			
		||||
       else
 | 
			
		||||
          write(*,1010) params%nutc,snr,dt,freq,csync,decoded,cflags
 | 
			
		||||
1010      format(i4.4,i4,f5.1,i5,1x,a2,1x,a22,1x,a3)
 | 
			
		||||
       endif
 | 
			
		||||
    endif
 | 
			
		||||
 | 
			
		||||
    write(13,1012) params%nutc,nint(sync),snr,dt,float(freq),drift,    &
 | 
			
		||||
         decoded,ft,nsum,nsmo
 | 
			
		||||
 | 
			
		||||
@ -61,6 +61,19 @@ subroutine extract(s3,nadd,mode65,ntrials,naggressive,ndepth,nflip,     &
 | 
			
		||||
     go to 1
 | 
			
		||||
  endif
 | 
			
		||||
 | 
			
		||||
  if(mode65.eq.101) then
 | 
			
		||||
     call qra65_dec(s3,dat4,irc)            !Decode
 | 
			
		||||
     decoded="                      "
 | 
			
		||||
     if(irc.ge.0) then
 | 
			
		||||
        call unpackmsg(dat4,decoded)           !Unpack the user message
 | 
			
		||||
        call fmtmsg(decoded,iz)
 | 
			
		||||
        nft=100 + irc
 | 
			
		||||
     else
 | 
			
		||||
        dec=0
 | 
			
		||||
     endif
 | 
			
		||||
     go to 900
 | 
			
		||||
  endif
 | 
			
		||||
 | 
			
		||||
  mrs=mrsym
 | 
			
		||||
  mrs2=mr2sym
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -163,7 +163,9 @@ contains
 | 
			
		||||
          nvec=100
 | 
			
		||||
       endif
 | 
			
		||||
 | 
			
		||||
       mode65=2**nsubmode
 | 
			
		||||
       if(nsubmode.le.8) mode65=2**nsubmode
 | 
			
		||||
       if(nsubmode.eq.101) mode65=101
 | 
			
		||||
 | 
			
		||||
       nflip=1
 | 
			
		||||
       nqd=0
 | 
			
		||||
       decoded='                      '
 | 
			
		||||
 | 
			
		||||
@ -8,9 +8,9 @@ program QRA65code
 | 
			
		||||
! Return codes from qra65_dec:
 | 
			
		||||
!  irc=0    [?    ?    ?] AP0	(decoding with no a-priori information)
 | 
			
		||||
!  irc=1    [CQ   ?    ?] AP27
 | 
			
		||||
!  irc=2    [CQ   ?     ] AP44
 | 
			
		||||
!  irc=2    [CQ   ?     ] AP42
 | 
			
		||||
!  irc=3    [CALL ?    ?] AP29
 | 
			
		||||
!  irc=4    [CALL ?     ] AP45
 | 
			
		||||
!  irc=4    [CALL ?     ] AP44
 | 
			
		||||
!  irc=5    [CALL CALL ?] AP57
 | 
			
		||||
 | 
			
		||||
  use packjt
 | 
			
		||||
 | 
			
		||||
@ -820,7 +820,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  statusChanged();
 | 
			
		||||
//###
 | 
			
		||||
//### The following is temporary ###
 | 
			
		||||
  {
 | 
			
		||||
    QString t=m_config.my_callsign();
 | 
			
		||||
    if(t!="IV3NWV" and t!="K1JT" and t!="K9AN" and t!="G4WJS"
 | 
			
		||||
@ -1991,7 +1991,9 @@ void MainWindow::decode()                                       //decode()
 | 
			
		||||
  dec_data.params.ntxmode=9;
 | 
			
		||||
  if(m_modeTx=="JT65") dec_data.params.ntxmode=65;
 | 
			
		||||
  dec_data.params.nmode=9;
 | 
			
		||||
  if(m_mode=="JT65" or m_mode=="QRA65") dec_data.params.nmode=65;
 | 
			
		||||
  if(m_mode=="JT65") dec_data.params.nmode=65;
 | 
			
		||||
  if(m_mode=="QRA65") dec_data.params.nmode=165;
 | 
			
		||||
  if(m_mode=="QRA65") dec_data.params.ntxmode=165;
 | 
			
		||||
  if(m_mode=="JT9+JT65") dec_data.params.nmode=9+65;  // = 74
 | 
			
		||||
  if(m_mode=="JT4") {
 | 
			
		||||
    dec_data.params.nmode=4;
 | 
			
		||||
@ -1999,6 +2001,7 @@ void MainWindow::decode()                                       //decode()
 | 
			
		||||
  }
 | 
			
		||||
  dec_data.params.ntrperiod=m_TRperiod;
 | 
			
		||||
  dec_data.params.nsubmode=m_nSubMode;
 | 
			
		||||
  if(m_mode=="QRA65") dec_data.params.nsubmode=101;
 | 
			
		||||
  dec_data.params.minw=0;
 | 
			
		||||
  dec_data.params.nclearave=m_nclearave;
 | 
			
		||||
  if(m_nclearave!=0) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user