mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-25 21:58:38 -05:00
More cleanup; correct the value of NSMAX in GUI.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@2639 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
2b21431e44
commit
e2e3e98e06
@ -1,12 +1,12 @@
|
|||||||
#ifndef COMMONS_H
|
#ifndef COMMONS_H
|
||||||
#define COMMONS_H
|
#define COMMONS_H
|
||||||
|
|
||||||
#define NSMAX 10000
|
#define NSMAX 22000
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
extern struct {
|
extern struct {
|
||||||
short int d2[1800*12000]; //This is "common/jt8com/..." in fortran
|
short int d2[1800*12000]; //This is "common/jt9com/..." in fortran
|
||||||
float ss[184*NSMAX];
|
float ss[184*NSMAX];
|
||||||
float savg[NSMAX];
|
float savg[NSMAX];
|
||||||
double fcenter; //USB dial freq (kHz)
|
double fcenter; //USB dial freq (kHz)
|
||||||
@ -27,7 +27,7 @@ extern struct {
|
|||||||
int kin;
|
int kin;
|
||||||
int kline;
|
int kline;
|
||||||
char datetime[20];
|
char datetime[20];
|
||||||
} jt8com_;
|
} jt9com_;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
getfile.cpp
12
getfile.cpp
@ -12,14 +12,14 @@ void getfile(QString fname, int ntrperiod)
|
|||||||
FILE* fp=fopen(name,"rb");
|
FILE* fp=fopen(name,"rb");
|
||||||
|
|
||||||
int npts=ntrperiod*12000;
|
int npts=ntrperiod*12000;
|
||||||
memset(jt8com_.d2,0,2*npts);
|
memset(jt9com_.d2,0,2*npts);
|
||||||
|
|
||||||
if(fp != NULL) {
|
if(fp != NULL) {
|
||||||
// Read (and ignore) a 44-byte WAV header; then read data
|
// Read (and ignore) a 44-byte WAV header; then read data
|
||||||
fread(jt8com_.d2,1,44,fp);
|
fread(jt9com_.d2,1,44,fp);
|
||||||
int nrd=fread(jt8com_.d2,2,npts,fp);
|
int nrd=fread(jt9com_.d2,2,npts,fp);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
// for(int i=0; i<npts; i++) jt8com_.d2[i]/=100;
|
// for(int i=0; i<npts; i++) jt9com_.d2[i]/=100;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,9 +76,9 @@ void savewav(QString fname, int ntrperiod)
|
|||||||
hdr.ndata=2*npts;
|
hdr.ndata=2*npts;
|
||||||
|
|
||||||
fwrite(&hdr,sizeof(hdr),1,fp);
|
fwrite(&hdr,sizeof(hdr),1,fp);
|
||||||
// memcpy(jt8com_.d2,buf,2*npts);
|
// memcpy(jt9com_.d2,buf,2*npts);
|
||||||
// fwrite(buf,2,npts,fp);
|
// fwrite(buf,2,npts,fp);
|
||||||
fwrite(jt8com_.d2,2,npts,fp);
|
fwrite(jt9com_.d2,2,npts,fp);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
}
|
}
|
||||||
// free(buf);
|
// free(buf);
|
||||||
|
15
lib/jt9.f90
15
lib/jt9.f90
@ -16,7 +16,7 @@ program jt9
|
|||||||
character*22 msg
|
character*22 msg
|
||||||
integer*2 id2
|
integer*2 id2
|
||||||
complex c0
|
complex c0
|
||||||
common/jt8com/id2(NMAX),ss(184,NSMAX),savg(NSMAX),c0(NDMAX), &
|
common/jt9com/id2(NMAX),ss(184,NSMAX),savg(NSMAX),c0(NDMAX), &
|
||||||
nutc,npts8,junk(20)
|
nutc,npts8,junk(20)
|
||||||
|
|
||||||
nargs=iargc()
|
nargs=iargc()
|
||||||
@ -90,20 +90,9 @@ program jt9
|
|||||||
|
|
||||||
10 continue
|
10 continue
|
||||||
|
|
||||||
do i=0,512
|
|
||||||
if(lstrong(i)) print*,'Strong signal at ',12000.0*i/1024.0
|
|
||||||
enddo
|
|
||||||
|
|
||||||
nz=1000.0/df3
|
|
||||||
do i=1,nz
|
|
||||||
freq=f0a + (i-1)*df3
|
|
||||||
write(78,3001) i,freq,savg(i)
|
|
||||||
3001 format(i8,2f12.3)
|
|
||||||
enddo
|
|
||||||
|
|
||||||
nutc=nutc0
|
nutc=nutc0
|
||||||
nstandalone=1
|
nstandalone=1
|
||||||
call sync9(ss,tstep,f0a,df3,lagpk,fpk)
|
call sync9(ss,tstep,f0a,df3,lagpk,fpk) !Find sig, get rough DT and DF
|
||||||
call spec9(c0,npts8,nsps,f0a,lagpk,fpk,i1SoftSymbols)
|
call spec9(c0,npts8,nsps,f0a,lagpk,fpk,i1SoftSymbols)
|
||||||
call decode9(i1SoftSymbols,msg)
|
call decode9(i1SoftSymbols,msg)
|
||||||
xdt=lagpk*0.5*nsps/12000.0
|
xdt=lagpk*0.5*nsps/12000.0
|
||||||
|
37
lib/ms3.f90
37
lib/ms3.f90
@ -1,37 +0,0 @@
|
|||||||
program ms3
|
|
||||||
|
|
||||||
! Starting code for a JTMS3 decoder.
|
|
||||||
|
|
||||||
character*80 infile
|
|
||||||
integer hdr(11)
|
|
||||||
integer*2 id
|
|
||||||
common/mscom/id(1440000),s1(215,703),s2(215,703)
|
|
||||||
|
|
||||||
nargs=iargc()
|
|
||||||
if(nargs.lt.1) then
|
|
||||||
print*,'Usage: ms3 file1 [file2 ...]'
|
|
||||||
print*,' Reads data from *.wav files.'
|
|
||||||
go to 999
|
|
||||||
endif
|
|
||||||
|
|
||||||
npts=30*48000
|
|
||||||
kstep=4096
|
|
||||||
|
|
||||||
do ifile=1,nargs
|
|
||||||
call getarg(ifile,infile)
|
|
||||||
open(10,file=infile,access='stream',status='old',err=998)
|
|
||||||
read(10) hdr
|
|
||||||
read(10) id
|
|
||||||
close(10)
|
|
||||||
|
|
||||||
do k=kstep,npts,kstep
|
|
||||||
call specjtms(k)
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
|
|
||||||
go to 999
|
|
||||||
|
|
||||||
998 print*,'Cannot open file:'
|
|
||||||
print*,infile
|
|
||||||
|
|
||||||
999 end program ms3
|
|
63
lib/msk.f90
63
lib/msk.f90
@ -1,63 +0,0 @@
|
|||||||
program msk
|
|
||||||
|
|
||||||
! Program to test decoding routines for mode JTMSK.
|
|
||||||
|
|
||||||
parameter (NSMAX=30*48000)
|
|
||||||
character*80 infile
|
|
||||||
character*6 cfile6
|
|
||||||
character*12 arg
|
|
||||||
character*12 mycall
|
|
||||||
real dat(NSMAX)
|
|
||||||
real x(NSMAX)
|
|
||||||
complex cx(0:NSMAX/2)
|
|
||||||
integer hdr(11)
|
|
||||||
integer*2 id
|
|
||||||
common/mscom/id(NSMAX),s1(215,703),s2(215,703)
|
|
||||||
|
|
||||||
nargs=iargc()
|
|
||||||
if(nargs.lt.2) then
|
|
||||||
print*,'Usage: msk nslow snr'
|
|
||||||
go to 999
|
|
||||||
endif
|
|
||||||
call getarg(1,arg)
|
|
||||||
read(arg,*) nslow
|
|
||||||
call getarg(2,arg)
|
|
||||||
read(arg,*) snr
|
|
||||||
|
|
||||||
! Read simulated pings from a file
|
|
||||||
open(71,file='dat.71',form='unformatted',status='old')
|
|
||||||
read(71) id
|
|
||||||
|
|
||||||
cfile6='123400'
|
|
||||||
npts=30*48000
|
|
||||||
kstep=2048
|
|
||||||
minsigdb=1
|
|
||||||
mousedf=0
|
|
||||||
ntol=200
|
|
||||||
mycall='W8WN'
|
|
||||||
|
|
||||||
! Make some band-limited noise.
|
|
||||||
call random_number(x)
|
|
||||||
nfft=NSMAX
|
|
||||||
call four2a(x,nfft,1,-1,0)
|
|
||||||
df=48000.0/nfft
|
|
||||||
ia=nint(300.0/df)
|
|
||||||
ib=nint(2700.0/df)
|
|
||||||
cx(:ia)=0.
|
|
||||||
cx(ib:)=0.
|
|
||||||
call four2a(cx,nfft,1,1,-1)
|
|
||||||
x(1)=0.
|
|
||||||
rms=sqrt(dot_product(x,x)/NSMAX)
|
|
||||||
x=x/rms
|
|
||||||
|
|
||||||
sig=(10.0**(0.05*snr))/32768.0 !Scaled signal strength
|
|
||||||
dat=sig*id + x !Add pings to noise
|
|
||||||
|
|
||||||
! This loop simulates being called from "datasink()" in program JTMSK.
|
|
||||||
do iblk=1,npts/kstep
|
|
||||||
k=iblk*kstep
|
|
||||||
call rtping(dat,k,cfile6,MinSigdB,MouseDF,ntol,mycall)
|
|
||||||
if(nslow.ne.0) call usleep(42000)
|
|
||||||
enddo
|
|
||||||
|
|
||||||
999 end program msk
|
|
49
lib/msk0.f90
49
lib/msk0.f90
@ -1,49 +0,0 @@
|
|||||||
program msk
|
|
||||||
|
|
||||||
! Starting code for a JTMSK decoder.
|
|
||||||
|
|
||||||
parameter (NSMAX=30*48000)
|
|
||||||
character*80 infile
|
|
||||||
character*6 cfile6
|
|
||||||
real dat(NSMAX)
|
|
||||||
integer hdr(11)
|
|
||||||
integer*2 id
|
|
||||||
common/mscom/id(NSMAX),s1(215,703),s2(215,703)
|
|
||||||
|
|
||||||
nargs=iargc()
|
|
||||||
if(nargs.lt.1) then
|
|
||||||
print*,'Usage: msk file1 [file2 ...]'
|
|
||||||
print*,' Reads data from *.wav files.'
|
|
||||||
go to 999
|
|
||||||
endif
|
|
||||||
|
|
||||||
npts=30*48000
|
|
||||||
kstep=2048
|
|
||||||
minsigdb=6
|
|
||||||
mousedf=0
|
|
||||||
ntol=200
|
|
||||||
|
|
||||||
do ifile=1,nargs
|
|
||||||
call getarg(ifile,infile)
|
|
||||||
open(10,file=infile,access='stream',status='old',err=998)
|
|
||||||
read(10) hdr
|
|
||||||
read(10) id
|
|
||||||
close(10)
|
|
||||||
hdr(1)=hdr(2)
|
|
||||||
i1=index(infile,'.wav')
|
|
||||||
cfile6=infile(i1-6:i1-1)
|
|
||||||
dat=id
|
|
||||||
|
|
||||||
k=0
|
|
||||||
do iblk=1,npts/kstep
|
|
||||||
k=k+kstep
|
|
||||||
call rtping(dat,k,cfile6,MinSigdB,MouseDF,ntol)
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
|
|
||||||
go to 999
|
|
||||||
|
|
||||||
998 print*,'Cannot open file:'
|
|
||||||
print*,infile
|
|
||||||
|
|
||||||
999 end program msk
|
|
@ -37,7 +37,7 @@ subroutine symspec(k,ntrperiod,nsps,ndiskdat,nb,nbslider,pxdb,s,f0a,df3, &
|
|||||||
logical*1 lstrong(0:1023) !Should be (0:512)
|
logical*1 lstrong(0:1023) !Should be (0:512)
|
||||||
integer*2 id2
|
integer*2 id2
|
||||||
complex c0
|
complex c0
|
||||||
common/jt8com/id2(NMAX),ss(184,NSMAX),savg(NSMAX),c0(NDMAX), &
|
common/jt9com/id2(NMAX),ss(184,NSMAX),savg(NSMAX),c0(NDMAX), &
|
||||||
nutc,npts8,junk(20)
|
nutc,npts8,junk(20)
|
||||||
equivalence (x2,cx2)
|
equivalence (x2,cx2)
|
||||||
data rms/999.0/,k0/99999999/,ntrperiod0/0/,nfft3z/0/
|
data rms/999.0/,k0/99999999/,ntrperiod0/0/,nfft3z/0/
|
||||||
|
@ -317,10 +317,10 @@ void MainWindow::dataSink(int k)
|
|||||||
|
|
||||||
if(m_diskData) {
|
if(m_diskData) {
|
||||||
ndiskdat=1;
|
ndiskdat=1;
|
||||||
jt8com_.ndiskdat=1;
|
jt9com_.ndiskdat=1;
|
||||||
} else {
|
} else {
|
||||||
ndiskdat=0;
|
ndiskdat=0;
|
||||||
jt8com_.ndiskdat=0;
|
jt9com_.ndiskdat=0;
|
||||||
}
|
}
|
||||||
// Get power, spectrum, nkhz, and ihsym
|
// Get power, spectrum, nkhz, and ihsym
|
||||||
nb=0;
|
nb=0;
|
||||||
@ -365,8 +365,8 @@ void MainWindow::dataSink(int k)
|
|||||||
n=0;
|
n=0;
|
||||||
}
|
}
|
||||||
if(ihsym == 179) {
|
if(ihsym == 179) {
|
||||||
jt8com_.newdat=1;
|
jt9com_.newdat=1;
|
||||||
jt8com_.nagain=0;
|
jt9com_.nagain=0;
|
||||||
QDateTime t = QDateTime::currentDateTimeUtc();
|
QDateTime t = QDateTime::currentDateTimeUtc();
|
||||||
m_dateTime=t.toString("yyyy-MMM-dd hh:mm");
|
m_dateTime=t.toString("yyyy-MMM-dd hh:mm");
|
||||||
decode(); //Start the decoder
|
decode(); //Start the decoder
|
||||||
|
@ -151,9 +151,9 @@ void CPlotter::draw(float swide[], int i0, float splot[]) //draw()
|
|||||||
void CPlotter::UTCstr()
|
void CPlotter::UTCstr()
|
||||||
{
|
{
|
||||||
int ihr,imin,isec;
|
int ihr,imin,isec;
|
||||||
if(jt8com_.ndiskdat != 0) {
|
if(jt9com_.ndiskdat != 0) {
|
||||||
ihr=jt8com_.nutc/10000;
|
ihr=jt9com_.nutc/10000;
|
||||||
imin=(jt8com_.nutc/100) % 100;
|
imin=(jt9com_.nutc/100) % 100;
|
||||||
} else {
|
} else {
|
||||||
qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000;
|
qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000;
|
||||||
imin=ms/60000;
|
imin=ms/60000;
|
||||||
|
10
soundin.cpp
10
soundin.cpp
@ -2,12 +2,12 @@
|
|||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
#define FRAMES_PER_BUFFER 1024
|
#define FRAMES_PER_BUFFER 1024
|
||||||
#define NSMAX 10000
|
#define NSMAX 22000
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include <portaudio.h>
|
#include <portaudio.h>
|
||||||
extern struct {
|
extern struct {
|
||||||
short int d2[1800*12000]; //This is "common/jt8com/..." in fortran
|
short int d2[1800*12000]; //This is "common/jt9com/..." in fortran
|
||||||
float ss[184*NSMAX];
|
float ss[184*NSMAX];
|
||||||
float savg[NSMAX];
|
float savg[NSMAX];
|
||||||
double fcenter; //USB dial freq (kHz)
|
double fcenter; //USB dial freq (kHz)
|
||||||
@ -28,7 +28,7 @@ extern struct {
|
|||||||
int kin;
|
int kin;
|
||||||
int kline;
|
int kline;
|
||||||
char datetime[20];
|
char datetime[20];
|
||||||
} jt8com_;
|
} jt9com_;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
@ -67,9 +67,9 @@ extern "C" int a2dCallback( const void *inputBuffer, void *outputBuffer,
|
|||||||
|
|
||||||
nbytes=2*framesToProcess; //Bytes per frame
|
nbytes=2*framesToProcess; //Bytes per frame
|
||||||
k=udata->kin;
|
k=udata->kin;
|
||||||
memcpy(&jt8com_.d2[k],inputBuffer,nbytes); //Copy all samples to d2
|
memcpy(&jt9com_.d2[k],inputBuffer,nbytes); //Copy all samples to d2
|
||||||
udata->kin += framesToProcess;
|
udata->kin += framesToProcess;
|
||||||
jt8com_.kin=udata->kin;
|
jt9com_.kin=udata->kin;
|
||||||
|
|
||||||
return paContinue;
|
return paContinue;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "widegraph.h"
|
#include "widegraph.h"
|
||||||
#include "ui_widegraph.h"
|
#include "ui_widegraph.h"
|
||||||
|
|
||||||
#define NSMAX 10000
|
#define NSMAX 22000
|
||||||
|
|
||||||
WideGraph::WideGraph(QWidget *parent) :
|
WideGraph::WideGraph(QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
|
Loading…
Reference in New Issue
Block a user