Allow Hound callers to use Fox's compound callsign.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8346 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2017-12-19 15:18:56 +00:00
parent c9b0ef9d7a
commit 6ac591f5c7
2 changed files with 23 additions and 14 deletions

View File

@ -440,12 +440,12 @@ contains
real, intent(in) :: freq real, intent(in) :: freq
character(len=32), intent(in) :: decoded character(len=32), intent(in) :: decoded
character c1*12,c2*6,g2*4,w*4 character c1*12,c2*6,g2*4,w*4
integer i0,i1,i2,i3,n15,nwrap integer i0,i1,i2,i3,i4,i5,n15,nwrap
integer, intent(in) :: nap integer, intent(in) :: nap
real, intent(in) :: qual real, intent(in) :: qual
character*2 annot character*2 annot
character*32 decoded0 character*32 decoded0
logical isgrid4,first logical isgrid4,first,b0,b1,b2
data first/.true./ data first/.true./
save save
@ -489,8 +489,15 @@ contains
c1=decoded0(1:i1-1)//' ' c1=decoded0(1:i1-1)//' '
c2=decoded0(i1+1:i2-1) c2=decoded0(i1+1:i2-1)
g2=decoded0(i2+1:i3-1) g2=decoded0(i2+1:i3-1)
if(c1.eq.params%mycall .and. i3-i2.eq.5 .and. isgrid4(g2) .and. & b0=c1.eq.params%mycall
nint(freq).ge.1000) then if(len(trim(c1)).ne.len(trim(params%mycall))) then
i4=index(trim(c1),trim(params%mycall))
i5=index(trim(params%mycall),trim(c1))
if(i4.ge.1 .or. i5.ge.1) b0=.true.
endif
b1=i3-i2.eq.5 .and. isgrid4(g2)
b2=i3-i2.eq.1
if(b0 .and. (b1.or.b2) .and. nint(freq).ge.1000) 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, handle the wrap if(n15.lt.n15z) nwrap=nwrap+5760 !New UTC day, handle the wrap

View File

