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 | *.txt | ||||||
| cmake-build-debug | cmake-build-debug | ||||||
| cmake-build-release | 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)}; |   QFile f{m_config.writeable_data_dir().absoluteFilePath(file_name)}; | ||||||
|   if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { |   if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { | ||||||
|     QTextStream out(&f); |     QTextStream out(&f); | ||||||
|     out << line |     out << line.trimmed() | ||||||
| #if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) | #if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) | ||||||
|         << Qt::endl |         << Qt::endl | ||||||
| #else | #else | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user