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

View File

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

View File

@ -135,7 +135,7 @@ extern "C" {
void calibrate_(char data_dir[], int* iz, double* a, double* b, double* rms, void calibrate_(char data_dir[], int* iz, double* a, double* b, double* rms,
double* sigmaa, double* sigmab, int* irc, int len1); 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 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_modeTx=="FT8") {
if(m_config.bFox()) { if(m_config.bFox()) {
QString t=ui->textBrowser3->toPlainText(); QString t1="";
int len=t.length(); QString t3=ui->textBrowser3->toPlainText() + "\n";
// qint64 ms0=QDateTime::currentMSecsSinceEpoch(); QString t4=ui->textBrowser4->toPlainText() + "\n";
foxgen_(const_cast <char *> (t.toLatin1().constData()),len); int nslots=ui->sbNslots->value();
// qint64 ms=QDateTime::currentMSecsSinceEpoch(); for(int i=0; i<nslots; i++) {
// qDebug() << "aa" << m_Nslots << ms-ms0 << t; 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 { } else {
genft8_(message, MyGrid, &bcontest, &m_i3bit, msgsent, const_cast<char *> (ft8msgbits), genft8_(message, MyGrid, &bcontest, &m_i3bit, msgsent, const_cast<char *> (ft8msgbits),
const_cast<int *> (itone), 22, 6, 22); const_cast<int *> (itone), 22, 6, 22);
@ -6005,7 +6013,7 @@ void MainWindow::transmit (double snr)
if (m_modeTx == "FT8") { if (m_modeTx == "FT8") {
toneSpacing=12000.0/1920.0; toneSpacing=12000.0/1920.0;
if(m_config.x2ToneSpacing()) toneSpacing=2*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, Q_EMIT sendMessage (NUM_FT8_SYMBOLS,
1920.0, ui->TxFreqSpinBox->value () - m_XIT, 1920.0, ui->TxFreqSpinBox->value () - m_XIT,
toneSpacing, m_soundOutput, m_config.audio_output_channel (), 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> <number>5</number>
</property> </property>
<property name="maximum"> <property name="maximum">
<number>20</number> <number>100</number>
</property> </property>
<property name="value"> <property name="value">
<number>12</number> <number>12</number>