mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-02-03 09:44:24 -05:00
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:
parent
9e7ed64fb2
commit
291c66806a
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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 (),
|
||||
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user