mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-16 09:01:59 -05: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…
Reference in New Issue
Block a user