mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	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:
		
							parent
							
								
									f492a2560d
								
							
						
					
					
						commit
						c353ec244f
					
				@ -85,7 +85,7 @@ extern struct {
 | 
			
		||||
  int   nslots;
 | 
			
		||||
  int   i3bit[5];
 | 
			
		||||
  char  cmsg[5][40];
 | 
			
		||||
  char  mycall[6];
 | 
			
		||||
  char  mycall[12];
 | 
			
		||||
} foxcom_;
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
 | 
			
		||||
@ -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)
 | 
			
		||||
 | 
			
		||||
@ -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()
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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);
 | 
			
		||||
@ -7473,7 +7473,7 @@ 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_
 | 
			
		||||
  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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user