libdrmconf 0.13.3
A library to program DMR radios.
Loading...
Searching...
No Matches
channel.hh
1#ifndef CHANNEL_HH
2#define CHANNEL_HH
3
4#include <QObject>
5#include <QAbstractTableModel>
6
7#include "configobject.hh"
8#include "configreference.hh"
9#include "signaling.hh"
10
11#include "opengd77_extension.hh"
12#include "tyt_extensions.hh"
13#include "opengd77_extension.hh"
14#include "anytone_extension.hh"
15#include "commercial_extension.hh"
16
17class Config;
18class RXGroupList;
19class DMRContact;
20class ScanList;
21class APRSSystem;
23class RoamingZone;
24class DMRRadioID;
25
26
33class Channel: public ConfigObject
34{
35 Q_OBJECT
36
38 Q_PROPERTY(Frequency rxFrequency READ rxFrequency WRITE setRXFrequency SCRIPTABLE false)
40 Q_PROPERTY(Frequency txFrequency READ txFrequency WRITE setTXFrequency SCRIPTABLE false)
42 Q_PROPERTY(Power power READ power WRITE setPower SCRIPTABLE false)
44 Q_PROPERTY(unsigned timeout READ timeout WRITE setTimeout SCRIPTABLE false)
46 Q_PROPERTY(bool rxOnly READ rxOnly WRITE setRXOnly)
50 Q_PROPERTY(unsigned vox READ vox WRITE setVOX SCRIPTABLE false)
55
57 Q_CLASSINFO("IdPrefix", "ch")
58
59public:
61 enum class Power {
62 Max,
63 High,
64 Mid,
65 Low,
66 Min
67 };
68 Q_ENUM(Power)
69
70 enum class OffsetShift {
71 None,
72 Positive,
74 };
75 Q_ENUM(OffsetShift)
76
77protected:
80 explicit Channel(QObject *parent=nullptr);
82 Channel(const Channel &other, QObject *parent=nullptr);
83
84public:
85 bool copy(const ConfigItem &other);
86 void clear();
87
89 Frequency rxFrequency() const;
91 bool setRXFrequency(Frequency freq);
93 Frequency txFrequency() const;
95 bool setTXFrequency(Frequency freq);
100
102 bool defaultPower() const;
104 Power power() const;
106 void setPower(Power power);
108 void setDefaultPower();
109
111 bool defaultTimeout() const;
113 bool timeoutDisabled() const;
115 unsigned timeout() const;
117 bool setTimeout(unsigned dur);
119 void disableTimeout();
121 void setDefaultTimeout();
122
124 bool rxOnly() const;
126 bool setRXOnly(bool enable);
127
129 bool voxDisabled() const;
131 bool defaultVOX() const;
133 unsigned vox() const;
135 void setVOX(unsigned level);
137 void setVOXDefault();
139 void disableVOX();
140
142 const ScanListReference *scanListRef() const;
146 ScanList *scanList() const;
148 bool setScanList(ScanList *list);
149
155
161
162public:
163 bool parse(const YAML::Node &node, Context &ctx, const ErrorStack &err=ErrorStack());
164 bool link(const YAML::Node &node, const Context &ctx, const ErrorStack &err=ErrorStack());
165
166protected:
167 bool populate(YAML::Node &node, const Context &context, const ErrorStack &err=ErrorStack());
168
169protected slots:
171 void onReferenceModified();
172
173protected:
183 unsigned _txTimeOut;
187 unsigned _vox;
194};
195
196
201{
202 Q_OBJECT
203
204protected:
206 explicit AnalogChannel(QObject *parent=nullptr);
207
208public:
210 AnalogChannel(const AnalogChannel &other, QObject *parent=nullptr);
211};
212
213
221{
222 Q_OBJECT
223
225 Q_PROPERTY(Admit admit READ admit WRITE setAdmit)
227 Q_PROPERTY(unsigned squelch READ squelch WRITE setSquelch SCRIPTABLE false)
229 Q_PROPERTY(SelectiveCall rxTone READ rxTone WRITE setRXTone)
231 Q_PROPERTY(SelectiveCall txTone READ txTone WRITE setTXTone)
235 Q_PROPERTY(APRSSystemReference* aprs READ aprs WRITE setAPRS)
236
239
240
241public:
243 enum class Admit {
244 Always,
245 Free,
246 Tone
247 };
248 Q_ENUM(Admit)
249
250
251 enum class Bandwidth {
252 Narrow,
253 Wide
254 };
255 Q_ENUM(Bandwidth)
256
257public:
259 Q_INVOKABLE explicit FMChannel(QObject *parent=nullptr);
260
261 bool copy(const ConfigItem &other);
262 ConfigItem *clone() const;
263 void clear();
264
266 Admit admit() const;
268 void setAdmit(Admit admit);
269
271 bool defaultSquelch() const;
273 bool squelchDisabled() const;
275 unsigned squelch() const;
277 bool setSquelch(unsigned squelch);
279 void disableSquelch();
281 void setSquelchDefault();
282
284 SelectiveCall rxTone() const;
286 bool setRXTone(SelectiveCall code);
288 SelectiveCall txTone() const;
290 bool setTXTone(SelectiveCall code);
291
293 Bandwidth bandwidth() const;
295 bool setBandwidth(Bandwidth bw);
296
298 const APRSSystemReference *aprs() const;
302 void setAPRS(APRSSystemReference *ref);
304 APRSSystem *aprsSystem() const;
306 void setAPRSSystem(APRSSystem *sys);
307
313
314public:
315 YAML::Node serialize(const Context &context, const ErrorStack &err=ErrorStack());
316 bool parse(const YAML::Node &node, Context &ctx, const ErrorStack &err=ErrorStack());
317
318protected:
319 bool populate(YAML::Node &node, const Context &context, const ErrorStack &err=ErrorStack());
320
321protected:
325 unsigned _squelch;
334
337};
338
339
344{
345 Q_OBJECT
346
347protected:
349 explicit DigitalChannel(QObject *parent=nullptr);
350
351public:
353 DigitalChannel(const DigitalChannel &other, QObject *parent=nullptr);
354};
355
356
363{
364 Q_OBJECT
365
367 Q_PROPERTY(Admit admit READ admit WRITE setAdmit)
369 Q_PROPERTY(unsigned colorCode READ colorCode WRITE setColorCode)
371 Q_PROPERTY(TimeSlot timeSlot READ timeSlot WRITE setTimeSlot)
382
387
388public:
390 enum class Admit {
391 Always,
392 Free,
393 ColorCode
394 };
395 Q_ENUM(Admit)
396
397
398 enum class TimeSlot {
399 TS1,
400 TS2
401 };
402 Q_ENUM(TimeSlot)
403
404public:
406 Q_INVOKABLE explicit DMRChannel(QObject *parent=nullptr);
407
408 ConfigItem *clone() const;
409 void clear();
410
412 Admit admit() const;
414 void setAdmit(Admit admit);
415
417 unsigned colorCode() const;
419 bool setColorCode(unsigned cc);
420
422 TimeSlot timeSlot() const;
424 bool setTimeSlot(TimeSlot ts);
425
427 const GroupListReference *groupList() const;
433 RXGroupList *groupListObj() const;
435 bool setGroupListObj(RXGroupList *rxg);
436
438 const DMRContactReference *contact() const;
444 DMRContact *txContactObj() const;
447
449 const PositioningSystemReference *aprs() const;
455 PositioningSystem *aprsObj() const;
457 bool setAPRSObj(PositioningSystem *sys);
458
460 const RoamingZoneReference *roaming() const;
466 RoamingZone *roamingZone() const;
468 bool setRoamingZone(RoamingZone *zone);
469
471 const DMRRadioIDReference *radioId() const;
477 DMRRadioID *radioIdObj() const;
479 bool setRadioIdObj(DMRRadioID *id);
480
485
491
492public:
493 YAML::Node serialize(const Context &context, const ErrorStack &err=ErrorStack());
494
495protected:
499 unsigned _colorCode;
512
517};
518
519
523{
524 Q_OBJECT
525
526protected:
529 explicit SelectedChannel();
530
531public:
533 virtual ~SelectedChannel();
534
535 bool copy(const ConfigItem &other);
536 ConfigItem *clone() const;
537
539 static SelectedChannel *get();
540
541protected:
544};
545
546
555{
556 Q_OBJECT
557
558public:
560 explicit ChannelList(QObject *parent=nullptr);
561
562 int add(ConfigObject *obj, int row=-1, bool unique=true);
563
565 Channel *channel(int idx) const;
567 DMRChannel *findDMRChannel(Frequency rx, Frequency tx, DMRChannel::TimeSlot ts, unsigned cc) const;
570
571public:
572 ConfigItem *allocateChild(const YAML::Node &node, ConfigItem::Context &ctx, const ErrorStack &err=ErrorStack());
573};
574
575
576#endif // CHANNEL_HH
Implements a reference to an APRS system.
Definition configreference.hh:229
Represents an APRS system within the generic config.
Definition gpssystem.hh:134
Base class for all analog channels.
Definition channel.hh:201
Implements the settings extension for DMR channels on AnyTone devices.
Definition anytone_extension.hh:222
Implements the settings extension for FM channels on AnyTone devices.
Definition anytone_extension.hh:142
Container class holding all channels (analog and digital) for a specific configuration (Config).
Definition channel.hh:555
int add(ConfigObject *obj, int row=-1, bool unique=true)
Adds an element to the list.
Definition channel.cc:957
ConfigItem * allocateChild(const YAML::Node &node, ConfigItem::Context &ctx, const ErrorStack &err=ErrorStack())
Allocates a member objects for the given YAML node.
Definition channel.cc:1002
Channel * channel(int idx) const
Gets the channel at the specified index.
Definition channel.cc:966
DMRChannel * findDMRChannel(Frequency rx, Frequency tx, DMRChannel::TimeSlot ts, unsigned cc) const
Finds a digital channel with the given frequencies, time slot and color code.
Definition channel.cc:973
FMChannel * findFMChannelByTxFreq(Frequency freq) const
Finds an analog channel with the given frequency.
Definition channel.cc:991
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:34
ScanList * scanList() const
Returns the default scan list for the channel.
Definition channel.cc:241
bool link(const YAML::Node &node, const Context &ctx, const ErrorStack &err=ErrorStack())
Links the given object to the rest of the codeplug using the given context.
Definition channel.cc:372
void setDefaultTimeout()
Sets the timeout to the global default timeout.
Definition channel.cc:179
unsigned _txTimeOut
Transmit timeout in seconds.
Definition channel.hh:183
FrequencyOffset offsetFrequency() const
Returns the offset between tx and rx frequency of the channel in Hz.
Definition channel.cc:107
bool defaultTimeout() const
Returns true if the transmit timeout is specified by the global default value.
Definition channel.cc:153
ScanListReference * scanListRef
The scan list.
Definition channel.hh:48
TyTChannelExtension * tyt
The TyT channel extension.
Definition channel.hh:54
bool _defaultPower
If true, the channel uses the global power setting.
Definition channel.hh:179
bool setTimeout(unsigned dur)
(Re-)Sets the TX timeout (TOT) in seconds.
Definition channel.cc:168
Frequency _txFreq
The TX frequency in Hz.
Definition channel.hh:177
void setPower(Power power)
(Re-)Sets the power setting of the channel, overrides default power.
Definition channel.cc:134
unsigned _vox
Holds the VOX level.
Definition channel.hh:187
Power power
The transmit power.
Definition channel.hh:42
OffsetShift offsetShift() const
Returns direction of offset if any.
Definition channel.cc:113
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:61
@ Low
Low power setting (e.g., 1W).
@ Mid
Medium power setting (e.g., 2W, if available)
@ High
High power setting (e.g, 5W).
@ Max
Highest power setting (e.g. > 5W, if available).
@ Min
Lowest power setting (e.g., <1W, if available).
OffsetShift
Definition channel.hh:70
@ Positive
Positive offset between TX/RX frequencies.
@ None
No Offset between TX/RX frequencies.
@ Negative
Negative offset between TX/RX frequencies.
TyTChannelExtension * tytChannelExtension() const
Returns the channel extension for TyT devices.
Definition channel.cc:272
void setTyTChannelExtension(TyTChannelExtension *ext)
Sets the TyT channel extension.
Definition channel.cc:276
void clear()
Clears the config object.
Definition channel.cc:58
bool voxDisabled() const
Returns true if the VOX is disabled.
Definition channel.cc:205
bool populate(YAML::Node &node, const Context &context, const ErrorStack &err=ErrorStack())
Recursively serializes the configuration to YAML nodes.
Definition channel.cc:289
TyTChannelExtension * _tytChannelExtension
Owns the TyT channel extension object.
Definition channel.hh:193
OpenGD77ChannelExtension * _openGD77ChannelExtension
Owns the OpenGD77 channel extension object.
Definition channel.hh:191
void setDefaultPower()
Sets the channel to use the default power setting.
Definition channel.cc:143
unsigned vox
The VOX setting.
Definition channel.hh:50
bool copy(const ConfigItem &other)
Copies the given item into this one.
Definition channel.cc:42
void disableTimeout()
Disables the transmit timeout.
Definition channel.cc:188
bool _rxOnly
RX only flag.
Definition channel.hh:185
bool rxOnly
If true, the channel is receive only.
Definition channel.hh:46
bool timeoutDisabled() const
Returns true if the transmit timeout is disabled.
Definition channel.cc:158
ScanListReference * scanListRef()
Returns the reference to the scan list.
bool setRXOnly(bool enable)
Set, whether the channel is RX only.
Definition channel.cc:198
bool defaultVOX() const
Returns true if the VOX is specified by the global default value.
Definition channel.cc:209
bool defaultPower() const
Returns true if the channel uses the global default power setting.
Definition channel.cc:124
Frequency rxFrequency
The receive frequency of the channel in Hz.
Definition channel.hh:38
OpenGD77ChannelExtension * openGD77ChannelExtension() const
Returns the channel extension for the OpenGD77 firmware.
Definition channel.cc:255
bool setTXFrequency(Frequency freq)
(Re-)Sets the TX frequency of the channel in Hz.
Definition channel.cc:96
unsigned timeout
The transmit timeout in seconds.
Definition channel.hh:44
bool parse(const YAML::Node &node, Context &ctx, const ErrorStack &err=ErrorStack())
Parses the given YAML node, updates the given object and updates the given context (IDs).
Definition channel.cc:323
void disableVOX()
Disables the VOX.
Definition channel.cc:226
void onReferenceModified()
Gets called whenever a referenced object is changed or deleted.
Definition channel.cc:250
Frequency _rxFreq
The RX frequency in Hz.
Definition channel.hh:175
void setOpenGD77ChannelExtension(OpenGD77ChannelExtension *ext)
Sets the OpenGD77 channel extension.
Definition channel.cc:259
bool setScanList(ScanList *list)
(Re-) Sets the default scan list for the channel.
Definition channel.cc:245
bool setRXFrequency(Frequency freq)
(Re-)Sets the RX frequency of the channel in Hz.
Definition channel.cc:80
void setVOXDefault()
Sets the VOX level to the default value.
Definition channel.cc:222
ScanListReference _scanlist
Default scan list of the channel.
Definition channel.hh:189
void setVOX(unsigned level)
Sets the VOX level [0-10].
Definition channel.cc:217
OpenGD77ChannelExtension * openGD77
The OpenGD77 channel extension.
Definition channel.hh:52
Frequency txFrequency
The transmit frequency of the channel in Hz.
Definition channel.hh:40
Power _power
The transmit power setting.
Definition channel.hh:181
Implements the generic extension for all channels configuring commercial features of DMR.
Definition commercial_extension.hh:35
Parse context for config objects.
Definition configobject.hh:43
Base class for all configuration objects (channels, zones, contacts, etc).
Definition configobject.hh:35
List class for config objects.
Definition configobject.hh:344
Base class of all labeled and named objects.
Definition configobject.hh:194
The config class, representing the codeplug configuration.
Definition config.hh:70
Extension to the DigitalChannel class to implement an DMR channel.
Definition channel.hh:363
ConfigItem * clone() const
Clones this item.
Definition channel.cc:669
CommercialChannelExtension * commercial
The commercial channel extension.
Definition channel.hh:384
void setAnytoneChannelExtension(AnytoneDMRChannelExtension *ext)
Sets the AnyTone DMR channel extension.
Definition channel.cc:890
void setRadioId(DMRRadioIDReference *ref)
Sets the reference to the radio ID.
Definition channel.cc:848
DMRRadioID * radioIdObj() const
Returns the radio ID associated with this channel.
Definition channel.cc:856
DMRContactReference * contact()
Returns a reference to the transmit contact.
bool setTXContactObj(DMRContact *c)
(Re-) Sets the default TX contact for this channel.
Definition channel.cc:769
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:398
@ TS2
Time/repeater slot 2.
@ TS1
Time/repeater slot 1.
void setAdmit(Admit admit)
(Re-)Sets the admit criterion for the channel.
Definition channel.cc:683
bool setTimeSlot(TimeSlot ts)
(Re-)Sets the time slot for the channel.
Definition channel.cc:708
void setRoaming(RoamingZoneReference *ref)
Sets the reference to the roaming zone.
Definition channel.cc:818
RoamingZone * roamingZone() const
Returns the roaming zone associated with this channel or nullptr if not set.
Definition channel.cc:826
RXGroupList * groupListObj() const
Returns the RX group list for the channel.
Definition channel.cc:733
TimeSlot timeSlot
The time slot of the channel.
Definition channel.hh:371
bool setAPRSObj(PositioningSystem *sys)
Associates the GPS System with this channel.
Definition channel.cc:800
bool setColorCode(unsigned cc)
(Re-)Sets the color code for the channel.
Definition channel.cc:693
unsigned _colorCode
The channel color code.
Definition channel.hh:499
AnytoneDMRChannelExtension * _anytoneExtension
Owns the AnyTone DMR channel extension.
Definition channel.hh:516
GroupListReference * groupList
The rx group list.
Definition channel.hh:375
Admit
Possible admit criteria of digital channels.
Definition channel.hh:390
@ Always
No admit criteria, allows one to transmit any time.
@ Free
Transmit only if channel is free.
@ ColorCode
Transmit if channel is free or differs given color code.
void setCommercialExtension(CommercialChannelExtension *ext)
Sets the commercial channel extension.
Definition channel.cc:873
DMRContactReference * contact
The tx contact.
Definition channel.hh:377
AnytoneDMRChannelExtension * anytoneChannelExtension() const
Returns the DMR channel extension for AnyTone devices.
Definition channel.cc:886
DMRRadioIDReference _radioId
Radio ID to use on this channel.
Definition channel.hh:511
Admit _admit
The admit criterion.
Definition channel.hh:497
void setAPRS(PositioningSystemReference *ref)
Sets the reference to the positioning system.
Definition channel.cc:787
bool setRadioIdObj(DMRRadioID *id)
Associates the given radio ID with this channel.
Definition channel.cc:861
PositioningSystemReference _posSystem
The GPS system.
Definition channel.hh:507
void setGroupList(GroupListReference *ref)
Sets the reference to the group list.
Definition channel.cc:725
DMRRadioIDReference * radioId()
Returns the reference to the radio ID.
DMRRadioIDReference * radioId
The radio ID.
Definition channel.hh:373
unsigned colorCode
The color code of the channel.
Definition channel.hh:369
CommercialChannelExtension * commercialExtension() const
Returns the extension for commercial features.
Definition channel.cc:869
void clear()
Clears the config object.
Definition channel.cc:655
Admit admit
The admit criterion of the channel.
Definition channel.hh:367
TimeSlot _timeSlot
The time slot for the channel.
Definition channel.hh:501
GroupListReference _rxGroup
The RX group list for this channel.
Definition channel.hh:503
RoamingZoneReference * roaming
The roaming zone.
Definition channel.hh:381
GroupListReference * groupList()
Returns a reference to the group list.
RoamingZoneReference * roaming()
Returns a reference to the roaming zone.
CommercialChannelExtension * _commercialExtension
Owns the commercial channel extension.
Definition channel.hh:514
bool setRoamingZone(RoamingZone *zone)
Associates the given roaming zone with this channel.
Definition channel.cc:831
PositioningSystem * aprsObj() const
Returns the GPS system associated with this channel or nullptr if not set.
Definition channel.cc:795
DMRContactReference _txContact
The default TX contact.
Definition channel.hh:505
bool setGroupListObj(RXGroupList *rxg)
(Re-)Sets the RX group list for the channel.
Definition channel.cc:738
PositioningSystemReference * aprs()
Returns a reference to the positioning system.
DMRContact * txContactObj() const
Returns the default TX contact to call on this channel.
Definition channel.cc:764
RoamingZoneReference _roaming
Roaming zone for the channel.
Definition channel.hh:509
void setContact(DMRContactReference *ref)
Sets the reference to the transmit contact.
Definition channel.cc:756
PositioningSystemReference * aprs
The positioning system.
Definition channel.hh:379
AnytoneDMRChannelExtension * anytone
The AnyTone DMR channel extension.
Definition channel.hh:386
YAML::Node serialize(const Context &context, const ErrorStack &err=ErrorStack())
Recursively serializes the configuration to YAML nodes.
Definition channel.cc:903
Represents a reference to a DMR contact.
Definition configreference.hh:99
Represents a digital contact, that is a DMR number.
Definition contact.hh:141
Implements a reference to a radio ID.
Definition configreference.hh:251
Represents a DMR radio ID within the abstract config.
Definition radioid.hh:33
Base class of all digital channels.
Definition channel.hh:344
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
Extension to the AnalogChannel class to implement an analog FM channel.
Definition channel.hh:221
Bandwidth bandwidth
The band width of the channel.
Definition channel.hh:233
APRSSystem * aprsSystem() const
Returns the APRS system used for this channel or nullptr if disabled.
Definition channel.cc:538
AnytoneFMChannelExtension * anytoneChannelExtension() const
Returns the FM channel extension for AnyTone devices.
Definition channel.cc:547
void setSquelchDefault()
Sets the squelch to the global default value.
Definition channel.cc:483
AnytoneFMChannelExtension * anytone
The AnyTone FM channel extension.
Definition channel.hh:238
bool setBandwidth(Bandwidth bw)
(Re-)Sets the bandwidth of the analog channel.
Definition channel.cc:514
unsigned _squelch
Holds the squelch level [0,10].
Definition channel.hh:325
SelectiveCall txTone
The TX tone (CTCSS/DSC).
Definition channel.hh:231
Admit _admit
Holds the admit criterion.
Definition channel.hh:323
bool defaultSquelch() const
Returns true if the global default squelch level is used.
Definition channel.cc:461
Admit admit
The admit criterion of the channel.
Definition channel.hh:225
SelectiveCall rxTone
The RX tone (CTCSS/DSC).
Definition channel.hh:229
unsigned squelch
The squelch level of the channel [1-10].
Definition channel.hh:227
Bandwidth _bw
The channel bandwidth.
Definition channel.hh:331
APRSSystemReference * aprs()
Returns the reference to the APRS system.
bool copy(const ConfigItem &other)
Copies the given item into this one.
Definition channel.cc:417
Admit
Admit criteria of analog channel.
Definition channel.hh:243
@ Always
Allow always.
@ Free
Allow when channel free.
@ Tone
Allow when free or wrong ctcss/dcs tone is present.
void setAdmit(Admit admit)
(Re-)Sets the admit criterion for the analog channel.
Definition channel.cc:455
ConfigItem * clone() const
Clones this item.
Definition channel.cc:429
SelectiveCall _rxTone
The RX CTCSS/DCS setting.
Definition channel.hh:327
bool squelchDisabled() const
Returns true if the squelch is disabled.
Definition channel.cc:465
bool setTXTone(SelectiveCall code)
(Re-)Sets the CTCSS/DCS TX tone, SIGNALING_NONE disables the TX tone.
Definition channel.cc:503
bool parse(const YAML::Node &node, Context &ctx, const ErrorStack &err=ErrorStack())
Parses the given YAML node, updates the given object and updates the given context (IDs).
Definition channel.cc:590
SelectiveCall _txTone
The TX CTCSS/DCS setting.
Definition channel.hh:329
YAML::Node serialize(const Context &context, const ErrorStack &err=ErrorStack())
Recursively serializes the configuration to YAML nodes.
Definition channel.cc:564
void disableSquelch()
Disables the quelch.
Definition channel.cc:479
bool setSquelch(unsigned squelch)
(Re-)Sets the squelch level [0,10].
Definition channel.cc:473
bool populate(YAML::Node &node, const Context &context, const ErrorStack &err=ErrorStack())
Recursively serializes the configuration to YAML nodes.
Definition channel.cc:575
APRSSystemReference _aprsSystem
A reference to the APRS system used on the channel or nullptr if disabled.
Definition channel.hh:333
AnytoneFMChannelExtension * _anytoneExtension
Owns the AnyTone FM channel extension.
Definition channel.hh:336
Bandwidth
Possible bandwidth of an analog channel.
Definition channel.hh:251
@ Narrow
Narrow bandwidth (12.5kHz).
@ Wide
Wide bandwidth (25kHz).
bool setRXTone(SelectiveCall code)
(Re-)Sets the CTCSS/DCS RX tone, SIGNALING_NONE disables the RX tone.
Definition channel.cc:492
void clear()
Clears the config object.
Definition channel.cc:439
void setAPRS(APRSSystemReference *ref)
Sets the APRS system reference.
Definition channel.cc:531
void setAnytoneChannelExtension(AnytoneFMChannelExtension *ext)
Sets the AnyTone FM channel extension.
Definition channel.cc:551
void setAPRSSystem(APRSSystem *sys)
Sets the APRS system.
Definition channel.cc:542
APRSSystemReference * aprs
The APRS system.
Definition channel.hh:235
Implements a reference to a group list.
Definition configreference.hh:262
Implements the channel extensions for the OpenGD77 radios.
Definition opengd77_extension.hh:17
Implements a reference to a positioning system.
Definition configreference.hh:214
Base class of the positioning systems, that is APRS and DMR position reporting system.
Definition gpssystem.hh:18
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Implements a reference to a roaming zone.
Definition configreference.hh:273
Represents a RoamingZone within the abstract device configuration.
Definition roamingzone.hh:15
Implements a reference to a scan list.
Definition configreference.hh:203
Generic representation of a scan list.
Definition scanlist.hh:15
Internal singleton class representing the "currently selected" channel.
Definition channel.hh:523
static SelectedChannel * _instance
Holds the channel singleton instance.
Definition channel.hh:543
virtual ~SelectedChannel()
Destructor.
Definition channel.cc:925
ConfigItem * clone() const
Clones this item.
Definition channel.cc:935
bool copy(const ConfigItem &other)
Copies the given item into this one.
Definition channel.cc:930
static SelectedChannel * get()
Constructs/gets the singleton instance.
Definition channel.cc:940
SelectedChannel()
Constructs the "selected" channel.
Definition channel.cc:919
Represents the TyT channel extension.
Definition tyt_extensions.hh:13
Helper type to represent frequency differences aka offsets.
Definition frequency.hh:69
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:107
Encodes a selective call.
Definition signaling.hh:13