mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04:00 
			
		
		
		
	Merge branch 'feat-fst280' of bitbucket.org:k1jt/wsjtx into feat-fst280
This commit is contained in:
		
						commit
						f111230687
					
				
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -11,3 +11,8 @@ jnq* | ||||
| *.txt | ||||
| cmake-build-debug | ||||
| cmake-build-release | ||||
| CMakeFiles | ||||
| fnd | ||||
| lib/77bit/tmp | ||||
| lib/tmp | ||||
| lib/ftrsd | ||||
|  | ||||
							
								
								
									
										3
									
								
								Decoder/decodedtext.pri
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Decoder/decodedtext.pri
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| SOURCES += Decoder/decodedtext.cpp | ||||
| 
 | ||||
| HEADERS  += Decoder/decodedtext.h | ||||
							
								
								
									
										3
									
								
								Detector/Detector.pri
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Detector/Detector.pri
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| SOURCES += Detector/Detector.cpp | ||||
| 
 | ||||
| HEADERS  += Detector/Detector.hpp | ||||
							
								
								
									
										3
									
								
								Modulator/Modulator.pri
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Modulator/Modulator.pri
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| SOURCES += Modulator/Modulator.cpp | ||||
| 
 | ||||
| HEADERS  += Modulator/Mpdulator.hpp | ||||
							
								
								
									
										21
									
								
								lib/77bit/call_to_c28.f90
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								lib/77bit/call_to_c28.f90
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| program call_to_c28 | ||||
|   parameter (NTOKENS=2063592,MAX22=4194304) | ||||
|   character*6 call_std | ||||
|   character a1*37,a2*36,a3*10,a4*27 | ||||
|   data a1/' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'/ | ||||
|   data a2/'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'/ | ||||
|   data a3/'0123456789'/ | ||||
|   data a4/' ABCDEFGHIJKLMNOPQRSTUVWXYZ'/ | ||||
|  ! call_std must be right adjusted, length 6 | ||||
|   call_std=' K1ABC'              !Redefine as needed | ||||
|   i1=index(a1,call_std(1:1))-1 | ||||
|   i2=index(a2,call_std(2:2))-1 | ||||
|   i3=index(a3,call_std(3:3))-1 | ||||
|   i4=index(a4,call_std(4:4))-1 | ||||
|   i5=index(a4,call_std(5:5))-1 | ||||
|   i6=index(a4,call_std(6:6))-1 | ||||
|   n28=NTOKENS + MAX22 + 36*10*27*27*27*i1 + 10*27*27*27*i2 + & | ||||
|        27*27*27*i3 + 27*27*i4 + 27*i5 + i6 | ||||
|   write(*,1000) call_std,n28 | ||||
| 1000 format('Callsign: ',a6,2x,'c28 as decimal integer:',i10) | ||||
| end program call_to_c28 | ||||
							
								
								
									
										58
									
								
								lib/77bit/free_text.f90
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								lib/77bit/free_text.f90
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,58 @@ | ||||
| program free_text | ||||
|   character*13 c13,w | ||||
|   character*71 f71 | ||||
|   character*42 c | ||||
|   character*1 qa(10),qb(10) | ||||
|   data c/' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+-./?'/ | ||||
|   c13='TNX BOB 73 GL'             !Redefine as needed | ||||
|   call mp_short_init | ||||
|   qa=char(0) | ||||
|   w=adjustr(c13) | ||||
|   do i=1,13 | ||||
|      j=index(c,w(i:i))-1 | ||||
|      if(j.lt.0) j=0 | ||||
|      call mp_short_mult(qb,qa(2:10),9,42)    !qb(1:9)=42*qa(2:9) | ||||
|      call mp_short_add(qa,qb(2:10),9,j)      !qa(1:9)=qb(2:9)+j | ||||
|   enddo | ||||
|   write(f71,1000) qa(2:10) | ||||
| 1000 format(b7.7,8b8.8) | ||||
|   write(*,1010) c13,f71 | ||||
| 1010 format('Free text: ',a13/'f71: ',a71) | ||||
| end program free_text | ||||
| 
 | ||||
| subroutine mp_short_ops(w,u) | ||||
| ! Multi-precision arithmetic with storage in character arrays.   | ||||
|   character*1 w(*),u(*) | ||||
|   integer i,ireg,j,n,ir,iv,ii1,ii2 | ||||
|   character*1 creg(4) | ||||
|   save ii1,ii2 | ||||
|   equivalence (ireg,creg) | ||||
| 
 | ||||
|   entry mp_short_init | ||||
|   ireg=256*ichar('2')+ichar('1') | ||||
|   do j=1,4 | ||||
|      if (creg(j).eq.'1') ii1=j | ||||
|      if (creg(j).eq.'2') ii2=j | ||||
|   enddo | ||||
|   return | ||||
| 
 | ||||
