From 7e549b5d55ffb3a81ee5eb3f864f50dfabcc88ff Mon Sep 17 00:00:00 2001 From: Joe Taylor <k1jt@arrl.org> Date: Thu, 30 Nov 2017 20:34:05 +0000 Subject: [PATCH] More Fox progress... git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8271 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/ft8/foxgen.f90 | 27 +++++---------------------- mainwindow.cpp | 42 ++++++++++++++++++------------------------ 2 files changed, 23 insertions(+), 46 deletions(-) diff --git a/lib/ft8/foxgen.f90 b/lib/ft8/foxgen.f90 index 9a483a969..1ff128c2f 100644 --- a/lib/ft8/foxgen.f90 +++ b/lib/ft8/foxgen.f90 @@ -1,12 +1,9 @@ -subroutine foxgen(mycall,mygrid6,t) +subroutine foxgen() parameter (NN=79,KK=87,NSPS=4*1920) parameter (NWAVE=NN*NSPS,NFFT=614400,NH=NFFT/2) - character*(*) t character*32 cmsg character*22 msg,msgsent - character*12 t1 - character*6 mycall,mygrid6,mygrid,call1,call2 logical bcontest integer itone(NN) integer*1 msgbits(KK) @@ -17,8 +14,6 @@ subroutine foxgen(mycall,mygrid6,t) common/foxcom/wave(NWAVE),nslots,cmsg(5) equivalence (x,cx),(y,cy) - mygrid=mygrid6(1:4)//' ' -! print*,mycall,' ',mygrid6,' ',nslots,len(t),t call system_clock(count0,clkfreq) bcontest=.false. i3bit=0 @@ -29,18 +24,10 @@ subroutine foxgen(mycall,mygrid6,t) wave=0. 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) + i3bit=0 + print*,n,i3bit,cmsg(n) + msg=cmsg(n)(1:22) + call genft8(msg," ",bcontest,i3bit,msgsent,msgbits,itone) f0=1500.d0 + fstep*(n-1) phi=0.d0 @@ -57,10 +44,6 @@ subroutine foxgen(mycall,mygrid6,t) enddo call system_clock(count1,clkfreq) -! 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 enddo sqx=0. diff --git a/mainwindow.cpp b/mainwindow.cpp index 6d9258b08..8019c1780 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -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* mycall, char* mygrid, char* tb3, int len1, int len2, int len3); + void foxgen_(); } int volatile itone[NUM_ISCAT_SYMBOLS]; //Audio tones for all Tx symbols @@ -3301,28 +3301,25 @@ void MainWindow::guiUpdate() } if(m_modeTx=="FT8") { if(m_config.bFox()) { - int islots=0; QString msg[5]; - QString t1=""; + QString t1=" "; QString t3=ui->textBrowser3->toPlainText() + "\n"; QString t4=ui->textBrowser4->toPlainText() + "\n"; + int islots=t3.split("\n").size() - 1; for(int i=0; i<m_Nslots; i++) { - QString t0=t3.split("\n").at(i); - if(t0=="") break; - if(t0.length()==10) t0 += " "; - t1 += t0; - QString t2=t4.split("\n").at(i); - if(t2=="") break; - if(t2.length()==10) t2 += " "; - t1 += t2; - islots=i; - } - int len3=t1.length(); -// qDebug() << "aa" << len3 << t1; - foxcom_.nslots=islots; - if(len3>10) { - foxgen_(MyCall, MyGrid, const_cast <char *> (t1.toLatin1().constData()),6,6,len3); + msg[i]=""; + if(i<islots and t3.length() >= 11) { + msg[i]=t3.split("\n").at(i).mid(0,7) + m_config.my_callsign() + t3.split("\n").at(i).mid(6,5); + } + if(msg[i]=="") msg[i]=ui->comboBoxCQ->currentText() + " " + m_config.my_callsign() + + " " + m_config.my_grid().mid(0,4); + msg[i] += " "; + msg[i]=msg[i].mid(0,32); + if(msg[i].indexOf(" RR73 ") > 6) qDebug() << "Logit:" << msg[i]; + strncpy(&foxcom_.cmsg[i][0], msg[i].toLatin1(),32); } + foxcom_.nslots=m_Nslots; + foxgen_(); } else { genft8_(message, MyGrid, &bcontest, &m_i3bit, msgsent, const_cast<char *> (ft8msgbits), const_cast<int *> (itone), 22, 6, 22); @@ -3861,7 +3858,7 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers) } if(m_config.bFox() and m_decodedText2) { - if(m_nToBeCalled >= 2*m_Nslots or m_nFoxCallers==0) return; + if(m_nToBeCalled >= (m_Nslots + 10) or m_nFoxCallers==0) return; QString t=cursor.block().text(); QString c2=t.split(" ",QString::SkipEmptyParts).at(0); if(ui->textBrowser3->toPlainText().indexOf(c2) >= 0) return; //Don't allow same call twice @@ -7171,9 +7168,6 @@ void MainWindow::on_sbMax_dB_valueChanged(int n) void MainWindow::on_pbFoxReset_clicked() { - QString t=""; - for(int i=0; i<m_Nslots; i++) { - t += ui->comboBoxCQ->currentText() + "\n"; - } - ui->textBrowser3->setText(t); + ui->textBrowser3->setText(""); + ui->textBrowser4->setText(""); }