diff --git a/libm65/map65a.f90 b/libm65/map65a.f90 index ab3a677e6..a9164b26d 100644 --- a/libm65/map65a.f90 +++ b/libm65/map65a.f90 @@ -270,10 +270,16 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & f0=mhz+0.001*nkHz ndf=nint(1000.0*(freq-foffset-(nkHz+nfshift))) nsync1=sync1 - nsync2=nint(10.0*log10(sync2)) - 40 !### empirical ### - if(nfast.eq.2) nsync2=nsync2 + 7 + + s2db=10.0*log10(sync2) - 40 !### empirical ### + nsync2=nint(s2db) + if(nfast.eq.2) nsync2=nint(s2db + 6.5) if(decoded(1:4).eq.'RO ' .or. decoded(1:4).eq.'RRR ' .or. & - decoded(1:4).eq.'73 ') nsync2=nsync2-6 + decoded(1:4).eq.'73 ') then + if(nfast.eq.1) nsync2=nint(1.33*s2db + 2.0) + if(nfast.eq.2) nsync2=nint(1.33*s2db + 2.7) + endif + nwrite=nwrite+1 if(nxant.ne.0) then npol=npol-45 @@ -393,10 +399,16 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & ndf1=nint(a(2)) ndf2=nint(a(3)) nsync1=sync1 - nsync2=nint(10.0*log10(sync2)) - 40 !### empirical ### - if(nfast.eq.2) nsync2=nsync2 + 7 + + s2db=10.0*log10(sync2) - 40 !### empirical ### + nsync2=nint(s2db) + if(nfast.eq.2) nsync2=nint(s2db + 6.5) if(decoded(1:4).eq.'RO ' .or. decoded(1:4).eq.'RRR ' .or. & - decoded(1:4).eq.'73 ') nsync2=nsync2-6 + decoded(1:4).eq.'73 ') then + if(nfast.eq.1) nsync2=nint(1.33*s2db + 2.0) + if(nfast.eq.2) nsync2=nint(1.33*s2db + 2.7) + endif + if(nxant.ne.0) then npol=npol-45 if(npol.lt.0) npol=npol+180 diff --git a/mainwindow.cpp b/mainwindow.cpp index da48c07d1..64fd995c4 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1627,8 +1627,12 @@ void MainWindow::doubleClickOnCall(QString hiscall, bool ctrl) QString t1 = t.mid(0,i2); //contents up to text cursor int i1=t1.lastIndexOf("\n") + 1; QString t2 = t1.mid(i1,i2-i1); //selected line - int n = 60*t2.mid(13,2).toInt() + t2.mid(15,2).toInt(); - m_txFirst = ((n%2) == 1); + if(m_nfast==1) { + int n = 60*t2.mid(13,2).toInt() + t2.mid(15,2).toInt(); + m_txFirst = ((n%2) == 1); + } else { + m_txFirst = (t2.mid(17,2).toInt()==30); + } ui->txFirstCheckBox->setChecked(m_txFirst); QString rpt=""; if(ctrl) rpt=t2.mid(23,3); @@ -1649,8 +1653,12 @@ void MainWindow::doubleClickOnMessages(QString hiscall, QString t2) msgBox("Possible dupe: " + hiscall + " already in log."); } ui->dxCallEntry->setText(hiscall); - int n = 60*t2.mid(13,2).toInt() + t2.mid(15,2).toInt(); - m_txFirst = ((n%2) == 1); + if(m_nfast==1) { + int n = 60*t2.mid(13,2).toInt() + t2.mid(15,2).toInt(); + m_txFirst = ((n%2) == 1); + } else { + m_txFirst = (t2.mid(17,2).toInt()==30); + } ui->txFirstCheckBox->setChecked(m_txFirst); lookup(); genStdMsgs("");