Working on WSJT-X <--> QMAP communication. Not right, yet.

This commit is contained in:
Joe Taylor 2023-01-25 20:41:15 -05:00
parent 2d7b76ff03
commit 46fdc79881
2 changed files with 48 additions and 14 deletions

View File

@ -903,6 +903,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
ui->lh_decodes_headings_label->setText(t);
ui->rh_decodes_headings_label->setText(t);
readSettings(); //Restore user's setup parameters
if(m_mode=="Q65") read_log();
m_audioThread.start (m_audioThreadPriority);
#ifdef WIN32
@ -3256,6 +3257,7 @@ void MainWindow::msgAvgDecode2()
void MainWindow::decode() //decode()
{
if(m_decoderBusy) return; //Don't start decoder if it's already busy.
m_fetched=0;
QDateTime now = QDateTime::currentDateTimeUtc ();
if( m_dateTimeLastTX.isValid () ) {
qint64 isecs_since_tx = m_dateTimeLastTX.secsTo(now);
@ -3421,7 +3423,6 @@ void MainWindow::decode() //decode()
narg[13]=-1;
narg[14]=m_config.aggressive();
memcpy(d2b,dec_data.d2,2*360000);
m_fetched=0;
watcher3.setFuture (QtConcurrent::run (std::bind (fast_decode_, &d2b[0],
&narg[0],&m_TRperiod, &m_msg[0][0], dec_data.params.mycall,
dec_data.params.hiscall, (FCL)8000, (FCL)12, (FCL)12)));
@ -3549,6 +3550,28 @@ void MainWindow::decodeDone ()
if(m_mode!="FT8" or dec_data.params.nzhsym==50) m_nDecodes=0;
}
void MainWindow::read_log()
{
static QFile f {QDir {QStandardPaths::writableLocation (QStandardPaths::DataLocation)}.absoluteFilePath ("wsjtx.log")};
f.open(QIODevice::ReadOnly);
m_score=0;
if(f.isOpen()) {
QTextStream in(&f);
QString line,callsign;
for(int i=0; i<99999; i++) {
line=in.readLine();
if(line.length()<=0) break;
callsign=line.mid(40,6);
int n=callsign.indexOf(",");
if(n>0) callsign=callsign.left(n);
m_EMEworked[callsign]=true;
m_score++;
qDebug() << "aa" << m_score << callsign;
}
f.close();
}
}
void MainWindow::ARRL_Digi_Update(DecodedText dt)
{
// Extract information relevant for the ARRL Digi contest
@ -4845,8 +4868,8 @@ void MainWindow::guiUpdate()
//Once per second (onesec)
if(nsec != m_sec0) {
// qDebug() << "AAA" << nsec << ipc_qmap[0] << ipc_qmap[1] << ipc_qmap[2]
// << ipc_qmap[3] << ipc_qmap[4] << m_fetched;
qDebug() << "AAA" << nsec << ipc_qmap[0] << ipc_qmap[1] << ipc_qmap[2]
<< ipc_qmap[3] << ipc_qmap[4] << m_fetched;
if(m_mode=="FST4") chk_FST4_freq_range();
m_currentBand=m_config.bands()->find(m_freqNominal);
@ -6536,15 +6559,21 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call,
}
if(m_ActiveStationsWidget!=NULL) {
QString band=m_config.bands()->find(dial_freq);
activeWorked(call,band);
int points=m_activeCall[call].points;
m_score += points;
ARRL_logged al;
al.time=QDateTime::currentDateTimeUtc();
al.band=band;
al.points=points;
m_arrl_log.append(al);
if(m_mode=="Q65") {
m_score++;
m_EMEworked[call]=true;
qDebug() << "bb" << m_score << call;
} else {
QString band=m_config.bands()->find(dial_freq);
activeWorked(call,band);
int points=m_activeCall[call].points;
m_score += points;
ARRL_logged al;
al.time=QDateTime::currentDateTimeUtc();
al.band=band;
al.points=points;
m_arrl_log.append(al);
}
updateRate();
}
@ -9231,6 +9260,7 @@ void MainWindow::write_transmit_entry (QString const& file_name)
void MainWindow::readWidebandDecodes()
{
qDebug() << "dd" << m_fetched << qmapcom.ndecodes;
if(m_ActiveStationsWidget==NULL) return;
int nhr=0;
@ -9252,7 +9282,6 @@ void MainWindow::readWidebandDecodes()
m_EMECall[dxcall].fsked=fsked;
m_EMECall[dxcall].nsnr=nsnr;
m_EMECall[dxcall].t=60*nhr + nmin;
m_EMECall[dxcall].worked=false; //### TEMPORARY ###
if(w3.contains(grid_regexp)) m_EMECall[dxcall].grid4=w3;
m_fetched++;
@ -9292,7 +9321,9 @@ void MainWindow::readWidebandDecodes()
if(age<=maxAge) {
dxcall=(i.key()+" ").left(8);
dxgrid4=(i->grid4+"... ").left(4);
if(i->worked) {
// if(i->worked) {
qDebug() << "cc" << dxcall.trimmed();
if(m_EMEworked[dxcall.trimmed()]) {
t1=t1.asprintf("%7.3f %5.1f %+03d %8s %4s %3d %3d\n",i->frx,i->fsked,snr,dxcall.toLatin1().constData(),
dxgrid4.toLatin1().constData(),odd,age);
} else {

View File

@ -714,6 +714,8 @@ private:
};
QMap<QString,EMECall> m_EMECall;
QMap<QString,bool> m_EMEworked;
struct RecentCall
{
qint64 dialFreq;
@ -861,6 +863,7 @@ private:
Q_SLOT void ARRL_Digi_Display();
void ARRL_Digi_Update(DecodedText dt);
void activeWorked(QString call, QString band);
void read_log();
};
extern int killbyname(const char* progName);