| 
									
										
										
										
											2015-05-27 13:08:28 +00:00
										 |  |  | #ifndef WSPRNET_H
 | 
					
						
							|  |  |  | #define WSPRNET_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <QObject>
 | 
					
						
							| 
									
										
										
										
											2020-07-26 02:58:04 +01:00
										 |  |  | #include <QTimer>
 | 
					
						
							| 
									
										
										
										
											2015-06-09 14:30:23 +00:00
										 |  |  | #include <QString>
 | 
					
						
							|  |  |  | #include <QList>
 | 
					
						
							| 
									
										
										
										
											2020-07-26 02:58:04 +01:00
										 |  |  | #include <QUrlQuery>
 | 
					
						
							| 
									
										
										
										
											2015-06-09 14:30:23 +00:00
										 |  |  | #include <QQueue>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class QNetworkAccessManager; | 
					
						
							|  |  |  | class QNetworkReply; | 
					
						
							| 
									
										
										
										
											2015-05-27 13:08:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class WSPRNet : public QObject | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2020-07-26 02:58:04 +01:00
										 |  |  |   Q_OBJECT | 
					
						
							| 
									
										
										
										
											2015-06-09 14:30:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-26 02:58:04 +01:00
										 |  |  |   using SpotQueue = QQueue<QUrlQuery>; | 
					
						
							| 
									
										
										
										
											2015-05-27 13:08:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-26 02:58:04 +01:00
										 |  |  | 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 {}); | 
					
						
							| 
									
										
										
										
											2015-05-27 13:08:28 +00:00
										 |  |  | signals: | 
					
						
							| 
									
										
										
										
											2020-07-26 02:58:04 +01:00
										 |  |  |   void uploadStatus (QString); | 
					
						
							| 
									
										
										
										
											2015-05-27 13:08:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | public slots: | 
					
						
							| 
									
										
										
										
											2020-07-26 02:58:04 +01:00
										 |  |  |   void networkReply (QNetworkReply *); | 
					
						
							|  |  |  |   void work (); | 
					
						
							|  |  |  |   void abortOutstandingRequests (); | 
					
						
							| 
									
										
										
										
											2015-05-27 13:08:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2020-10-20 12:43:45 +01:00
										 |  |  |   bool decodeLine (QString const& line, SpotQueue::value_type& query) const; | 
					
						
							|  |  |  |   SpotQueue::value_type urlEncodeNoSpot () const; | 
					
						
							|  |  |  |   SpotQueue::value_type urlEncodeSpot (SpotQueue::value_type& spot) const; | 
					
						
							|  |  |  |   QString encode_mode () const; | 
					
						
							| 
									
										
										
										
											2020-07-26 02:58:04 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   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; | 
					
						
							| 
									
										
										
										
											2015-05-27 13:08:28 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // WSPRNET_H
 |