1#ifndef OPENGD77BASE_CODEPLUG_HH
2#define OPENGD77BASE_CODEPLUG_HH
9#include "satellitedatabase.hh"
11#include <QGeoCoordinate>
14class OpenGD77BaseCodeplug :
public Codeplug
20 enum ImageType { EEPROM = 0, FLASH = 1 };
24 static uint32_t encodeAngle(
double degee);
26 static double decodeAngle(uint32_t code);
29 static uint16_t encodeSelectiveCall(
const SelectiveCall &call);
47 None = 0, APRS = 1, Text = 2, Both = 3
51 enum class SquelchMode {
52 Global, Open, Normal, Closed
57 ChannelElement(uint8_t *ptr,
size_t size);
61 explicit ChannelElement(uint8_t *ptr);
63 virtual ~ChannelElement();
66 static constexpr unsigned int size() {
return 0x0038; }
72 virtual QString name()
const;
74 virtual void setName(
const QString &n);
79 virtual void setRXFrequency(
const Frequency &freq);
83 virtual void setTXFrequency(
const Frequency &freq);
86 virtual Mode mode()
const;
88 virtual void setMode(Mode mode);
91 virtual bool globalPower()
const;
97 virtual void clearPower();
100 virtual bool hasFixedPosition()
const;
102 virtual QGeoCoordinate fixedPosition()
const;
104 virtual void setFixedPosition(
const QGeoCoordinate &coordinate);
106 virtual void clearFixedPosition();
118 virtual bool isSimplex()
const;
120 virtual void enableSimplex(
bool enable);
123 virtual bool powerSave()
const;
125 virtual void enablePowerSave(
bool enable);
128 virtual bool beep()
const;
130 virtual void enableBeep(
bool enable);
133 virtual bool hasDMRId()
const;
135 virtual unsigned int dmrId()
const;
137 virtual void setDMRId(
unsigned int id);
139 virtual void clearDMRId();
142 virtual bool hasGroupList()
const;
144 virtual unsigned groupListIndex()
const;
146 virtual void setGroupListIndex(
unsigned index);
148 virtual void clearGroupListIndex();
151 virtual unsigned colorCode()
const;
153 virtual void setColorCode(
unsigned cc);
156 virtual bool hasAPRSIndex()
const;
158 virtual unsigned int aprsIndex()
const;
160 virtual void setAPRSIndex(
unsigned int index);
162 virtual void clearAPRSIndex();
165 virtual bool hasTXContact()
const;
167 virtual unsigned int txContactIndex()
const;
169 virtual void setTXContactIndex(
unsigned int index);
171 virtual void clearTXContact();
174 virtual OpenGD77ChannelExtension::TalkerAlias aliasTimeSlot1()
const;
176 virtual void setAliasTimeSlot1(OpenGD77ChannelExtension::TalkerAlias alias);
178 virtual OpenGD77ChannelExtension::TalkerAlias aliasTimeSlot2()
const;
180 virtual void setAliasTimeSlot2(OpenGD77ChannelExtension::TalkerAlias alias);
193 virtual bool rxOnly()
const;
195 virtual void enableRXOnly(
bool enable);
198 virtual bool skipScan()
const;
200 virtual void enableSkipScan(
bool enable);
202 virtual bool skipZoneScan()
const;
204 virtual void enableSkipZoneScan(
bool enable);
207 virtual bool vox()
const;
209 virtual void enableVOX(
bool enable);
212 virtual SquelchMode squelchMode()
const;
214 virtual unsigned int squelchLevel()
const;
216 virtual void setSquelch(SquelchMode mode,
unsigned int level);
229 static constexpr unsigned int nameLength() {
return 16; }
234 struct Offset:
public Element::Offset {
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; }
259 static constexpr Bit aliasTimeSlot2() {
return { 0x030, 2}; }
260 static constexpr Bit aliasTimeSlot1() {
return { 0x030, 0}; }
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; }
276 class ChannelBankElement:
public Element
280 ChannelBankElement(uint8_t *ptr,
unsigned size);
284 explicit ChannelBankElement(uint8_t *ptr);
286 virtual ~ChannelBankElement();
289 static constexpr unsigned int size() {
return 0x1c10; }
295 virtual bool isEnabled(
unsigned idx)
const ;
297 virtual void enable(
unsigned idx,
bool enabled);
299 virtual uint8_t *get(
unsigned idx)
const;
301 ChannelElement channel(
unsigned int n);
307 static constexpr unsigned int channelCount() {
return 128; }
314 static constexpr unsigned int bitmask() {
return 0x0000; }
315 static constexpr unsigned int channels() {
return 0x0010; }
325 class VFOChannelElement:
public ChannelElement
329 enum class OffsetMode {
336 enum class StepSize {
349 VFOChannelElement(uint8_t *ptr,
unsigned size);
353 explicit VFOChannelElement(uint8_t *ptr);
358 QString name()
const;
360 void setName(
const QString &name);
363 virtual double stepSize()
const;
365 virtual void setStepSize(
double kHz);
368 virtual OffsetMode offsetMode()
const;
370 virtual double txOffset()
const;
372 virtual void setTXOffset(
double f);
374 virtual void setOffsetMode(OffsetMode mode);
378 struct Offset:
public ChannelElement::Offset {
379 static constexpr Bit stepSize() {
return {0x0036, 4} ; }
380 static constexpr Bit offsetMode() {
return {0x0036, 2} ; }
381 static constexpr unsigned int txOffset() {
return 0x0034; }
388 class GeneralSettingsElement:
public Element
392 GeneralSettingsElement(uint8_t *ptr,
size_t size);
396 GeneralSettingsElement(uint8_t *ptr);
399 static constexpr unsigned int size() {
return 0x0090; }
404 virtual Frequency uhfMinFrequency()
const;
406 virtual void setUHFMinFrequency(
const Frequency &f);
408 virtual Frequency uhfMaxFrequency()
const;
410 virtual void setUHFMaxFrequency(
const Frequency &f);
413 virtual Frequency vhfMinFrequency()
const;
415 virtual void setVHFMinFrequency(
const Frequency &f);
417 virtual Frequency vhfMaxFrequency()
const;
419 virtual void setVHFMaxFrequency(
const Frequency &f);
422 virtual QString call()
const;
424 virtual void setCall(
const QString &call);
427 virtual unsigned int radioId()
const;
429 virtual void setRadioId(
unsigned int id);
438 struct Limit:
public Element::Limit {
440 static constexpr unsigned int callLength() {
return 8; }
445 struct Offset:
public Element::Offset {
447 static constexpr unsigned int uhfMinFrequency() {
return 0x0000; }
448 static constexpr unsigned int uhfMaxFrequency() {
return 0x0002; }
449 static constexpr unsigned int vhfMinFrequency() {
return 0x0004; }
450 static constexpr unsigned int vhfMaxFrequency() {
return 0x0006; }
451 static constexpr unsigned int call() {
return 0x0060; }
452 static constexpr unsigned int dmrId() {
return 0x0068; }
459 class APRSSettingsElement:
public Element
462 enum class BaudRate {
463 Baud300 = 1, Baud1200 = 0
466 enum class PositionPrecision {
479 explicit APRSSettingsElement(uint8_t *ptr);
483 APRSSettingsElement(uint8_t *ptr,
size_t size);
487 static constexpr unsigned int size() {
return 0x40; }
493 virtual bool isValid()
const;
496 virtual QString name()
const;
498 virtual void setName(
const QString &name);
501 virtual unsigned int sourceSSID()
const;
503 virtual void setSourceSSID(
unsigned int ssid);
506 virtual bool hasFixedPosition()
const;
508 virtual QGeoCoordinate fixedPosition()
const;
510 virtual void setFixedPosition(
const QGeoCoordinate &coor);
512 virtual void clearFixedPosition();
515 virtual PositionPrecision positionPrecision()
const;
517 virtual void setPositionPrecision(PositionPrecision prec);
520 virtual bool hasVia1()
const;
522 virtual QString via1Call()
const;
524 virtual unsigned int via1SSID()
const;
526 virtual void setVia1(
const QString &call,
unsigned int ssid);
528 virtual void clearVia1();
531 virtual bool hasVia2()
const;
533 virtual QString via2Call()
const;
535 virtual unsigned int via2SSID()
const;
537 virtual void setVia2(
const QString &call,
unsigned int ssid);
539 virtual void clearVia2();
547 virtual QString comment()
const;
549 virtual void setComment(
const QString &text);
552 virtual BaudRate baudRate()
const;
554 virtual void setBaudRate(BaudRate rate);
565 struct Limit:
public Element::Limit {
566 static constexpr unsigned int nameLength() {
return 8; }
567 static constexpr unsigned int commentLength() {
return 23; }
572 struct Offset:
public Element::Offset
574 static constexpr unsigned int name() {
return 0x0000; }
575 static constexpr unsigned int sourceSSID() {
return 0x0008; }
576 static constexpr unsigned int latitude() {
return 0x0009; }
577 static constexpr unsigned int longitude() {
return 0x000c; }
578 static constexpr unsigned int via1Call() {
return 0x000f; }
579 static constexpr unsigned int via1SSID() {
return 0x0015; }
580 static constexpr unsigned int via2Call() {
return 0x0016; }
581 static constexpr unsigned int via2SSID() {
return 0x001c; }
582 static constexpr unsigned int iconTable() {
return 0x001d; }
583 static constexpr unsigned int iconIndex() {
return 0x001e; }
584 static constexpr unsigned int comment() {
return 0x001f; }
585 static constexpr Bit positionPrecision() {
return { 0x003d, 4}; }
586 static constexpr Bit useFixedPosition() {
return { 0x003d, 1}; }
587 static constexpr Bit baudRate() {
return { 0x003d, 0}; }
594 class APRSSettingsBankElement:
public Element
598 explicit APRSSettingsBankElement(uint8_t *ptr);
602 APRSSettingsBankElement(uint8_t *ptr,
size_t size);
606 static constexpr unsigned int size() {
return 0x40; }
612 APRSSettingsElement system(
unsigned int idx)
const;
621 struct Limit:
public Element::Limit {
623 static constexpr unsigned int systems() {
return 8; }
628 struct Offset:
public Element::Offset {
629 static constexpr unsigned int systems() {
return 0x0000; }
630 static constexpr unsigned int betweenSystems() {
return APRSSettingsElement::size(); }
638 class DTMFContactElement:
public Element
642 DTMFContactElement(uint8_t *ptr,
size_t size);
646 explicit DTMFContactElement(uint8_t *ptr);
649 static constexpr unsigned int size() {
return 0x0020; }
652 bool isValid()
const;
655 virtual QString name()
const;
657 virtual void setName(
const QString &name);
660 virtual QString number()
const;
662 virtual void setNumber(
const QString &number);
671 struct Limit:
public Element::Limit {
673 static constexpr unsigned int nameLength() {
return 16; }
675 static constexpr unsigned int numberLength() {
return 16; }
680 struct Offset:
public Element::Offset {
681 static constexpr unsigned int name() {
return 0x0000; }
682 static constexpr unsigned int number() {
return 0x0010; }
689 class DTMFContactBankElement:
public Element
693 DTMFContactBankElement(uint8_t *ptr,
size_t size);
697 DTMFContactBankElement(uint8_t *ptr);
700 static constexpr unsigned int size() {
return Limit::contacts()*DTMFContactElement::size(); }
705 DTMFContactElement contact(
unsigned int n)
const;
714 struct Limit:
public Element::Limit {
716 static constexpr unsigned int contacts() {
return 64; }
721 struct Offset:
public Element::Offset {
722 static constexpr unsigned int contacts() {
return 0x0000; }
723 static constexpr unsigned int betweenContacts() {
return DTMFContactElement::size(); }
730 class BootSettingsElement:
public Element
734 BootSettingsElement(uint8_t *ptr,
unsigned size);
738 explicit BootSettingsElement(uint8_t *ptr);
740 virtual ~BootSettingsElement();
746 virtual bool bootText()
const;
748 virtual void enableBootText(
bool enable);
751 virtual bool bootPasswordEnabled()
const;
753 virtual unsigned bootPassword()
const;
755 virtual void setBootPassword(
unsigned passwd);
757 virtual void clearBootPassword();
760 virtual QString line1()
const;
762 virtual void setLine1(
const QString &text);
764 virtual QString line2()
const;
766 virtual void setLine2(
const QString &text);
775 struct Limit:
public Element::Limit {
777 static constexpr unsigned int lineLength() {
return 16; }
782 struct Offset:
public Element::Offset {
783 static constexpr unsigned int bootText() {
return 0x0000; }
784 static constexpr unsigned int bootPasswdEnable() {
return 0x0001; }
785 static constexpr unsigned int bootPasswd() {
return 0x000c; }
786 static constexpr unsigned int line1() {
return 0x0028; }
787 static constexpr unsigned int line2() {
return 0x0038; }
794 class ZoneElement:
public Element
798 ZoneElement(uint8_t *ptr,
unsigned size);
802 explicit ZoneElement(uint8_t *ptr);
803 virtual ~ZoneElement();
806 static constexpr unsigned int size() {
return 0x00b0; }
811 bool isValid()
const;
814 virtual QString name()
const;
816 virtual void setName(
const QString &name);
819 virtual bool hasMember(
unsigned n)
const;
821 virtual unsigned member(
unsigned n)
const;
823 virtual void setMember(
unsigned n,
unsigned idx);
825 virtual void clearMember(
unsigned n);
837 struct Limit:
public Element::Limit {
839 static constexpr unsigned int nameLength() {
return 16; }
841 static constexpr unsigned int memberCount() {
return 80; }
846 struct Offset:
public Element::Offset {
848 static constexpr unsigned int name() {
return 0x0000; }
849 static constexpr unsigned int channels() {
return 0x0010; }
850 static constexpr unsigned int betweenChannels() {
return 0x0002; }
857 class ZoneBankElement:
public Element
861 ZoneBankElement(uint8_t *ptr,
unsigned size);
865 explicit ZoneBankElement(uint8_t *ptr);
870 static constexpr unsigned int size() {
871 return 0x0020 + Limit::zoneCount()*ZoneElement::size();
878 virtual bool isEnabled(
unsigned idx)
const ;
880 virtual void enable(
unsigned idx,
bool enabled);
883 ZoneElement zone(
unsigned int n);
894 struct Limit:
public Element::Limit {
896 static constexpr unsigned int zoneCount() {
return 68; }
901 struct Offset:
public Element::Offset {
903 static constexpr unsigned int bitmap() {
return 0x0000; }
904 static constexpr unsigned int zones() {
return 0x0020; }
905 static constexpr unsigned int betweenZones() {
return ZoneElement::size(); }
922 static constexpr unsigned int size() {
return 0x0064; }
927 virtual void setName(
const QString &name);
930 virtual void setEpoch(const ::OrbitalElement::Epoch &epoch);
932 virtual void setMeanMotion(
double mm);
934 virtual void setMeanMotionDerivative(
double dmm);
936 virtual void setInclination(
double incl);
938 virtual void setAscension(
double asc);
940 virtual void setEccentricity(
double ecc);
942 virtual void setPerigee(
double arg);
944 virtual void setMeanAnomaly(
double ma);
946 virtual void setRevolutionNumber(
unsigned int num);
955 void setAPRSDownlink(
const Frequency &f);
963 void setAPRSPath(
const QString &path);
977 void writeFixedPoint(
const Offset::Bit &offset,
double value,
bool sign,
unsigned int dec,
unsigned int frac);
985 void writeFractional(
const Offset::Bit &offset,
double value,
bool sign,
unsigned int frac);
987 void writeInteger(
const Offset::Bit &offset,
int value,
bool sign,
unsigned dec);
989 void writeDigit(
const Offset::Bit &offset, uint8_t digit);
993 struct Limit:
public Element::Limit {
995 static constexpr unsigned int nameLength() {
return 8; }
997 static constexpr unsigned int pathLength() {
return 24; }
1002 struct Offset:
public Element::Offset {
1004 static constexpr unsigned int name() {
return 0x0000; }
1005 static constexpr Bit epochYear() {
return {0x0008, 4}; }
1006 static constexpr Bit epochJulienDay() {
return {0x0009, 4}; }
1007 static constexpr Bit meanMotionDerivative() {
return {0x000f, 4}; }
1008 static constexpr Bit inclination() {
return {0x0014, 4}; }
1009 static constexpr Bit ascension() {
return {0x0018, 4}; }
1010 static constexpr Bit eccentricity() {
return {0x001c, 4}; }
1011 static constexpr Bit perigee() {
return {0x001f, 0}; }
1012 static constexpr Bit meanAnomaly() {
return {0x0023, 0}; }
1013 static constexpr Bit meanMotion() {
return {0x0027, 0}; }
1014 static constexpr Bit revolutionNumber() {
return {0x002d, 4}; }
1015 static constexpr unsigned int fmDownlink() {
return 0x0030; }
1016 static constexpr unsigned int fmUplink() {
return 0x0034; }
1017 static constexpr unsigned int ctcss() {
return 0x0038; }
1018 static constexpr unsigned int aprsDownlink() {
return 0x003c; }
1019 static constexpr unsigned int aprsUplink() {
return 0x0040; }
1020 static constexpr unsigned int beacon() {
return 0x0044; }
1021 static constexpr unsigned int aprsPath() {
return 0x004c; }
1028 class OrbitalBankElement:
public Element
1032 OrbitalBankElement(uint8_t *ptr,
size_t size);
1036 OrbitalBankElement(uint8_t *ptr);
1039 static constexpr unsigned int size() {
return 0x09cc; }
1049 struct Limit:
public Element::Limit {
1051 static constexpr unsigned int elements() {
return 25; }
1056 struct Offset:
public Element::Offset
1059 static constexpr unsigned int elements() {
return 0x0008; }
1060 static constexpr unsigned int betweenElements() {
return OrbitalElement::size(); }
1067 class ContactElement:
public Element
1070 enum class TimeSlotOverride {
1076 ContactElement(uint8_t *ptr,
unsigned size);
1080 explicit ContactElement(uint8_t *ptr);
1082 virtual ~ContactElement();
1085 static constexpr unsigned int size() {
return 0x0018; }
1091 bool isValid()
const;
1094 virtual QString name()
const;
1096 virtual void setName(
const QString name);
1099 virtual unsigned number()
const;
1101 virtual void setNumber(
unsigned id);
1109 virtual TimeSlotOverride timeSlotOverride()
const;
1111 virtual void setTimeSlotOverride(TimeSlotOverride ts);
1122 static constexpr unsigned int nameLength() {
return 16; }
1129 static constexpr unsigned int name() {
return 0x0000; }
1130 static constexpr unsigned int number() {
return 0x0010; }
1131 static constexpr unsigned int type() {
return 0x0014; }
1132 static constexpr unsigned int timeSlotOverride() {
return 0x0017; }
1139 class ContactBankElement:
public Element
1143 ContactBankElement(uint8_t *ptr,
size_t size);
1147 ContactBankElement(uint8_t *ptr);
1150 static constexpr unsigned int size() {
1151 return Limit::contactCount() * ContactElement::size();
1158 ContactElement contact(
unsigned int idx)
const;
1169 static constexpr unsigned int contactCount() {
return 1024; }
1176 static constexpr unsigned int contacts() {
return 0x0000; }
1177 static constexpr unsigned int betweenContacts() {
return ContactElement::size(); }
1184 class GroupListElement:
public Element
1188 GroupListElement(uint8_t *ptr,
size_t size);
1192 GroupListElement(uint8_t *ptr);
1195 static constexpr unsigned int size() {
return 0x0050; }
1201 virtual QString name()
const;
1203 virtual void setName(
const QString &name);
1206 virtual bool hasContactIndex(
unsigned int i)
const;
1208 virtual unsigned int contactIndex(
unsigned int i)
const;
1210 virtual void setContactIndex(
unsigned int i,
unsigned int contactIdx);
1212 virtual void clearContactIndex(
unsigned int i);
1225 static constexpr unsigned int nameLength() {
return 15; }
1227 static constexpr unsigned int contactCount() {
return 32; }
1234 static constexpr unsigned int name() {
return 0x0000; }
1235 static constexpr unsigned int contacts() {
return 0x0010; }
1236 static constexpr unsigned int betweenContacts() {
return 0x0002; }
1243 class GroupListBankElement:
public Element
1247 GroupListBankElement(uint8_t *ptr,
size_t size);
1251 GroupListBankElement(uint8_t *ptr);
1254 static constexpr unsigned int size() {
return 0x1840; }
1260 virtual bool hasGroupList(
unsigned int i)
const;
1262 virtual unsigned int groupListContactCount(
unsigned int i)
const;
1264 virtual void setGroupListContactCount(
unsigned int i,
unsigned int count);
1266 virtual GroupListElement groupList(
unsigned int i)
const;
1268 virtual void clearGroupList(
unsigned int i);
1281 static constexpr unsigned int groupListCount() {
return 76; }
1288 static constexpr unsigned int length() {
return 0x0000; }
1289 static constexpr unsigned int groupLists() {
return 0x0080; }
1290 static constexpr unsigned int betweenGroupLists() {
return GroupListElement::size(); }
1297 explicit OpenGD77BaseCodeplug(QObject *parent =
nullptr);
1300 virtual void clear();
1315 virtual bool encodeElements(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack());
1318 virtual void clearGeneralSettings() = 0;
1320 virtual bool encodeGeneralSettings(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1325 virtual void clearDTMFSettings() = 0;
1327 virtual bool encodeDTMFSettings(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1332 virtual void clearAPRSSettings() = 0;
1334 virtual bool encodeAPRSSettings(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1339 virtual void clearDTMFContacts() = 0;
1341 virtual bool encodeDTMFContacts(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1346 virtual void clearChannels() = 0;
1348 virtual bool encodeChannels(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1355 virtual void clearBootSettings() = 0;
1357 virtual bool encodeBootSettings(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1362 virtual void clearVFOSettings() = 0;
1365 virtual void clearZones() = 0;
1367 virtual bool encodeZones(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1374 virtual void clearContacts() = 0;
1376 virtual bool encodeContacts(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
1381 virtual void clearGroupLists() = 0;
1383 virtual bool encodeGroupLists(
const Flags &flags, Context &ctx,
const ErrorStack &err=
ErrorStack()) = 0;
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
Represents the abstract base class of all codeplug elements.
Definition codeplug.hh:52
This class defines the interface all device-specific code-plugs must implement.
Definition codeplug.hh:20
The config class, representing the codeplug configuration.
Definition config.hh:70
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
Definition orbitalelementsdatabase.hh:9
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Definition satellitedatabase.hh:13
Represents a zone within the generic configuration.
Definition zone.hh:15
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:11
Encodes a selective call.
Definition signaling.hh:13