libdrmconf 0.12.3
A library to program DMR radios.
 
Loading...
Searching...
No Matches
opengd77base_codeplug.hh
1#ifndef OPENGD77BASE_CODEPLUG_HH
2#define OPENGD77BASE_CODEPLUG_HH
3
4#include "channel.hh"
5#include "codeplug.hh"
6#include "gpssystem.hh"
7#include "contact.hh"
8#include "zone.hh"
9#include "satellitedatabase.hh"
10
11#include <QGeoCoordinate>
12
16{
17 Q_OBJECT
18
19public:
21 enum ImageType { EEPROM = 0, FLASH = 1 };
22
23public:
25 static uint32_t encodeAngle(double degee);
27 static double decodeAngle(uint32_t code);
28
30 static uint16_t encodeSelectiveCall(const SelectiveCall &call);
32 static SelectiveCall decodeSelectiveCall(uint16_t code);
33
34public:
37 {
38 public:
40 enum Mode {
43 };
44
46 enum class Alias {
47 None = 0, APRS = 1, Text = 2, Both = 3
48 };
49
51 enum class SquelchMode {
52 Global, Open, Normal, Closed
53 };
54
55 protected:
57 ChannelElement(uint8_t *ptr, size_t size);
58
59 public:
61 explicit ChannelElement(uint8_t *ptr);
63 virtual ~ChannelElement();
64
66 static constexpr unsigned int size() { return 0x0038; }
67
69 virtual void clear();
70
72 virtual QString name() const;
74 virtual void setName(const QString &n);
75
77 virtual Frequency rxFrequency() const;
79 virtual void setRXFrequency(const Frequency &freq);
81 virtual Frequency txFrequency() const;
83 virtual void setTXFrequency(const Frequency &freq);
84
86 virtual Mode mode() const;
88 virtual void setMode(Mode mode);
89
91 virtual bool globalPower() const;
93 virtual Channel::Power power() const;
95 virtual void setPower(Channel::Power pwr);
97 virtual void clearPower();
98
100 virtual bool hasFixedPosition() const;
102 virtual QGeoCoordinate fixedPosition() const;
104 virtual void setFixedPosition(const QGeoCoordinate &coordinate);
106 virtual void clearFixedPosition();
107
109 virtual SelectiveCall rxTone() const;
111 virtual void setRXTone(const SelectiveCall &code);
113 virtual SelectiveCall txTone() const;
115 virtual void setTXTone(const SelectiveCall &code);
116
118 virtual bool isSimplex() const;
120 virtual void enableSimplex(bool enable);
121
123 virtual bool powerSave() const;
125 virtual void enablePowerSave(bool enable);
126
128 virtual bool beep() const;
130 virtual void enableBeep(bool enable);
131
133 virtual bool hasDMRId() const;
135 virtual unsigned int dmrId() const;
137 virtual void setDMRId(unsigned int id);
139 virtual void clearDMRId();
140
142 virtual bool hasGroupList() const;
144 virtual unsigned groupListIndex() const;
146 virtual void setGroupListIndex(unsigned index);
148 virtual void clearGroupListIndex();
149
151 virtual unsigned colorCode() const;
153 virtual void setColorCode(unsigned cc);
154
156 virtual bool hasAPRSIndex() const;
158 virtual unsigned int aprsIndex() const;
160 virtual void setAPRSIndex(unsigned int index);
162 virtual void clearAPRSIndex();
163
165 virtual bool hasTXContact() const;
167 virtual unsigned int txContactIndex() const;
169 virtual void setTXContactIndex(unsigned int index);
171 virtual void clearTXContact();
172
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);
181
183 virtual DMRChannel::TimeSlot timeSlot() const;
185 virtual void setTimeSlot(DMRChannel::TimeSlot ts);
186
188 virtual FMChannel::Bandwidth bandwidth() const;
190 virtual void setBandwidth(FMChannel::Bandwidth bw);
191
193 virtual bool rxOnly() const;
195 virtual void enableRXOnly(bool enable);
196
198 virtual bool skipScan() const;
200 virtual void enableSkipScan(bool enable);
202 virtual bool skipZoneScan() const;
204 virtual void enableSkipZoneScan(bool enable);
205
207 virtual bool vox() const;
209 virtual void enableVOX(bool enable);
210
212 virtual SquelchMode squelchMode() const;
214 virtual unsigned int squelchLevel() const;
216 virtual void setSquelch(SquelchMode mode, unsigned int level);
217
219 virtual Channel *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
221 virtual bool link(Channel *c, Context &ctx, const ErrorStack &err=ErrorStack()) const;
223 virtual bool encode(const Channel *c, Context &ctx, const ErrorStack &err=ErrorStack());
224
225 public:
227 struct Limit {
229 static constexpr unsigned int nameLength() { return 16; }
230 };
231
232 protected:
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; }
269 };
270 };
271
272
278 {
279 protected:
281 ChannelBankElement(uint8_t *ptr, unsigned size);
282
283 public:
285 explicit ChannelBankElement(uint8_t *ptr);
287 virtual ~ChannelBankElement();
288
290 static constexpr unsigned int size() { return 0x1c10; }
291
293 void clear();
294
296 virtual bool isEnabled(unsigned idx) const ;
298 virtual void enable(unsigned idx, bool enabled);
300 virtual uint8_t *get(unsigned idx) const;
302 ChannelElement channel(unsigned int n);
303
304 public:
306 struct Limit {
308 static constexpr unsigned int channelCount() { return 128; }
309 };
310
311 protected:
313 struct Offset {
315 static constexpr unsigned int bitmask() { return 0x0000; }
316 static constexpr unsigned int channels() { return 0x0010; }
318 };
319 };
320
321
327 {
328 public:
330 enum class OffsetMode {
331 Off = 0,
334 };
335
347
348 protected:
350 VFOChannelElement(uint8_t *ptr, unsigned size);
351
352 public:
354 explicit VFOChannelElement(uint8_t *ptr);
355
356 void clear();
357
359 QString name() const;
361 void setName(const QString &name);
362
364 virtual double stepSize() const;
366 virtual void setStepSize(double kHz);
367
369 virtual OffsetMode offsetMode() const;
371 virtual double txOffset() const;
373 virtual void setTXOffset(double f);
375 virtual void setOffsetMode(OffsetMode mode);
376
377 protected:
379 struct Offset: public ChannelElement::Offset {
380 static constexpr Bit stepSize() { return {0x0036, 4} ; }
381 static constexpr Bit offsetMode() { return {0x0036, 2} ; }
382 static constexpr unsigned int txOffset() { return 0x0034; }
383 };
385 };
386
387
390 {
391 protected:
393 GeneralSettingsElement(uint8_t *ptr, size_t size);
394
395 public:
397 GeneralSettingsElement(uint8_t *ptr);
398
400 static constexpr unsigned int size() { return 0x0090; }
401
402 void clear();
403
405 virtual Frequency uhfMinFrequency() const;
407 virtual void setUHFMinFrequency(const Frequency &f);
409 virtual Frequency uhfMaxFrequency() const;
411 virtual void setUHFMaxFrequency(const Frequency &f);
412
414 virtual Frequency vhfMinFrequency() const;
416 virtual void setVHFMinFrequency(const Frequency &f);
418 virtual Frequency vhfMaxFrequency() const;
420 virtual void setVHFMaxFrequency(const Frequency &f);
421
423 virtual QString call() const;
425 virtual void setCall(const QString &call);
426
428 virtual unsigned int radioId() const;
430 virtual void setRadioId(unsigned int id);
431
433 virtual bool encode(const Context &ctx, const ErrorStack &err = ErrorStack());
435 virtual bool decode(const Context &ctx, const ErrorStack &err = ErrorStack());
436
437 public:
439 struct Limit: public Element::Limit {
441 static constexpr unsigned int callLength() { return 8; }
442 };
443
444 protected:
446 struct Offset: public Element::Offset {
448 static constexpr unsigned int uhfMinFrequency() { return 0x0000; }
449 static constexpr unsigned int uhfMaxFrequency() { return 0x0002; }
450 static constexpr unsigned int vhfMinFrequency() { return 0x0004; }
451 static constexpr unsigned int vhfMaxFrequency() { return 0x0006; }
452 static constexpr unsigned int call() { return 0x0060; }
453 static constexpr unsigned int dmrId() { return 0x0068; }
455 };
456 };
457
458
461 {
462 public:
464 enum class BaudRate {
465 Baud300 = 1, Baud1200 = 0
466 };
467
469 enum class PositionPrecision {
470 Max = 0,
471 Mask1_8sec = 1,
472 Mask3_6sec = 2,
473 Mask18sec = 3,
474 Mask36sec = 4,
475 Mask3min = 5,
476 Mask6min = 6,
477 Mask30min = 7
478 };
479
480 public:
482 explicit APRSSettingsElement(uint8_t *ptr);
483
484 protected:
486 APRSSettingsElement(uint8_t *ptr, size_t size);
487
488 public:
490 static constexpr unsigned int size() { return 0x40; }
491
493 void clear();
494
496 virtual bool isValid() const;
497
499 virtual QString name() const;
501 virtual void setName(const QString &name);
502
504 virtual unsigned int sourceSSID() const;
506 virtual void setSourceSSID(unsigned int ssid);
507
509 virtual bool hasFixedPosition() const;
511 virtual QGeoCoordinate fixedPosition() const;
513 virtual void setFixedPosition(const QGeoCoordinate &coor);
515 virtual void clearFixedPosition();
516
518 virtual PositionPrecision positionPrecision() const;
520 virtual void setPositionPrecision(PositionPrecision prec);
521
523 virtual bool hasVia1() const;
525 virtual QString via1Call() const;
527 virtual unsigned int via1SSID() const;
529 virtual void setVia1(const QString &call, unsigned int ssid);
531 virtual void clearVia1();
532
534 virtual bool hasVia2() const;
536 virtual QString via2Call() const;
538 virtual unsigned int via2SSID() const;
540 virtual void setVia2(const QString &call, unsigned int ssid);
542 virtual void clearVia2();
543
545 virtual APRSSystem::Icon icon() const;
547 virtual void setIcon(APRSSystem::Icon icon);
548
550 virtual QString comment() const;
552 virtual void setComment(const QString &text);
553
555 virtual BaudRate baudRate() const;
557 virtual void setBaudRate(BaudRate rate);
558
559 Frequency fmFrequency() const;
560 void setFMFrequency(Frequency f);
561
563 virtual bool encode(const APRSSystem *system, const Context &ctx, const ErrorStack &err=ErrorStack());
565 virtual APRSSystem *decode(const Context &ctx, const ErrorStack &err=ErrorStack()) const;
567 virtual bool link(APRSSystem *system, const Context &ctx, const ErrorStack &err=ErrorStack());
568
569 public:
571 struct Limit: public Element::Limit {
573 static constexpr unsigned int nameLength() { return 8; }
575 static constexpr unsigned int commentLength() { return 23; }
576 };
577
578 protected:
580 struct Offset: public Element::Offset
581 {
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; }
595 static constexpr Bit positionPrecision() { return { 0x003d, 4}; }
596 static constexpr Bit useFixedPosition() { return { 0x003d, 1}; }
597 static constexpr Bit baudRate() { return { 0x003d, 0}; }
598 static constexpr unsigned int unknownBytes() { return 0x003e; }
600 };
601 };
602
603
606 {
607 public:
609 explicit APRSSettingsBankElement(uint8_t *ptr);
610
611 protected:
613 APRSSettingsBankElement(uint8_t *ptr, size_t size);
614
615 public:
617 static constexpr unsigned int size() { return 0x40; }
618
620 void clear();
621
623 APRSSettingsElement system(unsigned int idx) const;
624
626 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
628 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
630 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
631
632 public:
634 struct Limit: public Element::Limit {
636 static constexpr unsigned int systems() { return 8; }
637 };
638
639 public:
641 struct Offset: public Element::Offset {
642 static constexpr unsigned int systems() { return 0x0000; }
643 static constexpr unsigned int betweenSystems() { return APRSSettingsElement::size(); }
644 };
646 };
647
648
652 {
653 protected:
655 DTMFContactElement(uint8_t *ptr, size_t size);
656
657 public:
659 explicit DTMFContactElement(uint8_t *ptr);
660
662 static constexpr unsigned int size() { return 0x0020; }
663
664 void clear();
665 bool isValid() const;
666
668 virtual QString name() const;
670 virtual void setName(const QString &name);
671
673 virtual QString number() const;
675 virtual void setNumber(const QString &number);
676
678 virtual bool encode(const DTMFContact *contact, const Context &ctx, const ErrorStack &err=ErrorStack());
680 virtual DTMFContact *decode(const Context &ctx, const ErrorStack &err=ErrorStack());
681
682 public:
684 struct Limit: public Element::Limit {
686 static constexpr unsigned int nameLength() { return 16; }
688 static constexpr unsigned int numberLength() { return 16; }
689 };
690
691 protected:
693 struct Offset: public Element::Offset {
694 static constexpr unsigned int name() { return 0x0000; }
695 static constexpr unsigned int number() { return 0x0010; }
696 };
698 };
699
700
703 {
704 protected:
706 DTMFContactBankElement(uint8_t *ptr, size_t size);
707
708 public:
710 DTMFContactBankElement(uint8_t *ptr);
711
713 static constexpr unsigned int size() { return Limit::contacts()*DTMFContactElement::size(); }
714
715 void clear();
716
718 DTMFContactElement contact(unsigned int n) const;
719
721 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
723 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
724
725 public:
727 struct Limit: public Element::Limit {
729 static constexpr unsigned int contacts() { return 64; }
730 };
731
732 public:
734 struct Offset: public Element::Offset {
735 static constexpr unsigned int contacts() { return 0x0000; }
736 static constexpr unsigned int betweenContacts() { return DTMFContactElement::size(); }
737 };
739 };
740
741
744 {
745 protected:
747 BootSettingsElement(uint8_t *ptr, unsigned size);
748
749 public:
751 explicit BootSettingsElement(uint8_t *ptr);
753 virtual ~BootSettingsElement();
754
756 void clear();
757
759 virtual bool bootText() const;
761 virtual void enableBootText(bool enable);
762
764 virtual bool bootPasswordEnabled() const;
766 virtual unsigned bootPassword() const;
768 virtual void setBootPassword(unsigned passwd);
770 virtual void clearBootPassword();
771
773 virtual QString line1() const;
775 virtual void setLine1(const QString &text);
777 virtual QString line2() const;
779 virtual void setLine2(const QString &text);
780
782 virtual bool encode(const Context &ctx, const ErrorStack &err = ErrorStack());
784 virtual bool decode(Context &ctx, const ErrorStack &err = ErrorStack());
785
786 public:
788 struct Limit: public Element::Limit {
790 static constexpr unsigned int lineLength() { return 16; }
791 };
792
793 public:
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; }
801 };
803 };
804
805
807 class ZoneElement: public Element
808 {
809 protected:
811 ZoneElement(uint8_t *ptr, unsigned size);
812
813 public:
815 explicit ZoneElement(uint8_t *ptr);
816 virtual ~ZoneElement();
817
819 static constexpr unsigned int size() { return 0x00b0; }
820
822 void clear();
824 bool isValid() const;
825
827 virtual QString name() const;
829 virtual void setName(const QString &name);
830
832 virtual bool hasMember(unsigned n) const;
834 virtual unsigned member(unsigned n) const;
836 virtual void setMember(unsigned n, unsigned idx);
838 virtual void clearMember(unsigned n);
839
841 virtual bool encode(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
843 virtual Zone *decode(const Context &ctx, const ErrorStack &err=ErrorStack()) const;
846 virtual bool link(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack()) const;
847
848 public:
850 struct Limit: public Element::Limit {
852 static constexpr unsigned int nameLength() { return 16; }
854 static constexpr unsigned int memberCount() { return 80; }
855 };
856
857 protected:
859 struct Offset: public Element::Offset {
861 static constexpr unsigned int name() { return 0x0000; }
862 static constexpr unsigned int channels() { return 0x0010; }
863 static constexpr unsigned int betweenChannels() { return 0x0002; }
865 };
866 };
867
868
871 {
872 protected:
874 ZoneBankElement(uint8_t *ptr, unsigned size);
875
876 public:
878 explicit ZoneBankElement(uint8_t *ptr);
881
883 static constexpr unsigned int size() {
884 return 0x0020 + Limit::zoneCount()*ZoneElement::size();
885 }
886
888 void clear();
889
891 virtual bool isEnabled(unsigned idx) const ;
893 virtual void enable(unsigned idx, bool enabled);
894
896 ZoneElement zone(unsigned int n);
897
899 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
901 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
903 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
904
905 public:
907 struct Limit: public Element::Limit {
909 static constexpr unsigned int zoneCount() { return 68; }
910 };
911
912 protected:
914 struct Offset: public Element::Offset {
916 static constexpr unsigned int bitmap() { return 0x0000; }
917 static constexpr unsigned int zones() { return 0x0020; }
918 static constexpr unsigned int betweenZones() { return ZoneElement::size(); }
920 };
921 };
922
923
926 {
927 public:
930 enum class TimeSlotOverride {
931 None = 0x01,
932 TS1 = 0x00,
933 TS2 = 0x02
934 };
935
936 protected:
938 ContactElement(uint8_t *ptr, unsigned size);
939
940 public:
942 explicit ContactElement(uint8_t *ptr);
944 virtual ~ContactElement();
945
947 static constexpr unsigned int size() { return 0x0018; }
948
950 void clear();
951
953 bool isValid() const;
954
956 virtual QString name() const;
958 virtual void setName(const QString name);
959
961 virtual unsigned number() const;
963 virtual void setNumber(unsigned id);
964
966 virtual DMRContact::Type type() const;
968 virtual void setType(DMRContact::Type type);
969
971 virtual TimeSlotOverride timeSlotOverride() const;
973 virtual void setTimeSlotOverride(TimeSlotOverride ts);
974
976 virtual DMRContact *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
978 virtual bool encode(const DMRContact *obj, Context &ctx, const ErrorStack &err=ErrorStack());
979
980 public:
982 struct Limit {
984 static constexpr unsigned int nameLength() { return 16; }
985 };
986
987 protected:
989 struct Offset {
991 static constexpr unsigned int name() { return 0x0000; }
992 static constexpr unsigned int number() { return 0x0010; }
993 static constexpr unsigned int type() { return 0x0014; }
994 static constexpr unsigned int timeSlotOverride() { return 0x0017; }
996 };
997 };
998
999
1002 {
1003 protected:
1005 ContactBankElement(uint8_t *ptr, size_t size);
1006
1007 public:
1009 ContactBankElement(uint8_t *ptr);
1010
1012 static constexpr unsigned int size() {
1014 }
1015
1017 void clear();
1018
1020 ContactElement contact(unsigned int idx) const;
1021
1023 virtual bool encode(Context &ctx, const ErrorStack &err = ErrorStack());
1025 virtual bool decode(Context &ctx, const ErrorStack &err = ErrorStack());
1026
1027 public:
1029 struct Limit {
1031 static constexpr unsigned int contactCount() { return 1024; }
1032 };
1033
1034 protected:
1036 struct Offset {
1038 static constexpr unsigned int contacts() { return 0x0000; }
1039 static constexpr unsigned int betweenContacts() { return ContactElement::size(); }
1040 // @endcond
1041 };
1042 };
1043
1044
1047 {
1048 protected:
1050 GroupListElement(uint8_t *ptr, size_t size);
1051
1052 public:
1054 GroupListElement(uint8_t *ptr);
1055
1057 static constexpr unsigned int size() { return 0x0050; }
1058
1060 void clear();
1061
1063 virtual QString name() const;
1065 virtual void setName(const QString &name);
1066
1068 virtual bool hasContactIndex(unsigned int i) const;
1070 virtual unsigned int contactIndex(unsigned int i) const;
1072 virtual void setContactIndex(unsigned int i, unsigned int contactIdx);
1074 virtual void clearContactIndex(unsigned int i);
1075
1077 virtual bool encode(RXGroupList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
1079 virtual RXGroupList *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
1081 virtual bool link(RXGroupList *lst, Context &ctx, const ErrorStack &err=ErrorStack()) const;
1082
1083 public:
1085 struct Limit {
1087 static constexpr unsigned int nameLength() { return 15; }
1089 static constexpr unsigned int contactCount() { return 32; }
1090 };
1091
1092 protected:
1094 struct Offset {
1096 static constexpr unsigned int name() { return 0x0000; }
1097 static constexpr unsigned int contacts() { return 0x0010; }
1098 static constexpr unsigned int betweenContacts() { return 0x0002; }
1099 // @endcond
1100 };
1101 };
1102
1103
1106 {
1107 protected:
1109 GroupListBankElement(uint8_t *ptr, size_t size);
1110
1111 public:
1113 GroupListBankElement(uint8_t *ptr);
1114
1116 static constexpr unsigned int size() { return 0x1840; }
1117
1119 void clear();
1120
1122 virtual bool hasGroupList(unsigned int i) const;
1124 virtual unsigned int groupListContactCount(unsigned int i) const;
1126 virtual void setGroupListContactCount(unsigned int i, unsigned int count);
1128 virtual GroupListElement groupList(unsigned int i) const;
1130 virtual void clearGroupList(unsigned int i);
1131
1133 virtual bool encode(Context &ctx, const ErrorStack &err = ErrorStack());
1135 virtual bool decode(Context &ctx, const ErrorStack &err = ErrorStack());
1137 virtual bool link(Context &ctx, const ErrorStack &err = ErrorStack());
1138
1139 public:
1141 struct Limit {
1143 static constexpr unsigned int groupListCount() { return 76; }
1144 };
1145
1146 protected:
1148 struct Offset {
1150 static constexpr unsigned int length() { return 0x0000; }
1151 static constexpr unsigned int groupLists() { return 0x0080; }
1152 static constexpr unsigned int betweenGroupLists() { return GroupListElement::size(); }
1153 // @endcond
1154 };
1155 };
1156
1157
1158protected:
1160 explicit OpenGD77BaseCodeplug(QObject *parent = nullptr);
1161
1162public:
1164 virtual void clear();
1165
1166 bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const;
1167
1168 bool decode(Config *config, const ErrorStack &err=ErrorStack());
1169 bool postprocess(Config *config, const ErrorStack &err=ErrorStack()) const;
1170
1171 Config *preprocess(Config *config, const ErrorStack &err=ErrorStack()) const;
1172 bool encode(Config *config, const Flags &flags = Flags(), const ErrorStack &err=ErrorStack());
1173
1174public:
1177 virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
1179 virtual bool encodeElements(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack());
1180
1182 virtual void clearGeneralSettings() = 0;
1184 virtual bool encodeGeneralSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1186 virtual bool decodeGeneralSettings(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1187
1189 virtual void clearDTMFSettings() = 0;
1191 virtual bool encodeDTMFSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1193 virtual bool decodeDTMFSettings(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1194
1196 virtual void clearAPRSSettings() = 0;
1198 virtual bool encodeAPRSSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1200 virtual bool decodeAPRSSettings(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1202 virtual bool linkAPRSSettings(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1203
1205 virtual void clearDTMFContacts() = 0;
1207 virtual bool encodeDTMFContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1209 virtual bool createDTMFContacts(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1210
1212 virtual void clearChannels() = 0;
1214 virtual bool encodeChannels(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1216 virtual bool createChannels(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1218 virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1219
1221 virtual void clearBootSettings() = 0;
1223 virtual bool encodeBootSettings(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1225 virtual bool decodeBootSettings(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1226
1228 virtual void clearVFOSettings() = 0;
1229
1231 virtual void clearZones() = 0;
1233 virtual bool encodeZones(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1235 virtual bool createZones(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1237 virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1238
1240 virtual void clearContacts() = 0;
1242 virtual bool encodeContacts(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1244 virtual bool createContacts(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1245
1247 virtual void clearGroupLists() = 0;
1249 virtual bool encodeGroupLists(const Flags &flags, Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1251 virtual bool createGroupLists(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1253 virtual bool linkGroupLists(Context &ctx, const ErrorStack &err=ErrorStack()) = 0;
1254};
1255
1256#endif // OPENGD77BASE_CODEPLUG_HH
Represents an APRS system within the generic config.
Definition gpssystem.hh:134
Icon
All implemented APRS icons.
Definition gpssystem.hh:166
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
Represents a digital contact, that is a DMR number.
Definition contact.hh:141
Type
Possible call types for a contact.
Definition contact.hh:155
Represents an analog contact, that is a DTMF number.
Definition contact.hh:89
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 bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all FM APRS systems.
Definition opengd77base_codeplug.cc:1295
void clear()
Clears the bank.
Definition opengd77base_codeplug.cc:1247
APRSSettingsElement system(unsigned int idx) const
Retunrs the n-th APRS system.
Definition opengd77base_codeplug.cc:1254
static constexpr unsigned int size()
The size of the channel bank.
Definition opengd77base_codeplug.hh:617
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all FM APRS systems.
Definition opengd77base_codeplug.cc:1260
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all FM APRS systems.
Definition opengd77base_codeplug.cc:1278
APRSSettingsBankElement(uint8_t *ptr)
Constructor from pointer.
Definition opengd77base_codeplug.cc:1239
APRS system for OpenGD77 devices.
Definition opengd77base_codeplug.hh:461
virtual bool link(APRSSystem *system, const Context &ctx, const ErrorStack &err=ErrorStack())
Links the ARPS settings.
Definition opengd77base_codeplug.cc:1200
virtual bool isValid() const
Returns true, if the system is valid.
Definition opengd77base_codeplug.cc:970
BaudRate
Possible APRS baud rates.
Definition opengd77base_codeplug.hh:464
virtual QGeoCoordinate fixedPosition() const
Returns the fixed position.
Definition opengd77base_codeplug.cc:1003
virtual void clearVia2()
Clears the second via node.
Definition opengd77base_codeplug.cc:1081
virtual void setName(const QString &name)
Sets the name of the system.
Definition opengd77base_codeplug.cc:981
virtual APRSSystem::Icon icon() const
Retunrs the icon.
Definition opengd77base_codeplug.cc:1087
virtual void setPositionPrecision(PositionPrecision prec)
Sets the position reporting precision in degrees.
Definition opengd77base_codeplug.cc:1027
virtual bool encode(const APRSSystem *system, const Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the APRS settings.
Definition opengd77base_codeplug.cc:1126
APRSSettingsElement(uint8_t *ptr)
Constructor from pointer.
Definition opengd77base_codeplug.cc:949
virtual QString comment() const
Retunrs the comment text.
Definition opengd77base_codeplug.cc:1097
virtual bool hasVia1() const
Returns true, if the first via node is set.
Definition opengd77base_codeplug.cc:1033
PositionPrecision
Possible position precisions.
Definition opengd77base_codeplug.hh:469
virtual void setVia2(const QString &call, unsigned int ssid)
Sets the second via node.
Definition opengd77base_codeplug.cc:1075
virtual void setComment(const QString &text)
Sets the comment text.
Definition opengd77base_codeplug.cc:1101
virtual BaudRate baudRate() const
Retunrs the baud-rate.
Definition opengd77base_codeplug.cc:1106
virtual unsigned int sourceSSID() const
Returns the source SSID.
Definition opengd77base_codeplug.cc:987
virtual PositionPrecision positionPrecision() const
Retunrs the posiiton reporting precision.
Definition opengd77base_codeplug.cc:1022
virtual APRSSystem * decode(const Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes some APRS settings.
Definition opengd77base_codeplug.cc:1170
virtual bool hasVia2() const
Returns true, if the second via node is set.
Definition opengd77base_codeplug.cc:1060
virtual void setIcon(APRSSystem::Icon icon)
Sets the icon.
Definition opengd77base_codeplug.cc:1091
virtual unsigned int via1SSID() const
Returns the first via node ssid.
Definition opengd77base_codeplug.cc:1043
void clear()
Clears the bank.
Definition opengd77base_codeplug.cc:957
virtual void setSourceSSID(unsigned int ssid)
Sets the source SSID.
Definition opengd77base_codeplug.cc:992
static constexpr unsigned int size()
The size of the channel bank.
Definition opengd77base_codeplug.hh:490
virtual void clearFixedPosition()
Resets the fixed position.
Definition opengd77base_codeplug.cc:1017
virtual void setBaudRate(BaudRate rate)
Sets the baud rate.
Definition opengd77base_codeplug.cc:1110
virtual unsigned int via2SSID() const
Returns the second via node ssid.
Definition opengd77base_codeplug.cc:1070
virtual void setFixedPosition(const QGeoCoordinate &coor)
Sets the fixed position.
Definition opengd77base_codeplug.cc:1010
virtual bool hasFixedPosition() const
Returns true, if a fixed position is send.
Definition opengd77base_codeplug.cc:998
virtual QString via1Call() const
Returns the first via node call.
Definition opengd77base_codeplug.cc:1038
virtual void clearVia1()
Clears the first via node.
Definition opengd77base_codeplug.cc:1054
virtual QString name() const
Returns the name of the system.
Definition opengd77base_codeplug.cc:976
virtual QString via2Call() const
Returns the second via node call.
Definition opengd77base_codeplug.cc:1065
virtual void setVia1(const QString &call, unsigned int ssid)
Sets the first via node.
Definition opengd77base_codeplug.cc:1048
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
static constexpr unsigned int size()
The size of the element.
Definition opengd77base_codeplug.hh:1012
ContactBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition opengd77base_codeplug.cc:1928
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all DMR contacts.
Definition opengd77base_codeplug.cc:1973
void clear()
Resets the contact.
Definition opengd77base_codeplug.cc:1942
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all DMR contacts.
Definition opengd77base_codeplug.cc:1955
ContactElement contact(unsigned int idx) const
Returns the i-th contact element.
Definition opengd77base_codeplug.cc:1949
Implements digital contacts in OpenGD77 codeplugs.
Definition opengd77base_codeplug.hh:926
static constexpr unsigned int size()
The size of the contact element.
Definition opengd77base_codeplug.hh:947
virtual void setName(const QString name)
Sets the name of the contact.
Definition opengd77base_codeplug.cc:1822
void clear()
Resets the contact.
Definition opengd77base_codeplug.cc:1802
virtual void setNumber(unsigned id)
Sets the DMR number of the contact.
Definition opengd77base_codeplug.cc:1833
virtual DMRContact::Type type() const
Returns the call type.
Definition opengd77base_codeplug.cc:1839
virtual void setTimeSlotOverride(TimeSlotOverride ts)
Sets the time slot override.
Definition opengd77base_codeplug.cc:1864
virtual bool encode(const DMRContact *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Resets this codeplug contact from the given DigitalContact.
Definition opengd77base_codeplug.cc:1899
virtual unsigned number() const
Returns the DMR number of the contact.
Definition opengd77base_codeplug.cc:1828
virtual ~ContactElement()
Destructor.
Definition opengd77base_codeplug.cc:1796
bool isValid() const
Returns true if the contact is valid.
Definition opengd77base_codeplug.cc:1811
virtual void setType(DMRContact::Type type)
Sets the call type.
Definition opengd77base_codeplug.cc:1850
ContactElement(uint8_t *ptr, unsigned size)
Hidden constructor.
Definition opengd77base_codeplug.cc:1784
virtual TimeSlotOverride timeSlotOverride() const
Returns the time slot override of the contact.
Definition opengd77base_codeplug.cc:1860
TimeSlotOverride
Possible values for the time-slot override option.
Definition opengd77base_codeplug.hh:930
@ TS2
Force time-slot to TS2.
Definition opengd77base_codeplug.hh:933
@ None
Do not override time-slot of channel.
Definition opengd77base_codeplug.hh:931
@ TS1
Force time-slot to TS1.
Definition opengd77base_codeplug.hh:932
virtual QString name() const
Returns the name of the contact.
Definition opengd77base_codeplug.cc:1817
virtual DMRContact * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a DigitalContact instance from this codeplug contact.
Definition opengd77base_codeplug.cc:1870
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all DTMF contacts.
Definition opengd77base_codeplug.cc:1447
DTMFContactBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition opengd77base_codeplug.cc:1403
void clear()
Abstract method to reset the element within the codeplug.
Definition opengd77base_codeplug.cc:1417
DTMFContactElement contact(unsigned int n) const
Returns the n-th DTMF contact.
Definition opengd77base_codeplug.cc:1424
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all DTMF contacts.
Definition opengd77base_codeplug.cc:1430
static constexpr unsigned int size()
Returns the size of the element.
Definition opengd77base_codeplug.hh:713
DTMF contact element.
Definition opengd77base_codeplug.hh:652
bool isValid() const
Returns true if the pointer is not null.
Definition opengd77base_codeplug.cc:1331
static constexpr unsigned int size()
Returns the size of the element.
Definition opengd77base_codeplug.hh:662
virtual QString number() const
Returns the DTMF number.
Definition opengd77base_codeplug.cc:1355
void clear()
Abstract method to reset the element within the codeplug.
Definition opengd77base_codeplug.cc:1337
DTMFContactElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition opengd77base_codeplug.cc:1317
virtual void setNumber(const QString &number)
Sets the DTMF number.
Definition opengd77base_codeplug.cc:1365
virtual void setName(const QString &name)
Sets the name.
Definition opengd77base_codeplug.cc:1349
virtual bool encode(const DTMFContact *contact, const Context &ctx, const ErrorStack &err=ErrorStack())
Encodes a number.
Definition opengd77base_codeplug.cc:1375
virtual QString name() const
Returns the name.
Definition opengd77base_codeplug.cc:1344
virtual DTMFContact * decode(const Context &ctx, const ErrorStack &err=ErrorStack())
Decodes a number.
Definition opengd77base_codeplug.cc:1387
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 bank.
Definition opengd77base_codeplug.hh:634
static constexpr unsigned int systems()
The total number of APRS systems.
Definition opengd77base_codeplug.hh:636
Some limits.
Definition opengd77base_codeplug.hh:571
static constexpr unsigned int commentLength()
The maximum comment length in chars.
Definition opengd77base_codeplug.hh:575
static constexpr unsigned int nameLength()
The maximum name length in chars.
Definition opengd77base_codeplug.hh:573
Some internal offsets within the element.
Definition opengd77base_codeplug.hh:581
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 for the element.
Definition opengd77base_codeplug.hh:1029
static constexpr unsigned int contactCount()
Maximum number of contacts.
Definition opengd77base_codeplug.hh:1031
Some internal offsets within the element.
Definition opengd77base_codeplug.hh:1036
Some limits for the contact.
Definition opengd77base_codeplug.hh:982
static constexpr unsigned int nameLength()
Maximum name length.
Definition opengd77base_codeplug.hh:984
Some internal offsets within the element.
Definition opengd77base_codeplug.hh:989
Some limits for the bank.
Definition opengd77base_codeplug.hh:727
static constexpr unsigned int contacts()
The total number of contacts.
Definition opengd77base_codeplug.hh:729
Some limits.
Definition opengd77base_codeplug.hh:684
static constexpr unsigned int numberLength()
The maximum length of the number.
Definition opengd77base_codeplug.hh:688
static constexpr unsigned int nameLength()
The maximum name length.
Definition opengd77base_codeplug.hh:686
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