mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	Generic message packing and unpacking routines now understand antipode grid contest messages. These messages are now recognized as standard messages in message response processing and dealt with appropriately when contest mode is selected and applicable (currently FT8 and MSK144 only). git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8062 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
subroutine extract4(sym0,ncount,decoded)
 | 
						|
 | 
						|
  use packjt
 | 
						|
  real sym0(207)
 | 
						|
  real sym(207)
 | 
						|
  character decoded*22
 | 
						|
  character*72 c72
 | 
						|
  integer*1 symbol(207)
 | 
						|
  integer*1 data1(13)                   !Decoded data (8-bit bytes)
 | 
						|
  integer   data4a(9)                   !Decoded data (8-bit bytes)
 | 
						|
  integer   data4(12)                   !Decoded data (6-bit bytes)
 | 
						|
  integer mettab(-128:127,0:1)          !Metric table
 | 
						|
  logical first
 | 
						|
  data first/.true./
 | 
						|
  save first,mettab,ndelta
 | 
						|
 | 
						|
  if(first) then
 | 
						|
     call getmet4(mettab,ndelta)
 | 
						|
     first=.false.
 | 
						|
  endif
 | 
						|
 | 
						|
!### Optimize these params: ...
 | 
						|
  amp=30.0
 | 
						|
  limit=10000
 | 
						|
 | 
						|
  ave0=sum(sym0)/207.0
 | 
						|
  sym=sym0-ave0
 | 
						|
  sq=dot_product(sym,sym)
 | 
						|
  rms0=sqrt(sq/206.0)
 | 
						|
  sym=sym/rms0
 | 
						|
 | 
						|
  do j=1,207
 | 
						|
     n=nint(amp*sym(j))
 | 
						|
     if(n.lt.-127) n=-127
 | 
						|
     if(n.gt.127) n=127
 | 
						|
     symbol(j)=n
 | 
						|
  enddo
 | 
						|
 | 
						|
  nbits=72
 | 
						|
  ncycles=0
 | 
						|
  ncount=-1
 | 
						|
  decoded='                      '
 | 
						|
  call interleave4(symbol(2),-1)          !Remove the interleaving
 | 
						|
  call fano232(symbol(2),nbits+31,mettab,ndelta,limit,data1,     &
 | 
						|
       ncycles,metric,ncount)
 | 
						|
  nlim=ncycles/(nbits+31)
 | 
						|
 | 
						|
!### Make usage here like that in jt9fano...
 | 
						|
  if(ncount.ge.0) then
 | 
						|
     do i=1,9
 | 
						|
        i4=data1(i)
 | 
						|
        if(i4.lt.0) i4=i4+256
 | 
						|
        data4a(i)=i4
 | 
						|
     enddo
 | 
						|
     write(c72,1100) (data4a(i),i=1,9)
 | 
						|
1100 format(9b8.8)
 | 
						|
     read(c72,1102) data4
 | 
						|
1102 format(12b6)
 | 
						|
 | 
						|
     call unpackmsg(data4,decoded,.false.,'      ')
 | 
						|
     if(decoded(1:6).eq.'000AAA') then
 | 
						|
!        decoded='***WRONG MODE?***'
 | 
						|
        decoded='                      '
 | 
						|
        ncount=-1
 | 
						|
     endif
 | 
						|
  endif
 | 
						|
 | 
						|
  return
 | 
						|
end subroutine extract4
 |