libdrmconf 0.12.1
A library to program DMR radios.
Loading...
Searching...
No Matches
transponderdatabase.hh
1#ifndef TRANSPONDERDATABASE_HH
2#define TRANSPONDERDATABASE_HH
3
4#include <QAbstractTableModel>
5#include <QNetworkAccessManager>
6
7#include "frequency.hh"
8
9
10
12{
13
14public:
15 enum class Type {
17 Transmitter
18 };
19
20 enum class Mode {
21 FM, CW, APRS, BPSK
22 };
23
24public:
26
27 bool isValid() const;
28
29 unsigned int satellite() const;
30 Type type() const;
31 Mode mode() const;
32
33 const QString &name() const;
34
35 const Frequency &uplink() const;
36 const Frequency &downlink() const;
37
38public:
39 static Transponder fromSATNOGS(const QJsonObject &obj);
40
41protected:
42 unsigned int _satellite;
43 Type _type;
44 Mode _mode;
45 QString _name;
46 Frequency _downlink;
47 Frequency _uplink;
48};
49
50
51
52class TransponderDatabase : public QAbstractTableModel
53{
54 Q_OBJECT
55
56public:
57 typedef QVector<Transponder>::const_iterator const_iterator;
58
59public:
60 explicit TransponderDatabase(bool autoLoad, unsigned int updatePeriod = 7, QObject *parent = nullptr);
61
62 unsigned int dbAge() const;
63
64 const Transponder &getAt(unsigned int idx) const;
65
66 int rowCount(const QModelIndex &parent) const;
67 int columnCount(const QModelIndex &parent) const;
68 QVariant data(const QModelIndex &index, int role) const;
69
70 const_iterator begin() const;
71 const_iterator end() const;
72
73public slots:
74 void load();
75
76signals:
78 void loaded();
80 void error(const QString &msg);
81
82public slots:
84 void download();
85
86private slots:
88 void downloadFinished(QNetworkReply *reply);
89
90protected:
91 bool load(const QString &filename);
92
93private:
95 unsigned int _updatePeriod;
97 QVector<Transponder> _transponders;
99 QNetworkAccessManager _network;
100
101};
102
103#endif // TRANSPONDERDATABASE_HH
Definition transponderdatabase.hh:53
void error(const QString &msg)
Gets emitted if the loading one of the sources fails.
void download()
Starts the download of the transponder.
Definition transponderdatabase.cc:255
void loaded()
Gets emitted once the transponder has been loaded.
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:11
Definition transponderdatabase.hh:12