|   entry mp_short_add(w,u,n,iv) | ||||
|   ireg=256*iv | ||||
|   do j=n,1,-1 | ||||
|      ireg=ichar(u(j))+ichar(creg(ii2)) | ||||
|      w(j+1)=creg(ii1) | ||||
|   enddo | ||||
|   w(1)=creg(ii2) | ||||
|   return | ||||
| 
 | ||||
|   entry mp_short_mult(w,u,n,iv) | ||||
|   ireg=0 | ||||
|   do j=n,1,-1 | ||||
|      ireg=ichar(u(j))*iv+ichar(creg(ii2)) | ||||
|      w(j+1)=creg(ii1) | ||||
|   enddo | ||||
|   w(1)=creg(ii2) | ||||
|   return | ||||
| 
 | ||||
|   return | ||||
| end subroutine mp_short_ops | ||||
							
								
								
									
										13
									
								
								lib/77bit/nonstd_to_c58.f90
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								lib/77bit/nonstd_to_c58.f90
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| program nonstd_to_c58 | ||||
|   integer*8 n58 | ||||
|   character*11 call_nonstd | ||||
|   character*38 c | ||||
|   data c/' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/'/ | ||||
|   call_nonstd='PJ4/K1ABC'   !Redifine as needed | ||||
|   n58=0 | ||||
|   do i=1,11 | ||||
|      n58=n58*38 + index(c,call_nonstd(i:i)) - 1 | ||||
|   enddo | ||||
|   write(*,1000) call_nonstd,n58 | ||||
| 1000 format('Callsign: ',a11,2x,'c58 as decimal integer:',i20)     | ||||
| end program nonstd_to_c58 | ||||
							
								
								
									
										56
									
								
								lib/t6.f90
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								lib/t6.f90
									
									
									
									
									
								
							| @ -1,56 +0,0 @@ | ||||
| program t6 | ||||
| 
 | ||||
|   parameter (MAXFFT=1404) | ||||
|   complex c(0:MAXFFT-1) | ||||
|   real s(0:MAXFFT-1) | ||||
| 
 | ||||
|   m1=45 | ||||
|   m2=67 | ||||
|   m3=89 | ||||
|   nsym=3*11 + m1 + m2 + m3 | ||||
|   nfft=6*nsym | ||||
|   nh=nfft/2 | ||||
| 
 | ||||
|   best=9999. | ||||
| !  do m1=22,67 | ||||
| !     do m2=37,97 | ||||
|   do m1=30,67 | ||||
|      do m2=26,100 | ||||
|         m3=201-m2-m1 | ||||
|         if(m3.lt.13) cycle | ||||
|         c=0. | ||||
|         n1=6*(11+m1) | ||||
|         n2=n1+6*(11+m2) | ||||
|         c(1:66)=1. | ||||
|         c(1+n1:66+n1)=1. | ||||
|         c(1+n2:66+n2)=1. | ||||
|    | ||||
|         call four2a(c,nfft,1,-1,1)            !c2c FFT | ||||
| 
 | ||||
|         df=12000.0/nfft | ||||
|         smax=0. | ||||
|         do i=0,nfft-1 | ||||
|            s(i)=real(c(i))**2 + aimag(c(i))**2 | ||||
|            if(i.ne.0) smax=max(s(i),smax) | ||||
|         enddo | ||||
|         sidelobe=db(smax/s(0)) | ||||
|          | ||||
|         if(sidelobe.lt.best) then | ||||
|            write(*,1000) m1,m2,m3,sidelobe | ||||
| 1000       format(3i5,f8.2) | ||||
|            best=sidelobe | ||||
|            s=s/s(0) | ||||
|            rewind 13 | ||||
|            do j=0,nfft-1 | ||||
|               i=mod(j+nh,nfft) | ||||
|               f=i*df | ||||
|               if(i.gt.nh) f=f-12000.0 | ||||
|               write(13,1020) f,s(i) | ||||
| 1020          format(2f12.4) | ||||
|            enddo | ||||
|         endif | ||||
|      enddo | ||||
|   enddo | ||||
|    | ||||
| end program t6 | ||||
| 
 | ||||
| @ -8983,7 +8983,7 @@ void MainWindow::write_all(QString txRx, QString message) | ||||
|   QFile f{m_config.writeable_data_dir().absoluteFilePath(file_name)}; | ||||
|   if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { | ||||
|     QTextStream out(&f); | ||||
|     out << line | ||||
|     out << line.trimmed() | ||||
| #if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) | ||||
|         << Qt::endl | ||||
| #else | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user