Various corrections/additions to DXpedition Fox mode.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8262 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2017-11-27 20:22:44 +00:00
parent 9e7ed64fb2
commit 291c66806a
4 changed files with 43 additions and 41 deletions

View File

@ -96,11 +96,11 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
nsnrfox(j)=nsnrfox(i)
nfreqfox(j)=nfreqfox(i)
n15fox(j)=n
! m=n15max-n
call azdist(params%mygrid,g2fox(j),utch,nAz,nEl,nDmiles,nDkm, &
m=n15max-n
call azdist(params%mygrid,g2fox(j),0.d0,nAz,nEl,nDmiles,nDkm, &
nHotAz,nHotABetter)
write(19,1004) c2fox(j),g2fox(j),nsnrfox(j),nfreqfox(j),nDkm
1004 format(a12,1x,a4,i5,i6,i7)
write(19,1004) c2fox(j),g2fox(j),nsnrfox(j),nfreqfox(j),nDkm,m
1004 format(a12,1x,a4,i5,i6,i7,i3)
endif
enddo
nfox=j
@ -437,7 +437,7 @@ contains
real, intent(in) :: freq
character(len=22), intent(in) :: decoded
character c1*12,c2*6,g2*4,w*4
integer i1,i2,i3,n15
integer i1,i2,i3,n15,nwrap
integer, intent(in) :: nap
real, intent(in) :: qual
character*2 annot
@ -457,7 +457,8 @@ contains
g2fox=' '
nsnrfox=-99
nfreqfox=-99
n15z=-99
n15z=0
nwrap=0
nfox=0
first=.false.
endif
@ -485,13 +486,15 @@ contains
.and. isgrid4(g2)) then
n=params%nutc
n15=(3600*(n/10000) + 60*mod((n/100),100) + mod(n,100))/15
if(n15.lt.n15z) nwrap=nwrap+5760 !New UTC day
n15z=n15
n15=n15+nwrap
nfox=nfox+1
c2fox(nfox)=c2
g2fox(nfox)=g2
nsnrfox(nfox)=snr
nfreqfox(nfox)=nint(freq)
n15fox(nfox)=n15
n15z=n15
endif
endif

View File

@ -1,11 +1,11 @@
subroutine foxgen(t)
subroutine foxgen(nslots,t)
parameter (NN=79,KK=87,NSPS=4*1920)
parameter (NWAVE=NN*NSPS,NFFT=614400,NH=NFFT/2)
character*(*) t
character*22 msg,msgsent
character*12 t1
character*6 MyCall,MyGrid
character*6 MyCall,MyGrid,call1,call2
logical bcontest
integer itone(NN)
integer*1 msgbits(KK)
@ -17,6 +17,7 @@ subroutine foxgen(t)
common/foxcom/wave
equivalence (x,cx),(y,cy)
! print*,'cc',nslots,len(t),t
call system_clock(count0,clkfreq)
MyCall='KH1DX'
MyGrid='AJ10 '
@ -28,28 +29,18 @@ subroutine foxgen(t)
twopi=8.d0*atan(1.d0)
wave=0.
m=len(t)
i=0
i0=1
do n=1,5
do j=1,12
i=i+1
if(i.eq.m .or. ichar(t(i:i)).eq.10) then
if(i.ne.m) t1=t(i0:i-1)
if(i.eq.m) t1=t(i0:i)
i1=index(t1,' ')
msg=t1(1:i1)//MyCall//t1(i1:)
iz=len(trim(msg))
do iter=1,5 !Collapse multiple blanks into one
ib2=index(msg(1:iz),' ')
if(ib2.lt.1) exit
msg=msg(1:ib2)//msg(ib2+2:)
iz=iz-1
enddo
exit
endif
enddo
i0=i+1
do n=1,nslots
ia=22*(n-1)+1
call1=t(ia:ia+5)
if(t(ia+7:ia+10).eq.'RR73') then
irpt1=99
else
read(t(ia+7:ia+10),*) irpt1
endif
call2=t(ia+11:ia+16)
read(t(ia+18:ia+21),*) irpt2
print*,n,call1,irpt1,call2,irpt2
call genft8(msg,mygrid,bcontest,i3bit,msgsent,msgbits,itone)
f0=1500.d0 + fstep*(n-1)
@ -70,7 +61,7 @@ subroutine foxgen(t)
! time=float(count1-count0)/float(clkfreq) !Cumulative execution time
! write(*,3001) n,k,i,time,msgsent
!3001 format(i1,i8,i4,f10.6,2x,a22)
if(i.ge.m) exit
! if(i.ge.m) exit
enddo
sqx=0.

View File

@ -135,7 +135,7 @@ extern "C" {
void calibrate_(char data_dir[], int* iz, double* a, double* b, double* rms,
double* sigmaa, double* sigmab, int* irc, int len1);
void foxgen_(char* tb3, int len);
void foxgen_(int* nslots, char* tb3, int len);
}
int volatile itone[NUM_ISCAT_SYMBOLS]; //Audio tones for all Tx symbols
@ -3324,12 +3324,20 @@ void MainWindow::guiUpdate()
}
if(m_modeTx=="FT8") {
if(m_config.bFox()) {
QString t=ui->textBrowser3->toPlainText();
int len=t.length();
// qint64 ms0=QDateTime::currentMSecsSinceEpoch();
foxgen_(const_cast <char *> (t.toLatin1().constData()),len);
// qint64 ms=QDateTime::currentMSecsSinceEpoch();
// qDebug() << "aa" << m_Nslots << ms-ms0 << t;
QString t1="";
QString t3=ui->textBrowser3->toPlainText() + "\n";
QString t4=ui->textBrowser4->toPlainText() + "\n";
int nslots=ui->sbNslots->value();
for(int i=0; i<nslots; i++) {
QString t0=t3.split("\n").at(i);
if(t0.length()==10) t0 += " ";
t1 += t0;
t0=t4.split("\n").at(i);
if(t0.length()==10) t0 += " ";
t1 += t0;
}
int len1=t1.length();
foxgen_(&nslots, const_cast <char *> (t1.toLatin1().constData()),len1);
} else {
genft8_(message, MyGrid, &bcontest, &m_i3bit, msgsent, const_cast<char *> (ft8msgbits),
const_cast<int *> (itone), 22, 6, 22);
@ -6005,7 +6013,7 @@ void MainWindow::transmit (double snr)
if (m_modeTx == "FT8") {
toneSpacing=12000.0/1920.0;
if(m_config.x2ToneSpacing()) toneSpacing=2*12000.0/1920.0;
if(m_config.bFox()) toneSpacing=-1;
if(m_config.bFox() and !m_tune) toneSpacing=-1;
Q_EMIT sendMessage (NUM_FT8_SYMBOLS,
1920.0, ui->TxFreqSpinBox->value () - m_XIT,
toneSpacing, m_soundOutput, m_config.audio_output_channel (),

View File

@ -1649,7 +1649,7 @@ list. The list can be maintained in Settings (F2).</string>
<number>5</number>
</property>
<property name="maximum">
<number>20</number>
<number>100</number>
</property>
<property name="value">
<number>12</number>