mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-01 16:13:57 -04:00
Implement (very basic) Rx capability for a potential WSPR-LF mode.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7673 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
9c0d691ac7
commit
d381c16c27
@ -1314,7 +1314,7 @@ install (TARGETS udp_daemon message_aggregator
|
|||||||
)
|
)
|
||||||
|
|
||||||
install (TARGETS jt9 jt65code qra64code qra64sim jt9code jt4code
|
install (TARGETS jt9 jt65code qra64code qra64sim jt9code jt4code
|
||||||
msk144code wsprd fmtave fcal fmeasure
|
msk144code wsprd wspr5d fmtave fcal fmeasure
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
|
||||||
BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
|
BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
|
||||||
)
|
)
|
||||||
|
@ -18,7 +18,8 @@ program wspr5d
|
|||||||
|
|
||||||
include 'wsprlf_params.f90'
|
include 'wsprlf_params.f90'
|
||||||
parameter (NMAX=300*12000)
|
parameter (NMAX=300*12000)
|
||||||
character arg*8,message*22,cbits*50,infile*80,fname*16
|
character arg*8,message*22,cbits*50,infile*80,fname*16,datetime*11
|
||||||
|
character*120 data_dir
|
||||||
complex csync(0:NZ-1) !Sync symbols only, from cbb
|
complex csync(0:NZ-1) !Sync symbols only, from cbb
|
||||||
complex c(0:NZ-1) !Complex waveform
|
complex c(0:NZ-1) !Complex waveform
|
||||||
complex c1(0:NZ-1) !Complex waveform
|
complex c1(0:NZ-1) !Complex waveform
|
||||||
@ -39,15 +40,29 @@ program wspr5d
|
|||||||
integer*1 idat(7)
|
integer*1 idat(7)
|
||||||
integer*1 decoded(KK),apmask(ND),cw(ND)
|
integer*1 decoded(KK),apmask(ND),cw(ND)
|
||||||
data ib13/1,1,1,1,1,-1,-1,1,1,-1,1,-1,1/
|
data ib13/1,1,1,1,1,-1,-1,1,1,-1,1,-1,1/
|
||||||
|
|
||||||
nargs=iargc()
|
nargs=iargc()
|
||||||
if(nargs.lt.2) then
|
if(nargs.lt.2) then
|
||||||
print*,'Usage: wspr5d maxn file1 [file2 ...]'
|
print*,'Usage: wspr5d [-a <data_dir>] [-f fMHz] file1 [file2 ...]'
|
||||||
go to 999
|
go to 999
|
||||||
endif
|
endif
|
||||||
call getarg(1,arg)
|
iarg=1
|
||||||
read(arg,*) maxn
|
data_dir="."
|
||||||
|
call getarg(iarg,arg)
|
||||||
|
if(arg(1:2).eq.'-a') then
|
||||||
|
call getarg(iarg+1,data_dir)
|
||||||
|
iarg=iarg+2
|
||||||
|
endif
|
||||||
|
call getarg(iarg,arg)
|
||||||
|
if(arg(1:2).eq.'-f') then
|
||||||
|
call getarg(iarg+1,arg)
|
||||||
|
read(arg,*) fMHz
|
||||||
|
iarg=iarg+2
|
||||||
|
endif
|
||||||
|
|
||||||
|
open(13,file=trim(data_dir)//'/ALL_WSPR.TXT',status='unknown', &
|
||||||
|
position='append')
|
||||||
|
maxn=6 !Default value
|
||||||
twopi=8.0*atan(1.0)
|
twopi=8.0*atan(1.0)
|
||||||
fs=NSPS*12000.0/NSPS0 !Sample rate
|
fs=NSPS*12000.0/NSPS0 !Sample rate
|
||||||
dt=1.0/fs !Sample interval (s)
|
dt=1.0/fs !Sample interval (s)
|
||||||
@ -87,24 +102,24 @@ program wspr5d
|
|||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
do ifile=1,nargs-1
|
do ifile=iarg,nargs
|
||||||
call getarg(ifile+1,infile)
|
call getarg(ifile,infile)
|
||||||
open(10,file=infile,status='old',access='stream')
|
open(10,file=infile,status='old',access='stream')
|
||||||
if(index(infile,'.c5').gt.0) then
|
j1=index(infile,'.c5')
|
||||||
|
j2=index(infile,'.wav')
|
||||||
|
if(j1.gt.0) then
|
||||||
read(10,end=999) fname,ntrmin,fMHz,c
|
read(10,end=999) fname,ntrmin,fMHz,c
|
||||||
close(10)
|
|
||||||
read(fname(8:11),*) nutc
|
read(fname(8:11),*) nutc
|
||||||
else if(index(infile,'.wav').gt.0) then
|
else if(j2.gt.0) then
|
||||||
read(10,end=999) ihdr,iwave
|
read(10,end=999) ihdr,iwave
|
||||||
|
read(infile(j2-4:j2-1),*) nutc
|
||||||
|
datetime=infile(j2-11:j2-1)
|
||||||
call wspr5_downsample(iwave,c)
|
call wspr5_downsample(iwave,c)
|
||||||
else
|
else
|
||||||
print*,'Wrong file format?'
|
print*,'Wrong file format?'
|
||||||
go to 999
|
go to 999
|
||||||
endif
|
endif
|
||||||
! do i=0,NZ-1
|
close(10)
|
||||||
! write(40,4001) i,c(i),csync(i)
|
|
||||||
!4001 format(i8,4f12.6)
|
|
||||||
! enddo
|
|
||||||
call getfc1w(c,fs,fc1,xsnr) !First approx for freq
|
call getfc1w(c,fs,fc1,xsnr) !First approx for freq
|
||||||
call getfc2w(c,csync,fs,fc1,fc2,fc3) !Refined freq
|
call getfc2w(c,csync,fs,fc1,fc2,fc3) !Refined freq
|
||||||
|
|
||||||
@ -137,8 +152,6 @@ program wspr5d
|
|||||||
amax=abs(z)
|
amax=abs(z)
|
||||||
jpk=j
|
jpk=j
|
||||||
endif
|
endif
|
||||||
! write(45,4501) j,j/fs,abs(z)
|
|
||||||
!4501 format(i8,2f12.3)
|
|
||||||
enddo
|
enddo
|
||||||
xdt=jpk/fs
|
xdt=jpk/fs
|
||||||
do i=0,NZ-1
|
do i=0,NZ-1
|
||||||
@ -186,11 +199,17 @@ program wspr5d
|
|||||||
1102 format(6b8,b2)
|
1102 format(6b8,b2)
|
||||||
idat(7)=ishft(idat(7),6)
|
idat(7)=ishft(idat(7),6)
|
||||||
call wqdecode(idat,message,itype)
|
call wqdecode(idat,message,itype)
|
||||||
|
nsnr=nint(xsnr)
|
||||||
|
freq=fMHz + 1.d-6*(fc1+fc2)
|
||||||
|
nfdot=0
|
||||||
|
write(13,1110) datetime,0,nsnr,xdt,freq,message,nfdot
|
||||||
|
1110 format(a11,2i4,f6.2,f12.7,2x,a22,i3)
|
||||||
|
write(*,1112) datetime(8:11),nsnr,xdt,freq,nfdot,message
|
||||||
|
1112 format(a4,i4,f5.1,f11.6,i3,2x,a22)
|
||||||
endif
|
endif
|
||||||
nsnr=nint(xsnr)
|
|
||||||
write(*,1110) nutc,nsnr,xdt,fc1+fc2,message
|
|
||||||
1110 format(i4.4,i5,f7.2,f7.2,2x,a22)
|
|
||||||
enddo ! ifile loop
|
enddo ! ifile loop
|
||||||
|
write(*,1120)
|
||||||
|
1120 format("<DecodeFinished>")
|
||||||
|
|
||||||
999 end program wspr5d
|
999 end program wspr5d
|
||||||
|
|
||||||
|
@ -1278,7 +1278,6 @@ void MainWindow::dataSink(qint64 frames)
|
|||||||
if(m_diskData) {
|
if(m_diskData) {
|
||||||
cmnd='"' + m_appDir + '"' + "/wsprd -a \"" +
|
cmnd='"' + m_appDir + '"' + "/wsprd -a \"" +
|
||||||
QDir::toNativeSeparators(m_dataDir.absolutePath()) + "\" \"" + m_path + "\"";
|
QDir::toNativeSeparators(m_dataDir.absolutePath()) + "\" \"" + m_path + "\"";
|
||||||
// QDir::toNativeSeparators(m_dataDir.absolutePath()) + "\" " + t2 + " " + m_path + "\"";
|
|
||||||
} else {
|
} else {
|
||||||
cmnd='"' + m_appDir + '"' + "/wsprd -a \"" +
|
cmnd='"' + m_appDir + '"' + "/wsprd -a \"" +
|
||||||
QDir::toNativeSeparators(m_dataDir.absolutePath()) + "\" " +
|
QDir::toNativeSeparators(m_dataDir.absolutePath()) + "\" " +
|
||||||
@ -1287,6 +1286,7 @@ void MainWindow::dataSink(qint64 frames)
|
|||||||
QString t3=cmnd;
|
QString t3=cmnd;
|
||||||
int i1=cmnd.indexOf("/wsprd ");
|
int i1=cmnd.indexOf("/wsprd ");
|
||||||
cmnd=t3.mid(0,i1+7) + t3.mid(i1+7);
|
cmnd=t3.mid(0,i1+7) + t3.mid(i1+7);
|
||||||
|
if(m_mode=="WSPR-LF") cmnd=cmnd.replace("/wsprd ","/wspr5d ");
|
||||||
if (ui) ui->DecodeButton->setChecked (true);
|
if (ui) ui->DecodeButton->setChecked (true);
|
||||||
m_cmndP1=QDir::toNativeSeparators(cmnd);
|
m_cmndP1=QDir::toNativeSeparators(cmnd);
|
||||||
p1Timer.start(1000);
|
p1Timer.start(1000);
|
||||||
|
Loading…
Reference in New Issue
Block a user