Additional changes to enable Fox to use a compound callsign.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8364 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2017-12-22 18:00:47 +00:00
parent f492a2560d
commit c353ec244f
5 changed files with 16 additions and 17 deletions

View File

@ -85,7 +85,7 @@ extern struct {
int nslots;
int i3bit[5];
char cmsg[5][40];
char mycall[6];
char mycall[12];
} foxcom_;
#ifdef __cplusplus

View File

@ -31,7 +31,7 @@ subroutine foxgen()
real x(NFFT)
real*8 dt,twopi,f0,fstep,dfreq,phi,dphi
complex cx(0:NH)
common/foxcom/wave(NWAVE),nslots,i3bit(5),cmsg(5),mycall(6)
common/foxcom/wave(NWAVE),nslots,i3bit(5),cmsg(5),mycall(12)
common/foxcom2/itone2(NN),msgbits2(KK)
equivalence (x,cx),(y,cy)
data icos7/2,5,6,0,4,1,3/ !Costas 7x7 tone pattern
@ -58,11 +58,11 @@ subroutine foxgen()
msg=cmsg(n)(1:i1)//cmsg(n)(i2+1:i3-2)//' '
read(cmsg(n)(i4+2:i4+4),*) irpt
endif
! print*,'Foxgen:',n,cmsg(n)
call genft8(msg,mygrid,bcontest,0,msgsent,msgbits,itone)
print*,'Foxgen:',n,cmsg(n),msgsent
if(i3b.eq.1) then
icrc10=crc10(c_loc(mycall),6)
icrc10=crc10(c_loc(mycall),12)
nrpt=irpt+30
write(cbits,1001) msgbits(1:56),icrc10,nrpt,i3b,0
1001 format(56b1.1,b10.10,b6.6,b3.3,b12.12)

View File

@ -4,16 +4,16 @@ subroutine foxgen_wrap(msg40,msgbits,itone)
parameter (NWAVE=NN*NSPS)
character*40 msg40,cmsg
character*6 mycall6
character*12 mycall12
integer*1 msgbits(KK),msgbits2
integer itone(NN)
common/foxcom/wave(NWAVE),nslots,i3bit(5),cmsg(5),mycall6
common/foxcom/wave(NWAVE),nslots,i3bit(5),cmsg(5),mycall12
common/foxcom2/itone2(NN),msgbits2(KK)
nslots=1
i1=index(msg40,'<')
i2=index(msg40,'>')
mycall6=msg40(i1+1:i2-1)//' '
mycall12=msg40(i1+1:i2-1)//' '
cmsg(1)=msg40
i3bit(1)=1
call foxgen()

View File

@ -27,7 +27,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, &
integer icos7(0:6),ip(1)
integer nappasses(0:5) !Number of decoding passes to use for each QSO state
integer naptypes(0:5,4) ! (nQSOProgress, decoding pass) maximum of 4 passes for now
integer*1, target:: i1hiscall(6)
integer*1, target:: i1hiscall(12)
complex cd0(3200)
complex ctwk(32)
complex csymb(32)
@ -398,11 +398,10 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, &
if(xsnr .lt. -24.0) xsnr=-24.0
if(i3bit.eq.1) then
hiscall6=hiscall12(1:6)
do i=1,6
i1hiscall(i)=ichar(hiscall6(i:i))
do i=1,12
i1hiscall(i)=ichar(hiscall12(i:i))
enddo
icrc10=crc10(c_loc(i1hiscall),6)
icrc10=crc10(c_loc(i1hiscall),12)
write(cbits,1001) decoded
1001 format(87i1)
read(cbits,1002) ncrc10,nrpt

View File

@ -7433,12 +7433,12 @@ void MainWindow::foxTxSequencer()
if(islot >= m_Nslots) goto Transmit;
}
//One or more Tx slots are still available
//One or more Tx slots are still available, repeat call to a Hound in the QSOqueue
while (!m_foxQSOqueue.isEmpty()) {
//should limit repeat transmissions here
hc1=m_foxQSOqueue.dequeue(); //Recover hound callsign from QSO queue
m_foxQSOqueue.enqueue(hc1); //Put him back in, at the end
fm = hc1 + " " + m_config.my_callsign() + " " + m_foxQSO[hc1].sent; //Tx msg
fm = hc1 + " " + m_baseCall + " " + m_foxQSO[hc1].sent; //Tx msg
islot++;
//Generate tx waveform
foxGenWaveform(islot-1,fm);
@ -7455,7 +7455,7 @@ void MainWindow::foxTxSequencer()
m_foxQSO[hc1].sent=rpt; //Report to send him
m_foxQSO[hc1].t0=now; //QSO start time
rm_tb4(hc1); //Remove this hound from tb4
fm = hc1 + " " + m_config.my_callsign() + " " + rpt; //Tx msg
fm = hc1 + " " + m_baseCall + " " + rpt; //Tx msg
islot++;
//Generate tx waveform
foxGenWaveform(islot-1,fm);
@ -7472,8 +7472,8 @@ void MainWindow::foxTxSequencer()
Transmit:
foxcom_.nslots=islot;
QString foxCall=m_config.my_callsign() + " ";
strncpy(&foxcom_.mycall[0], foxCall.toLatin1(),6); //Copy Fox callsign into foxcom_
QString foxCall=m_config.my_callsign() + " ";
strncpy(&foxcom_.mycall[0], foxCall.toLatin1(),12); //Copy Fox callsign into foxcom_
foxgen_();
int maxAge=30*ui->sbMaxTime->value(); //60 ==> max 4 calls (0 30 60 90) to a new Fox