Update to PSK Reporter interface. Still alpha code.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3189 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Edson W. R. Pereira 2013-04-16 23:41:50 +00:00
parent c856c563f6
commit c53b29f46f
2 changed files with 13 additions and 10 deletions

View File

@ -1,4 +1,4 @@
//-------------------------------------------------------------- MainWindow //--------------------------------------------------------------- MainWindow
#include "mainwindow.h" #include "mainwindow.h"
#include "ui_mainwindow.h" #include "ui_mainwindow.h"
#include "devsetup.h" #include "devsetup.h"
@ -1355,17 +1355,18 @@ void MainWindow::readFromStdout() //readFromStdout
#ifdef unix #ifdef unix
if(b and !m_diskData) { if(b and !m_diskData) {
qDebug() << msg;
int i1=msg.indexOf(" "); int i1=msg.indexOf(" ");
QString c2=msg.mid(i1+1); QString c2=msg.mid(i1+1);
int i2=c2.indexOf(" "); int i2=c2.indexOf(" ");
QString g2=c2.mid(i2+1,4); QString g2=c2.mid(i2+1,4);
c2=c2.mid(0,i2); c2=c2.mid(0,i2);
QString grid;
if(gridOK(g2)) grid = g2;
int nHz=t.mid(22,4).toInt(); int nHz=t.mid(22,4).toInt();
QString freq = QString::number(1000000.0*m_dialFreq + nHz + 0.5); QString freq = QString::number((int)(1000000.0*m_dialFreq + nHz + 0.5));
qDebug() << freq;
QString snr= QString::number(t.mid(10,3).toInt()); QString snr= QString::number(t.mid(10,3).toInt());
psk_Reporter->addRemoteStation(c2,grid,freq,"JT9",snr,QString::number(QDateTime::currentDateTime().toTime_t())); if(gridOK(g2))
psk_Reporter->addRemoteStation(c2,g2,freq,"JT9",snr,QString::number(QDateTime::currentDateTime().toTime_t()));
} }
#endif #endif
} }

View File

@ -32,7 +32,6 @@ PSK_Reporter::PSK_Reporter(QObject *parent) :
m_randomId_h = QString("%1").arg(qrand(),8,16,QChar('0')); m_randomId_h = QString("%1").arg(qrand(),8,16,QChar('0'));
m_udpSocket = new QUdpSocket(this); m_udpSocket = new QUdpSocket(this);
m_udpSocket->bind(QHostAddress::LocalHost,14739); // Force udp source port
reportTimer = new QTimer(this); reportTimer = new QTimer(this);
connect(reportTimer, SIGNAL(timeout()), this, SLOT(sendReport())); connect(reportTimer, SIGNAL(timeout()), this, SLOT(sendReport()));
@ -43,7 +42,7 @@ void PSK_Reporter::setLocalStation(QString call, QString gridSquare, QString pro
m_rxCall = call; m_rxCall = call;
m_rxGrid = gridSquare; m_rxGrid = gridSquare;
m_progId = programInfo; m_progId = programInfo;
reportTimer->start(5*60*1000); // 5 minutes; reportTimer->start(1*60*1000); // 5 minutes;
} }
void PSK_Reporter::addRemoteStation(QString call, QString grid, QString freq, QString mode, QString snr, QString time ) void PSK_Reporter::addRemoteStation(QString call, QString grid, QString freq, QString mode, QString snr, QString time )
@ -63,6 +62,8 @@ void PSK_Reporter::sendReport()
if (m_spotQueue.isEmpty()) if (m_spotQueue.isEmpty())
return; return;
qDebug() << m_rxCall << m_rxGrid << m_progId;
// Header // Header
QString header_h = m_header_h; QString header_h = m_header_h;
header_h.replace("tttttttt", QString("%1").arg(QDateTime::currentDateTime().toTime_t(),8,16,QChar('0'))); header_h.replace("tttttttt", QString("%1").arg(QDateTime::currentDateTime().toTime_t(),8,16,QChar('0')));
@ -81,13 +82,12 @@ void PSK_Reporter::sendReport()
QString txInfoData_h = "50E3llll"; QString txInfoData_h = "50E3llll";
while (!m_spotQueue.isEmpty()) { while (!m_spotQueue.isEmpty()) {
QHash<QString,QString> spot = m_spotQueue.dequeue(); QHash<QString,QString> spot = m_spotQueue.dequeue();
qDebug() << spot;
txInfoData_h += QString("%1").arg(spot["call"].length(),2,16,QChar('0')) + spot["call"].toUtf8().toHex(); txInfoData_h += QString("%1").arg(spot["call"].length(),2,16,QChar('0')) + spot["call"].toUtf8().toHex();
txInfoData_h += QString("%1").arg(spot["freq"].toLongLong(),8,16,QChar('0')); txInfoData_h += QString("%1").arg(spot["freq"].toLongLong(),8,16,QChar('0'));
txInfoData_h += QString("%1").arg(spot["snr"].toInt(),1,16,QChar('0')).mid(14,2); txInfoData_h += QString("%1").arg(spot["snr"].toInt(),1,16,QChar('0')).mid(14,2);
txInfoData_h += QString("%1").arg(spot["mode"].length(),2,16,QChar('0')) + spot["mode"].toUtf8().toHex(); txInfoData_h += QString("%1").arg(spot["mode"].length(),2,16,QChar('0')) + spot["mode"].toUtf8().toHex();
txInfoData_h += QString("%1").arg(spot["grid"].length(),2,16,QChar('0')) + spot["grid"].toUtf8().toHex(); txInfoData_h += QString("%1").arg(spot["grid"].length(),2,16,QChar('0')) + spot["grid"].toUtf8().toHex();
txInfoData_h += QString("%1").arg(1,2,16,QChar('0'));; txInfoData_h += QString("%1").arg(1,2,16,QChar('0')); // REPORTER_SOURCE_AUTOMATIC
txInfoData_h += QString("%1").arg(spot["time"].toInt(),8,16,QChar('0')); txInfoData_h += QString("%1").arg(spot["time"].toInt(),8,16,QChar('0'));
} }
txInfoData_h += "0000"; txInfoData_h += "0000";
@ -99,15 +99,17 @@ void PSK_Reporter::sendReport()
QByteArray report = QByteArray::fromHex(report_h.toUtf8()); QByteArray report = QByteArray::fromHex(report_h.toUtf8());
// Get IP address for pskreporter.info and send report via UDP // Get IP address for pskreporter.info and send report via UDP
QHostInfo info = QHostInfo::fromName("pskreporter.info"); QHostInfo info = QHostInfo::fromName("report.pskreporter.info");
m_udpSocket->writeDatagram(report,info.addresses().at(0),4739); m_udpSocket->writeDatagram(report,info.addresses().at(0),4739);
/*
qDebug() << header_h; qDebug() << header_h;
qDebug() << m_rxInfoDescriptor_h; qDebug() << m_rxInfoDescriptor_h;
qDebug() << m_txInfoDescriptor_h; qDebug() << m_txInfoDescriptor_h;
qDebug() << rxInfoData_h; qDebug() << rxInfoData_h;
qDebug() << txInfoData_h; qDebug() << txInfoData_h;
qDebug() << report.toHex(); qDebug() << report.toHex();
*/
} }