mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04: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 | ! NB: cx has sample rate 12000*77125/672000 = 1378.125 Hz | ||||||
| 
 | 
 | ||||||
| ! Check for a shorthand message | ! 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) |      call sh65(cx,n5,mode65,ntol,xdf,nspecial,sync2) | ||||||
|      if(nspecial.gt.0) then |      if(nspecial.gt.0) then | ||||||
|         a=0. |         a=0. | ||||||
| @ -96,7 +96,7 @@ subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials,     & | |||||||
|   qual0=-1.e30 |   qual0=-1.e30 | ||||||
|   minsmo=0 |   minsmo=0 | ||||||
|   maxsmo=0 |   maxsmo=0 | ||||||
|   if(mode65.ge.2) then |   if(mode65.ge.2 .and. mode65.ne.101) then | ||||||
|      minsmo=nint(width/df) |      minsmo=nint(width/df) | ||||||
|      maxsmo=2*minsmo |      maxsmo=2*minsmo | ||||||
|   endif |   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 parallel sections num_threads(2) copyin(/timer_private/) shared(ndecoded) if(.true.) !iif() needed on Mac | ||||||
| 
 | 
 | ||||||
| !$omp section | !$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 | ! We're in JT65 mode, or should do JT65 first | ||||||
|      if(newdat65) dd(1:npts65)=id2(1:npts65) |      if(newdat65) dd(1:npts65)=id2(1:npts65) | ||||||
|      nf1=params%nfa |      nf1=params%nfa | ||||||
| @ -274,8 +275,13 @@ contains | |||||||
|              endif |              endif | ||||||
|           endif |           endif | ||||||
|        endif |        endif | ||||||
|        write(*,1010) params%nutc,snr,dt,freq,csync,decoded,cflags |        if(ft.ge.100) then | ||||||
| 1010   format(i4.4,i4,f5.1,i5,1x,a2,1x,a22,1x,a3) |           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 |     endif | ||||||
| 
 | 
 | ||||||
|     write(13,1012) params%nutc,nint(sync),snr,dt,float(freq),drift,    & |     write(13,1012) params%nutc,nint(sync),snr,dt,float(freq),drift,    & | ||||||
|  | |||||||
| @ -61,6 +61,19 @@ subroutine extract(s3,nadd,mode65,ntrials,naggressive,ndepth,nflip,     & | |||||||
|      go to 1 |      go to 1 | ||||||
|   endif |   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 |   mrs=mrsym | ||||||
|   mrs2=mr2sym |   mrs2=mr2sym | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -163,7 +163,9 @@ contains | |||||||
|           nvec=100 |           nvec=100 | ||||||
|        endif |        endif | ||||||
| 
 | 
 | ||||||
|        mode65=2**nsubmode |        if(nsubmode.le.8) mode65=2**nsubmode | ||||||
|  |        if(nsubmode.eq.101) mode65=101 | ||||||
|  | 
 | ||||||
|        nflip=1 |        nflip=1 | ||||||
|        nqd=0 |        nqd=0 | ||||||
|        decoded='                      ' |        decoded='                      ' | ||||||
|  | |||||||
| @ -8,9 +8,9 @@ program QRA65code | |||||||
| ! Return codes from qra65_dec: | ! Return codes from qra65_dec: | ||||||
| !  irc=0    [?    ?    ?] AP0	(decoding with no a-priori information) | !  irc=0    [?    ?    ?] AP0	(decoding with no a-priori information) | ||||||
| !  irc=1    [CQ   ?    ?] AP27 | !  irc=1    [CQ   ?    ?] AP27 | ||||||
| !  irc=2    [CQ   ?     ] AP44 | !  irc=2    [CQ   ?     ] AP42 | ||||||
| !  irc=3    [CALL ?    ?] AP29 | !  irc=3    [CALL ?    ?] AP29 | ||||||
| !  irc=4    [CALL ?     ] AP45 | !  irc=4    [CALL ?     ] AP44 | ||||||
| !  irc=5    [CALL CALL ?] AP57 | !  irc=5    [CALL CALL ?] AP57 | ||||||
| 
 | 
 | ||||||
|   use packjt |   use packjt | ||||||
|  | |||||||
| @ -820,7 +820,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   statusChanged(); |   statusChanged(); | ||||||
| //###
 | //### The following is temporary ###
 | ||||||
|   { |   { | ||||||
|     QString t=m_config.my_callsign(); |     QString t=m_config.my_callsign(); | ||||||
|     if(t!="IV3NWV" and t!="K1JT" and t!="K9AN" and t!="G4WJS" |     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; |   dec_data.params.ntxmode=9; | ||||||
|   if(m_modeTx=="JT65") dec_data.params.ntxmode=65; |   if(m_modeTx=="JT65") dec_data.params.ntxmode=65; | ||||||
|   dec_data.params.nmode=9; |   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=="JT9+JT65") dec_data.params.nmode=9+65;  // = 74
 | ||||||
|   if(m_mode=="JT4") { |   if(m_mode=="JT4") { | ||||||
|     dec_data.params.nmode=4; |     dec_data.params.nmode=4; | ||||||
| @ -1999,6 +2001,7 @@ void MainWindow::decode()                                       //decode() | |||||||
|   } |   } | ||||||
|   dec_data.params.ntrperiod=m_TRperiod; |   dec_data.params.ntrperiod=m_TRperiod; | ||||||
|   dec_data.params.nsubmode=m_nSubMode; |   dec_data.params.nsubmode=m_nSubMode; | ||||||
|  |   if(m_mode=="QRA65") dec_data.params.nsubmode=101; | ||||||
|   dec_data.params.minw=0; |   dec_data.params.minw=0; | ||||||
|   dec_data.params.nclearave=m_nclearave; |   dec_data.params.nclearave=m_nclearave; | ||||||
|   if(m_nclearave!=0) { |   if(m_nclearave!=0) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user