@ -2831,7 +2831,6 @@ void MainWindow::readFromStdout() //readFromStdout
, tr ("Cannot open \"%1\" for append: %2") , tr ("Cannot open \"%1\" for append: %2")
.arg (f.fileName ()).arg (f.errorString ())); .arg (f.fileName ()).arg (f.errorString ()));
} }
if (m_config.insert_blank () && m_blankLine && !m_config.bFox()) { if (m_config.insert_blank () && m_blankLine && !m_config.bFox()) {
QString band; QString band;
if((QDateTime::currentMSecsSinceEpoch() / 1000 - m_secBandChanged) > 4*m_TRperiod/4) { if((QDateTime::currentMSecsSinceEpoch() / 1000 - m_secBandChanged) > 4*m_TRperiod/4) {
@ -2888,7 +2887,6 @@ void MainWindow::readFromStdout() //readFromStdout
if(!m_config.bFox()) processMessage (decodedtext); if(!m_config.bFox()) processMessage (decodedtext);
ui->cbFirst->setStyleSheet(""); ui->cbFirst->setStyleSheet("");
} else { } else {
//### if(m_config.bFox() and for_us and (audioFreq<1000)) bDisplayRight=true;
if(m_config.bFox() and for_us and (audioFreq<1000)) bDisplayRight=true; if(m_config.bFox() and for_us and (audioFreq<1000)) bDisplayRight=true;
if(!m_config.bFox() and (for_us or (abs(audioFreq - m_wideGraph->rxFreq()) <= 10))) bDisplayRight=true; if(!m_config.bFox() and (for_us or (abs(audioFreq - m_wideGraph->rxFreq()) <= 10))) bDisplayRight=true;
} }
@ -4792,7 +4790,6 @@ void MainWindow::acceptQSO2(QDateTime const& QSO_date_off, QString const& call,
qint64 MainWindow::nWidgets(QString t) qint64 MainWindow::nWidgets(QString t)
{ {
// qDebug() << t << N_WIDGETS << t.length();
Q_ASSERT(t.length()==N_WIDGETS); Q_ASSERT(t.length()==N_WIDGETS);
qint64 n=0; qint64 n=0;
for(int i=0; i<N_WIDGETS; i++) { for(int i=0; i<N_WIDGETS; i++) {
@ -4807,7 +4804,6 @@ void MainWindow::displayWidgets(qint64 n)
bool b; bool b;
for(int i=0; i<N_WIDGETS; i++) { for(int i=0; i<N_WIDGETS; i++) {
b=(n&j) != 0; b=(n&j) != 0;
// qDebug() << i << j << (n&j) << b;
if(i==0) ui->txFirstCheckBox->setVisible(b); if(i==0) ui->txFirstCheckBox->setVisible(b);
if(i==1) ui->TxFreqSpinBox->setVisible(b); if(i==1) ui->TxFreqSpinBox->setVisible(b);
if(i==2) ui->RxFreqSpinBox->setVisible(b); if(i==2) ui->RxFreqSpinBox->setVisible(b);
@ -4844,12 +4840,17 @@ void MainWindow::displayWidgets(qint64 n)
if(i==24) ui->actionEnable_AP_FT8->setVisible (b); if(i==24) ui->actionEnable_AP_FT8->setVisible (b);
if(i==25) ui->actionEnable_AP_JT65->setVisible (b); if(i==25) ui->actionEnable_AP_JT65->setVisible (b);
if(i==26) ui->actionEnable_AP_DXcall->setVisible (b); if(i==26) ui->actionEnable_AP_DXcall->setVisible (b);
if(i==27) ui->cbFirst->setVisible(b);
if(i==28) ui->cbVHFcontest->setVisible(b);
if(i==29) ui->measure_check_box->setVisible(b);
if(i==30) ui->labDXped->setVisible(b);
if(i==31) ui->cbRxAll->setVisible(b);
j=j>>1; j=j>>1;
} }
ui->cbFirst->setVisible ("FT8" == m_mode); // ui->cbFirst->setVisible ("FT8" == m_mode);
ui->cbVHFcontest->setVisible(m_mode=="FT8" or m_mode=="MSK144"); // ui->cbVHFcontest->setVisible(m_mode=="FT8" or m_mode=="MSK144");
ui->measure_check_box->setChecked (false); // ui->measure_check_box->setChecked (false);
ui->measure_check_box->setVisible ("FreqCal" == m_mode); // ui->measure_check_box->setVisible ("FreqCal" == m_mode);
m_lastCallsign.clear (); // ensures Tx5 is updated for new modes m_lastCallsign.clear (); // ensures Tx5 is updated for new modes
genStdMsgs (m_rpt, true); genStdMsgs (m_rpt, true);
} }
@ -7158,7 +7159,7 @@ QString MainWindow::sortHoundCalls(QString t, int isort, int max_dB)
QMap<QString,QString> map; QMap<QString,QString> map;
QStringList lines,lines2; QStringList lines,lines2;
QString msg,houndCall,t1; QString msg,houndCall,t1;
QString ABC{"ABCDEFGHIJKLMNOPQRSTUVWXYZ"}; QString ABC{"ABCDEFGHIJKLMNOPQRSTUVWXYZ _"};
QList<int> list; QList<int> list;
int i,j,k,m,n,nlines; int i,j,k,m,n,nlines;
bool bReverse=(isort >= 3); bool bReverse=(isort >= 3);
@ -7169,6 +7170,7 @@ QString MainWindow::sortHoundCalls(QString t, int isort, int max_dB)
nlines=lines.length()-1; nlines=lines.length()-1;
for(i=0; i<nlines; i++) { for(i=0; i<nlines; i++) {
msg=lines.at(i); //key = callsign msg=lines.at(i); //key = callsign
if(msg.mid(13,1)==" ") msg=msg.mid(0,16) + "_" + msg.mid(17);
houndCall=msg.split(" ").at(0); //value = "call grid snr freq dist age" houndCall=msg.split(" ").at(0); //value = "call grid snr freq dist age"
map[houndCall]=msg; map[houndCall]=msg;
} }