libdrmconf 0.12.1
A library to program DMR radios.
Loading...
Searching...
No Matches
csvreader.hh
1#ifndef CSVREADER_HH
2#define CSVREADER_HH
3
4#include <QObject>
5#include <QTextStream>
6#include <QMap>
7#include <QVector>
8
9#include "channel.hh"
10#include "contact.hh"
11
12class Config;
13class DMRContact;
14class RXGroupList;
15class Zone;
17class ScanList;
18class RoamingZone;
19
20
22class CSVLexer: public QObject
23{
24 Q_OBJECT
25
26public:
60
62 struct State {
64 qint64 offset;
66 qint64 line;
68 qint64 column;
69 };
70
71public:
73 CSVLexer(QTextStream &stream, QObject *parent=nullptr);
74
76 void push();
78 void pop();
80 Token next();
82 const QString &errorMessage() const;
83
84protected:
87 Token lex();
88
89protected:
93 QTextStream &_stream;
95 QVector<State> _stack;
97 QString _currentLine;
99 static QVector< QPair<QRegExp, Token::TokenType> > _pattern;
100};
101
102
108class CSVHandler: public QObject
109{
110 Q_OBJECT
111
112protected:
114 explicit CSVHandler(QObject *parent=nullptr);
115
116public:
118 virtual ~CSVHandler();
119
121 virtual bool handleRadioId(const QList<qint64> &ids, qint64 line, qint64 column, QString &errorMessage);
123 virtual bool handleRadioName(const QString &name, qint64 line, qint64 column, QString &errorMessage);
125 virtual bool handleIntroLine1(const QString &text, qint64 line, qint64 column, QString &errorMessage);
127 virtual bool handleIntroLine2(const QString &text, qint64 line, qint64 column, QString &errorMessage);
129 virtual bool handleMicLevel(unsigned level, qint64 line, qint64 column, QString &errorMessage);
131 virtual bool handleSpeech(bool speech, qint64 line, qint64 column, QString &errorMessage);
133 virtual bool handleDTMFContact(qint64 idx, const QString &name, const QString &num, bool rxTone,
134 qint64 line, qint64 column, QString &errorMessage);
136 virtual bool handleDigitalContact(qint64 idx, const QString &name, DMRContact::Type type, qint64 id,
137 bool rxTone, qint64 line, qint64 column, QString &errorMessage);
139 virtual bool handleGroupList(qint64 idx, const QString &name, const QList<qint64> &contacts,
140 qint64 line, qint64 column, QString &errorMessage);
142 virtual bool handleDigitalChannel(qint64 idx, const QString &name, double rx, double tx, Channel::Power power, qint64 scan,
143 qint64 tot, bool ro, DMRChannel::Admit admit, qint64 color, DMRChannel::TimeSlot slot,
144 qint64 gl, qint64 contact, qint64 gps, qint64 roam, qint64 radioID, qint64 line, qint64 column, QString &errorMessage);
146 virtual bool handleAnalogChannel(qint64 idx, const QString &name, double rx, double tx, Channel::Power power, qint64 scan, qint64 aprs,
147 qint64 tot, bool ro, FMChannel::Admit admit, qint64 squelch, const SelectiveCall &rxTone, const SelectiveCall &txTone,
148 FMChannel::Bandwidth bw, qint64 line, qint64 column, QString &errorMessage);
150 virtual bool handleZone(qint64 idx, const QString &name, bool a, const QList<qint64> &channels,
151 qint64 line, qint64 column, QString &errorMessage);
153 virtual bool handleGPSSystem(qint64 idx, const QString &name, qint64 contactIdx, qint64 period,
154 qint64 revertChannelIdx, qint64 line, qint64 column, QString &errorMessage);
156 virtual bool handleAPRSSystem(qint64 idx, const QString &name, qint64 channelIdx, qint64 period,
157 const QString &src, unsigned srcSSID, const QString &dest, unsigned destSSID,
158 const QString &path, const QString &icon, const QString &message,
159 qint64 line, qint64 column, QString &errorMessage);
161 virtual bool handleScanList(qint64 idx, const QString &name, qint64 pch1, qint64 pch2, qint64 txch,
162 const QList<qint64> &channels, qint64 line, qint64 column, QString &errorMessage);
164 virtual bool handleRoamingZone(qint64 idx, const QString &name, const QList<qint64> &channels,
165 qint64 line, qint64 column, QString &errorMessage);
166
167};
168
169
174class CSVParser: public QObject
175{
176 Q_OBJECT
177
178public:
180 explicit CSVParser(CSVHandler *handler, QObject *parent=nullptr);
181
183 bool parse(QTextStream &stream);
184
186 const QString &errorMessage() const;
187
188protected:
190 bool _parse_radio_id(CSVLexer &lexer);
192 bool _parse_radio_name(CSVLexer &lexer);
194 bool _parse_introline1(CSVLexer &lexer);
196 bool _parse_introline2(CSVLexer &lexer);
198 bool _parse_mic_level(CSVLexer &lexer);
200 bool _parse_speech(CSVLexer &lexer);
202 bool _parse_userdb(CSVLexer &lexer);
204 bool _parse_contacts(CSVLexer &lexer);
206 bool _parse_contact(qint64 id, CSVLexer &lexer);
208 bool _parse_rx_groups(CSVLexer &lexer);
210 bool _parse_rx_group(qint64 id, CSVLexer &lexer);
214 bool _parse_digital_channel(qint64 id, CSVLexer &lexer);
216 bool _parse_analog_channels(CSVLexer &lexer);
218 bool _parse_analog_channel(qint64 id, CSVLexer &lexer);
220 bool _parse_zones(CSVLexer &lexer);
222 bool _parse_zone(qint64 id, CSVLexer &lexer);
224 bool _parse_gps_systems(CSVLexer &lexer);
226 bool _parse_gps_system(qint64 id, CSVLexer &lexer);
228 bool _parse_aprs_systems(CSVLexer &lexer);
230 bool _parse_aprs_system(qint64 id, CSVLexer &lexer);
232 bool _parse_scanlists(CSVLexer &lexer);
234 bool _parse_scanlist(qint64 id, CSVLexer &lexer);
236 bool _parse_roaming_zones(CSVLexer &lexer);
238 bool _parse_roaming_zone(qint64 id, CSVLexer &lexer);
239
240protected:
245};
246
247
248
251class CSVReader : public CSVHandler
252{
253 Q_OBJECT
254
255protected:
257 CSVReader(Config *config, QObject *parent=nullptr);
258
259public:
262 static bool read(Config *config, QTextStream &stream, QString &errorMessage);
263
264 virtual bool handleRadioId(const QList<qint64> &ids, qint64 line, qint64 column, QString &errorMessage);
265 virtual bool handleRadioName(const QString &name, qint64 line, qint64 column, QString &errorMessage);
266 virtual bool handleIntroLine1(const QString &text, qint64 line, qint64 column, QString &errorMessage);
267 virtual bool handleIntroLine2(const QString &text, qint64 line, qint64 column, QString &errorMessage);
268 virtual bool handleMicLevel(unsigned level, qint64 line, qint64 column, QString &errorMessage);
269 virtual bool handleSpeech(bool speech, qint64 line, qint64 column, QString &errorMessage);
270 virtual bool handleDTMFContact(qint64 idx, const QString &name, const QString &num, bool rxTone,
271 qint64 line, qint64 column, QString &errorMessage);
272 virtual bool handleDigitalContact(
273 qint64 idx, const QString &name, DMRContact::Type type, qint64 id, bool rxTone,
274 qint64 line, qint64 column, QString &errorMessage);
275 virtual bool handleGroupList(qint64 idx, const QString &name, const QList<qint64> &contacts,
276 qint64 line, qint64 column, QString &errorMessage);
277 virtual bool handleDigitalChannel(
278 qint64 idx, const QString &name, double rx, double tx, Channel::Power power, qint64 scan,
279 qint64 tot, bool ro, DMRChannel::Admit admit, qint64 color, DMRChannel::TimeSlot slot,
280 qint64 gl, qint64 contact, qint64 gps, qint64 roam, qint64 radioID, qint64 line, qint64 column, QString &errorMessage);
281 virtual bool handleAnalogChannel(qint64 idx, const QString &name, double rx, double tx, Channel::Power power, qint64 scan, qint64 aprs,
282 qint64 tot, bool ro, FMChannel::Admit admit, qint64 squelch, const SelectiveCall &rxTone, const SelectiveCall &txTone,
283 FMChannel::Bandwidth bw, qint64 line, qint64 column, QString &errorMessage);
284 virtual bool handleZone(qint64 idx, const QString &name, bool a, const QList<qint64> &channels,
285 qint64 line, qint64 column, QString &errorMessage);
286 virtual bool handleGPSSystem(qint64 idx, const QString &name, qint64 contactIdx, qint64 period,
287 qint64 revertChannelIdx, qint64 line, qint64 column, QString &errorMessage);
288 virtual bool handleAPRSSystem(qint64 idx, const QString &name, qint64 channelIdx, qint64 period,
289 const QString &src, unsigned srcSSID, const QString &dest, unsigned destSSID, const QString &path,
290 const QString &icon, const QString &message,
291 qint64 line, qint64 column, QString &errorMessage);
292 virtual bool handleScanList(qint64 idx, const QString &name, qint64 pch1, qint64 pch2, qint64 txch,
293 const QList<qint64> &channels, qint64 line, qint64 column, QString &errorMessage);
294 virtual bool handleRoamingZone(qint64 idx, const QString &name, const QList<qint64> &channels,
295 qint64 line, qint64 column, QString &errorMessage);
296
297protected:
299 bool _link;
303 QMap<int, Channel *> _channels;
305 QMap<int, DMRContact *> _digital_contacts;
307 QMap<int, RXGroupList *> _rxgroups;
309 QMap<int, Zone *> _zones;
311 QMap<int, PositioningSystem *> _posSystems;
313 QMap<int, ScanList *> _scanlists;
315 QMap<int, RoamingZone *> _roamingZones;
317 QMap<int, DMRRadioID *> _radioIDs;
318};
319
320#endif // CSVREADER_HH
Basic parse-handler interface.
Definition csvreader.hh:109
virtual ~CSVHandler()
Destructor.
Definition csvreader.cc:100
virtual bool handleGPSSystem(qint64 idx, const QString &name, qint64 contactIdx, qint64 period, qint64 revertChannelIdx, qint64 line, qint64 column, QString &errorMessage)
Gets called once a GPS system has been parsed.
Definition csvreader.cc:267
virtual bool handleScanList(qint64 idx, const QString &name, qint64 pch1, qint64 pch2, qint64 txch, const QList< qint64 > &channels, qint64 line, qint64 column, QString &errorMessage)
Gets called once a scan list has been parsed.
Definition csvreader.cc:305
virtual bool handleMicLevel(unsigned level, qint64 line, qint64 column, QString &errorMessage)
Gets called once the MIC level has been parsed.
Definition csvreader.cc:141
virtual bool handleGroupList(qint64 idx, const QString &name, const QList< qint64 > &contacts, qint64 line, qint64 column, QString &errorMessage)
Gets called once an RX group list has been parsed.
Definition csvreader.cc:188
virtual bool handleSpeech(bool speech, qint64 line, qint64 column, QString &errorMessage)
Gets called once the Speech flag has been parsed.
Definition csvreader.cc:150
virtual bool handleIntroLine2(const QString &text, qint64 line, qint64 column, QString &errorMessage)
Gets called once the second intro line has been parsed.
Definition csvreader.cc:132
CSVHandler(QObject *parent=nullptr)
Hidden constructor.
Definition csvreader.cc:94
virtual bool handleAPRSSystem(qint64 idx, const QString &name, qint64 channelIdx, qint64 period, const QString &src, unsigned srcSSID, const QString &dest, unsigned destSSID, const QString &path, const QString &icon, const QString &message, qint64 line, qint64 column, QString &errorMessage)
Gets called once a APRS system has been parsed.
Definition csvreader.cc:283
virtual bool handleDTMFContact(qint64 idx, const QString &name, const QString &num, bool rxTone, qint64 line, qint64 column, QString &errorMessage)
Gets called once a DTMF contact has been parsed.
Definition csvreader.cc:159
virtual bool handleZone(qint64 idx, const QString &name, bool a, const QList< qint64 > &channels, qint64 line, qint64 column, QString &errorMessage)
Gets called once a zone list has been parsed.
Definition csvreader.cc:253
virtual bool handleRoamingZone(qint64 idx, const QString &name, const QList< qint64 > &channels, qint64 line, qint64 column, QString &errorMessage)
Gets called once a roaming zone list has been parsed.
Definition csvreader.cc:321
virtual bool handleRadioName(const QString &name, qint64 line, qint64 column, QString &errorMessage)
Gets called once the radio name has been parsed.
Definition csvreader.cc:114
virtual bool handleDigitalChannel(qint64 idx, const QString &name, double rx, double tx, Channel::Power power, qint64 scan, qint64 tot, bool ro, DMRChannel::Admit admit, qint64 color, DMRChannel::TimeSlot slot, qint64 gl, qint64 contact, qint64 gps, qint64 roam, qint64 radioID, qint64 line, qint64 column, QString &errorMessage)
Gets called once a digital channel has been parsed.
Definition csvreader.cc:201
virtual bool handleRadioId(const QList< qint64 > &ids, qint64 line, qint64 column, QString &errorMessage)
Gets called once the DMR IDs has been parsed.
Definition csvreader.cc:105
virtual bool handleIntroLine1(const QString &text, qint64 line, qint64 column, QString &errorMessage)
Gets called once the first intro line has been parsed.
Definition csvreader.cc:123
virtual bool handleAnalogChannel(qint64 idx, const QString &name, double rx, double tx, Channel::Power power, qint64 scan, qint64 aprs, qint64 tot, bool ro, FMChannel::Admit admit, qint64 squelch, const SelectiveCall &rxTone, const SelectiveCall &txTone, FMChannel::Bandwidth bw, qint64 line, qint64 column, QString &errorMessage)
Gets called once a analog channel has been parsed.
Definition csvreader.cc:228
virtual bool handleDigitalContact(qint64 idx, const QString &name, DMRContact::Type type, qint64 id, bool rxTone, qint64 line, qint64 column, QString &errorMessage)
Gets called once a digital contact has been parsed.
Definition csvreader.cc:173
The lexer class divides a text stream into tokens.
Definition csvreader.hh:23
static QVector< QPair< QRegExp, Token::TokenType > > _pattern
The list of patterns to match.
Definition csvreader.hh:9
void pop()
Restores the last lexer state.
Definition csvreader.cc:83
QVector< State > _stack
The stack of saved lexer states.
Definition csvreader.hh:95
QString _currentLine
The current line count.
Definition csvreader.hh:97
void push()
Saves the current lexer state.
Definition csvreader.cc:78
QTextStream & _stream
The text stream to read from.
Definition csvreader.hh:93
QString _errorMessage
The error message.
Definition csvreader.hh:91
Token lex()
Internal used function to get the next token.
Definition csvreader.cc:52
CSVLexer(QTextStream &stream, QObject *parent=nullptr)
Constructs a lexer for the given stream.
Definition csvreader.cc:29
const QString & errorMessage() const
Returns the last error message.
Definition csvreader.cc:39
Token next()
Reads the next token from the stream.
Definition csvreader.cc:44
The actual config file parser.
Definition csvreader.hh:175
bool _parse_userdb(CSVLexer &lexer)
Internal function to parse UserDB flag.
Definition csvreader.cc:595
CSVHandler * _handler
The handler instance.
Definition csvreader.hh:244
bool _parse_aprs_systems(CSVLexer &lexer)
Internal function to parse a APRS system list.
Definition csvreader.cc:1401
bool _parse_analog_channel(qint64 id, CSVLexer &lexer)
Internal function to parse an analog channel.
Definition csvreader.cc:1065
CSVParser(CSVHandler *handler, QObject *parent=nullptr)
Constructs a parser using the given handler instance.
Definition csvreader.cc:337
bool _parse_contacts(CSVLexer &lexer)
Internal function to parse a digital contact list.
Definition csvreader.cc:628
QString _errorMessage
Holds the current error message.
Definition csvreader.hh:242
const QString & errorMessage() const
Returns the current error message, for example if parse returns false.
Definition csvreader.cc:344
bool _parse_speech(CSVLexer &lexer)
Internal function to parse Speech flag.
Definition csvreader.cc:565
bool _parse_digital_channel(qint64 id, CSVLexer &lexer)
Internal function to parse a digital channel.
Definition csvreader.cc:817
bool _parse_zone(qint64 id, CSVLexer &lexer)
Internal function to parse a zone.
Definition csvreader.cc:1281
bool _parse_radio_name(CSVLexer &lexer)
Internal function to parse radio names.
Definition csvreader.cc:456
bool _parse_rx_groups(CSVLexer &lexer)
Internal function to parse an RX group list.
Definition csvreader.cc:732
bool _parse_mic_level(CSVLexer &lexer)
Internal function to parse MIC level.
Definition csvreader.cc:537
bool _parse_radio_id(CSVLexer &lexer)
Internal function to parse DMR IDs.
Definition csvreader.cc:421
bool _parse_gps_systems(CSVLexer &lexer)
Internal function to parse a GPS system list.
Definition csvreader.cc:1319
bool _parse_rx_group(qint64 id, CSVLexer &lexer)
Internal function to parse an RX group.
Definition csvreader.cc:760
bool _parse_roaming_zone(qint64 id, CSVLexer &lexer)
Internal function to parse a zone.
Definition csvreader.cc:1676
bool _parse_scanlists(CSVLexer &lexer)
Internal function to parse a scanlist list.
Definition csvreader.cc:1532
bool parse(QTextStream &stream)
Parses the given text stream.
Definition csvreader.cc:349
bool _parse_scanlist(qint64 id, CSVLexer &lexer)
Internal function to parse a scanlist.
Definition csvreader.cc:1560
bool _parse_contact(qint64 id, CSVLexer &lexer)
Internal function to parse digital contact.
Definition csvreader.cc:656
bool _parse_introline1(CSVLexer &lexer)
Internal function to parse intro line 1.
Definition csvreader.cc:483
bool _parse_gps_system(qint64 id, CSVLexer &lexer)
Internal function to parse a GPS system.
Definition csvreader.cc:1347
bool _parse_zones(CSVLexer &lexer)
Internal function to parse a zone list.
Definition csvreader.cc:1253
bool _parse_introline2(CSVLexer &lexer)
Internal function to parse intro line 2.
Definition csvreader.cc:510
bool _parse_digital_channels(CSVLexer &lexer)
Internal function to parse a digital channel list.
Definition csvreader.cc:789
bool _parse_aprs_system(qint64 id, CSVLexer &lexer)
Internal function to parse a APRS system.
Definition csvreader.cc:1429
bool _parse_roaming_zones(CSVLexer &lexer)
Internal function to parse a roaming zone list.
Definition csvreader.cc:1648
bool _parse_analog_channels(CSVLexer &lexer)
Internal function to parse an analog channel list.
Definition csvreader.cc:1037
Implements the text-file codeplug reader.
Definition csvreader.hh:252
virtual bool handleGPSSystem(qint64 idx, const QString &name, qint64 contactIdx, qint64 period, qint64 revertChannelIdx, qint64 line, qint64 column, QString &errorMessage)
Gets called once a GPS system has been parsed.
Definition csvreader.cc:2091
QMap< int, DMRRadioID * > _radioIDs
Index <-> radio ID map.
Definition csvreader.hh:317
QMap< int, Channel * > _channels
Index <-> Channel map.
Definition csvreader.hh:303
virtual bool handleRadioName(const QString &name, qint64 line, qint64 column, QString &errorMessage)
Gets called once the radio name has been parsed.
Definition csvreader.cc:1764
virtual bool handleAPRSSystem(qint64 idx, const QString &name, qint64 channelIdx, qint64 period, const QString &src, unsigned srcSSID, const QString &dest, unsigned destSSID, const QString &path, const QString &icon, const QString &message, qint64 line, qint64 column, QString &errorMessage)
Gets called once a APRS system has been parsed.
Definition csvreader.cc:2138
virtual bool handleAnalogChannel(qint64 idx, const QString &name, double rx, double tx, Channel::Power power, qint64 scan, qint64 aprs, qint64 tot, bool ro, FMChannel::Admit admit, qint64 squelch, const SelectiveCall &rxTone, const SelectiveCall &txTone, FMChannel::Bandwidth bw, qint64 line, qint64 column, QString &errorMessage)
Gets called once a analog channel has been parsed.
Definition csvreader.cc:2001
virtual bool handleGroupList(qint64 idx, const QString &name, const QList< qint64 > &contacts, qint64 line, qint64 column, QString &errorMessage)
Gets called once an RX group list has been parsed.
Definition csvreader.cc:1869
CSVReader(Config *config, QObject *parent=nullptr)
Hidden constructor.
Definition csvreader.cc:1708
virtual bool handleIntroLine1(const QString &text, qint64 line, qint64 column, QString &errorMessage)
Gets called once the first intro line has been parsed.
Definition csvreader.cc:1776
static bool read(Config *config, QTextStream &stream, QString &errorMessage)
Reads a config file from stream and stores the read configuration into config.
Definition csvreader.cc:1716
Config * _config
The configuration to read.
Definition csvreader.hh:301
virtual bool handleZone(qint64 idx, const QString &name, bool a, const QList< qint64 > &channels, qint64 line, qint64 column, QString &errorMessage)
Gets called once a zone list has been parsed.
Definition csvreader.cc:2060
QMap< int, PositioningSystem * > _posSystems
Index <-> GPS System map.
Definition csvreader.hh:311
virtual bool handleDigitalChannel(qint64 idx, const QString &name, double rx, double tx, Channel::Power power, qint64 scan, qint64 tot, bool ro, DMRChannel::Admit admit, qint64 color, DMRChannel::TimeSlot slot, qint64 gl, qint64 contact, qint64 gps, qint64 roam, qint64 radioID, qint64 line, qint64 column, QString &errorMessage)
Gets called once a digital channel has been parsed.
Definition csvreader.cc:1902
QMap< int, ScanList * > _scanlists
Index <-> Scan list map.
Definition csvreader.hh:313
virtual bool handleIntroLine2(const QString &text, qint64 line, qint64 column, QString &errorMessage)
Gets called once the second intro line has been parsed.
Definition csvreader.cc:1788
virtual bool handleScanList(qint64 idx, const QString &name, qint64 pch1, qint64 pch2, qint64 txch, const QList< qint64 > &channels, qint64 line, qint64 column, QString &errorMessage)
Gets called once a scan list has been parsed.
Definition csvreader.cc:2178
bool _link
If true, the reader is in "link" mode.
Definition csvreader.hh:299
virtual bool handleMicLevel(unsigned level, qint64 line, qint64 column, QString &errorMessage)
Gets called once the MIC level has been parsed.
Definition csvreader.cc:1800
virtual bool handleRoamingZone(qint64 idx, const QString &name, const QList< qint64 > &channels, qint64 line, qint64 column, QString &errorMessage)
Gets called once a roaming zone list has been parsed.
Definition csvreader.cc:2250
QMap< int, DMRContact * > _digital_contacts
Index <-> Digital contact map.
Definition csvreader.hh:305
virtual bool handleDigitalContact(qint64 idx, const QString &name, DMRContact::Type type, qint64 id, bool rxTone, qint64 line, qint64 column, QString &errorMessage)
Gets called once a digital contact has been parsed.
Definition csvreader.cc:1848
virtual bool handleSpeech(bool speech, qint64 line, qint64 column, QString &errorMessage)
Gets called once the Speech flag has been parsed.
Definition csvreader.cc:1813
QMap< int, Zone * > _zones
Index <-> Zone map.
Definition csvreader.hh:309
QMap< int, RoamingZone * > _roamingZones
Index <-> RoamingZone map.
Definition csvreader.hh:315
virtual bool handleDTMFContact(qint64 idx, const QString &name, const QString &num, bool rxTone, qint64 line, qint64 column, QString &errorMessage)
Gets called once a DTMF contact has been parsed.
Definition csvreader.cc:1826
QMap< int, RXGroupList * > _rxgroups
Index <-> RX group list map.
Definition csvreader.hh:307
virtual bool handleRadioId(const QList< qint64 > &ids, qint64 line, qint64 column, QString &errorMessage)
Gets called once the DMR IDs has been parsed.
Definition csvreader.cc:1746
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:61
The config class, representing the codeplug configuration.
Definition config.hh:70
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:389
Admit
Possible admit criteria of digital channels.
Definition channel.hh:381
Represents a digital contact, that is a DMR number.
Definition contact.hh:141
Type
Possible call types for a contact.
Definition contact.hh:155
Admit
Admit criteria of analog channel.
Definition channel.hh:232
Bandwidth
Possible bandwidth of an analog channel.
Definition channel.hh:240
Base class of the positioning systems, that is APRS and DMR position reporting system.
Definition gpssystem.hh:17
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Represents a RoamingZone within the abstract device configuration.
Definition roamingzone.hh:15
Generic representation of a scan list.
Definition scanlist.hh:15
Represents a zone within the generic configuration.
Definition zone.hh:15
Current state of lexer.
Definition csvreader.hh:62
qint64 column
The current column number.
Definition csvreader.hh:68
qint64 line
The current line count.
Definition csvreader.hh:66
qint64 offset
The current stream offset.
Definition csvreader.hh:64
The token.
Definition csvreader.hh:28
QString value
The token value.
Definition csvreader.hh:54
qint64 line
Line number.
Definition csvreader.hh:56
qint64 column
Column number.
Definition csvreader.hh:58
TokenType type
The token type.
Definition csvreader.hh:52
TokenType
Possible token types.
Definition csvreader.hh:31
@ T_ERROR
Indicates a lexer error.
Definition csvreader.hh:48
@ T_APRSCALL
A APRS call of form CALL-SSID.
Definition csvreader.hh:33
@ T_STRING
A quoted string.
Definition csvreader.hh:34
@ T_COMMA
A comma.
Definition csvreader.hh:41
@ T_DCS_N
A normal DCS code number.
Definition csvreader.hh:36
@ T_COLON
A colon.
Definition csvreader.hh:38
@ T_NEWLINE
A new line.
Definition csvreader.hh:44
@ T_WHITESPACE
Any whitespace character excluding newline.
Definition csvreader.hh:43
@ T_ENABLED
A plus sign, being used as "enabled".
Definition csvreader.hh:40
@ T_DCS_I
An inverted DCS code number.
Definition csvreader.hh:37
@ T_NOT_SET
A dash, being used as "not-set".
Definition csvreader.hh:39
@ T_COMMENT
A comment starts with # end ends at the line-end.
Definition csvreader.hh:45
@ T_END_OF_STREAM
Indicates the end-of-input.
Definition csvreader.hh:47
@ T_KEYWORD
A Keyword/Identifier.
Definition csvreader.hh:32
@ T_NUMBER
An integer or floating point number.
Definition csvreader.hh:35
Encodes a selective call.
Definition signaling.hh:13