mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-24 13:08:34 -04:00
merge
This commit is contained in:
commit
e26d2cb02c
@ -180,14 +180,15 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
||||
else
|
||||
do i=1,nfox
|
||||
n=n30fox(i)
|
||||
if(n30-n30fox(i).le.4) then
|
||||
nage=min(99,mod(n30-n+288000,2880))
|
||||
if(nage.le.4) then
|
||||
j=j+1
|
||||
c2fox(j)=c2fox(i)
|
||||
g2fox(j)=g2fox(i)
|
||||
nsnrfox(j)=nsnrfox(i)
|
||||
nfreqfox(j)=nfreqfox(i)
|
||||
n30fox(j)=n
|
||||
nage=min(99,mod(n30-n+288000,2880))
|
||||
! nage=min(99,mod(n30-n+288000,2880))
|
||||
if(len(trim(g2fox(j))).eq.4) then
|
||||
call azdist(mygrid,g2fox(j)//' ',0.d0,nAz,nEl,nDmiles, &
|
||||
nDkm,nHotAz,nHotABetter)
|
||||
|
@ -1,6 +1,6 @@
|
||||
module ft8_a7
|
||||
|
||||
parameter(MAXDEC=100)
|
||||
parameter(MAXDEC=200)
|
||||
|
||||
! For the following three arrays
|
||||
! First index i=decode number in this sequence
|
||||
@ -43,7 +43,7 @@ subroutine ft8_a7_save(nutc,dt,f,msg)
|
||||
! Add this decode to current table for this sequence
|
||||
ndec(j,1)=ndec(j,1)+1 !Number of decodes in this sequence
|
||||
i=ndec(j,1) !i is index of a new table entry
|
||||
if(i.ge.MAXDEC-1) return !Prevent table overflow
|
||||
if(i.gt.MAXDEC) return !Prevent table overflow (indexes start at 1)
|
||||
|
||||
dt0(i,j,1)=dt !Save dt in table
|
||||
f0(i,j,1)=f !Save f in table
|
||||
|
@ -44,7 +44,7 @@ contains
|
||||
|
||||
class(ft8_decoder), intent(inout) :: this
|
||||
procedure(ft8_decode_callback) :: callback
|
||||
parameter (MAXCAND=600,MAX_EARLY=100)
|
||||
parameter (MAXCAND=600,MAX_EARLY=200)
|
||||
real*8 tsec,tseq
|
||||
real sbase(NH1)
|
||||
real candidate(3,MAXCAND)
|
||||
@ -58,9 +58,9 @@ contains
|
||||
integer*2 iwave(15*12000)
|
||||
integer apsym2(58),aph10(10)
|
||||
character datetime*13,msg37*37
|
||||
character*37 allmessages(200)
|
||||
character*37 allmessages(MAX_EARLY)
|
||||
character*12 ctime
|
||||
integer allsnrs(200)
|
||||
integer allsnrs(MAX_EARLY)
|
||||
integer itone(NN)
|
||||
integer itone_save(NN,MAX_EARLY)
|
||||
real f1_save(MAX_EARLY)
|
||||
@ -215,6 +215,9 @@ contains
|
||||
if(msg37.eq.allmessages(id)) ldupe=.true.
|
||||
enddo
|
||||
if(.not.ldupe) then
|
||||
if(ndecodes.ge.MAX_EARLY) then
|
||||
cycle
|
||||
endif
|
||||
ndecodes=ndecodes+1
|
||||
allmessages(ndecodes)=msg37
|
||||
allsnrs(ndecodes)=nsnr
|
||||
|
@ -561,8 +561,8 @@ void DisplayText::displayHoundToBeCalled(QString t, bool bAtTop, QColor bg, QCol
|
||||
}
|
||||
|
||||
void DisplayText::setHighlightedHoundText(QString t) {
|
||||
QColor bg;
|
||||
QColor fg;
|
||||
QColor bg=QColor{255,255,255};
|
||||
QColor fg=QColor{0,0,0};
|
||||
highlight_types types{Highlight::Call};
|
||||
set_colours(m_config, &bg, &fg, types);
|
||||
// t is multiple lines of text, each line is a hound calling
|
||||
|
@ -4519,6 +4519,7 @@ void MainWindow::readFromStdout() //readFromStdout
|
||||
m_nFoxFreq=decodedtext.string().mid(16,4).toInt();
|
||||
hound_reply ();
|
||||
} else {
|
||||
if (SpecOp::HOUND==m_specOp && (text.mid(4,2).contains("15") or text.mid(4,2).contains("45"))) return; // ignore stations calling in the wrong time slot
|
||||
if (text.contains(" " + m_config.my_callsign() + " " + m_hisCall) && !text.contains("73 ")) processMessage(decodedtext0); // needed for MSHV multistream messages
|
||||
}
|
||||
}
|
||||
@ -5033,7 +5034,10 @@ void MainWindow::guiUpdate()
|
||||
foxcom_.bSendMsg=ui->cbSendMsg->isChecked();
|
||||
memcpy(foxcom_.textMsg, m_freeTextMsg.leftJustified(26,' ').toLatin1(),26);
|
||||
foxgen_(&bSuperFox, fname.constData(), (FCL)fname.size());
|
||||
if(bSuperFox) sfox_tx();
|
||||
if(bSuperFox) {
|
||||
writeFoxTxMsgs();
|
||||
sfox_tx();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -5331,6 +5335,14 @@ void MainWindow::guiUpdate()
|
||||
// n64=n64/30;
|
||||
// n64=n64*30;
|
||||
// qDebug() << "bb" << m_config.FoxKey() << nsec%60 << dec_data.params.nutc << n64 << n64%60;
|
||||
|
||||
// prevent tuning on top of a SuperFox message
|
||||
if (SpecOp::HOUND==m_specOp && m_config.superFox() && m_tune) {
|
||||
QDateTime now = QDateTime::currentDateTimeUtc();
|
||||
int s = now.time().toString("ss").toInt();
|
||||
if ((s >= 0 && s < 15) || (s >= 30 && s < 45)) ui->tuneButton->click ();
|
||||
}
|
||||
|
||||
if(m_mode=="FST4") chk_FST4_freq_range();
|
||||
m_currentBand=m_config.bands()->find(m_freqNominal);
|
||||
if( SpecOp::HOUND == m_specOp ) {
|
||||
@ -10642,7 +10654,10 @@ Transmit:
|
||||
::memcpy(foxcom_.textMsg, m_freeTextMsg0.leftJustified(26,' ').toLatin1(),26);
|
||||
auto fname {QDir::toNativeSeparators(m_config.writeable_data_dir().absoluteFilePath("sfox_1.dat")).toLocal8Bit()};
|
||||
foxgen_(&bSuperFox, fname.constData(), (FCL)fname.size());
|
||||
if(bSuperFox) sfox_tx();
|
||||
if(bSuperFox) {
|
||||
writeFoxTxMsgs();
|
||||
sfox_tx();
|
||||
}
|
||||
m_tFoxTxSinceCQ++;
|
||||
|
||||
for(QString hc: m_foxQSO.keys()) { //Check for strikeout or timeout
|
||||
@ -10775,7 +10790,24 @@ void MainWindow::foxGenWaveform(int i,QString fm)
|
||||
writeFoxQSO(t + fm.trimmed());
|
||||
}
|
||||
|
||||
void MainWindow::writeFoxQSO(QString const& msg)
|
||||
void MainWindow::writeFoxTxMsgs() {
|
||||
// references extern struct foxcom_
|
||||
QString t;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
t = QString::fromLatin1(foxcom_.cmsg[i]).left(40);
|
||||
if (t.length() > 0) {
|
||||
write_all("Tx", t);
|
||||
}
|
||||
}
|
||||
t = QString::fromLatin1(foxcom_.textMsg).left(38);
|
||||
if (foxcom_.bSendMsg) {
|
||||
write_all("Tx", "-Free Text- "+t);
|
||||
}
|
||||
if (foxcom_.bMoreCQs) {
|
||||
write_all("Tx", "-MoreCQs- ");
|
||||
}
|
||||
}
|
||||
void MainWindow::writeFoxQSO(QString const& msg)
|
||||
{
|
||||
QString t;
|
||||
t = t.asprintf("%3d%3d%3d",m_houndQueue.count(),m_foxQSOinProgress.count(),m_foxQSO.count());
|
||||
|
@ -894,6 +894,7 @@ private:
|
||||
void refreshPileupList();
|
||||
QString userAgent();
|
||||
void handleVerifyMsg(int status, QDateTime ts, QString callsign, QString code, QString const &response);
|
||||
void writeFoxTxMsgs();
|
||||
};
|
||||
|
||||
extern int killbyname(const char* progName);
|
||||
|
Loading…
Reference in New Issue
Block a user