mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-09-03 05:38:01 -04: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)
|
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
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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 (),
|
||||||
|
@ -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>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user