1#ifndef OPENGD77BASE_CODEPLUG_HH
2#define OPENGD77BASE_CODEPLUG_HH
9#include "satellitedatabase.hh"
11#include <QGeoCoordinate>
47 None = 0, APRS = 1, Text = 2, Both = 3
52 Global, Open, Normal, Closed
66 static constexpr unsigned int size() {
return 0x0038; }
72 virtual QString
name()
const;
74 virtual void setName(
const QString &n);
128 virtual bool beep()
const;
135 virtual unsigned int dmrId()
const;
137 virtual void setDMRId(
unsigned int id);
174 virtual OpenGD77ChannelExtension::TalkerAlias
aliasTimeSlot1()
const;
178 virtual OpenGD77ChannelExtension::TalkerAlias
aliasTimeSlot2()
const;
193 virtual bool rxOnly()
const;
207 virtual bool vox()
const;
236 static constexpr unsigned int name() {
return 0x0000; }
237 static constexpr unsigned int rxFrequency() {
return 0x0010; }
238 static constexpr unsigned int txFrequency() {
return 0x0014; }
239 static constexpr unsigned int mode() {
return 0x0018; }
240 static constexpr unsigned int power() {
return 0x0019; }
241 static constexpr unsigned int latitude0() {
return 0x001a; }
242 static constexpr unsigned int latitude1() {
return 0x001c; }
243 static constexpr unsigned int latitude2() {
return 0x001d; }
244 static constexpr unsigned int longitude0() {
return 0x001e; }
245 static constexpr unsigned int longitude1() {
return 0x001f; }
246 static constexpr unsigned int rxTone() {
return 0x0020; }
247 static constexpr unsigned int txTone() {
return 0x0022; }
248 static constexpr unsigned int longitude2() {
return 0x0024; }
249 static constexpr Bit simplex() {
return {0x0026, 2}; }
250 static constexpr Bit useFixedLocation() {
return {0x0026, 3}; }
251 static constexpr Bit disablePowerSave() {
return {0x0026, 5}; }
252 static constexpr Bit disableBeep() {
return {0x0026, 6}; }
253 static constexpr Bit overrideDMRID() {
return {0x0026, 7}; }
254 static constexpr unsigned int dmrId() {
return 0x0027; }
255 static constexpr unsigned int groupList() {
return 0x002b; }
256 static constexpr unsigned int colorCode() {
return 0x002c; }
257 static constexpr unsigned int aprsIndex() {
return 0x002d; }
258 static constexpr unsigned int txContact() {
return 0x002e; }
261 static constexpr Bit
timeSlot() {
return {0x0031, 6}; }
262 static constexpr Bit
bandwidth() {
return {0x0033, 1}; }
263 static constexpr Bit
rxOnly() {
return {0x0033, 2}; }
264 static constexpr Bit
skipScan() {
return {0x0033, 4}; }
265 static constexpr Bit
skipZoneScan() {
return {0x0033, 5}; }
266 static constexpr Bit
vox() {
return {0x0033, 6}; }
267 static constexpr unsigned int squelch() {
return 0x0037; }
290 static constexpr unsigned int size() {
return 0x1c10; }
296 virtual bool isEnabled(
unsigned idx)
const ;
298 virtual void enable(
unsigned idx,
bool enabled);
300 virtual uint8_t *
get(
unsigned idx)
const;
315 static constexpr unsigned int bitmask() {
return 0x0000; }
316 static constexpr unsigned int channels() {
return 0x0010; }
359 QString
name()
const;
380 static constexpr Bit stepSize() {
return {0x0036, 4} ; }
381 static constexpr Bit offsetMode() {
return {0x0036, 2} ; }
382 static constexpr unsigned int txOffset() {
return 0x0034; }
400 static constexpr unsigned int size() {
return 0x0090; }
423 virtual QString
call()
const;
428 virtual unsigned int radioId()
const;
439 struct Limit:
public Element::Limit {
452 static constexpr unsigned int call() {
return 0x0060; }
453 static constexpr unsigned int dmrId() {
return 0x0068; }
465 Baud300 = 1, Baud1200 = 0
490 static constexpr unsigned int size() {
return 0x40; }
499 virtual QString
name()
const;
527 virtual unsigned int via1SSID()
const;
529 virtual void setVia1(
const QString &call,
unsigned int ssid);
538 virtual unsigned int via2SSID()
const;
540 virtual void setVia2(
const QString &call,
unsigned int ssid);
550 virtual QString
comment()
const;
571 struct Limit:
public Element::Limit {
583 static constexpr unsigned int name() {
return 0x0000; }
584 static constexpr unsigned int sourceSSID() {
return 0x0008; }
585 static constexpr unsigned int latitude() {
return 0x0009; }
586 static constexpr unsigned int longitude() {
return 0x000c; }
587 static constexpr unsigned int via1Call() {
return 0x000f; }
588 static constexpr unsigned int via1SSID() {
return 0x0015; }
589 static constexpr unsigned int via2Call() {
return 0x0016; }
590 static constexpr unsigned int via2SSID() {
return 0x001c; }
591 static constexpr unsigned int iconTable() {
return 0x001d; }
592 static constexpr unsigned int iconIndex() {
return 0x001e; }
593 static constexpr unsigned int comment() {
return 0x001f; }
594 static constexpr unsigned int fmFrequency() {
return 0x0037; }
596 static constexpr Bit useFixedPosition() {
return { 0x003d, 1}; }
597 static constexpr Bit
baudRate() {
return { 0x003d, 0}; }
598 static constexpr unsigned int unknownBytes() {
return 0x003e; }
617 static constexpr unsigned int size() {
return 0x40; }
634 struct Limit:
public Element::Limit {
636 static constexpr unsigned int systems() {
return 8; }
641 struct Offset:
public Element::Offset {
642 static constexpr unsigned int systems() {
return 0x0000; }
643 static constexpr unsigned int betweenSystems() {
return APRSSettingsElement::size(); }
662 static constexpr unsigned int size() {
return 0x0020; }
668 virtual QString
name()
const;
673 virtual QString
number()
const;
684 struct Limit:
public Element::Limit {
693 struct Offset:
public Element::Offset {
694 static constexpr unsigned int name() {
return 0x0000; }
695 static constexpr unsigned int number() {
return 0x0010; }
727 struct Limit:
public Element::Limit {
729 static constexpr unsigned int contacts() {
return 64; }
734 struct Offset:
public Element::Offset {
735 static constexpr unsigned int contacts() {
return 0x0000; }
736 static constexpr unsigned int betweenContacts() {
return DTMFContactElement::size(); }
773 virtual QString
line1()
const;
775 virtual void setLine1(
const QString &text);
777 virtual QString
line2()
const;
779 virtual void setLine2(
const QString &text);
788 struct Limit:
public Element::Limit {
795 struct Offset:
public Element::Offset {
796 static constexpr unsigned int bootText() {
return 0x0000; }
797 static constexpr unsigned int bootPasswdEnable() {
return 0x0001; }
798 static constexpr unsigned int bootPasswd() {
return 0x000c; }
799 static constexpr unsigned int line1() {
return 0x0028; }
800 static constexpr unsigned int line2() {
return 0x0038; }
819 static constexpr unsigned int size() {
return 0x00b0; }
827 virtual QString
name()
const;
832 virtual bool hasMember(
unsigned n)
const;
834 virtual unsigned member(
unsigned n)
const;
836 virtual void setMember(
unsigned n,
unsigned idx);
850 struct Limit:
public Element::Limit {
861 static constexpr unsigned int name() {
return 0x0000; }
862 static constexpr unsigned int channels() {
return 0x0010; }
863 static constexpr unsigned int betweenChannels() {
return 0x0002; }
883 static constexpr unsigned int size() {
891 virtual bool isEnabled(
unsigned idx)
const ;
893 virtual void enable(
unsigned idx,
bool enabled);
907 struct Limit:
public Element::Limit {
909 static constexpr unsigned int zoneCount() {
return 68; }
916 static constexpr unsigned int bitmap() {
return 0x0000; }
917 static constexpr unsigned int zones() {
return 0x0020; }
947 static constexpr unsigned int size() {
return 0x0018; }
956 virtual QString
name()
const;
961 virtual unsigned number()
const;
991 static constexpr unsigned int name() {
return 0x0000; }
992 static constexpr unsigned int number() {
return 0x0010; }
993 static constexpr unsigned int type() {
return 0x0014; }
1012 static constexpr unsigned int size() {
1038 static constexpr unsigned int contacts() {
return 0x0000; }
1057 static constexpr unsigned int size() {
return 0x0050; }
1063 virtual QString
name()
const;
1070 virtual unsigned int contactIndex(
unsigned int i)
const;
1072 virtual void setContactIndex(
unsigned int i,
unsigned int contactIdx);
1096 static constexpr unsigned int name() {
return 0x0000; }
1097 static constexpr unsigned int contacts() {
return 0x0010; }
1098 static constexpr unsigned int betweenContacts() {
return 0x0002; }
1116 static constexpr unsigned int size() {
return 0x1840; }
1150 static constexpr unsigned int length() {
return 0x0000; }
1151 static constexpr unsigned int groupLists() {
return 0x0080; }
1164 virtual void clear();
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:34
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:61
Base class for all codeplug contexts.
Definition codeplug.hh:273
Represents the abstract base class of all codeplug elements.
Definition codeplug.hh:52
Element(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:22
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition codeplug.hh:26
Codeplug(QObject *parent=nullptr)
Hidden default constructor.
Definition codeplug.cc:741
The config class, representing the codeplug configuration.
Definition config.hh:70
uint32_t size() const
Returns the total size of the DFU file.
Definition dfufile.cc:52
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:389
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:41
Bandwidth
Possible bandwidth of an analog channel.
Definition channel.hh:240
virtual ~BootSettingsElement()
Destructor.
Definition opengd77base_codeplug.cc:1480
virtual void setLine1(const QString &text)
Sets the first line.
Definition opengd77base_codeplug.cc:1531
virtual QString line2() const
Returns the Second line.
Definition opengd77base_codeplug.cc:1536
BootSettingsElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition opengd77base_codeplug.cc:1468
virtual QString line1() const
Returns the first line.
Definition opengd77base_codeplug.cc:1527
virtual void enableBootText(bool enable)
Enables/disables boot text.
Definition opengd77base_codeplug.cc:1499
virtual bool encode(const Context &ctx, const ErrorStack &err=ErrorStack())
Encodes boot text settings from configuration.
Definition opengd77base_codeplug.cc:1546
virtual unsigned bootPassword() const
Returns the boot password (6 digit).
Definition opengd77base_codeplug.cc:1510
virtual bool bootPasswordEnabled() const
Returns true if the boot password is enabled.
Definition opengd77base_codeplug.cc:1505
virtual void setLine2(const QString &text)
Sets the second line.
Definition opengd77base_codeplug.cc:1540
virtual void clearBootPassword()
Clear boot password.
Definition opengd77base_codeplug.cc:1521
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Updates the configuration with the boot text settings.
Definition opengd77base_codeplug.cc:1554
virtual bool bootText() const
Returns true if the text is shown on boot, other wise an image is shown.
Definition opengd77base_codeplug.cc:1494
virtual void setBootPassword(unsigned passwd)
Sets the boot password (6 digit).
Definition opengd77base_codeplug.cc:1515
void clear()
Resets the settings.
Definition opengd77base_codeplug.cc:1485
virtual ~ChannelBankElement()
Destructor.
Definition opengd77base_codeplug.cc:706
virtual uint8_t * get(unsigned idx) const
Returns a pointer to the channel at the given index.
Definition opengd77base_codeplug.cc:727
virtual bool isEnabled(unsigned idx) const
Returns true if the channel is enabled.
Definition opengd77base_codeplug.cc:716
ChannelBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition opengd77base_codeplug.cc:694
ChannelElement channel(unsigned int n)
Retunrs the n-th channel.
Definition opengd77base_codeplug.cc:732
void clear()
Clears the bank.
Definition opengd77base_codeplug.cc:711
static constexpr unsigned int size()
The size of the channel bank.
Definition opengd77base_codeplug.hh:290
virtual void enable(unsigned idx, bool enabled)
Enable/disable a channel in the bank.
Definition opengd77base_codeplug.cc:721
Implements the base for all OpenGD77 channel encodings.
Definition opengd77base_codeplug.hh:37
virtual unsigned int dmrId() const
Retruns the DMR ID for this channel.
Definition opengd77base_codeplug.cc:310
Alias
Alias to transmit.
Definition opengd77base_codeplug.hh:46
virtual void enableSimplex(bool enable)
Sets the channel to simplex.
Definition opengd77base_codeplug.cc:277
virtual void setBandwidth(FMChannel::Bandwidth bw)
Sets the bandwidth.
Definition opengd77base_codeplug.cc:461
virtual void clearPower()
Clears the power setting.
Definition opengd77base_codeplug.cc:203
virtual void setMode(Mode mode)
Sets the channel mode.
Definition opengd77base_codeplug.cc:160
ChannelElement(uint8_t *ptr, size_t size)
Constructs a channel from the given memory.
Definition opengd77base_codeplug.cc:76
virtual bool beep() const
Returns true, if the "beep" is enabled.
Definition opengd77base_codeplug.cc:294
virtual DMRChannel::TimeSlot timeSlot() const
Returns the time slot of the channel.
Definition opengd77base_codeplug.cc:447
virtual void enableRXOnly(bool enable)
Enables/disables RX only.
Definition opengd77base_codeplug.cc:470
static constexpr unsigned int size()
The size of the channel.
Definition opengd77base_codeplug.hh:66
virtual OpenGD77ChannelExtension::TalkerAlias aliasTimeSlot1() const
Returns the alias transmitted on time slot 1.
Definition opengd77base_codeplug.cc:401
virtual void setTXTone(const SelectiveCall &code)
Sets the TX subtone.
Definition opengd77base_codeplug.cc:266
virtual bool hasDMRId() const
Returns true if the global DMR ID is overridden.
Definition opengd77base_codeplug.cc:305
virtual void clear()
Resets the channel.
Definition opengd77base_codeplug.cc:93
virtual void setName(const QString &n)
Sets the name of the channel.
Definition opengd77base_codeplug.cc:128
virtual void setAliasTimeSlot2(OpenGD77ChannelExtension::TalkerAlias alias)
Sets the alias transmitted on time slot 2.
Definition opengd77base_codeplug.cc:436
virtual void clearGroupListIndex()
Clears the group list index.
Definition opengd77base_codeplug.cc:343
virtual QGeoCoordinate fixedPosition() const
Returns the fixed position.
Definition opengd77base_codeplug.cc:214
virtual unsigned int squelchLevel() const
Retunrs the squelch level.
Definition opengd77base_codeplug.cc:513
virtual void setDMRId(unsigned int id)
Sets the DMR ID for this channel.
Definition opengd77base_codeplug.cc:315
virtual bool globalPower() const
Returns true if the power-setting is global.
Definition opengd77base_codeplug.cc:166
virtual FMChannel::Bandwidth bandwidth() const
Returns the bandwidth.
Definition opengd77base_codeplug.cc:457
virtual void enableSkipZoneScan(bool enable)
Enables/disables skipping in zone scan.
Definition opengd77base_codeplug.cc:488
virtual bool hasFixedPosition() const
Returns true, if a fixed position is set for the channel.
Definition opengd77base_codeplug.cc:209
virtual void setTXFrequency(const Frequency &freq)
Sets the TX frequency of the channel.
Definition opengd77base_codeplug.cc:150
virtual unsigned int aprsIndex() const
Returns the APRS system index.
Definition opengd77base_codeplug.cc:364
virtual bool powerSave() const
Returns true, if the power-save feature is enabled.
Definition opengd77base_codeplug.cc:283
SquelchMode
Possible squelch modes.
Definition opengd77base_codeplug.hh:51
virtual void clearTXContact()
Clears the TX contact index.
Definition opengd77base_codeplug.cc:395
Mode
Possible channel types.
Definition opengd77base_codeplug.hh:40
@ MODE_ANALOG
Analog channel, aka FM.
Definition opengd77base_codeplug.hh:41
@ MODE_DIGITAL
Digital channel, aka DMR.
Definition opengd77base_codeplug.hh:42
virtual void setTXContactIndex(unsigned int index)
Sets the TX contact index.
Definition opengd77base_codeplug.cc:390
virtual bool vox() const
Returns true if VOX is enabled.
Definition opengd77base_codeplug.cc:493
virtual QString name() const
Returns the name of the channel.
Definition opengd77base_codeplug.cc:123
virtual unsigned colorCode() const
Returns the color code.
Definition opengd77base_codeplug.cc:349
virtual SelectiveCall txTone() const
Returns the TX subtone.
Definition opengd77base_codeplug.cc:261
virtual SelectiveCall rxTone() const
Returns the RX subtone.
Definition opengd77base_codeplug.cc:251
virtual void setAliasTimeSlot1(OpenGD77ChannelExtension::TalkerAlias alias)
Sets the alias transmitted on time slot 1.
Definition opengd77base_codeplug.cc:413
virtual bool skipScan() const
Returns true if channel is skipped in a scan.
Definition opengd77base_codeplug.cc:475
virtual void clearDMRId()
Resets the DMR ID for this channel to the global one.
Definition opengd77base_codeplug.cc:321
virtual void clearFixedPosition()
Resets the fixed position.
Definition opengd77base_codeplug.cc:245
virtual bool rxOnly() const
Returns true if RX only is enabled.
Definition opengd77base_codeplug.cc:466
virtual Frequency rxFrequency() const
Returns the RX frequency of the channel.
Definition opengd77base_codeplug.cc:134
virtual unsigned groupListIndex() const
Returns the group-list index.
Definition opengd77base_codeplug.cc:333
virtual bool skipZoneScan() const
Returns true if channel is skipped in zone scan.
Definition opengd77base_codeplug.cc:484
virtual Frequency txFrequency() const
Returns the TX frequency of the channel.
Definition opengd77base_codeplug.cc:145
virtual void setColorCode(unsigned cc)
Sets thecolor code.
Definition opengd77base_codeplug.cc:353
virtual ~ChannelElement()
Destructor.
Definition opengd77base_codeplug.cc:88
virtual unsigned int txContactIndex() const
Returns the TX contact index.
Definition opengd77base_codeplug.cc:385
virtual void setAPRSIndex(unsigned int index)
Sets the APRS system index.
Definition opengd77base_codeplug.cc:369
virtual bool encode(const Channel *c, Context &ctx, const ErrorStack &err=ErrorStack())
Initializes this codeplug channel from the given generic configuration.
Definition opengd77base_codeplug.cc:623
virtual void setFixedPosition(const QGeoCoordinate &coordinate)
Sets the fixed position for this channel.
Definition opengd77base_codeplug.cc:226
virtual Channel * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a generic Channel object from the codeplug channel.
Definition opengd77base_codeplug.cc:532
virtual void setGroupListIndex(unsigned index)
Sets the group-list index.
Definition opengd77base_codeplug.cc:338
virtual void setRXFrequency(const Frequency &freq)
Sets the RX frequency of the channel.
Definition opengd77base_codeplug.cc:139
virtual void setTimeSlot(DMRChannel::TimeSlot ts)
Sets the time slot of the channel.
Definition opengd77base_codeplug.cc:451
virtual OpenGD77ChannelExtension::TalkerAlias aliasTimeSlot2() const
Returns the alias transmitted on time slot 2.
Definition opengd77base_codeplug.cc:424
virtual void enableVOX(bool enable)
Enables/disables VOX.
Definition opengd77base_codeplug.cc:497
virtual Channel::Power power() const
Returns the power setting of the channel.
Definition opengd77base_codeplug.cc:171
virtual bool hasGroupList() const
Returns true if a group list is set.
Definition opengd77base_codeplug.cc:328
virtual bool isSimplex() const
Returns true if the channel is set to simplex.
Definition opengd77base_codeplug.cc:272
virtual SquelchMode squelchMode() const
Returns the squelch mode.
Definition opengd77base_codeplug.cc:503
virtual void clearAPRSIndex()
Resets the APRS system index.
Definition opengd77base_codeplug.cc:374
virtual void enablePowerSave(bool enable)
Enables/disables power-save.
Definition opengd77base_codeplug.cc:288
virtual void setRXTone(const SelectiveCall &code)
Sets the RX subtone.
Definition opengd77base_codeplug.cc:256
virtual void enableBeep(bool enable)
Enables/disables "the beep".
Definition opengd77base_codeplug.cc:299
virtual void setPower(Channel::Power pwr)
Sets the power setting of the channel.
Definition opengd77base_codeplug.cc:192
virtual bool link(Channel *c, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links a previously constructed channel to the rest of the configuration.
Definition opengd77base_codeplug.cc:582
virtual void enableSkipScan(bool enable)
Enables/disables skipping in scan.
Definition opengd77base_codeplug.cc:479
virtual void setSquelch(SquelchMode mode, unsigned int level)
Set the squelch level and mode.
Definition opengd77base_codeplug.cc:519
virtual bool hasTXContact() const
Returns true, if the TX contact is set.
Definition opengd77base_codeplug.cc:380
virtual Mode mode() const
Returns the channel mode.
Definition opengd77base_codeplug.cc:156
virtual bool hasAPRSIndex() const
Returns true, if the APRS system index is set.
Definition opengd77base_codeplug.cc:359
virtual Frequency vhfMinFrequency() const
Returns the VHF minimum frequency.
Definition opengd77base_codeplug.cc:870
virtual void setUHFMaxFrequency(const Frequency &f)
Sets the UHF maximum frequency.
Definition opengd77base_codeplug.cc:864
virtual bool encode(const Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the settings.
Definition opengd77base_codeplug.cc:914
virtual bool decode(const Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the settings.
Definition opengd77base_codeplug.cc:928
virtual void setVHFMinFrequency(const Frequency &f)
Sets the VHF minimum frequency.
Definition opengd77base_codeplug.cc:875
virtual Frequency uhfMinFrequency() const
Returns the UHF minimum frequency.
Definition opengd77base_codeplug.cc:849
virtual void setVHFMaxFrequency(const Frequency &f)
Sets the VHF maximum frequency.
Definition opengd77base_codeplug.cc:886
void clear()
Abstract method to reset the element within the codeplug.
Definition opengd77base_codeplug.cc:842
static constexpr unsigned int size()
Returns the size of the element.
Definition opengd77base_codeplug.hh:400
virtual unsigned int radioId() const
Returns the DMR ID.
Definition opengd77base_codeplug.cc:903
virtual void setCall(const QString &call)
Sets the radio callsign.
Definition opengd77base_codeplug.cc:897
virtual void setRadioId(unsigned int id)
Sets the DMR ID.
Definition opengd77base_codeplug.cc:908
virtual Frequency vhfMaxFrequency() const
Returns the VHF maximum frequency.
Definition opengd77base_codeplug.cc:881
GeneralSettingsElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition opengd77base_codeplug.cc:828
virtual Frequency uhfMaxFrequency() const
Returns the UHF maximum frequency.
Definition opengd77base_codeplug.cc:859
virtual void setUHFMinFrequency(const Frequency &f)
Sets the UHF minimum frequency.
Definition opengd77base_codeplug.cc:854
virtual QString call() const
Returns the radio callsign.
Definition opengd77base_codeplug.cc:892
void clear()
Clears the group list bank.
Definition opengd77base_codeplug.cc:2109
virtual void clearGroupList(unsigned int i)
Clears the i-th group list.
Definition opengd77base_codeplug.cc:2136
virtual void setGroupListContactCount(unsigned int i, unsigned int count)
Sets the number of contacts in the given group list.
Definition opengd77base_codeplug.cc:2126
GroupListBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition opengd77base_codeplug.cc:2095
static constexpr unsigned int size()
Returns the size of the element.
Definition opengd77base_codeplug.hh:1116
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all group lists.
Definition opengd77base_codeplug.cc:2180
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all group lists.
Definition opengd77base_codeplug.cc:2143
virtual bool hasGroupList(unsigned int i) const
Returns true, if the i-th group list is encoded.
Definition opengd77base_codeplug.cc:2116
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all group lists.
Definition opengd77base_codeplug.cc:2162
virtual unsigned int groupListContactCount(unsigned int i) const
Returns the number of contacts in the given group list.
Definition opengd77base_codeplug.cc:2121
virtual GroupListElement groupList(unsigned int i) const
Returns the i-th group list.
Definition opengd77base_codeplug.cc:2131
Encodes a group list for all OpenGD77 codeplugs.
Definition opengd77base_codeplug.hh:1047
virtual bool link(RXGroupList *lst, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links the group list element.
Definition opengd77base_codeplug.cc:2074
void clear()
Clears the group list.
Definition opengd77base_codeplug.cc:2007
virtual QString name() const
Returns the name of the group list.
Definition opengd77base_codeplug.cc:2014
virtual void setContactIndex(unsigned int i, unsigned int contactIdx)
Sets the i-th contact index.
Definition opengd77base_codeplug.cc:2035
GroupListElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition opengd77base_codeplug.cc:1993
virtual void setName(const QString &name)
Sets the name of the group list.
Definition opengd77base_codeplug.cc:2019
virtual bool hasContactIndex(unsigned int i) const
Returns true, if the i-th contact is set.
Definition opengd77base_codeplug.cc:2025
virtual RXGroupList * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes group list element.
Definition opengd77base_codeplug.cc:2067
virtual bool encode(RXGroupList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes group list element.
Definition opengd77base_codeplug.cc:2046
virtual void clearContactIndex(unsigned int i)
Clears the i-th contact index.
Definition opengd77base_codeplug.cc:2040
virtual unsigned int contactIndex(unsigned int i) const
Returns the i-th contact index.
Definition opengd77base_codeplug.cc:2030
static constexpr unsigned int size()
Returns the size of the element.
Definition opengd77base_codeplug.hh:1057
virtual double txOffset() const
Returns the transmit frequency offset.
Definition opengd77base_codeplug.cc:815
virtual double stepSize() const
Returns the tuning step-size in kHz.
Definition opengd77base_codeplug.cc:772
virtual OffsetMode offsetMode() const
Returns the transmit frequency offset mode.
Definition opengd77base_codeplug.cc:807
void setName(const QString &name)
The VFO channel has no name.
Definition opengd77base_codeplug.cc:766
virtual void setOffsetMode(OffsetMode mode)
Sets the transmit frequency offset mode.
Definition opengd77base_codeplug.cc:811
virtual void setStepSize(double kHz)
Sets the tuning step-size in kHz.
Definition opengd77base_codeplug.cc:787
QString name() const
The VFO channel has no name.
Definition opengd77base_codeplug.cc:762
void clear()
Resets the channel.
Definition opengd77base_codeplug.cc:754
VFOChannelElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition opengd77base_codeplug.cc:741
StepSize
Possible tuning step sizes.
Definition opengd77base_codeplug.hh:337
@ SS5kHz
5kHz
Definition opengd77base_codeplug.hh:339
@ SS12_5kHz
12.5kHz
Definition opengd77base_codeplug.hh:342
@ SS10kHz
10kHz
Definition opengd77base_codeplug.hh:341
@ SS30kHz
30kHz
Definition opengd77base_codeplug.hh:344
@ SS2_5kHz
2.5kHz
Definition opengd77base_codeplug.hh:338
@ SS20kHz
20kHz
Definition opengd77base_codeplug.hh:343
@ SS6_25kHz
6.25kHz
Definition opengd77base_codeplug.hh:340
@ SS50kHz
50kHz
Definition opengd77base_codeplug.hh:345
virtual void setTXOffset(double f)
Sets the transmit frequency offset in MHz.
Definition opengd77base_codeplug.cc:819
OffsetMode
Possible offset frequency modes.
Definition opengd77base_codeplug.hh:330
@ Positive
Transmit offset frequency is positive (TX above RX).
Definition opengd77base_codeplug.hh:332
@ Off
Disables transmit frequency offset.
Definition opengd77base_codeplug.hh:331
@ Negative
Transmit offset frequency is negative (TX below RX).
Definition opengd77base_codeplug.hh:333
virtual void enable(unsigned idx, bool enabled)
Enable/disable a zone in the bank.
Definition opengd77base_codeplug.cc:1711
ZoneBankElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition opengd77base_codeplug.cc:1684
ZoneElement zone(unsigned int n)
Retunrs the n-th zone.
Definition opengd77base_codeplug.cc:1718
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all zones.
Definition opengd77base_codeplug.cc:1763
~ZoneBankElement()
Destructor.
Definition opengd77base_codeplug.cc:1696
virtual bool isEnabled(unsigned idx) const
Returns true if the zone is enabled.
Definition opengd77base_codeplug.cc:1706
static constexpr unsigned int size()
The size of the zone element.
Definition opengd77base_codeplug.hh:883
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all zones.
Definition opengd77base_codeplug.cc:1743
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all zones.
Definition opengd77base_codeplug.cc:1724
void clear()
Resets the bank.
Definition opengd77base_codeplug.cc:1701
Represents a zone within OpenGD77 codeplugs.
Definition opengd77base_codeplug.hh:808
bool isValid() const
Returns true if the zone is valid.
Definition opengd77base_codeplug.cc:1588
virtual bool encode(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Resets this codeplug zone representation from the given generic Zone object.
Definition opengd77base_codeplug.cc:1661
void clear()
Resets the zone.
Definition opengd77base_codeplug.cc:1583
static constexpr unsigned int size()
The size of the zone element.
Definition opengd77base_codeplug.hh:819
virtual QString name() const
Returns the name of the zone.
Definition opengd77base_codeplug.cc:1593
virtual Zone * decode(const Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a generic Zone object from this codeplug zone.
Definition opengd77base_codeplug.cc:1630
ZoneElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition opengd77base_codeplug.cc:1566
virtual bool hasMember(unsigned n) const
Returns true if a member is stored at the given index.
Definition opengd77base_codeplug.cc:1603
virtual unsigned member(unsigned n) const
Returns the n-th member index.
Definition opengd77base_codeplug.cc:1610
virtual void setMember(unsigned n, unsigned idx)
Sets the n-th member index.
Definition opengd77base_codeplug.cc:1617
virtual void clearMember(unsigned n)
Clears the n-th member index.
Definition opengd77base_codeplug.cc:1624
virtual void setName(const QString &name)
Sets the name of the zone.
Definition opengd77base_codeplug.cc:1597
virtual bool link(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links a previously constructed Zone object to the rest of the configuration.
Definition opengd77base_codeplug.cc:1641
virtual void clearZones()=0
Clears all zones.
ImageType
Possible image types.
Definition opengd77base_codeplug.hh:21
virtual void clearVFOSettings()=0
Clears the VFO settings.
virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Updates the general settings from the given configuration.
virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds zones to the configuration.
bool decode(Config *config, const ErrorStack &err=ErrorStack())
Decodes a binary codeplug to the given abstract configuration config.
Definition opengd77base_codeplug.cc:2359
virtual bool encodeBootSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes boot settings.
virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all digital contacts in the configuration into the codeplug.
OpenGD77BaseCodeplug(QObject *parent=nullptr)
Default hidden constructor.
Definition opengd77base_codeplug.cc:2199
static uint16_t encodeSelectiveCall(const SelectiveCall &call)
Encodes a selective call (tx/rx tone).
Definition opengd77base_codeplug.cc:30
virtual bool encodeDTMFContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all DTMF contacts.
virtual bool decodeAPRSSettings(Context &ctx, const ErrorStack &err=ErrorStack())=0
Decodes the APRS settings.
virtual void clearContacts()=0
Clears all contacts in the codeplug.
virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the binary codeplug and stores its content in the given generic configuration using the given...
Definition opengd77base_codeplug.cc:2385
virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given generic configuration as a binary codeplug using the given context.
Definition opengd77base_codeplug.cc:2306
virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds all defined channels to the configuration.
virtual bool createDTMFContacts(Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds all DTMF contacts to the configuration.
virtual bool linkAPRSSettings(Context &ctx, const ErrorStack &err=ErrorStack())=0
Links the APRS settings.
virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all zones within the configuration.
virtual bool decodeDTMFSettings(Context &ctx, const ErrorStack &err=ErrorStack())=0
Decodes the DTMF settings.
virtual bool encodeGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes all group lists.
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all channels.
virtual void clearDTMFSettings()=0
Clears the DTMF settings.
virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack())=0
Adds a digital contact to the configuration for each one in the codeplug.
bool encode(Config *config, const Flags &flags=Flags(), const ErrorStack &err=ErrorStack())
Encodes a given abstract configuration (config) to the device specific binary code-plug.
Definition opengd77base_codeplug.cc:2287
virtual void clearGeneralSettings()=0
Clears the general settings in the codeplug.
virtual void clearGroupLists()=0
Clears all group lists.
virtual void clearAPRSSettings()=0
Clears the APRS settings.
virtual bool encodeAPRSSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes APRS settings.
virtual bool decodeBootSettings(Context &ctx, const ErrorStack &err=ErrorStack())=0
Decodes the boot settings.
virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encode all channels.
static SelectiveCall decodeSelectiveCall(uint16_t code)
Decodes a selective call (tx/rx tone).
Definition opengd77base_codeplug.cc:52
virtual void clearBootSettings()=0
Clear boot settings.
virtual bool encodeDTMFSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes DTMF settings.
static double decodeAngle(uint32_t code)
Decodes an angle used to store locations.
Definition opengd77base_codeplug.cc:22
virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack())=0
Updates the given configuration from the general settings.
Config * preprocess(Config *config, const ErrorStack &err=ErrorStack()) const
Retruns a prepared configuration for this particular radio.
Definition opengd77base_codeplug.cc:2268
static uint32_t encodeAngle(double degee)
Encodes an angle used to store locations.
Definition opengd77base_codeplug.cc:14
virtual bool linkGroupLists(Context &ctx, const ErrorStack &err=ErrorStack())=0
Links all group lists.
virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack())=0
Encodes zones.
virtual void clearDTMFContacts()=0
Clears all DTMF contacts in the codeplug.
bool postprocess(Config *config, const ErrorStack &err=ErrorStack()) const
Retruns a post-processed configuration of the decoded config.
Definition opengd77base_codeplug.cc:2369
virtual void clear()
Clears and resets the complete codeplug to some default values.
Definition opengd77base_codeplug.cc:2207
virtual void clearChannels()=0
Clear all channels.
bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const
Indexes all elements of the codeplug.
Definition opengd77base_codeplug.cc:2229
virtual bool createGroupLists(Context &ctx, const ErrorStack &err=ErrorStack())=0
Creates all group lists.
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Represents a zone within the generic configuration.
Definition zone.hh:15
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:11
Some limits for the settings.
Definition opengd77base_codeplug.hh:788
static constexpr unsigned int lineLength()
The total number of contacts.
Definition opengd77base_codeplug.hh:790
Some limits for the channel bank.
Definition opengd77base_codeplug.hh:306
static constexpr unsigned int channelCount()
The maximum number of channels.
Definition opengd77base_codeplug.hh:308
Some internal offset within the element.
Definition opengd77base_codeplug.hh:313
Some limits for this element.
Definition opengd77base_codeplug.hh:227
static constexpr unsigned int nameLength()
The maximum length of the name.
Definition opengd77base_codeplug.hh:229
Some internal offsets within the channel element.
Definition opengd77base_codeplug.hh:234
Some limits.
Definition opengd77base_codeplug.hh:439
static constexpr unsigned int callLength()
The maximum call length.
Definition opengd77base_codeplug.hh:441
Some internal offset within the element.
Definition opengd77base_codeplug.hh:446
Some limits for the element.
Definition opengd77base_codeplug.hh:1141
static constexpr unsigned int groupListCount()
Maximum number of group lists.
Definition opengd77base_codeplug.hh:1143
Some internal offsets within the element.
Definition opengd77base_codeplug.hh:1148
Some limits for the element.
Definition opengd77base_codeplug.hh:1085
static constexpr unsigned int contactCount()
Maximum number of contacts.
Definition opengd77base_codeplug.hh:1089
static constexpr unsigned int nameLength()
Maximum name length.
Definition opengd77base_codeplug.hh:1087
Some internal offsets within the element.
Definition opengd77base_codeplug.hh:1094
Some limits for the zone bank.
Definition opengd77base_codeplug.hh:907
static constexpr unsigned int zoneCount()
The maximum number of zones in this bank.
Definition opengd77base_codeplug.hh:909
Some internal offsets within the element.
Definition opengd77base_codeplug.hh:914
Some limits for zone elements.
Definition opengd77base_codeplug.hh:850
static constexpr unsigned int nameLength()
The maximum length of the zone name.
Definition opengd77base_codeplug.hh:852
static constexpr unsigned int memberCount()
The maximum number of members.
Definition opengd77base_codeplug.hh:854
Some internal offsets within the element.
Definition opengd77base_codeplug.hh:859
Encodes a selective call.
Definition signaling.hh:13