mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-10-31 15:47:10 -04:00
7566f3548d
Includes a re-factoring of the WSPRNet class, particularly to handle direct spot posts as well as via a file from wsprd. Switched from GET http request method to POST method. FST4W spots post the same information a WSPR spots except the drift field is always zero (FST4W has no drift compensation, so no drift figure is calculated by the decoder), and the mode field reflects the T/R period in minutes. This means FST4W-120A will be similar to WSPR-2, an FST4W-900 will be similar to WSPR-15. I don't see any way to view the mode field on either the new or old database format queries on WSPRnet, so it is hard to tell if that field is actually stored.
60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
#ifndef WSPRNET_H
|
|
#define WSPRNET_H
|
|
|
|
#include <QObject>
|
|
#include <QTimer>
|
|
#include <QString>
|
|
#include <QList>
|
|
#include <QUrlQuery>
|
|
#include <QQueue>
|
|
|
|
class QNetworkAccessManager;
|
|
class QNetworkReply;
|
|
|
|
class WSPRNet : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
using SpotQueue = QQueue<QUrlQuery>;
|
|
|
|
public:
|
|
explicit WSPRNet (QNetworkAccessManager *, QObject *parent = nullptr);
|
|
void upload (QString const& call, QString const& grid, QString const& rfreq, QString const& tfreq,
|
|
QString const& mode, float TR_peirod, QString const& tpct, QString const& dbm,
|
|
QString const& version, QString const& fileName);
|
|
void post (QString const& call, QString const& grid, QString const& rfreq, QString const& tfreq,
|
|
QString const& mode, float TR_period, QString const& tpct, QString const& dbm,
|
|
QString const& version, QString const& decode_text = QString {});
|
|
signals:
|
|
void uploadStatus (QString);
|
|
|
|
public slots:
|
|
void networkReply (QNetworkReply *);
|
|
void work ();
|
|
void abortOutstandingRequests ();
|
|
|
|
private:
|
|
bool decodeLine (QString const& line, SpotQueue::value_type& query);
|
|
SpotQueue::value_type urlEncodeNoSpot ();
|
|
SpotQueue::value_type urlEncodeSpot (SpotQueue::value_type& spot);
|
|
|
|
QNetworkAccessManager * network_manager_;
|
|
QList<QNetworkReply *> m_outstandingRequests;
|
|
QString m_call;
|
|
QString m_grid;;
|
|
QString m_rfreq;
|
|
QString m_tfreq;
|
|
QString m_mode;
|
|
QString m_tpct;
|
|
QString m_dbm;
|
|
QString m_vers;
|
|
QString m_file;
|
|
float TR_period_;
|
|
int spots_to_send_;
|
|
SpotQueue spot_queue_;
|
|
QTimer upload_timer_;
|
|
int m_uploadType;
|
|
};
|
|
|
|
#endif // WSPRNET_H
|