libdrmconf 0.14.1
A library to program DMR radios.
Loading...
Searching...
No Matches
dm32uv_codeplug.hh
1#ifndef DM32UV_CODEPLUG_HH
2#define DM32UV_CODEPLUG_HH
3
4#include <QObject>
5#include <QString>
6
7#include "channel.hh"
8#include "codeplug.hh"
9#include "contact.hh"
10#include "frequency.hh"
11#include "ranges.hh"
12#include "roamingchannel.hh"
13#include "smsextension.hh"
14#include "gnsssettings.hh"
15#include "dmrsettings.hh"
16
17// forward declaration
18class Zone;
19class SMSTemplate;
20
21
22
26{
27 Q_OBJECT
28
29public:
31 class ChannelElement: public Element
32 {
33 public:
35 enum class ChannelType {
36 FM = 0, DMR = 1, FMFixed = 2, DMRFixed = 3
37 };
38
40 enum class Power {
41 Low = 0, Medium = 1, High = 2
42 };
43
45 enum class Admit {
46 Always = 0, ChannelFree = 1, ToneOrCCMatch = 2, ToneMismatch = 3
47 };
48
49 protected:
51 ChannelElement(uint8_t *ptr, size_t size);
52
53 public:
55 ChannelElement(uint8_t *ptr);
56
58 static constexpr unsigned int size() { return 0x0030; }
59
61 virtual QString name() const;
63 virtual void setName(const QString &name);
64
66 virtual Frequency rxFrequency() const;
68 virtual void setRXFrequency(const Frequency &freq);
69
71 virtual bool validTXFrequency() const;
73 virtual Frequency txFrequency() const;
75 virtual void setTXFrequency(const Frequency &freq);
77 virtual void clearTXFrequency();
78
80 virtual ChannelType channelType() const;
82 virtual void setChannelType(ChannelType type);
83
85 virtual Channel::Power power() const;
87 virtual void setPower(Channel::Power power);
88
90 virtual bool loneWorkerEnabled() const;
92 virtual void enableLoneWorker(bool enable);
93
95 virtual FMChannel::Bandwidth bandwidth() const;
97 virtual void setBandwidth(FMChannel::Bandwidth bw);
98
100 virtual bool validScanListIndex() const;
102 virtual unsigned int scanListIndex() const;
104 virtual void setScanListIndex(unsigned int idx);
106 virtual void clearScanListIndex();
107
109 virtual bool talkaroundEnabled() const;
111 virtual void enableTalkaround(bool enable);
112
114 virtual Admit admitCriterion() const;
116 virtual void setAdmitCriterion(Admit admit);
117
119 virtual bool rxDMRAPRSEnabled() const;
121 virtual void enableRXDMRAPRS(bool enable);
122
124 virtual bool emergencyNotificationEnabled() const;
126 virtual void enableEmergencyNotification(bool enable);
128 virtual bool emergencyACKEnabled() const;
130 virtual void enableEmergencyACK(bool enable);
132 virtual bool validEmergencySystemIndex() const;
134 virtual unsigned int emergencySystemIndex() const;
136 virtual void setEmergencySystemIndex(unsigned int idx);
138 virtual void clearEmergencySystemIndex();
139
141 virtual Level squelchLevel() const;
143 virtual void setSquelchLevel(Level level);
144
146 virtual bool rxOnlyEnabled() const;
148 virtual void enableRXOnly(bool enable);
149
151 virtual bool dmrAPRSEnabled() const;
153 virtual void enableDMRAPRS(bool enable);
154
156 virtual bool privateCallACKEnabled() const;
158 virtual void enablePrivateCallACK(bool enable);
160 virtual bool dataACKEnabled() const;
162 virtual void enableDataACK(bool enable);
164 virtual bool dcdmEnabled() const;
166 virtual void enableDCDM(bool enable);
167
169 virtual DMRChannel::TimeSlot timeslot() const;
171 virtual void setTimeslot(DMRChannel::TimeSlot ts);
173 virtual unsigned int colorCode() const;
175 virtual void setColorCode(unsigned int cc);
176
178 virtual bool encryptionEnabled() const;
179 /* Enables encryption. */
180 virtual void enableEncryption(bool enable);
181
183 virtual bool validGroupListIndex() const;
185 virtual unsigned int groupListIndex() const;
187 virtual void setGroupListIndex(unsigned int idx);
189 virtual void clearGroupListIndex();
190
192 virtual unsigned int dmrAPRSChannelIndex() const;
194 virtual void setDMRAPRSChannelIndex(unsigned int idx);
195
197 virtual SelectiveCall rxTone() const;
199 virtual void setRXTone(const SelectiveCall &tone);
201 virtual SelectiveCall txTone() const;
203 virtual void setTXTone(const SelectiveCall &tone);
204
206 virtual bool voxEnabled() const;
208 virtual void enableVOX(bool enable);
209
211 virtual unsigned int dmrIdIndex() const;
213 virtual void setDMRIdIndex(unsigned int id);
214
216 virtual Channel *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
218 virtual bool link(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack()) const;
220 virtual bool encode(const Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack());
221
222 public:
224 struct Limit: Element::Limit {
226 static constexpr unsigned int nameLength() { return 16; }
228 static constexpr Range<unsigned int> squelchLevel() { return {0, 15}; }
229 };
230
231 protected:
233 static SelectiveCall decodeSelectiveCall(uint16_t code);
235 static uint16_t encodeSelectiveCall(const SelectiveCall &tone);
236
237 protected:
239 struct Offset: Element::Offset {
241 static constexpr unsigned int name() { return 0x0000; }
242 static constexpr unsigned int rxFrequency() { return 0x0010; }
243 static constexpr unsigned int txFrequency() { return 0x0014; }
244 static constexpr Bit channelType() { return {0x0018, 4}; }
245 static constexpr Bit power() { return {0x0018, 1}; }
246 static constexpr Bit loneWorker() { return {0x0018, 0}; }
247 static constexpr Bit bandwidth() { return {0x0019, 7}; }
248 static constexpr Bit scanListIndex() { return {0x0019, 2}; }
249 static constexpr Bit preventTalkaround() { return {0x001a, 7}; }
250 static constexpr Bit admitCriterion() { return {0x001a, 4}; }
251 static constexpr Bit rxDMRAPRS() { return {0x001a, 2}; }
252 static constexpr Bit emergencyNotification() { return {0x001b, 7}; }
253 static constexpr Bit emergencyACK() { return {0x001b, 6}; }
254 static constexpr Bit emergencySystemIndex() { return {0x001b, 0}; }
255 static constexpr Bit squelchLevel() { return {0x001c, 4}; }
256 static constexpr Bit rxOnly() { return {0x001c, 3}; }
257 static constexpr Bit dmrAPRS() { return {0x001c, 2}; }
258 static constexpr Bit privateCallACK() { return {0x001d, 7}; }
259 static constexpr Bit dataACK() { return {0x001d, 6}; }
260 static constexpr Bit dcdm() { return {0x001d, 5}; }
261 static constexpr Bit timeslot() { return {0x001d, 4}; }
262 static constexpr Bit colorcode() { return {0x001d, 0}; }
263 static constexpr Bit encryptionEnable() { return {0x001f, 6}; }
264 static constexpr Bit groupListIndex() { return {0x001f, 0}; }
265 static constexpr Bit dmrAPRSChannelIndex() { return {0x0020, 0}; }
266 static constexpr unsigned int rxTone() { return 0x0021; }
267 static constexpr unsigned int txTone() { return 0x0023; }
268 static constexpr Bit vox() { return {0x0025, 4}; }
269 static constexpr Bit showPTTId() { return {0x0026, 7}; }
270 static constexpr Bit optSigEnable() { return {0x0026, 4}; }
271 static constexpr Bit optSigType() { return {0x0026, 0}; }
272 static constexpr Bit pttIdEnable() { return {0x0029, 2}; }
273 static constexpr unsigned int dmrIdIndex() { return 0x002b; }
275 };
276 };
277
278
281 {
282 public:
284 explicit ChannelBankElement(uint8_t *ptr);
285
287 static constexpr unsigned int size() { return 0x0010; }
288
290 virtual unsigned int channelCount() const;
292 virtual void setChannelCount(unsigned int n);
293
294 public:
296 static unsigned int channelBank(unsigned int index);
298 static unsigned int indexInBank(unsigned int index);
300 static unsigned int bankCount(unsigned int channelCount);
301
302 public:
304 struct Limit: Element::Limit {
306 static constexpr unsigned int channels() { return 4000; }
308 static constexpr unsigned int channelsInBlock0() { return 84; }
310 static constexpr unsigned int channelsPerBlock() { return 85; }
311 };
312
314 struct Offset: Element::Offset {
316 static constexpr unsigned int channelCount() { return 0x0000; }
317 static constexpr unsigned int channelBlock0() { return 0x0010; }
318 static constexpr unsigned int betweenChannelBlocks() {
319 return DM32UVCodeplug::Limit::blockSize();
320 }
322 };
323 };
324
325
331 {
332 public:
334 explicit ChannelExtensionElement(uint8_t *ptr);
335
337 static constexpr unsigned int size() { return 0x0002; }
338
340 void clear() override;
341
343 virtual bool hasContactIndex() const;
345 virtual unsigned int contactIndex() const;
347 virtual void setContactIndex(unsigned int index);
349 virtual void clearContactIndex();
350
352 virtual bool encode(const Channel *ch, Context &ctx, const ErrorStack &err);
354 virtual bool decode(Channel *ch, Context &ctx, const ErrorStack &err) const;
356 virtual bool link(Channel *ch, Context &ctx, const ErrorStack &err) const;
357
358 protected:
360 struct Offset: Element::Offset {
362 static constexpr Bit indexMSN() { return { 0x0000, 4}; }
363 static constexpr unsigned int indexLSB() { return 0x0001; }
365 };
366 };
367
368
371 {
372 public:
374 struct Limit : Element::Limit {
376 static constexpr unsigned int count() { return 2047; }
377 };
378
380 struct Offset: Element::Offset {
382 static constexpr unsigned int betweenBanks(){ return DM32UVCodeplug::Limit::blockSize(); }
383 };
384 };
385
386
389 {
390 public:
392 enum class Type {
393 Private = 3, Group = 4, All = 5
394 };
395
396 protected:
398 ContactElement(uint8_t *ptr, size_t size);
399
400 public:
402 ContactElement(uint8_t *ptr);
403
405 static constexpr unsigned int size() { return 0x0018; }
406
408 virtual QString name() const;
410 virtual void setName(const QString &name);
411
413 virtual DMRContact::Type callType() const;
415 virtual void setCallType(DMRContact::Type type);
416
418 virtual unsigned int dmrId() const;
420 virtual void setDMRId(unsigned int id);
421
423 virtual DMRContact *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
425 virtual bool encode(const DMRContact *contact, const ErrorStack &err=ErrorStack());
426
427 public:
429 struct Limit: Element::Limit {
431 static constexpr unsigned int nameLength() { return 16; }
432 };
433
434 protected:
436 struct Offset: Element::Offset {
438 static constexpr unsigned int name() { return 0x0002; }
439 static constexpr unsigned int dmrId() { return 0x0013; }
440 static constexpr unsigned int callType() { return 0x0016; }
441 // @endcond
442 };
443 };
444
445
448 {
449 public:
451 struct Limit: Element::Limit {
453 static constexpr unsigned int contacts() { return 800; }
454 static constexpr unsigned int contactsPerBlock() { return 170; }
455 };
456
458 struct Offset: Element::Offset {
460 static constexpr unsigned int betweenBlocks() { return 0x1000; };
462 };
463 };
464
465
468 {
469 protected:
471 ContactIndexElement(uint8_t *ptr, size_t size);
472
473 public:
476 {
477 public:
479 ContactBitmapElement(uint8_t *ptr);
481 static constexpr unsigned int size() { return 0x0064; }
482 };
483
485 class EntryElement: public Element
486 {
487 public:
488 typedef ContactElement::Type Type;
489
490 protected:
492 EntryElement(uint8_t *ptr, size_t size);
493
494 public:
496 EntryElement(uint8_t *ptr);
497
498 void clear() override;
499
501 static constexpr unsigned int size() { return 0x0002; }
502
504 bool isValid() const override;
505
507 virtual DMRContact::Type callType() const;
509 virtual void setCallType(DMRContact::Type type);
510
512 virtual unsigned int index() const;
514 virtual void setIndex(unsigned int idx);
515 };
516
517 public:
519 ContactIndexElement(uint8_t *ptr);
520
522 static constexpr unsigned int size() { return 0x1000; }
523
525 virtual unsigned int contactCount() const;
527 virtual void setContactCount(unsigned int n);
529 virtual unsigned int groupCallCount() const;
531 virtual void setGroupCallCount(unsigned int n);
533 virtual unsigned int privateCallCount() const;
535 virtual void setPrivateCallCount(unsigned int n);
536
538 virtual ContactBitmapElement bitmap() const;
539
541 virtual EntryElement indexEntry(unsigned n);
543 virtual EntryElement sortedIndexEntry(unsigned n);
544
546 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
547
548 protected:
550 struct Offset: Element::Offset {
552 static unsigned int contactCount() { return 0x0000; }
553 static unsigned int groupCount() { return 0x0002; }
554 static unsigned int privateCount() { return 0x0004; }
555 static unsigned int bitmap() { return 0x0010; }
556 static unsigned int index() { return 0x0100; }
557 static unsigned int sorted() { return 0x0740; }
559 };
560 };
561
562
565 {
566 protected:
568 GroupListElement(uint8_t *ptr, size_t size);
569
570 public:
572 GroupListElement(uint8_t *ptr);
573
575 static constexpr unsigned int size() { return 0x006d; }
576
578 virtual QString name() const;
580 virtual void setName(const QString &name);
581
583 virtual bool validId(unsigned int n);
585 virtual unsigned int id(unsigned int n);
587 virtual void setId(unsigned int n, unsigned int id);
589 virtual void clearId(unsigned int n);
590
592 virtual RXGroupList *decode(Context &ctx, const ErrorStack &err=ErrorStack());
594 virtual bool link(RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack());
596 virtual bool encode(const RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack());
597
598 public:
600 struct Limit: Element::Limit {
602 static constexpr unsigned int nameLength() { return 11; }
604 static constexpr unsigned int contacts() { return 32; }
605 };
606
607 protected:
609 struct Offset: Element::Offset {
611 static constexpr unsigned int name() { return 0x0000; }
612 static constexpr unsigned int ids() { return 0x000b; }
613 static constexpr unsigned int betweenIds() { return 0x0003; }
615 };
616 };
617
618
621 {
622 public:
625 {
626 public:
628 GroupListBitmapElement(uint8_t *ptr);
629 };
630
631 protected:
633 GroupListBankElement(uint8_t *ptr, size_t size);
634
635 public:
637 GroupListBankElement(uint8_t *ptr);
638
640 static constexpr unsigned int size() { return 0x1000; }
641
643 virtual GroupListBitmapElement bitmap() const;
644
646 virtual GroupListElement groupList(unsigned int n) const;
647
649 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
651 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
653 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
654
655 public:
657 struct Limit: Element::Limit {
659 static constexpr unsigned int groupLists() { return 32; }
660 };
661
662 protected:
664 struct Offset: Element::Offset {
666 static constexpr unsigned int bitmap() { return 0x0000; }
667 static constexpr unsigned int groupLists() { return 0x0011; }
669 };
670 };
671
672
675 {
676 public:
678 RadioIdElement(uint8_t *ptr);
679
681 static constexpr unsigned int size() { return 0x0010; }
682
684 virtual unsigned int id() const;
686 virtual void setId(unsigned int id);
687
689 virtual QString name() const;
691 virtual void setName(const QString &name);
692
694 virtual DMRRadioID *decode(Context &ctx, const ErrorStack &err=ErrorStack());
696 virtual bool encode(const DMRRadioID *id, const ErrorStack &err=ErrorStack());
697
698 public:
700 struct Limit: Element::Limit {
702 static constexpr unsigned int nameLength() { return 12; }
703 };
704
705 protected:
707 struct Offset: Element::Offset {
709 static constexpr unsigned int id() { return 0x0000; }
710 static constexpr unsigned int name() { return 0x0003; }
712 };
713 };
714
715
718 {
719 public:
721 RadioIdBankElement(uint8_t *ptr);
722
724 static constexpr unsigned int size() { return 0x1000; }
725
727 virtual unsigned int idCount() const;
729 virtual void setIdCount(unsigned int n);
730
732 virtual RadioIdElement id(unsigned int n) const;
733
735 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
737 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
738
739 public:
741 struct Limit: Element::Limit {
743 static constexpr unsigned int ids() { return 250; }
744 };
745
746 protected:
748 struct Offset: Element::Offset {
750 static constexpr unsigned int count() { return 0x0000; }
751 static constexpr unsigned int ids() { return 0x0010; }
752 static constexpr unsigned int betweenIds() { return RadioIdElement::size(); }
754 };
755 };
756
757
759 class ZoneElement: public Element
760 {
761 public:
763 ZoneElement(uint8_t *ptr);
764
766 static constexpr unsigned int size() { return 0x0091; }
767
769 virtual QString name() const;
771 virtual void setName(const QString &name);
772
774 virtual unsigned int channelCount() const;
776 virtual void setChannelCount(unsigned int n);
777
779 virtual bool channelIndexValid(unsigned int n) const;
781 virtual unsigned int channelIndex(unsigned int n) const;
783 virtual void setChannelIndex(unsigned int n, unsigned int idx);
785 virtual void clearChannelIndex(unsigned int n);
786
788 virtual Zone *decode(Context &ctx, const ErrorStack &err=ErrorStack());
790 virtual bool link(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
792 virtual bool encode(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
793
794 public:
796 struct Limit: Element::Limit {
798 static constexpr unsigned int nameLength() { return 16; }
800 static constexpr unsigned int channels() { return 64; }
801 };
802
803 protected:
805 struct Offset: Element::Offset {
807 static constexpr unsigned int name() { return 0x0000; }
808 static constexpr unsigned int channelCount() { return 0x0010; }
809 static constexpr unsigned int channels() { return 0x0011; }
811 };
812 };
813
814
816 {
817 public:
819 ZoneBankElement(uint8_t *ptr);
820
822 static constexpr unsigned int size() { return 0x1000; }
823
825 virtual unsigned int count() const;
827 virtual void setCount(unsigned int n);
828
830 virtual bool channelIndexAValid() const;
832 virtual unsigned int channelIndexA() const;
834 virtual void setChannelIndexA(unsigned int idx);
836 virtual void clearChannelIndexA();
837
839 virtual bool channelIndexBValid() const;
841 virtual unsigned int channelIndexB() const;
843 virtual void setChannelIndexB(unsigned int idx);
845 virtual void clearChannelIndexB();
846
848 virtual bool zoneIndexAValid() const;
850 virtual unsigned int zoneIndexA() const;
852 virtual void setZoneIndexA(unsigned int idx);
854 virtual void clearZoneIndexA();
855
857 virtual bool zoneIndexBValid() const;
859 virtual unsigned int zoneIndexB() const;
861 virtual void setZoneIndexB(unsigned int idx);
863 virtual void clearZoneIndexB();
864
865 public:
867 struct Limit: Element::Limit {
869 static constexpr unsigned int zones() { return 250; }
871 static constexpr unsigned int zonesPerBlock() { return 28; }
872
873 };
874
876 struct Offset: Element::Offset {
878 static constexpr unsigned int count() { return 0x0000; }
879 static constexpr unsigned int channelIndexA() { return 0x0001; }
880 static constexpr unsigned int channelIndexB() { return 0x0003; }
881 static constexpr unsigned int zoneIndexA() { return 0x0005; }
882 static constexpr unsigned int zoneIndexB() { return 0x0007; }
883 static constexpr unsigned int zones0() { return 0x0010; }
884 static constexpr unsigned int betweenBlocks() { return 0x1000; }
886 };
887 };
888
889
892 {
893 public:
895 enum class TransmitMode {
896 CurrentChannel=0, ActiveChannel=1, RevertChannel=2
897 };
898
900 enum class ToneDetectionMode {
901 None = 0, NonPriority = 1, Priority = 2, All = 3
902 };
903
904 public:
906 ScanListElement(uint8_t *ptr);
907
909 static constexpr unsigned int size() { return 0x0039; }
910
912 virtual QString name() const;
914 virtual void setName(const QString &name);
915
917 virtual unsigned int channelCount() const;
919 virtual void setChannelCount(unsigned int count);
920
922 virtual TransmitMode transmitMode() const;
924 virtual void setTransmitMode(TransmitMode mode);
925
927 virtual ToneDetectionMode toneDetectionMode() const;
929 virtual void setToneDetectionMode(ToneDetectionMode mode);
930
932 virtual Interval hangTime() const;
934 virtual void setHangTime(const Interval &dur);
935
937 virtual bool secondaryChannelIndexValid() const;
939 virtual unsigned int secondaryChannelIndex() const;
941 virtual void setSecondaryChannelIndex(unsigned int idx);
943 virtual void clearSecondaryChannelIndex();
944
946 virtual bool primaryChannelIndexValid() const;
948 virtual unsigned int primaryChannelIndex() const;
950 virtual void setPrimaryChannelIndex(unsigned int idx);
952 virtual void clearPrimaryChannelIndex();
953
955 virtual bool revertChannelIndexValid() const;
957 virtual unsigned int revertChannelIndex() const;
959 virtual void setRevertChannelIndex(unsigned int idx);
961 virtual void clearRevertChannelIndex();
962
964 virtual Interval prioritySweepTime() const;
966 virtual void setPrioritySweepTime(const Interval &dur);
967
969 virtual bool isCurrentChannel(unsigned int n) const;
971 virtual unsigned int channelIndex(unsigned int n) const;
973 virtual void setChannelIndex(unsigned int n, unsigned int idx);
975 virtual void setCurrentChannel(unsigned int n);
976
978 virtual ScanList *decode(Context &ctx, const ErrorStack &err=ErrorStack());
980 virtual bool link(ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
982 virtual bool encode(const ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
983
984 public:
986 struct Limit: Element::Limit {
988 static constexpr unsigned int nameLength() { return 11; }
990 static constexpr unsigned int channels() { return 15; }
991 };
992
993 protected:
995 struct Offset: Element::Offset {
997 static constexpr unsigned int name() { return 0x0000; }
998 static constexpr unsigned int channelCount() { return 0x000b; }
999 static constexpr Bit transmitMode() { return {0x000c, 4}; }
1000 static constexpr Bit toneDetection() { return {0x000c, 0}; }
1001 static constexpr Bit hangTime() { return {0x000d, 0}; }
1002 static constexpr Bit secondaryChannel() { return {0x000e, 4}; }
1003 static constexpr Bit primaryChannel() { return {0x000e, 0}; }
1004 static constexpr unsigned int revertChannel() { return 0x000f; }
1005 static constexpr Bit prioritySweepTime() { return {0x0015, 2}; }
1006 static constexpr unsigned int channels() { return 0x0018; }
1008 };
1009 };
1010
1011
1013 class ScanListBankElement: public Element
1014 {
1015 public:
1017 enum class ScanMode {
1018 Time = 0 , Carrier = 1, Search = 2
1019 };
1020
1021 public:
1022 /* Constructor from pointer to the element. */
1023 ScanListBankElement(uint8_t *ptr);
1024
1026 static constexpr unsigned int size() { return 0x1000; }
1027
1029 virtual unsigned int count() const;
1031 virtual void setCount(unsigned int n);
1032
1034 virtual ScanListElement scanList(unsigned int n) const;
1035
1037 virtual ScanMode scanMode() const;
1039 virtual void setScanMode(ScanMode mode);
1040
1042 virtual FrequencyRange vhfRange() const;
1044 virtual void setVHFRange(const FrequencyRange &range);
1045
1047 virtual FrequencyRange uhfRange() const;
1049 virtual void setUHFRange(const FrequencyRange &range);
1050
1052 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1054 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
1056 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1057
1058 public:
1060 struct Limit: Element::Limit {
1062 static constexpr unsigned int scanLists() { return 32; }
1063 };
1064
1066 struct Offset: Element::Offset {
1068 static constexpr unsigned int count() { return 0x0000; }
1069 static constexpr unsigned int scanLists() { return 0x0001; }
1070 static constexpr unsigned int scanMode() { return 0x0e00; }
1071 static constexpr unsigned int vhfLower() { return 0x0e01; }
1072 static constexpr unsigned int vhfUpper() { return 0x0e03; }
1073 static constexpr unsigned int uhfLower() { return 0x0e05; }
1074 static constexpr unsigned int uhfUpper() { return 0x0e07; }
1076 };
1077 };
1078
1079
1082 {
1083 public:
1085 enum class TimeSlot {
1086 TS1 = 0, TS2 = 1
1087 };
1088
1089 public:
1091 RoamingChannelElement(uint8_t *ptr);
1092
1094 static constexpr unsigned int size() { return 0x001a; }
1095
1097 virtual QString name() const;
1099 virtual void setName(const QString &name);
1100
1102 virtual Frequency rxFrequency() const;
1104 virtual void setRXFrequency(const Frequency &f);
1105
1107 virtual Frequency txFrequency() const;
1109 virtual void setTXFrequency(const Frequency &f);
1110
1112 virtual unsigned int colorCode() const;
1114 virtual void setColorCode(unsigned int cc);
1115
1117 virtual DMRChannel::TimeSlot timeSlot() const;
1119 virtual void setTimeSlot(DMRChannel::TimeSlot ts);
1120
1123 virtual RoamingChannel *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
1125 virtual bool encode(const RoamingChannel *ch, const ErrorStack &err=ErrorStack());
1126
1127 public:
1129 struct Limit: Element::Limit {
1131 static constexpr unsigned int nameLength() { return 16; }
1132 };
1133
1134 protected:
1136 struct Offset: Element::Offset {
1138 static constexpr unsigned int name() { return 0x0000; }
1139 static constexpr unsigned int rxFrequency() { return 0x0010; }
1140 static constexpr unsigned int txFrequency() { return 0x0014; }
1141 static constexpr unsigned int colorCode() { return 0x0018; }
1142 static constexpr unsigned int timeSlot() { return 0x0019; }
1144 };
1145 };
1146
1147
1150 {
1151 public:
1153 RoamingChannelBankElement(uint8_t *ptr);
1154
1156 static constexpr unsigned int size() { return 0x1000; }
1157
1159 virtual unsigned int count() const;
1161 virtual void setCount(unsigned int n);
1162
1164 virtual RoamingChannelElement channel(unsigned int n);
1165
1167 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1169 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1170
1171 public:
1173 struct Limit: Element::Limit {
1175 static constexpr unsigned int channels() { return 150; }
1176 };
1177
1178 protected:
1180 struct Offset: Element::Offset {
1182 static constexpr unsigned int channels() { return 0x0000; }
1183 static constexpr unsigned int count() { return 0x0ff0; }
1184 static constexpr unsigned int betweenChannels() { return RoamingChannelElement::size(); }
1186 };
1187 };
1188
1189
1192 {
1193 public:
1195 RoamingZoneElement(uint8_t *ptr);
1196
1198 static constexpr unsigned int size() { return 0x0021; }
1199
1201 virtual QString name() const;
1203 virtual void setName(const QString &name);
1204
1206 virtual unsigned int count() const;
1208 virtual void setCount(unsigned int n);
1209
1211 virtual bool channelIndexValid(unsigned int n);
1213 virtual unsigned int channelIndex(unsigned int n);
1215 virtual void setChannelIndex(unsigned int n, unsigned int idx);
1217 virtual void clearChannelIndex(unsigned int n);
1218
1220 virtual RoamingZone *decode(Context &ctx, const ErrorStack &err=ErrorStack());
1222 virtual bool link(RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
1224 virtual bool encode(const RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
1225
1226 public:
1228 struct Limit: Element::Limit {
1230 static constexpr unsigned int nameLength() { return 16; }
1232 static constexpr unsigned int channels() { return 16; }
1233 };
1234
1235 protected:
1237 struct Offset: Element::Offset {
1239 static constexpr unsigned int name() { return 0x0000; }
1240 static constexpr unsigned int channelCount() { return 0x0010; }
1241 static constexpr unsigned int channels() { return 0x0011; }
1242 static constexpr unsigned int betweenChannels() { return 0x0001; }
1244 };
1245 };
1246
1247
1250 {
1251 public:
1253 RoamingZoneBankElement(uint8_t *ptr);
1254
1256 static constexpr unsigned int size() { return 0x1000; }
1257
1259 virtual unsigned int count() const;
1261 virtual void setCount(unsigned int n);
1262
1264 virtual bool autoRoamEnabled() const;
1266 virtual void enableAutoRoam(bool enable);
1267
1269 virtual Interval roamingDelay() const;
1271 virtual void setRoamingDelay(const Interval &delay);
1272
1274 virtual bool defaultRoamingZoneIndexValid() const;
1276 virtual unsigned int defaultRoamingZoneIndex() const;
1278 virtual void setDefaultRoamingZoneIndex(unsigned int idx);
1280 virtual void clearDefaultRoamingZoneIndex();
1281
1283 virtual RoamingZoneElement zone(unsigned int n);
1284
1286 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1288 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
1290 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1291
1292 public:
1294 struct Limit: Element::Limit {
1296 static constexpr unsigned int zones() { return 64; }
1297 };
1298
1299 protected:
1301 struct Offset: Element::Offset {
1303 static constexpr unsigned int count() { return 0x0000; }
1304 static constexpr unsigned int autoRoam() { return 0x0001; }
1305 static constexpr unsigned int roamingDelay() { return 0x0002; }
1306 static constexpr unsigned int defaultRoamingZone() { return 0x0003; }
1307 static constexpr unsigned int zones() { return 0x0010; }
1308 static constexpr unsigned int betweenZones() { return RoamingZoneElement::size(); }
1310 };
1311 };
1312
1313
1316 {
1317 public:
1319 SMSTemplateElement(uint8_t *ptr);
1320
1322 static constexpr unsigned int size() { return 0x0081; }
1323
1325 virtual QString message() const;
1327 virtual void setMessage(const QString &msg);
1328
1330 SMSTemplate *decode(Context &ctx, const ErrorStack &err=ErrorStack());
1331
1332 public:
1334 struct Limit: Element::Limit {
1336 static constexpr unsigned int messageLength() { return 126; }
1337 };
1338
1339 protected:
1341 struct Offset: Element::Offset {
1343 static constexpr unsigned int length() { return 0x0000; }
1344 static constexpr unsigned int message() { return 0x0001; }
1346 };
1347 };
1348
1349
1352 {
1353 public:
1355 SMSTemplateBankElement(uint8_t *ptr);
1356
1358 static constexpr unsigned int size() { return 0x1000; }
1359
1361 virtual unsigned int count() const;
1363 virtual void setCount(unsigned int n);
1364
1366 virtual SMSTemplateElement message(unsigned int n) const;
1367
1369 virtual bool decode(Context &ctx, const ErrorStack &err = ErrorStack());
1370
1371 public:
1373 struct Limit: Element::Limit {
1375 static constexpr unsigned int messages() { return 20; }
1376 };
1377
1378 protected:
1380 struct Offset: Element::Offset {
1382 static constexpr unsigned int count() { return 0x0000; }
1383 static constexpr unsigned int messages() { return 0x0010; }
1384 static constexpr unsigned int betweenMessages() { return SMSTemplateElement::size(); }
1386 };
1387 };
1388
1389
1392 {
1393 public:
1395 enum class BootDisplay {
1396 Image=0, Message=1, Voltage=2
1397 };
1398
1401 Off = 0, T30Min=1, T60Min=2, T2h=3, T4h=4, T8h=5
1402 };
1403
1405 enum class FMRogerTone {
1406 Off=0, Beep=1, BDC=2
1407 };
1408
1411 Infinity = 0, T5s=1, T10s=2, T15s=3, T20s=4, T25s=5, T30s=6, T1min=7, T2min=8, T3min=9,
1412 T4min=10, T5min=11
1413 };
1414
1416 enum class DateFormat {
1417 YYYYMMDD = 0, DDMMYYYY = 1
1418 };
1419
1423 struct Color {
1424 enum class Code {
1425 White = 0, Black = 1, Orange = 2, Red = 3, Yellow = 4, Green = 5, Cyan = 6, Blue = 7
1426 };
1427
1428 static unsigned int encode(Code name);
1429 static Code decode(unsigned int code);
1430 };
1431
1433 enum class PositionFormat {
1434 DD = 0,
1435 DMS = 1
1436 };
1437
1439 enum class GNSSMode {
1440 GPS = 0, Beidou = 1, Both = 2
1441 };
1442
1444 enum class RecordMode {
1445 RX = 0, TX = 1, Both = 2
1446 };
1447
1449 enum class SMSFormat {
1450 Hytera = 0, Motorola = 1, DMR = 2
1451 };
1452
1455 ISO8 = 0, UnicodeU16 = 1
1456 };
1457
1460 CallsignDB = 0, OverTheAir = 1
1461 };
1462
1464 enum class DualStandbyMode {
1465 SingleVFO = 0, DoubleStandby = 1, SingleStandby = 2
1466 };
1467
1469 enum class VFO {
1470 A = 0, B = 1
1471 };
1472
1474 enum class VFODisplayMode {
1475 Frequency = 0, ChannelName = 1
1476 };
1477
1479 enum class VFOMode {
1480 Channel = 0, VFO = 1
1481 };
1482
1485 {
1486 enum class Function {
1487 None=0, PowerSelect=1, Volt=2, Talkaround=3, DMREncryption=4, VOX=6, ChannelMode=7, Alarm=8,
1488 OneTouch1=9, OneTouch2=10, OneTouch3=11,OneTouch4=12, OneTouch5=13, SMS=14, Contacts=15,
1489 ZoneUp=16, ZoneDown=17, Scan=18, ToggleRecord=19, PreviousRecord=20, NextRecord=21,
1490 FMBCRadio=22, FMBCScan=23, GPSInformation=24, Monitor=25, ToggleMainChannel=26, LoneWorker=27,
1491 KeypadLock=28, Mute=29, TBST=30, APRSTX=31, ChannelType=32, DisplayMode=33, CTCSSDSCScan=34,
1492 CTCSSDSCSettings=25, SilentTone=36, Roaming=37, SubPTT=38, OneKeyScanFrequency=40,
1493 Flashlight=41
1494 };
1495
1496 static unsigned int encode(Function func);
1497 static Function decode(unsigned int code);
1498 };
1499
1501 enum class PowerSaveMode {
1502 Off=0, Percent50 = 1, Percent66 = 2, Percent75=3
1503 };
1504
1506 enum class TBSTFrequency {
1507 Hz1000=0, Hz1450=1, Hz1750=2, Hz2100=3
1508 };
1509
1511 enum class STEMode {
1512 Off = 0, Deg120 = 1, Deg180 = 2, Hz55 = 3
1513 };
1514
1515
1516 public:
1518 GeneralSettingsElement(uint8_t *ptr);
1519
1521 static constexpr unsigned int size() { return 0x0100; }
1522
1524 virtual BootDisplay bootDisplay() const;
1526 virtual void setBootDisplay(BootDisplay dis);
1527
1529 virtual QString bootMessage1() const;
1531 virtual void setBootMessage1(const QString &msg);
1533 virtual QString bootMessage2() const;
1535 virtual void setBootMessage2(const QString &msg);
1536
1538 virtual bool mcuResetEnabled() const;
1540 virtual void enableMCUReset(bool enable);
1542 virtual Interval autoPowerOffDelay() const;
1544 virtual void setAutoPowerOffDelay(const Interval &delay);
1545
1547 virtual bool radioSilentEnabled() const;
1549 virtual void enableRadioSilent(bool enable);
1550
1552 virtual bool keyToneEnabled() const;
1554 virtual void enableKeyTone(bool enable);
1555
1557 virtual bool smsToneEnabled() const;
1559 virtual void enableSMSTone(bool enable);
1560
1562 virtual bool groupCallToneEnabled() const;
1564 virtual void enableGroupCallTone(bool enable);
1566 virtual bool privateCallToneEnabled() const;
1568 virtual void enablePrivateCallTone(bool enable);
1569
1571 virtual bool eotToneEnabled() const;
1573 virtual void enableEOTTone(bool enable);
1574
1576 virtual bool talkPermitToneEnabled() const;
1578 virtual void enableTalkPermitTone(bool enable);
1579
1581 virtual bool bootToneEnabled() const;
1583 virtual void enableBootTone(bool enable);
1584
1586 virtual bool voicePromptEnabled() const;
1588 virtual void enableVoicePrompt(bool enable);
1589
1591 virtual bool lowBatteryToneEnabled() const;
1593 virtual void enableLowBatteryTone(bool enable);
1594
1596 virtual FMRogerTone fmRogerTone() const;
1598 virtual void setFMRogerTone(FMRogerTone tone);
1599
1601 virtual unsigned int displayBrightness() const;
1603 virtual void setDisplayBrightness(unsigned int n);
1604
1606 virtual Interval backlightDuration() const;
1608 virtual void setBacklightDuration(Interval duration);
1609
1611 virtual Interval menuDuration() const;
1613 virtual void setMenuDuration(Interval duration);
1614
1616 virtual bool showVolmueChange() const;
1618 virtual void enableShowVolumeChange(bool enable);
1619
1621 virtual DateFormat dateFormat() const;
1623 virtual void setDateFormat(DateFormat format);
1624
1626 virtual bool showClock() const;
1628 virtual void enableShowClock(bool enable);
1629
1631 virtual Color::Code callColor() const;
1633 virtual void setCallColor(Color::Code c);
1635 virtual Color::Code standbyColor() const;
1637 virtual void setStandbyColor(Color::Code c);
1639 virtual Color::Code channelNameAColor() const;
1641 virtual void setChannelNameAColor(Color::Code c);
1643 virtual Color::Code channelNameBColor() const;
1645 virtual void setChannelNameBColor(Color::Code c);
1647 virtual Color::Code zoneNameAColor() const;
1649 virtual void setZoneNameAColor(Color::Code c);
1651 virtual Color::Code zoneNameBColor() const;
1653 virtual void setZoneNameBColor(Color::Code c);
1654
1656 virtual PositionFormat positionFormat() const;
1658 virtual void setPositionFormat(PositionFormat format);
1659
1661 virtual GNSSSettings::Systems gnss() const;
1663 virtual void setGNSS(GNSSSettings::Systems mode);
1664
1666 virtual bool gnssEnabled() const;
1668 virtual void enableGNSS(bool enable);
1669
1671 virtual QTimeZone timeZone() const;
1673 virtual void setTimeZone(const QTimeZone &timeZone);
1674
1676 virtual Interval posUpdatePeriod() const;
1678 virtual void setPosUpdatePeriod(const Interval &period);
1679
1681 virtual RecordMode recordMode() const;
1683 virtual void setRecordMode(RecordMode mode);
1684
1686 virtual bool recordingEnabled() const;
1688 virtual void enableRecording(bool enable);
1689
1691 virtual bool groupCallMatchEnabled() const;
1693 virtual void enableGroupCallMatch(bool enable);
1694
1696 virtual bool privateCallMatchEnabled() const;
1698 virtual void enablePrivateCallMatch(bool enable);
1699
1701 virtual Interval dmrCallHangTime() const;
1703 virtual void setDMRCallHangTime(const Interval &hangTime);
1704
1706 virtual Interval activeWaitTime() const;
1708 virtual void setActiveWaitTime(Interval waitTime);
1709
1711 virtual unsigned int activeRetries() const;
1713 virtual void setActiveRetries(unsigned int retries);
1714
1716 virtual Interval dmrPreambleDuration() const;
1718 virtual void setDmrPreambleDuration(Interval duration);
1719
1721 virtual bool dmrRemoteMonitorEnabled() const;
1723 virtual void enableDMRRemoteMonitor(bool enable);
1724
1726 virtual bool dmrRemoteKillEnabled() const;
1728 virtual void enableDMRRemoteKill(bool enable);
1729
1731 virtual bool dmrRemoteRadioCheckEnabled() const;
1733 virtual void enableDMRRemoteRadioCheck(bool enable);
1734
1736 virtual bool dmrRemoteReenableEnabled() const;
1738 virtual void enableDMRRemoteReenable(bool enable);
1739
1741 virtual bool dmrRXAlertEnabled() const;
1743 virtual void enableDMRRXAlert(bool enable);
1744
1746 virtual SMSExtension::Format smsFormat() const;
1748 virtual void setSMSFormat(SMSExtension::Format format);
1749
1751 virtual bool missedCallNotificationEnabled() const;
1753 virtual void enableMissedCallNotification(bool enable);
1754
1756 virtual Interval dmrRemoteMonitorDuration() const;
1758 virtual void setDMRRemoteMonitorDuration(Interval duration);
1759
1764
1766 virtual bool txTalkerAliasEnabled() const;
1768 virtual void enableTXTalkerAlias(bool enable);
1769
1771 virtual TalkerAliasSource talkerAliasSource() const;
1773 virtual void setTalkerAliasSource(TalkerAliasSource source);
1774
1776 virtual DualStandbyMode dualStandbyMode() const;
1778 virtual void setDualStandbyMode(DualStandbyMode mode);
1779
1781 virtual VFO mainVFO() const;
1783 virtual void setMainVFO(VFO mainVFO);
1784
1786 virtual VFODisplayMode vfoDisplayModeA() const;
1788 virtual void setVFODisplayModeA(VFODisplayMode mode);
1790 virtual VFODisplayMode vfoDisplayModeB() const;
1792 virtual void setVFODisplayModeB(VFODisplayMode mode);
1794 virtual VFOMode vfoModeA() const;
1795
1797 virtual void setVFOModeA(VFOMode mode);
1799 virtual VFOMode vfoModeB() const;
1801 virtual void setVFOModeB(VFOMode mode);
1802
1804 virtual bool vfoModeDisabled() const;
1806 virtual void disableVFOMode(bool enable);
1807
1809 virtual Interval dualStandbyHangTime() const;
1811 virtual void setDualStandbyHangTime(Interval hangTime);
1812
1814 virtual bool sideKeyLockEnabled() const;
1816 virtual void enableSideKeyLock(bool enable);
1818 virtual bool knobLockEnabled() const;
1820 virtual void enableKnobLock(bool enable);
1822 virtual Interval autoKeyLockDelay() const;
1824 virtual void setAutoKeyLockDelay(Interval delay);
1825
1827 virtual KeyFunction::Function sk1Short() const;
1829 virtual void setSK1Short(KeyFunction::Function function);
1831 virtual KeyFunction::Function sk1Long() const;
1833 virtual void setSK1Long(KeyFunction::Function function);
1835 virtual KeyFunction::Function sk2Short() const;
1837 virtual void setSK2Short(KeyFunction::Function function);
1839 virtual KeyFunction::Function sk2Long() const;
1841 virtual void setSK2Long(KeyFunction::Function function);
1842
1844 virtual KeyFunction::Function p1Short() const;
1846 virtual void setP1Short(KeyFunction::Function function);
1848 virtual KeyFunction::Function p1Long() const;
1850 virtual void setP1Long(KeyFunction::Function function);
1852 virtual KeyFunction::Function p2Short() const;
1854 virtual void setP2Short(KeyFunction::Function function);
1856 virtual KeyFunction::Function p2Long() const;
1858 virtual void setP2Long(KeyFunction::Function function);
1859
1861 virtual Interval longPressDuration() const;
1863 virtual void setLongPressDuration(Interval duration);
1864
1866 virtual Interval transmitTimeout() const;
1868 virtual void setTransmitTimeout(Interval timeout);
1870 virtual Interval transmitTimeoutReminder() const;
1872 virtual void setTransmitTimeoutReminder(Interval timeout);
1873
1875 virtual Level voxLevel() const;
1877 virtual void setVOXLevel(Level voxLevel);
1879 virtual Interval voxDelay() const;
1881 virtual void setVoxDelay(Interval delay);
1882
1884 virtual PowerSaveMode powerSaveMode() const;
1886 virtual void setPowerSaveMode(PowerSaveMode mode);
1887
1889 virtual bool weatherAlarmEnabled() const;
1891 virtual void enableWeatherAlarm(bool enable);
1892
1894 virtual bool allLEDsDisabled() const;
1896 virtual void disableAllLEDs(bool disable);
1897
1899 virtual Frequency tbstFrequency() const;
1901 virtual void setTBSTFrequency(const Frequency &frequency);
1902
1904 virtual STEMode steMode() const;
1906 virtual void setSTEMode(STEMode mode);
1907
1909 virtual Level fmMicLevel() const;
1911 virtual void setFMMicLevel(Level level);
1912
1914 virtual Level dmrMicLevel() const;
1916 virtual void setDMRMicLevel(Level level);
1917
1919 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1921 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1922
1923 public:
1925 struct Limit: Element::Limit {
1927 static constexpr unsigned int bootMessageLength() { return 14; }
1929 static constexpr unsigned int maxBrightness() { return 5; }
1931 static constexpr Range<unsigned int> activeRetires() { return {1, 8}; }
1935 }
1936
1939 }
1940
1941 static constexpr Range<Interval> voxDelay() {
1943 }
1944
1945 static constexpr Range<unsigned int> vox() { return {1,5}; }
1947 static constexpr Range<unsigned int> micGain() { return {0,4}; }
1948 };
1949
1950 protected:
1952 struct Offset: Element::Offset {
1954 static constexpr unsigned int bootDisplay() { return 0x0000; }
1955 static constexpr unsigned int bootMessage1() { return 0x0001; }
1956 static constexpr unsigned int bootMessage2() { return 0x000f; }
1957 static constexpr unsigned int mcuReset() { return 0x001d; }
1958 static constexpr unsigned int autoPowerOffDelay() { return 0x001e; }
1959 static constexpr Bit radioSilent() { return {0x0020, 7}; }
1960 static constexpr Bit keyTone() { return {0x0020, 6}; }
1961 static constexpr Bit smsTone() { return {0x0020, 5}; }
1962 static constexpr Bit groupCallTone() { return {0x0020, 4}; }
1963 static constexpr Bit privateCallTone() { return {0x0020, 3}; }
1964 static constexpr Bit eotTone() { return {0x0020, 2}; }
1965 static constexpr Bit talkPermitTone() { return {0x0020, 1}; }
1966 static constexpr Bit bootTone() { return {0x0020, 0}; }
1967 static constexpr Bit voicePrompt() { return {0x0021, 7}; }
1968 static constexpr Bit lowBatteryTone() { return {0x0021, 6}; }
1969 static constexpr Bit fmRogerTone() { return {0x0021, 1}; }
1970 static constexpr unsigned int displayBrightness() { return 0x0030; }
1971 static constexpr unsigned int backlightDuration() { return 0x0031; }
1972 static constexpr unsigned int menuDuration() { return 0x0032; }
1973 static constexpr Bit showVolumeChange() { return {0x0033, 4}; }
1974 static constexpr Bit dateFormat() { return {0x0033, 3}; }
1975 static constexpr Bit showClock() { return {0x0033, 0}; }
1976 static constexpr unsigned int callColor() { return 0x0034; }
1977 static constexpr unsigned int standbyColor() { return 0x0035; }
1978 static constexpr unsigned int channelNameAColor() { return 0x0038; }
1979 static constexpr unsigned int channelNameBColor() { return 0x0039; }
1980 static constexpr unsigned int zoneNameAColor() { return 0x003a; }
1981 static constexpr unsigned int zoneNameBColor() { return 0x003b; }
1982 static constexpr Bit positionFormat() { return {0x0040, 6}; }
1983 static constexpr Bit gnssMode() { return {0x0040, 3}; }
1984 static constexpr Bit enableGNSS() { return {0x0040, 0}; }
1985 static constexpr unsigned int timeZone() { return 0x0041; }
1986 static constexpr unsigned int posUpdatePeriod() { return 0x0042; }
1987 static constexpr Bit recordMode() { return {0x0043, 2}; }
1988 static constexpr Bit enableRecording() { return {0x0045, 0}; }
1989 static constexpr Bit groupCallMatch() { return {0x0060, 1}; }
1990 static constexpr Bit privateCallMatch() { return {0x0060, 0}; }
1991 static constexpr unsigned int dmrCallHangTime() { return 0x0061; }
1992 static constexpr unsigned int activeWaitTime() { return 0x0062; }
1993 static constexpr unsigned int activeReties() { return 0x0063; }
1994 static constexpr unsigned int dmrPreambleDur() { return 0x0064; }
1995 static constexpr Bit dmrMonitor() { return {0x0065, 7}; }
1996 static constexpr Bit dmrKill() { return {0x0065, 6}; }
1997 static constexpr Bit dmrRadioCheck() { return {0x0065, 5}; }
1998 static constexpr Bit dmrReenable() { return {0x0065, 4}; }
1999 static constexpr Bit dmrRXAlert() { return {0x0065, 3}; }
2000 static constexpr Bit smsFormat() { return {0x0065, 1}; }
2001 static constexpr Bit missedCallNotification() { return {0x0065, 0}; }
2002 static constexpr unsigned int dmrRemoteMonitorDuration() { return 0x0066; }
2003 static constexpr Bit dmrTalkerAliasFormat() { return {0x0067, 4}; }
2004 static constexpr Bit txTalkerAlias() { return {0x0067, 3}; }
2005 static constexpr Bit talkerSource() { return {0x0067, 2}; }
2006 static constexpr Bit dualStandbyMode() { return {0x0080, 6}; }
2007 static constexpr Bit mainVFO() { return {0x0080, 5}; }
2008 static constexpr Bit displayModeB() { return {0x0080, 4}; }
2009 static constexpr Bit displayModeA() { return {0x0080, 3}; }
2010 static constexpr Bit vfoModeB() { return {0x0080, 2}; }
2011 static constexpr Bit vfoModeA() { return {0x0080, 1}; }
2012 static constexpr Bit disableVFOMode() { return {0x0080, 0}; }
2013 static constexpr unsigned int dualStandbyHangTime() { return 0x0081;}
2014 static constexpr Bit sideKeyLock() { return {0x0085, 2}; }
2015 static constexpr Bit knobLock() { return {0x0085, 1}; }
2016 static constexpr Bit enableAutoKeyLock() { return {0x0085, 0}; }
2017 static constexpr unsigned int autoKeyLockDelay() { return 0x0086; }
2018 static constexpr unsigned int sk1Short() { return 0x0087; }
2019 static constexpr unsigned int sk1Long() { return 0x0088; }
2020 static constexpr unsigned int sk2Short() { return 0x0089; }
2021 static constexpr unsigned int sk2Long() { return 0x008a; }
2022 static constexpr unsigned int p1Short() { return 0x008d; }
2023 static constexpr unsigned int p1Long() { return 0x008e; }
2024 static constexpr unsigned int p2Short() { return 0x008f; }
2025 static constexpr unsigned int p2Long() { return 0x0090; }
2026 static constexpr unsigned int longPressDuration() { return 0x0094; }
2027 static constexpr unsigned int transmitTimeout() { return 0x00a0; }
2028 static constexpr unsigned int totReminder() { return 0x00a1; }
2029 static constexpr unsigned int voxLevel() { return 0x00a2; }
2030 static constexpr unsigned int voxDelay() { return 0x00a3; }
2031 static constexpr Bit powerSaveMode() { return {0x00a4, 4}; }
2032 static constexpr Bit weatherAlarm() { return {0x00a4, 2}; }
2033 static constexpr Bit disableLEDs() { return {0x00a4, 0}; }
2034 static constexpr Bit tbstFrequency() { return {0x00a5, 4}; }
2035 static constexpr Bit steMode() { return {0x00a5, 0}; }
2036 static constexpr unsigned int fmMicLevel() { return 0x00a6; }
2037 static constexpr unsigned int dmrMicLevel() { return 0x00a7; }
2039 };
2040 };
2041
2042
2045 {
2046 protected:
2048 enum class CallType {
2049 Private = 0, Group = 1
2050 };
2051
2052 public:
2054 APRSSettingsElement(uint8_t *ptr);
2055
2057 static constexpr unsigned int size() { return 0x0100; }
2058
2060 virtual Interval updatePeriod();
2062 virtual void setUpdatePeriod(Interval interval);
2063
2065 virtual bool fixedLocationEnabled() const;
2067 virtual QGeoCoordinate fixedLocation() const;
2069 virtual void setFixedLocation(const QGeoCoordinate &coordinate);
2071 virtual void enableFixedLocation(bool enable);
2072
2074 virtual bool revertChannelIsCurrent(unsigned int n);
2076 virtual unsigned int revertChannelIndex(unsigned int n) const;
2078 virtual void setRevertChannelIndex(unsigned int n, unsigned int idx);
2080 virtual void setRevertChannelToCurrent(unsigned int n);
2081
2083 virtual Interval preWaveDelay() const;
2085 virtual void setPreWaveDelay(const Interval &delay);
2086
2088 virtual DMRContact::Type callType() const;
2090 virtual void setCallType(DMRContact::Type type);
2091
2093 virtual unsigned int destinationId() const;
2095 virtual void setDestinationId(unsigned int id);
2096
2098 bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
2100 bool link(Context &ctx, const ErrorStack &err=ErrorStack());
2102 bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
2103
2104 public:
2106 struct Limit: Element::Limit {
2108 static constexpr Range<Interval> updatePeriod() {
2109 return {Interval::fromSeconds(30), Interval::fromMinutes(120) };
2110 }
2111
2112 static constexpr unsigned int revertChannels() { return 8; }
2113 };
2114
2115 protected:
2117 struct Offset: Element::Offset {
2119 static constexpr unsigned int updatePeriod() { return 0x0001; }
2120 static constexpr unsigned int enableFixedLocation() { return 0x0002; }
2121 static constexpr unsigned int fixedLocationLatitude() { return 0x0006; }
2122 static constexpr unsigned int fixedLocationLongitude() { return 0x0010; }
2123 static constexpr unsigned int revertChannelIndices() { return 0x0020; }
2124 static constexpr unsigned int betweenRevertChannelIndices() { return 0x0002; }
2125 static constexpr unsigned int prewaveDelay() { return 0x0030; }
2126 static constexpr unsigned int callType() { return 0x0031; }
2127 static constexpr unsigned int destinationId() { return 0x0032; }
2129 };
2130 };
2131
2132
2135 {
2136 public:
2138 PasswordSettingsElement(uint8_t *ptr);
2139
2141 static constexpr unsigned int size() { return 0x0100; }
2142
2144 virtual bool bootPasswordEnabled() const;
2146 virtual QString bootPassword() const;
2148 virtual void setBootPassword(const QString &value);
2150 virtual void clearBootPassword();
2151
2153 virtual bool writePasswordEnabled() const;
2155 virtual QString writePassword() const;
2157 virtual void setWritePassword(const QString &value);
2159 virtual void clearWritePassword();
2160
2162 virtual bool readPasswordEnabled() const;
2164 virtual QString readPassword() const;
2166 virtual void setReadPassword(const QString &value);
2168 virtual void clearReadPassword();
2169
2170 public:
2172 struct Limit: Element::Limit
2173 {
2175 static constexpr unsigned int passwordLength() { return 8;}
2176 };
2177
2178 protected:
2180 struct Offset: Element::Offset
2181 {
2183 static constexpr unsigned int enableBootPassword() { return 0x0030; }
2184 static constexpr unsigned int bootPassword() { return 0x0031; }
2185 static constexpr unsigned int enableWritePassword() { return 0x0039; }
2186 static constexpr unsigned int enableReadPassword() { return 0x003a; }
2187 static constexpr unsigned int writePassword() { return 0x003b; }
2188 static constexpr unsigned int readPassword() { return 0x0043; }
2190 };
2191 };
2192
2193
2196 {
2197 public:
2199 MenuSettingElement(uint8_t *ptr);
2200
2202 static constexpr unsigned int size() { return 0x0100; }
2203
2204 protected:
2206 struct Offset: Element::Offset {
2208 static constexpr Bit newZone() { return {0x0000,1}; }
2209 static constexpr Bit listZones() { return {0x0000,0}; }
2210 static constexpr Bit measurePeriod() { return {0x0001,5}; }
2211 static constexpr Bit remoteKill() { return {0x0001,4}; }
2212 static constexpr Bit reenableRadio() { return {0x0001,3}; }
2213 static constexpr Bit remoteMonitor() { return {0x0001,2}; }
2214 static constexpr Bit radioCheck() { return {0x0001,1}; }
2215 static constexpr Bit callAlert() { return {0x0001,0}; }
2216 static constexpr Bit matchGroupCall() { return {0x0002,7}; }
2217 static constexpr Bit displayMode() { return {0x0002,6}; }
2218 static constexpr Bit matchPrivateCall() { return {0x0002,5}; }
2219 static constexpr Bit languageSelect() { return {0x0002,4}; }
2220 static constexpr Bit bootDisplay() { return {0x0002,3}; }
2221 static constexpr Bit transmitPower() { return {0x0002,2}; }
2222 static constexpr Bit alertTone() { return {0x0002,1}; }
2223 static constexpr Bit talkaround() { return {0x0002,0}; }
2224 static constexpr Bit record() { return {0x0003,6}; }
2225 static constexpr Bit aprs() { return {0x0003,5}; }
2226 static constexpr Bit gnss() { return {0x0003,4}; }
2227 static constexpr Bit powerSave() { return {0x0003,3}; }
2228 static constexpr Bit subChannelMode() { return {0x0003,2}; }
2229 static constexpr Bit fmBCRadio() { return {0x0003,1}; }
2230 static constexpr Bit smsFormat() { return {0x0003,0}; }
2231 static constexpr Bit callsignDB() { return {0x0004,6}; }
2232 static constexpr Bit manualDial() { return {0x0004,5}; }
2233 static constexpr Bit sendMessage() { return {0x0004,4}; }
2234 static constexpr Bit contactFunc() { return {0x0004,3}; }
2235 static constexpr Bit editContact() { return {0x0004,2}; }
2236 static constexpr Bit deleteContact() { return {0x0004,1}; }
2237 static constexpr Bit addContact() { return {0x0004,0}; }
2238 static constexpr Bit clearCallLog() { return {0x0005,3}; }
2239 static constexpr Bit outgoingCalls() { return {0x0005,2}; }
2240 static constexpr Bit incomingCalls() { return {0x0005,1}; }
2241 static constexpr Bit missedCalls() { return {0x0005,0}; }
2242 static constexpr Bit radioName() { return {0x0006,7}; }
2243 static constexpr Bit radioId() { return {0x0006,6}; }
2244 static constexpr Bit timeslot() { return {0x0006,5}; }
2245 static constexpr Bit colorCode() { return {0x0006,4}; }
2246 static constexpr Bit txContact() { return {0x0006,3}; }
2247 static constexpr Bit ctcssDcs() { return {0x0006,2}; }
2248 static constexpr Bit txFrequency() { return {0x0006,1}; }
2249 static constexpr Bit rxFrequency() { return {0x0006,0}; }
2250 static constexpr Bit channelName() { return {0x0007,4}; }
2251 static constexpr Bit addChannel() { return {0x0007,3}; }
2252 static constexpr Bit groupList() { return {0x0007,2}; }
2253 static constexpr Bit dcdm() { return {0x0007,1}; }
2254 static constexpr Bit channelType() { return {0x0007,0}; }
2256 };
2257 };
2258
2259
2260
2263 {
2264 public:
2266 enum class Type {
2267 Off = 0, Custom = 1, ARC4 = 2, AES128 = 3, AES256 = 4
2268 };
2269
2270 public:
2272 EncryptionKeyElement(uint8_t *ptr);
2273
2275 static constexpr unsigned int size() { return 0x2c; }
2276
2277 virtual void clear() override;
2278
2280 virtual unsigned int keyId() const;
2282 virtual void setKeyId(unsigned int id);
2283
2285 virtual QString name() const;
2287 virtual void setName(const QString &name);
2288
2290 virtual Type type() const;
2292 virtual void setType(Type type);
2293
2295 virtual QByteArray key() const;
2297 virtual void setKey(const QByteArray &key);
2298
2300 EncryptionKey *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
2302 bool encode(const EncryptionKey *key, Context &ctx, const ErrorStack &err=ErrorStack());
2303
2304 public:
2306 struct Limit: Element::Limit {
2308 static constexpr unsigned int nameLength() { return 10; }
2310 static constexpr unsigned int keyLength() { return 32; }
2311 };
2312
2313 protected:
2315 struct Offset: Element::Offset {
2317 static constexpr unsigned int keyId() { return 0x0000; }
2318 static constexpr unsigned int name() { return 0x0001; }
2319 static constexpr unsigned int type() { return 0x000b; }
2320 static constexpr unsigned int key() { return 0x000c; }
2322 };
2323 };
2324
2325
2326
2329 {
2330 public:
2332 EncryptionKeyBankElement(uint8_t *ptr);
2333
2335 static constexpr unsigned int size() { return 0x600; }
2336
2338 virtual bool keyValid(unsigned int idx) const;
2340 virtual EncryptionKeyElement key(unsigned int idx) const;
2341
2343 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
2345 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
2346
2347 public:
2349 struct Limit: Element::Limit {
2351 static constexpr unsigned int keys() { return 32; }
2352 };
2353
2354 protected:
2356 struct Offset: Element::Offset {
2358 static constexpr unsigned int keys() { return 0x0000; }
2359 static constexpr unsigned int betweenKeys() {
2361 }
2363 };
2364 };
2365
2366
2367public:
2372 explicit DM32UVCodeplug(QObject *parent = nullptr);
2373
2374 Config * preprocess(Config *config, const ErrorStack &err) const override;
2375 bool postprocess(Config *config, const ErrorStack &err) const override;
2376
2377 bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const override;
2378 bool encode(Config *config, const Flags &flags, const ErrorStack &err=ErrorStack()) override;
2379 bool decode(Config *config, const ErrorStack &err=ErrorStack()) override;
2380
2381protected:
2383 virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
2385 virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack());
2387 virtual bool encodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
2388
2390 virtual bool decodeChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2392 virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2394 virtual bool encodeChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2395
2397 virtual bool decodeContacts(Context &ctx, const ErrorStack &err=ErrorStack());
2399 virtual bool encodeContacts(Context &ctx, const ErrorStack &err=ErrorStack());
2400
2402 virtual bool decodeZones(Context &ctx, const ErrorStack &err=ErrorStack());
2404 virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack());
2406 virtual bool encodeZones(Context &ctx, const ErrorStack &err=ErrorStack());
2407
2408public:
2410 struct Limit: Element::Limit {
2411 static constexpr unsigned int blockSize() { return 0x1000; }
2412 static constexpr Range<unsigned int> channelBanks() { return {1, 49}; }
2413 static constexpr Range<unsigned int> contactBanks() { return {1, 5}; }
2414 static constexpr Range<unsigned int> zoneBanks() { return {1, 8}; }
2415 };
2416
2417protected:
2419 struct Offset {
2421 static constexpr unsigned int generalSettings() { return 0x00004000; }
2422 static constexpr unsigned int aprsSettings() { return 0x00004300; }
2423 static constexpr unsigned int contactIndex() { return 0x0000b000; }
2424 static constexpr unsigned int groupListBank() { return 0x0000f000; }
2425 static constexpr unsigned int extendedSettings() { return 0x00010000; }
2426 static constexpr unsigned int encryptionKeys() { return 0x00010300; }
2427 static constexpr unsigned int scanListBank() { return 0x00011000; }
2428 static constexpr unsigned int channelBanks() { return 0x00012000; }
2429 static constexpr unsigned int channelExtensionBanks() { return 0x00042000; }
2430 static constexpr unsigned int contactBanks() { return 0x00044000; }
2431 static constexpr unsigned int zoneBanks() { return 0x0005c000; }
2432 static constexpr unsigned int roamingZoneBank() { return 0x00065000; }
2433 static constexpr unsigned int roamingChannelBank() { return 0x00066000; }
2434 static constexpr unsigned int radioIdBank() { return 0x00067000; }
2436 };
2437};
2438
2439#endif // DM32UV_CODEPLUG_HH
Abstract base class of all callsign database implementations.
Definition callsigndb.hh:16
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:37
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:64
BitmapElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:692
Base class for all codeplug contexts.
Definition codeplug.hh:331
Element(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:56
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition codeplug.hh:24
InvertedBitmapElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:732
Codeplug(QObject *parent=nullptr)
Hidden default constructor.
Definition codeplug.cc:872
The config class, representing the codeplug configuration.
Definition config.hh:70
Represents a single image within a DFUFile.
Definition dfufile.hh:121
uint32_t size() const
Returns the total size of the DFU file.
Definition dfufile.cc:52
virtual DMRContact::Type callType() const
Returns the call type for all revert channels.
Definition dm32uv_codeplug.cc:3458
virtual bool fixedLocationEnabled() const
Returns true if the fixed location is used.
Definition dm32uv_codeplug.cc:3380
CallType
Encoding of call type.
Definition dm32uv_codeplug.hh:2048
bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links the APRS settings.
Definition dm32uv_codeplug.cc:3515
virtual void setFixedLocation(const QGeoCoordinate &coordinate)
Sets the fixed location.
Definition dm32uv_codeplug.cc:3402
APRSSettingsElement(uint8_t *ptr)
Constructor from pointer.
Definition dm32uv_codeplug.cc:3355
virtual void enableFixedLocation(bool enable)
Enabled fixed location.
Definition dm32uv_codeplug.cc:3416
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2057
virtual void setRevertChannelToCurrent(unsigned int n)
Sets the n-th revert channel to be the current channel.
Definition dm32uv_codeplug.cc:3440
virtual unsigned int revertChannelIndex(unsigned int n) const
Returns the n-th revert channel index.
Definition dm32uv_codeplug.cc:3428
virtual Interval preWaveDelay() const
Returns the pre-wave delay.
Definition dm32uv_codeplug.cc:3447
virtual unsigned int destinationId() const
Returns the destination ID.
Definition dm32uv_codeplug.cc:3481
virtual void setPreWaveDelay(const Interval &delay)
Sets the pre-wave delay.
Definition dm32uv_codeplug.cc:3452
bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the APRS settings.
Definition dm32uv_codeplug.cc:3551
virtual void setRevertChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th revert channel index.
Definition dm32uv_codeplug.cc:3434
virtual Interval updatePeriod()
Returns the update interval.
Definition dm32uv_codeplug.cc:3362
virtual void setCallType(DMRContact::Type type)
Sets the call type for all revert channels.
Definition dm32uv_codeplug.cc:3467
bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the APRS settings.
Definition dm32uv_codeplug.cc:3492
virtual QGeoCoordinate fixedLocation() const
Returns the fixed location.
Definition dm32uv_codeplug.cc:3385
virtual void setDestinationId(unsigned int id)
Sets the destination ID for all revert channels.
Definition dm32uv_codeplug.cc:3486
virtual void setUpdatePeriod(Interval interval)
Sets the update interval.
Definition dm32uv_codeplug.cc:3369
virtual bool revertChannelIsCurrent(unsigned int n)
Returns true if the n-th revert channel is set.
Definition dm32uv_codeplug.cc:3422
virtual unsigned int channelCount() const
Returns the channel count.
Definition dm32uv_codeplug.cc:627
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:287
virtual void setChannelCount(unsigned int n)
Sets the channel count.
Definition dm32uv_codeplug.cc:632
static unsigned int channelBank(unsigned int index)
Returns the block index for the given channel index.
Definition dm32uv_codeplug.cc:638
ChannelBankElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:619
static unsigned int indexInBank(unsigned int index)
Returns the channel index within the block for the given channel index.
Definition dm32uv_codeplug.cc:646
static unsigned int bankCount(unsigned int channelCount)
Computes the number of channel banks required to encode the given number of channels.
Definition dm32uv_codeplug.cc:654
static SelectiveCall decodeSelectiveCall(uint16_t code)
Helper function to decode selective call.
Definition dm32uv_codeplug.cc:587
Power
Possible power settings.
Definition dm32uv_codeplug.hh:40
virtual ChannelType channelType() const
Returns the channel type.
Definition dm32uv_codeplug.cc:71
virtual bool dcdmEnabled() const
Return true if DCDM (dual capacity direct mode) is enabled.
Definition dm32uv_codeplug.cc:286
virtual void clearGroupListIndex()
Invalidates group list index.
Definition dm32uv_codeplug.cc:344
virtual unsigned int dmrIdIndex() const
Returns the DMR radio id index.
Definition dm32uv_codeplug.cc:393
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:58
virtual void enableRXDMRAPRS(bool enable)
Enables/disables DMR APRS reception.
Definition dm32uv_codeplug.cc:186
virtual void enableVOX(bool enable)
Enables the VOX.
Definition dm32uv_codeplug.cc:387
virtual unsigned int dmrAPRSChannelIndex() const
Returns DMR APRS report channel index.
Definition dm32uv_codeplug.cc:350
virtual bool validScanListIndex() const
Returns true, if the scan list index is set.
Definition dm32uv_codeplug.cc:138
virtual DMRChannel::TimeSlot timeslot() const
Returns the timeslot of the channel.
Definition dm32uv_codeplug.cc:297
ChannelType
Possible channel types.
Definition dm32uv_codeplug.hh:35
virtual void enableEmergencyACK(bool enable)
Enables/disables emergency notification.
Definition dm32uv_codeplug.cc:207
virtual unsigned int groupListIndex() const
Get group list index.
Definition dm32uv_codeplug.cc:334
virtual bool rxDMRAPRSEnabled() const
Returns true if DMR APRS reception is enabled.
Definition dm32uv_codeplug.cc:181
virtual void setPower(Channel::Power power)
Sets the channel power.
Definition dm32uv_codeplug.cc:92
virtual void enableTalkaround(bool enable)
Enables/disables talkaround feature on this channel.
Definition dm32uv_codeplug.cc:164
virtual bool rxOnlyEnabled() const
Returns true if the channel is RX only.
Definition dm32uv_codeplug.cc:244
virtual bool encode(const Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes a channel.
Definition dm32uv_codeplug.cc:504
virtual bool link(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links the channel object.
Definition dm32uv_codeplug.cc:462
virtual FMChannel::Bandwidth bandwidth() const
Returns the bandwidth for FM channels.
Definition dm32uv_codeplug.cc:121
virtual Admit admitCriterion() const
Returns the admit criterion.
Definition dm32uv_codeplug.cc:170
virtual void setColorCode(unsigned int cc)
Sets the color code of the channel.
Definition dm32uv_codeplug.cc:312
virtual void setRXFrequency(const Frequency &freq)
Set RX frequency.
Definition dm32uv_codeplug.cc:42
virtual void setEmergencySystemIndex(unsigned int idx)
Sets the emergency system index.
Definition dm32uv_codeplug.cc:222
static uint16_t encodeSelectiveCall(const SelectiveCall &tone)
Helper function to encode selective call.
Definition dm32uv_codeplug.cc:604
virtual Channel * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a channel object.
Definition dm32uv_codeplug.cc:404
virtual Frequency rxFrequency() const
Returns the RX frequency.
Definition dm32uv_codeplug.cc:37
virtual void enableDCDM(bool enable)
Enables DCDM (dual capacity direct mode).
Definition dm32uv_codeplug.cc:291
virtual void clearScanListIndex()
Invalidates the scan list index.
Definition dm32uv_codeplug.cc:153
virtual void clearEmergencySystemIndex()
Invalidates the emergency system index.
Definition dm32uv_codeplug.cc:227
virtual bool validGroupListIndex() const
Returns true if group list index is valid.
Definition dm32uv_codeplug.cc:329
virtual void enableDMRAPRS(bool enable)
Enables DMR APRS for the channel.
Definition dm32uv_codeplug.cc:260
virtual unsigned int scanListIndex() const
Returns the 0-based scan list index.
Definition dm32uv_codeplug.cc:143
virtual bool dataACKEnabled() const
Return true if data is confirmed.
Definition dm32uv_codeplug.cc:276
virtual QString name() const
Returns the channel name.
Definition dm32uv_codeplug.cc:26
virtual bool talkaroundEnabled() const
Returns true if talkaround is enabled on this channel.
Definition dm32uv_codeplug.cc:159
virtual bool voxEnabled() const
Returns true, if the VOX is enabled.
Definition dm32uv_codeplug.cc:382
virtual void setScanListIndex(unsigned int idx)
Sets the scan list index.
Definition dm32uv_codeplug.cc:148
virtual unsigned int colorCode() const
Returns the color code of the channel.
Definition dm32uv_codeplug.cc:307
virtual void setName(const QString &name)
Sets the channel name.
Definition dm32uv_codeplug.cc:31
virtual bool encryptionEnabled() const
Returns true if encryption is enabled.
Definition dm32uv_codeplug.cc:318
ChannelElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:12
virtual void enableLoneWorker(bool enable)
Enables/disables lone worker feature.
Definition dm32uv_codeplug.cc:115
virtual void setTXFrequency(const Frequency &freq)
Set TX frequency.
Definition dm32uv_codeplug.cc:60
virtual void setGroupListIndex(unsigned int idx)
Set group list index.
Definition dm32uv_codeplug.cc:339
virtual void setBandwidth(FMChannel::Bandwidth bw)
Sets the FM channel bandwidth.
Definition dm32uv_codeplug.cc:129
virtual void enableDataACK(bool enable)
Enables confirmation of data.
Definition dm32uv_codeplug.cc:281
virtual void setSquelchLevel(Level level)
Sets the FM and DMR squelch level.
Definition dm32uv_codeplug.cc:238
virtual bool privateCallACKEnabled() const
Return true if private calls are confirmed.
Definition dm32uv_codeplug.cc:266
virtual bool emergencyNotificationEnabled() const
Retruns true, if the emergency notification is enabled.
Definition dm32uv_codeplug.cc:192
virtual bool dmrAPRSEnabled() const
Returns true if DMR APRS is enabled.
Definition dm32uv_codeplug.cc:255
virtual Level squelchLevel() const
Returns FM and DMR squelch level.
Definition dm32uv_codeplug.cc:233
virtual unsigned int emergencySystemIndex() const
Returns the emergency system index.
Definition dm32uv_codeplug.cc:217
Admit
Possible admit criteria.
Definition dm32uv_codeplug.hh:45
virtual Frequency txFrequency() const
Returns the TX frequency.
Definition dm32uv_codeplug.cc:53
virtual void enablePrivateCallACK(bool enable)
Enables confirmation of private calls.
Definition dm32uv_codeplug.cc:271
virtual void setDMRIdIndex(unsigned int id)
Sets the dmr ID index.
Definition dm32uv_codeplug.cc:398
virtual void setDMRAPRSChannelIndex(unsigned int idx)
Sets the DMR APRS report channel index.
Definition dm32uv_codeplug.cc:355
virtual SelectiveCall rxTone() const
Returns the RX tone.
Definition dm32uv_codeplug.cc:361
virtual void enableRXOnly(bool enable)
Enables RX only for the channel.
Definition dm32uv_codeplug.cc:249
virtual bool validTXFrequency() const
Returns true, if a valid TX frequency is stored.
Definition dm32uv_codeplug.cc:48
virtual bool validEmergencySystemIndex() const
Returns true if the emergency system index is set.
Definition dm32uv_codeplug.cc:212
virtual void setRXTone(const SelectiveCall &tone)
Sets the RX tone.
Definition dm32uv_codeplug.cc:366
virtual void setAdmitCriterion(Admit admit)
Sets the admit criterion.
Definition dm32uv_codeplug.cc:175
virtual bool loneWorkerEnabled() const
Returns true, if the lone-worker feature is enabled.
Definition dm32uv_codeplug.cc:110
virtual SelectiveCall txTone() const
Returns the TX tone.
Definition dm32uv_codeplug.cc:371
virtual Channel::Power power() const
Returns the channel power setting.
Definition dm32uv_codeplug.cc:82
virtual void enableEmergencyNotification(bool enable)
Enables/disables emergency notification.
Definition dm32uv_codeplug.cc:197
virtual void clearTXFrequency()
Invalidates the TX frequency.
Definition dm32uv_codeplug.cc:65
virtual void setTimeslot(DMRChannel::TimeSlot ts)
Sets the timeslot of the channel.
Definition dm32uv_codeplug.cc:302
virtual void setChannelType(ChannelType type)
Sets the channel type.
Definition dm32uv_codeplug.cc:76
virtual void setTXTone(const SelectiveCall &tone)
Sets the TX tone.
Definition dm32uv_codeplug.cc:376
virtual bool emergencyACKEnabled() const
Retruns true, if the emergency ACK is enabled.
Definition dm32uv_codeplug.cc:202
Encodes a bank of channel extension settings.
Definition dm32uv_codeplug.hh:371
virtual bool hasContactIndex() const
Returns true if a TX contact index is set.
Definition dm32uv_codeplug.cc:680
void clear() override
Resets the element.
Definition dm32uv_codeplug.cc:673
virtual bool link(Channel *ch, Context &ctx, const ErrorStack &err) const
Links the given channel.
Definition dm32uv_codeplug.cc:715
ChannelExtensionElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:666
virtual void setContactIndex(unsigned int index)
Sets the contact index.
Definition dm32uv_codeplug.cc:694
virtual void clearContactIndex()
Resets the contact index.
Definition dm32uv_codeplug.cc:702
virtual bool encode(const Channel *ch, Context &ctx, const ErrorStack &err)
Encodes the extended settings from the given channel.
Definition dm32uv_codeplug.cc:730
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:337
virtual unsigned int contactIndex() const
Returns the TX contact index.
Definition dm32uv_codeplug.cc:687
virtual bool decode(Channel *ch, Context &ctx, const ErrorStack &err) const
Updates the given channel.
Definition dm32uv_codeplug.cc:709
Implements the contact bank.
Definition dm32uv_codeplug.hh:448
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:405
virtual void setDMRId(unsigned int id)
Sets the DMR Id.
Definition dm32uv_codeplug.cc:808
Type
Possible contact types.
Definition dm32uv_codeplug.hh:392
virtual void setName(const QString &name)
Sets the name of the contact.
Definition dm32uv_codeplug.cc:771
virtual QString name() const
Returns the name of the contact.
Definition dm32uv_codeplug.cc:766
ContactElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:752
virtual DMRContact * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a contact object.
Definition dm32uv_codeplug.cc:813
virtual void setCallType(DMRContact::Type type)
Sets the call type.
Definition dm32uv_codeplug.cc:787
virtual bool encode(const DMRContact *contact, const ErrorStack &err=ErrorStack())
Encodes the contact.
Definition dm32uv_codeplug.cc:820
virtual unsigned int dmrId() const
Returns the DMR Id.
Definition dm32uv_codeplug.cc:802
virtual DMRContact::Type callType() const
Returns the call type.
Definition dm32uv_codeplug.cc:777
ContactBitmapElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:835
static constexpr unsigned int size()
Returns the size of the bitmap.
Definition dm32uv_codeplug.hh:481
bool isValid() const override
Returns true if the entry is valid.
Definition dm32uv_codeplug.cc:863
void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_codeplug.cc:858
EntryElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:845
virtual DMRContact::Type callType() const
Returns the call type.
Definition dm32uv_codeplug.cc:868
virtual void setCallType(DMRContact::Type type)
Sets the call type.
Definition dm32uv_codeplug.cc:878
virtual void setIndex(unsigned int idx)
Sets the index.
Definition dm32uv_codeplug.cc:895
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:501
virtual unsigned int index() const
Returns the contact index.
Definition dm32uv_codeplug.cc:890
virtual unsigned int groupCallCount() const
Returns the number of group call contacts encoded.
Definition dm32uv_codeplug.cc:929
virtual ContactBitmapElement bitmap() const
Returns the contact bitmap.
Definition dm32uv_codeplug.cc:950
static constexpr unsigned int size()
Size of this element.
Definition dm32uv_codeplug.hh:522
virtual EntryElement indexEntry(unsigned n)
Returns the n-th index entry.
Definition dm32uv_codeplug.cc:955
virtual unsigned int privateCallCount() const
Returns the number of private call contacts encoded.
Definition dm32uv_codeplug.cc:939
virtual void setPrivateCallCount(unsigned int n)
Sets the number of private call contacts.
Definition dm32uv_codeplug.cc:944
virtual void setContactCount(unsigned int n)
Sets the number of contacts.
Definition dm32uv_codeplug.cc:924
virtual void setGroupCallCount(unsigned int n)
Sets the number of group call contacts.
Definition dm32uv_codeplug.cc:934
ContactIndexElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:905
virtual EntryElement sortedIndexEntry(unsigned n)
Returns the n-th sorted index entry.
Definition dm32uv_codeplug.cc:960
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the contact index.
Definition dm32uv_codeplug.cc:966
virtual unsigned int contactCount() const
Returns the number of contacts encoded.
Definition dm32uv_codeplug.cc:919
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all keys.
Definition dm32uv_codeplug.cc:3827
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all keys.
Definition dm32uv_codeplug.cc:3809
EncryptionKeyBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:3789
virtual bool keyValid(unsigned int idx) const
Returns true, if the key is valid.
Definition dm32uv_codeplug.cc:3796
virtual EncryptionKeyElement key(unsigned int idx) const
Returns the n-th key.
Definition dm32uv_codeplug.cc:3803
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2335
Implementation of a single encryption key.
Definition dm32uv_codeplug.hh:2263
virtual void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_codeplug.cc:3674
EncryptionKeyElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:3666
bool encode(const EncryptionKey *key, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the key.
Definition dm32uv_codeplug.cc:3765
virtual QString name() const
Returns the key name.
Definition dm32uv_codeplug.cc:3693
virtual void setKeyId(unsigned int id)
Sets the key id.
Definition dm32uv_codeplug.cc:3687
virtual QByteArray key() const
Returns the key data.
Definition dm32uv_codeplug.cc:3715
virtual Type type() const
Returns the key type.
Definition dm32uv_codeplug.cc:3704
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2275
Type
Possible key types.
Definition dm32uv_codeplug.hh:2266
virtual void setType(Type type)
Sets the key type.
Definition dm32uv_codeplug.cc:3709
EncryptionKey * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes the key.
Definition dm32uv_codeplug.cc:3728
virtual unsigned int keyId() const
Returns the key id.
Definition dm32uv_codeplug.cc:3682
virtual void setName(const QString &name)
Sets the name.
Definition dm32uv_codeplug.cc:3698
virtual void setKey(const QByteArray &key)
Sets the key data.
Definition dm32uv_codeplug.cc:3720
virtual KeyFunction::Function sk1Short() const
Returns the side-key 1 short-press function.
Definition dm32uv_codeplug.cc:3052
virtual bool dmrRemoteKillEnabled() const
Returns true if the remote kill switch is enabled.
Definition dm32uv_codeplug.cc:2804
virtual Interval dmrPreambleDuration() const
Retruns the DMR preamble duration.
Definition dm32uv_codeplug.cc:2782
SMSFormat
Possible SMS formats.
Definition dm32uv_codeplug.hh:1449
virtual Interval dmrCallHangTime() const
Returns the DMR call hang time.
Definition dm32uv_codeplug.cc:2749
virtual void setDualStandbyMode(DualStandbyMode mode)
Sets the dual-standby mode.
Definition dm32uv_codeplug.cc:2930
virtual void enableDMRRXAlert(bool enable)
Enables enables reception of DMR alerts.
Definition dm32uv_codeplug.cc:2842
virtual bool privateCallToneEnabled() const
Returns true if private call tone is enabled.
Definition dm32uv_codeplug.cc:2390
virtual VFODisplayMode vfoDisplayModeB() const
Returns the VFO B display mode.
Definition dm32uv_codeplug.cc:2958
VFOMode
VFO Modes.
Definition dm32uv_codeplug.hh:1479
virtual void enableShowVolumeChange(bool enable)
Enable volume change prompt.
Definition dm32uv_codeplug.cc:2551
virtual void disableVFOMode(bool enable)
Disables VFO modes.
Definition dm32uv_codeplug.cc:2995
virtual bool groupCallMatchEnabled() const
Returns true if group call must match.
Definition dm32uv_codeplug.cc:2727
virtual void setP2Short(KeyFunction::Function function)
Sets the programmable key 2 short-press function.
Definition dm32uv_codeplug.cc:3118
virtual void setGNSS(GNSSSettings::Systems mode)
Sets the GNSS mode.
Definition dm32uv_codeplug.cc:2661
TBSTFrequency
Possible TBST frequencies.
Definition dm32uv_codeplug.hh:1506
virtual void enableSMSTone(bool enable)
Enables sms tones.
Definition dm32uv_codeplug.cc:2374
virtual bool smsToneEnabled() const
Returns true if sms tones are enabled.
Definition dm32uv_codeplug.cc:2369
virtual void setFMMicLevel(Level level)
Sets the FM mic level.
Definition dm32uv_codeplug.cc:3276
virtual Color::Code channelNameAColor() const
Returns the channel name A color.
Definition dm32uv_codeplug.cc:2599
virtual void setActiveRetries(unsigned int retries)
Sets the number of active retires.
Definition dm32uv_codeplug.cc:2776
virtual void setDMRCallHangTime(const Interval &hangTime)
Sets the DMR call hang time.
Definition dm32uv_codeplug.cc:2754
FMRogerTone
Possible FM roger tones.
Definition dm32uv_codeplug.hh:1405
virtual void setSK1Long(KeyFunction::Function function)
Sets the side-key 1 long-press function.
Definition dm32uv_codeplug.cc:3067
virtual VFOMode vfoModeA() const
Returns the VFO A mode.
Definition dm32uv_codeplug.cc:2969
virtual void setBacklightDuration(Interval duration)
Sets the backlight duration.
Definition dm32uv_codeplug.cc:2497
virtual bool missedCallNotificationEnabled() const
Retruns true missed call notification is enabled.
Definition dm32uv_codeplug.cc:2868
virtual void enableShowClock(bool enable)
Enable clock.
Definition dm32uv_codeplug.cc:2573
virtual void enableTXTalkerAlias(bool enable)
Enables transmission of talker alias.
Definition dm32uv_codeplug.cc:2908
virtual void setTimeZone(const QTimeZone &timeZone)
Sets the timezone.
Definition dm32uv_codeplug.cc:2688
virtual void enableWeatherAlarm(bool enable)
Enables the NOAA weather alarm.
Definition dm32uv_codeplug.cc:3219
virtual void setP1Long(KeyFunction::Function function)
Sets the programmable key 1 long-press function.
Definition dm32uv_codeplug.cc:3108
virtual void disableAllLEDs(bool disable)
Disables all LEDs.
Definition dm32uv_codeplug.cc:3230
virtual void setSK2Long(KeyFunction::Function function)
Sets the side-key 2 long-press function.
Definition dm32uv_codeplug.cc:3087
virtual bool allLEDsDisabled() const
Returns true if all LEDs are disabled.
Definition dm32uv_codeplug.cc:3225
virtual void setChannelNameAColor(Color::Code c)
Sets the channel name A color.
Definition dm32uv_codeplug.cc:2604
virtual void setMainVFO(VFO mainVFO)
Sets the main VFO.
Definition dm32uv_codeplug.cc:2941
GNSSMode
GNSS modes.
Definition dm32uv_codeplug.hh:1439
virtual void enableDMRRemoteKill(bool enable)
Enables the remote kill swtich.
Definition dm32uv_codeplug.cc:2809
virtual void setTalkerAliasSource(TalkerAliasSource source)
Sets the talker alias source.
Definition dm32uv_codeplug.cc:2919
VFO
VFO selection.
Definition dm32uv_codeplug.hh:1469
virtual bool talkPermitToneEnabled() const
Returns true if talk permit tone is enabled.
Definition dm32uv_codeplug.cc:2412
virtual void setDMRRemoteMonitorDuration(Interval duration)
Sets the remote monitor duration.
Definition dm32uv_codeplug.cc:2884
virtual void setP2Long(KeyFunction::Function function)
Sets the programmable key 2 long-press function.
Definition dm32uv_codeplug.cc:3128
virtual void enableBootTone(bool enable)
Enables boot tones.
Definition dm32uv_codeplug.cc:2428
virtual void setTransmitTimeout(Interval timeout)
Sets transmit timeout.
Definition dm32uv_codeplug.cc:3153
virtual TalkerAliasSource talkerAliasSource() const
Returns the talker alias source.
Definition dm32uv_codeplug.cc:2914
virtual bool sideKeyLockEnabled() const
Returns true if the side keys are locked.
Definition dm32uv_codeplug.cc:3012
virtual void enableMCUReset(bool enable)
Enables MCU reset.
Definition dm32uv_codeplug.cc:2309
virtual DualStandbyMode dualStandbyMode() const
Returns the dual-standby mode.
Definition dm32uv_codeplug.cc:2925
virtual void setZoneNameAColor(Color::Code c)
Sets the zone name A color.
Definition dm32uv_codeplug.cc:2624
virtual bool showVolmueChange() const
Returns true if the volume change prompt is shown.
Definition dm32uv_codeplug.cc:2546
VFODisplayMode
VFO display modes.
Definition dm32uv_codeplug.hh:1474
virtual bool radioSilentEnabled() const
Returns true if all tones are disabled.
Definition dm32uv_codeplug.cc:2347
virtual void setZoneNameBColor(Color::Code c)
Sets the zone name B color.
Definition dm32uv_codeplug.cc:2634
virtual VFO mainVFO() const
Returns the main VFO.
Definition dm32uv_codeplug.cc:2936
PowerSaveMode
Possible power-save mode.
Definition dm32uv_codeplug.hh:1501
virtual void enableGroupCallMatch(bool enable)
Enables group call match.
Definition dm32uv_codeplug.cc:2732
virtual Interval voxDelay() const
Retruns the VOX delay.
Definition dm32uv_codeplug.cc:3191
virtual GNSSSettings::Systems gnss() const
Returns the GNSS mode.
Definition dm32uv_codeplug.cc:2651
virtual Level dmrMicLevel() const
Returns the DMR mic level.
Definition dm32uv_codeplug.cc:3281
virtual bool groupCallToneEnabled() const
Returns true if group call tone is enabled.
Definition dm32uv_codeplug.cc:2380
virtual void setDateFormat(DateFormat format)
Sets the date format.
Definition dm32uv_codeplug.cc:2562
virtual void enableVoicePrompt(bool enable)
Enables voice prompt.
Definition dm32uv_codeplug.cc:2439
virtual void setDisplayBrightness(unsigned int n)
Sets the display brightness [0-10].
Definition dm32uv_codeplug.cc:2472
virtual void setDmrPreambleDuration(Interval duration)
Sets the DMR preamble duration.
Definition dm32uv_codeplug.cc:2787
virtual bool vfoModeDisabled() const
Returns true if VFO modes are disabled.
Definition dm32uv_codeplug.cc:2990
virtual void enableRadioSilent(bool enable)
Disables all tones.
Definition dm32uv_codeplug.cc:2352
virtual void setRecordMode(RecordMode mode)
Sets the record mode.
Definition dm32uv_codeplug.cc:2710
virtual Color::Code zoneNameAColor() const
Returns the zone name A color.
Definition dm32uv_codeplug.cc:2619
virtual bool showClock() const
Returns true if the clock is shown.
Definition dm32uv_codeplug.cc:2568
virtual KeyFunction::Function p1Long() const
Returns the programmable key 1 long-press function.
Definition dm32uv_codeplug.cc:3103
STEMode
Possible squelch tail-eliminations.
Definition dm32uv_codeplug.hh:1511
virtual void setPowerSaveMode(PowerSaveMode mode)
Sets the power-save mode.
Definition dm32uv_codeplug.cc:3208
virtual bool gnssEnabled() const
Returns true if GNSS is enabled.
Definition dm32uv_codeplug.cc:2672
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encode general settings.
Definition dm32uv_codeplug.cc:3320
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the general settings.
Definition dm32uv_codeplug.cc:3292
virtual void setVoxDelay(Interval delay)
Sets the VOX delay.
Definition dm32uv_codeplug.cc:3196
virtual void setMenuDuration(Interval duration)
Sets the menu hold time.
Definition dm32uv_codeplug.cc:2536
virtual void setAutoPowerOffDelay(const Interval &delay)
Sets the auto-power-off delay.
Definition dm32uv_codeplug.cc:2328
virtual void enableGNSS(bool enable)
Enables GNSS.
Definition dm32uv_codeplug.cc:2677
virtual void enableKnobLock(bool enable)
Enables the knob lock.
Definition dm32uv_codeplug.cc:3028
virtual Color::Code standbyColor() const
Returns the standby text color.
Definition dm32uv_codeplug.cc:2589
virtual Interval transmitTimeout() const
Returns the transmit timeout.
Definition dm32uv_codeplug.cc:3146
virtual Level voxLevel() const
Returns the VOX level.
Definition dm32uv_codeplug.cc:3175
virtual void enableDMRRemoteReenable(bool enable)
Enables DMR remote reenable.
Definition dm32uv_codeplug.cc:2831
virtual SMSExtension::Format smsFormat() const
Returns the DMR SMS format.
Definition dm32uv_codeplug.cc:2848
virtual KeyFunction::Function sk2Short() const
Returns the side-key 2 short-press function.
Definition dm32uv_codeplug.cc:3072
virtual void setBootMessage2(const QString &msg)
Sets the second boot message line.
Definition dm32uv_codeplug.cc:2298
virtual KeyFunction::Function p1Short() const
Returns the programmable key 1 short-press function.
Definition dm32uv_codeplug.cc:3093
virtual void setVFODisplayModeB(VFODisplayMode mode)
Sets the VFO B display mode.
Definition dm32uv_codeplug.cc:2963
BootDisplay
Possible boot display settings.
Definition dm32uv_codeplug.hh:1395
virtual bool lowBatteryToneEnabled() const
Returns true if low-battery tone is enabled.
Definition dm32uv_codeplug.cc:2445
GeneralSettingsElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2264
virtual Color::Code callColor() const
Returns the call color.
Definition dm32uv_codeplug.cc:2579
virtual bool weatherAlarmEnabled() const
Returns true, if the NOAA weather alarm is enabled.
Definition dm32uv_codeplug.cc:3214
virtual void enableMissedCallNotification(bool enable)
Enables missed call notification.
Definition dm32uv_codeplug.cc:2873
virtual Frequency tbstFrequency() const
Returns the TBST frequency.
Definition dm32uv_codeplug.cc:3236
BacklightDuration
Possible settings for the backlight duration.
Definition dm32uv_codeplug.hh:1410
virtual bool eotToneEnabled() const
Returns true if EOT tone is enabled.
Definition dm32uv_codeplug.cc:2401
virtual void setTalkerAliasEncoding(DMRSettings::TalkerAliasEncoding format)
Sets the talker alias format.
Definition dm32uv_codeplug.cc:2897
virtual BootDisplay bootDisplay() const
Returns the boot display setting.
Definition dm32uv_codeplug.cc:2272
PositionFormat
Possible position formats.
Definition dm32uv_codeplug.hh:1433
@ DD
Decimal degree.
Definition dm32uv_codeplug.hh:1434
@ DMS
Degree, minute, second.
Definition dm32uv_codeplug.hh:1435
virtual KeyFunction::Function sk1Long() const
Returns the side-key 1 long-press function.
Definition dm32uv_codeplug.cc:3062
virtual bool dmrRemoteRadioCheckEnabled() const
Returns true if the remote radio check is enabled.
Definition dm32uv_codeplug.cc:2815
virtual unsigned int activeRetries() const
Returns the number of active retries.
Definition dm32uv_codeplug.cc:2771
virtual void setVFOModeA(VFOMode mode)
Sets the VFO A mode.
Definition dm32uv_codeplug.cc:2974
virtual STEMode steMode() const
Returns the squelch tail elimination mode.
Definition dm32uv_codeplug.cc:3260
virtual void setDMRMicLevel(Level level)
Sets the DMR mic level.
Definition dm32uv_codeplug.cc:3286
virtual void setPosUpdatePeriod(const Interval &period)
Sets the position update period.
Definition dm32uv_codeplug.cc:2699
virtual void setBootDisplay(BootDisplay dis)
Sets the boot display.
Definition dm32uv_codeplug.cc:2277
RecordMode
Possible recording modes.
Definition dm32uv_codeplug.hh:1444
virtual void setP1Short(KeyFunction::Function function)
Sets the programmable key 1 short-press function.
Definition dm32uv_codeplug.cc:3098
virtual Interval posUpdatePeriod() const
Returns the position update period.
Definition dm32uv_codeplug.cc:2694
virtual void setVFOModeB(VFOMode mode)
Sets the VFO B mode.
Definition dm32uv_codeplug.cc:2984
virtual void setCallColor(Color::Code c)
Sets the call color.
Definition dm32uv_codeplug.cc:2584
virtual VFOMode vfoModeB() const
Returns the VFO B mode.
Definition dm32uv_codeplug.cc:2979
virtual void setVFODisplayModeA(VFODisplayMode mode)
Sets the VFO A display mode.
Definition dm32uv_codeplug.cc:2952
virtual Interval longPressDuration() const
Returns the long-press duration.
Definition dm32uv_codeplug.cc:3134
virtual void setActiveWaitTime(Interval waitTime)
Sets the active wait time.
Definition dm32uv_codeplug.cc:2765
virtual void enableKeyTone(bool enable)
Enables key tones.
Definition dm32uv_codeplug.cc:2363
virtual DMRSettings::TalkerAliasEncoding talkerAliasEncoding() const
Returns the talker alias format.
Definition dm32uv_codeplug.cc:2890
virtual Interval dualStandbyHangTime() const
Returns the dual-standby hang-time.
Definition dm32uv_codeplug.cc:3001
static constexpr unsigned int size()
Returns the size og the element.
Definition dm32uv_codeplug.hh:1521
virtual void enableSideKeyLock(bool enable)
Enable side key lock.
Definition dm32uv_codeplug.cc:3017
virtual Interval autoPowerOffDelay() const
Returns the auto-power-off delay.
Definition dm32uv_codeplug.cc:2315
TalkerAliasSource
Talker alias sources.
Definition dm32uv_codeplug.hh:1459
virtual bool bootToneEnabled() const
Returns true if boot tone is enabled.
Definition dm32uv_codeplug.cc:2423
virtual Interval autoKeyLockDelay() const
Returns the auto key-lock delay.
Definition dm32uv_codeplug.cc:3034
virtual Level fmMicLevel() const
Returns the FM mic level.
Definition dm32uv_codeplug.cc:3271
virtual bool keyToneEnabled() const
Returns true if key tones are enabled.
Definition dm32uv_codeplug.cc:2358
virtual void enableDMRRemoteRadioCheck(bool enable)
Enables remote radio check.
Definition dm32uv_codeplug.cc:2820
virtual bool dmrRXAlertEnabled() const
Returns true reception of DMR alerts is enabled.
Definition dm32uv_codeplug.cc:2837
TalkerAliasFormat
Talker alias formats.
Definition dm32uv_codeplug.hh:1454
virtual void setPositionFormat(PositionFormat format)
Sets the position display format.
Definition dm32uv_codeplug.cc:2645
virtual void enableRecording(bool enable)
Enables/disables recording.
Definition dm32uv_codeplug.cc:2721
virtual void setTransmitTimeoutReminder(Interval timeout)
Sets transmit timeout reminder.
Definition dm32uv_codeplug.cc:3169
virtual void enableGroupCallTone(bool enable)
Enables group call tones.
Definition dm32uv_codeplug.cc:2385
virtual KeyFunction::Function p2Short() const
Returns the programmable key 2 short-press function.
Definition dm32uv_codeplug.cc:3113
virtual bool voicePromptEnabled() const
Returns true if voice prompt is enabled.
Definition dm32uv_codeplug.cc:2434
virtual Interval menuDuration() const
Returns the menu hold time.
Definition dm32uv_codeplug.cc:2528
virtual void setSMSFormat(SMSExtension::Format format)
Sets the DMR SMS format.
Definition dm32uv_codeplug.cc:2858
virtual void setFMRogerTone(FMRogerTone tone)
Sets the FM roger tone.
Definition dm32uv_codeplug.cc:2461
virtual bool dmrRemoteReenableEnabled() const
Returns true if the remote reenable is enabled.
Definition dm32uv_codeplug.cc:2826
virtual VFODisplayMode vfoDisplayModeA() const
Returns the VFO A display mode.
Definition dm32uv_codeplug.cc:2947
virtual void setLongPressDuration(Interval duration)
Sets the long-press duration.
Definition dm32uv_codeplug.cc:3139
virtual void setSK1Short(KeyFunction::Function function)
Sets the side-key 1 short-press function.
Definition dm32uv_codeplug.cc:3057
virtual KeyFunction::Function sk2Long() const
Returns the side-key 2 long-press function.
Definition dm32uv_codeplug.cc:3082
virtual Interval dmrRemoteMonitorDuration() const
Returns the remote monitor duration.
Definition dm32uv_codeplug.cc:2879
virtual PositionFormat positionFormat() const
Returns the position display format.
Definition dm32uv_codeplug.cc:2640
virtual void enableDMRRemoteMonitor(bool enable)
Enables the remote monitor.
Definition dm32uv_codeplug.cc:2798
virtual QString bootMessage1() const
Returns the first boot message line.
Definition dm32uv_codeplug.cc:2283
virtual bool mcuResetEnabled() const
Returns true if MCU reset is enabled.
Definition dm32uv_codeplug.cc:2304
virtual Color::Code zoneNameBColor() const
Returns the zone name B color.
Definition dm32uv_codeplug.cc:2629
virtual KeyFunction::Function p2Long() const
Returns the programmable key 2 long-press function.
Definition dm32uv_codeplug.cc:3123
virtual void setBootMessage1(const QString &msg)
Sets the first boot message line.
Definition dm32uv_codeplug.cc:2288
virtual unsigned int displayBrightness() const
Returns the display brightness setting [0-10].
Definition dm32uv_codeplug.cc:2467
virtual bool txTalkerAliasEnabled() const
Returns true, if transmission of talker alias is enabled.
Definition dm32uv_codeplug.cc:2903
virtual void setStandbyColor(Color::Code c)
Sets the standby text color.
Definition dm32uv_codeplug.cc:2594
virtual void enableLowBatteryTone(bool enable)
Enables low-battery tones.
Definition dm32uv_codeplug.cc:2450
virtual bool dmrRemoteMonitorEnabled() const
Returns true if the DMR remote monitor is enabled.
Definition dm32uv_codeplug.cc:2793
virtual void enablePrivateCallTone(bool enable)
Enables group call tones.
Definition dm32uv_codeplug.cc:2395
virtual void setDualStandbyHangTime(Interval hangTime)
Sets the dual-standby hang-time.
Definition dm32uv_codeplug.cc:3006
virtual DateFormat dateFormat() const
Returns the date format.
Definition dm32uv_codeplug.cc:2557
virtual void enableEOTTone(bool enable)
Enables EOT tones.
Definition dm32uv_codeplug.cc:2406
virtual void setTBSTFrequency(const Frequency &frequency)
Sets the TBST frequency.
Definition dm32uv_codeplug.cc:3247
virtual bool knobLockEnabled() const
Returns true, if the knowb is locked.
Definition dm32uv_codeplug.cc:3023
virtual FMRogerTone fmRogerTone() const
Returns the FM roger tone setting.
Definition dm32uv_codeplug.cc:2456
virtual Interval transmitTimeoutReminder() const
Returns the transmit timeout reminder.
Definition dm32uv_codeplug.cc:3164
virtual void setVOXLevel(Level voxLevel)
Sets the VOX level.
Definition dm32uv_codeplug.cc:3182
virtual QTimeZone timeZone() const
Returns the time zone.
Definition dm32uv_codeplug.cc:2683
virtual void setSTEMode(STEMode mode)
Sets the STE mode.
Definition dm32uv_codeplug.cc:3265
virtual Interval activeWaitTime() const
Returns the active wait time.
Definition dm32uv_codeplug.cc:2760
virtual void setSK2Short(KeyFunction::Function function)
Sets the side-key 2 short-press function.
Definition dm32uv_codeplug.cc:3077
DateFormat
Possible date formats.
Definition dm32uv_codeplug.hh:1416
virtual Color::Code channelNameBColor() const
Returns the channel name B color.
Definition dm32uv_codeplug.cc:2609
virtual bool recordingEnabled() const
Returns true if recording is enabled.
Definition dm32uv_codeplug.cc:2716
virtual PowerSaveMode powerSaveMode() const
Returns the power-save mode.
Definition dm32uv_codeplug.cc:3203
virtual QString bootMessage2() const
Returns the second boot message line.
Definition dm32uv_codeplug.cc:2293
virtual void enableTalkPermitTone(bool enable)
Enables talk permit tones.
Definition dm32uv_codeplug.cc:2417
AutoPowerOffDelay
Possible auto-power-off delays.
Definition dm32uv_codeplug.hh:1400
virtual void setChannelNameBColor(Color::Code c)
Sets the channel name B color.
Definition dm32uv_codeplug.cc:2614
virtual bool privateCallMatchEnabled() const
Returns true if private call must match.
Definition dm32uv_codeplug.cc:2738
virtual RecordMode recordMode() const
Returns possible recording modes.
Definition dm32uv_codeplug.cc:2705
virtual Interval backlightDuration() const
Returns the backlight duration.
Definition dm32uv_codeplug.cc:2478
virtual void setAutoKeyLockDelay(Interval delay)
Sets the auto key-lock delay.
Definition dm32uv_codeplug.cc:3041
DualStandbyMode
Possible dual-standby modes.
Definition dm32uv_codeplug.hh:1464
virtual void enablePrivateCallMatch(bool enable)
Enables private call match.
Definition dm32uv_codeplug.cc:2743
GroupListBitmapElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1092
virtual GroupListBitmapElement bitmap() const
Retunrs the bitmap.
Definition dm32uv_codeplug.cc:1117
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all group lists.
Definition dm32uv_codeplug.cc:1161
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:640
virtual GroupListElement groupList(unsigned int n) const
Returns the n-th group list element.
Definition dm32uv_codeplug.cc:1122
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all group lists.
Definition dm32uv_codeplug.cc:1145
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all group lists.
Definition dm32uv_codeplug.cc:1128
GroupListBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:1103
Implements the group list bank element.
Definition dm32uv_codeplug.hh:565
virtual bool link(RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack())
Links this group list.
Definition dm32uv_codeplug.cc:1056
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:575
virtual bool encode(const RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes this group list.
Definition dm32uv_codeplug.cc:1079
virtual QString name() const
Returns the name of the list.
Definition dm32uv_codeplug.cc:1018
virtual void clearId(unsigned int n)
Clears the n-th ID.
Definition dm32uv_codeplug.cc:1044
virtual RXGroupList * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes this group list.
Definition dm32uv_codeplug.cc:1050
virtual unsigned int id(unsigned int n)
Returns the n-th ID.
Definition dm32uv_codeplug.cc:1034
virtual bool validId(unsigned int n)
Retruns true if the n-th ID is set.
Definition dm32uv_codeplug.cc:1029
GroupListElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:1004
virtual void setId(unsigned int n, unsigned int id)
Sets the n-th ID.
Definition dm32uv_codeplug.cc:1039
virtual void setName(const QString &name)
Sets the name of the list.
Definition dm32uv_codeplug.cc:1023
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2202
MenuSettingElement(uint8_t *ptr)
Constructor.
virtual void clearReadPassword()
Clears the read password.
Definition dm32uv_codeplug.cc:3657
virtual void setReadPassword(const QString &value)
Sets the read password.
Definition dm32uv_codeplug.cc:3651
virtual QString readPassword() const
Returns the read password.
Definition dm32uv_codeplug.cc:3646
PasswordSettingsElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:3590
virtual bool writePasswordEnabled() const
Returns true if the write password is set.
Definition dm32uv_codeplug.cc:3619
virtual QString bootPassword() const
Returns the boot password.
Definition dm32uv_codeplug.cc:3602
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2141
virtual void clearWritePassword()
Clears the write password.
Definition dm32uv_codeplug.cc:3635
virtual void setWritePassword(const QString &value)
Sets the write password.
Definition dm32uv_codeplug.cc:3629
virtual QString writePassword() const
Returns the write password.
Definition dm32uv_codeplug.cc:3624
virtual void clearBootPassword()
Clears the boot password.
Definition dm32uv_codeplug.cc:3613
virtual bool bootPasswordEnabled() const
Returns true if the boot password is set.
Definition dm32uv_codeplug.cc:3597
virtual bool readPasswordEnabled() const
Returns true if the read password is set.
Definition dm32uv_codeplug.cc:3641
virtual void setBootPassword(const QString &value)
Sets the boot password.
Definition dm32uv_codeplug.cc:3607
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:724
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes add radio IDs.
Definition dm32uv_codeplug.cc:1268
virtual RadioIdElement id(unsigned int n) const
Returns the n-th DMR Id.
Definition dm32uv_codeplug.cc:1246
virtual unsigned int idCount() const
Returns the number of IDs.
Definition dm32uv_codeplug.cc:1235
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all radio IDs.
Definition dm32uv_codeplug.cc:1252
RadioIdBankElement(uint8_t *ptr)
Contsturctor.
Definition dm32uv_codeplug.cc:1227
virtual void setIdCount(unsigned int n)
Sets the number of encoded IDs.
Definition dm32uv_codeplug.cc:1240
Implements a DMR radio ID.
Definition dm32uv_codeplug.hh:675
virtual void setId(unsigned int id)
Sets the DMR id.
Definition dm32uv_codeplug.cc:1191
virtual bool encode(const DMRRadioID *id, const ErrorStack &err=ErrorStack())
Encodes the given ID.
Definition dm32uv_codeplug.cc:1215
RadioIdElement(uint8_t *ptr)
Contsturctor.
Definition dm32uv_codeplug.cc:1178
virtual DMRRadioID * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the radio ID.
Definition dm32uv_codeplug.cc:1208
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:681
virtual QString name() const
Returns the name of the id.
Definition dm32uv_codeplug.cc:1197
virtual unsigned int id() const
Returns the DMR Id.
Definition dm32uv_codeplug.cc:1186
virtual void setName(const QString &name)
Sets the name of the id.
Definition dm32uv_codeplug.cc:1202
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all roaming channels.
Definition dm32uv_codeplug.cc:1951
virtual RoamingChannelElement channel(unsigned int n)
Returns the n-th channel.
Definition dm32uv_codeplug.cc:1931
RoamingChannelBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1914
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1156
virtual void setCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:1926
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decides all romaming channels.
Definition dm32uv_codeplug.cc:1936
virtual unsigned int count() const
Returns the number of channels.
Definition dm32uv_codeplug.cc:1921
Implements a roaming channel.
Definition dm32uv_codeplug.hh:1082
virtual Frequency rxFrequency() const
Returns the RX frequency.
Definition dm32uv_codeplug.cc:1836
virtual void setRXFrequency(const Frequency &f)
Sets the RX frequency.
Definition dm32uv_codeplug.cc:1841
TimeSlot
Possible time-slot settings.
Definition dm32uv_codeplug.hh:1085
virtual void setTimeSlot(DMRChannel::TimeSlot ts)
Sets the time slots.
Definition dm32uv_codeplug.cc:1875
virtual void setTXFrequency(const Frequency &f)
Sets the TX frequency.
Definition dm32uv_codeplug.cc:1851
virtual void setColorCode(unsigned int cc)
Sets the color code.
Definition dm32uv_codeplug.cc:1861
virtual RoamingChannel * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes the roaming channel.
Definition dm32uv_codeplug.cc:1884
virtual void setName(const QString &name)
Sets the name of the channel.
Definition dm32uv_codeplug.cc:1831
virtual unsigned int colorCode() const
Return the color code.
Definition dm32uv_codeplug.cc:1856
RoamingChannelElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1819
virtual Frequency txFrequency() const
Returns the TX frequency.
Definition dm32uv_codeplug.cc:1846
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1094
virtual DMRChannel::TimeSlot timeSlot() const
Returns the time slot.
Definition dm32uv_codeplug.cc:1866
virtual bool encode(const RoamingChannel *ch, const ErrorStack &err=ErrorStack())
Encodes the roaming channel.
Definition dm32uv_codeplug.cc:1899
virtual QString name() const
Returns the name of the channel.
Definition dm32uv_codeplug.cc:1826
virtual void enableAutoRoam(bool enable)
Enables auto roaming.
Definition dm32uv_codeplug.cc:2074
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encode all roaming zones.
Definition dm32uv_codeplug.cc:2149
virtual unsigned int count() const
Returns the zone count.
Definition dm32uv_codeplug.cc:2058
RoamingZoneBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2051
virtual void setRoamingDelay(const Interval &delay)
Sets the roaming delay.
Definition dm32uv_codeplug.cc:2085
virtual void setCount(unsigned int n)
Sets the number of zones.
Definition dm32uv_codeplug.cc:2063
virtual Interval roamingDelay() const
Returns the roaming delay.
Definition dm32uv_codeplug.cc:2080
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all roaming zones.
Definition dm32uv_codeplug.cc:2132
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1256
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all roaming zones.
Definition dm32uv_codeplug.cc:2118
virtual RoamingZoneElement zone(unsigned int n)
Returns the n-th roaming zone.
Definition dm32uv_codeplug.cc:2112
virtual bool autoRoamEnabled() const
Returns true if auto roaming is enabled.
Definition dm32uv_codeplug.cc:2069
virtual void clearDefaultRoamingZoneIndex()
Clears the default roaming zone index.
Definition dm32uv_codeplug.cc:2106
virtual void setDefaultRoamingZoneIndex(unsigned int idx)
Sets the default roaming zone index.
Definition dm32uv_codeplug.cc:2101
virtual unsigned int defaultRoamingZoneIndex() const
Returns the default roaming zone index.
Definition dm32uv_codeplug.cc:2096
virtual bool defaultRoamingZoneIndexValid() const
Returns true, if a default roaming zone is set.
Definition dm32uv_codeplug.cc:2091
En/Decodes a roaming zone.
Definition dm32uv_codeplug.hh:1192
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:2006
virtual void clearChannelIndex(unsigned int n)
Clears the n-th channel index.
Definition dm32uv_codeplug.cc:2011
RoamingZoneElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1967
virtual QString name() const
Returns the name of the zone.
Definition dm32uv_codeplug.cc:1975
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1198
virtual unsigned int channelIndex(unsigned int n)
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:2001
virtual void setName(const QString &name)
Sets the name.
Definition dm32uv_codeplug.cc:1980
virtual void setCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:1990
virtual bool link(RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given roaming zone.
Definition dm32uv_codeplug.cc:2022
virtual bool encode(const RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given roaming zone.
Definition dm32uv_codeplug.cc:2036
virtual RoamingZone * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the roaming zone.
Definition dm32uv_codeplug.cc:2016
virtual unsigned int count() const
Returns the channel count.
Definition dm32uv_codeplug.cc:1985
virtual bool channelIndexValid(unsigned int n)
Returns true if the n-th channel index is set.
Definition dm32uv_codeplug.cc:1996
virtual SMSTemplateElement message(unsigned int n) const
Returns the n-th message.
Definition dm32uv_codeplug.cc:2213
virtual void setCount(unsigned int n)
Sets the number of messages.
Definition dm32uv_codeplug.cc:2207
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1358
virtual unsigned int count() const
Returns the number of messages.
Definition dm32uv_codeplug.cc:2202
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all preset SMS messages.
Definition dm32uv_codeplug.cc:2218
SMSTemplateBankElement(uint8_t *ptr)
Constructor from pointer.
Definition dm32uv_codeplug.cc:2195
A sinlge preset message.
Definition dm32uv_codeplug.hh:1316
SMSTemplate * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes a single message.
Definition dm32uv_codeplug.cc:2185
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1322
virtual QString message() const
Returns the message text.
Definition dm32uv_codeplug.cc:2172
SMSTemplateElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2165
virtual void setMessage(const QString &msg)
Sets the message text.
Definition dm32uv_codeplug.cc:2178
Implements the scan list bank.
Definition dm32uv_codeplug.hh:1014
virtual void setUHFRange(const FrequencyRange &range)
Sets the UHF scan range.
Definition dm32uv_codeplug.cc:1769
virtual FrequencyRange uhfRange() const
Returns the UHF scan range.
Definition dm32uv_codeplug.cc:1763
virtual void setVHFRange(const FrequencyRange &range)
Sets the VHF scan range.
Definition dm32uv_codeplug.cc:1757
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decode all scan lists.
Definition dm32uv_codeplug.cc:1776
virtual FrequencyRange vhfRange() const
Returns the VHF scan range.
Definition dm32uv_codeplug.cc:1751
virtual ScanMode scanMode() const
Returns the scan mode.
Definition dm32uv_codeplug.cc:1740
virtual void setCount(unsigned int n)
Sets the number of scan lists.
Definition dm32uv_codeplug.cc:1728
virtual ScanListElement scanList(unsigned int n) const
Returns the n-th scan list.
Definition dm32uv_codeplug.cc:1734
virtual unsigned int count() const
Returns the number of scan lists.
Definition dm32uv_codeplug.cc:1723
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all scan lists.
Definition dm32uv_codeplug.cc:1803
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:1026
virtual void setScanMode(ScanMode mode)
Sets the scan mode.
Definition dm32uv_codeplug.cc:1745
ScanMode
Possible scan modes.
Definition dm32uv_codeplug.hh:1017
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Link all scan lists.
Definition dm32uv_codeplug.cc:1790
Implements a scan list.
Definition dm32uv_codeplug.hh:892
virtual bool encode(const ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Encode the scan list.
Definition dm32uv_codeplug.cc:1689
virtual void setChannelCount(unsigned int count)
Sets the channel count.
Definition dm32uv_codeplug.cc:1502
virtual unsigned int revertChannelIndex() const
Returns the revert channel index.
Definition dm32uv_codeplug.cc:1588
virtual bool secondaryChannelIndexValid() const
Returns true if the secondary priority channel index is set.
Definition dm32uv_codeplug.cc:1541
virtual ScanList * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the scan list.
Definition dm32uv_codeplug.cc:1639
ToneDetectionMode
Possible CTCSS/DCS detection modes.
Definition dm32uv_codeplug.hh:900
virtual void setHangTime(const Interval &dur)
Sets the scan hang time.
Definition dm32uv_codeplug.cc:1535
virtual QString name() const
Returns the name of the scan list.
Definition dm32uv_codeplug.cc:1486
virtual void setName(const QString &name)
Sets the name of the scan list.
Definition dm32uv_codeplug.cc:1491
virtual void setToneDetectionMode(ToneDetectionMode mode)
Sets the tone-detection mode.
Definition dm32uv_codeplug.cc:1524
TransmitMode
Possible transmit modes.
Definition dm32uv_codeplug.hh:895
virtual void setRevertChannelIndex(unsigned int idx)
Sets the revert channel index.
Definition dm32uv_codeplug.cc:1593
virtual void setPrimaryChannelIndex(unsigned int idx)
Sets the primary priority channel index.
Definition dm32uv_codeplug.cc:1572
virtual bool revertChannelIndexValid() const
Returns true if the revert channel index is set.
Definition dm32uv_codeplug.cc:1583
virtual unsigned int channelCount() const
Returns the number of channels.
Definition dm32uv_codeplug.cc:1497
virtual bool isCurrentChannel(unsigned int n) const
Returns true, if the n-th channel index refers to the current channel.
Definition dm32uv_codeplug.cc:1619
virtual void clearPrimaryChannelIndex()
Clears the primary priority channel index.
Definition dm32uv_codeplug.cc:1577
virtual unsigned int primaryChannelIndex() const
Returns the primary priority channel index.
Definition dm32uv_codeplug.cc:1567
virtual void clearSecondaryChannelIndex()
Clears the secondary priority channel index.
Definition dm32uv_codeplug.cc:1556
virtual ToneDetectionMode toneDetectionMode() const
Returns the tone-detection mode.
Definition dm32uv_codeplug.cc:1519
virtual void setPrioritySweepTime(const Interval &dur)
Sets the priority sweep time.
Definition dm32uv_codeplug.cc:1609
virtual void setTransmitMode(TransmitMode mode)
Sets the transmit mode.
Definition dm32uv_codeplug.cc:1513
virtual bool link(ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given scan list.
Definition dm32uv_codeplug.cc:1645
virtual TransmitMode transmitMode() const
Returns the transmit mode.
Definition dm32uv_codeplug.cc:1508
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:1629
virtual Interval prioritySweepTime() const
Returns the priority sweep time.
Definition dm32uv_codeplug.cc:1604
virtual bool primaryChannelIndexValid() const
Returns true if the primary priority channel index is set.
Definition dm32uv_codeplug.cc:1562
virtual unsigned int secondaryChannelIndex() const
Returns the secondary priority channel index.
Definition dm32uv_codeplug.cc:1546
virtual unsigned int channelIndex(unsigned int n) const
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:1624
virtual Interval hangTime() const
Returns the scan hang time.
Definition dm32uv_codeplug.cc:1530
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:909
virtual void clearRevertChannelIndex()
Clears the revert channel index.
Definition dm32uv_codeplug.cc:1598
virtual void setCurrentChannel(unsigned int n)
Sets the n-th channel index to the current channel.
Definition dm32uv_codeplug.cc:1634
ScanListElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1479
virtual void setSecondaryChannelIndex(unsigned int idx)
Sets the secondary priority channel index.
Definition dm32uv_codeplug.cc:1551
virtual unsigned int zoneIndexA() const
Returns the zone index VFO A.
Definition dm32uv_codeplug.cc:1439
virtual void clearChannelIndexA()
Clears the channel index VFO A.
Definition dm32uv_codeplug.cc:1407
virtual void setZoneIndexA(unsigned int idx)
Sets the zone index VFO A.
Definition dm32uv_codeplug.cc:1444
virtual unsigned int channelIndexB() const
Returns the channel index VFO B.
Definition dm32uv_codeplug.cc:1418
virtual void setZoneIndexB(unsigned int idx)
Sets the zone index VFO B.
Definition dm32uv_codeplug.cc:1465
ZoneBankElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1374
virtual bool channelIndexAValid() const
Returns true if the channel index VFO A is set.
Definition dm32uv_codeplug.cc:1392
virtual void clearChannelIndexB()
Clears the channel index VFO B.
Definition dm32uv_codeplug.cc:1428
static constexpr unsigned int size()
Returns the size of a zone bank.
Definition dm32uv_codeplug.hh:822
virtual void setChannelIndexB(unsigned int idx)
Sets the channel index VFO B.
Definition dm32uv_codeplug.cc:1423
virtual bool zoneIndexAValid() const
Returns true if the zone index VFO A is set.
Definition dm32uv_codeplug.cc:1434
virtual void setChannelIndexA(unsigned int idx)
Sets the channel index VFO A.
Definition dm32uv_codeplug.cc:1402
virtual unsigned int count() const
Returns the total number of zones.
Definition dm32uv_codeplug.cc:1381
virtual void clearZoneIndexA()
Clears the zone index VFO A.
Definition dm32uv_codeplug.cc:1449
virtual void clearZoneIndexB()
Clears the zone index VFO B.
Definition dm32uv_codeplug.cc:1470
virtual void setCount(unsigned int n)
Sets the total number of zones.
Definition dm32uv_codeplug.cc:1386
virtual bool channelIndexBValid() const
Returns true if the channel index VFO B is set.
Definition dm32uv_codeplug.cc:1413
virtual bool zoneIndexBValid() const
Returns true if the zone index VFO B is set.
Definition dm32uv_codeplug.cc:1455
virtual unsigned int channelIndexA() const
Returns the channel index VFO A.
Definition dm32uv_codeplug.cc:1397
virtual unsigned int zoneIndexB() const
Returns the zone index VFO B.
Definition dm32uv_codeplug.cc:1460
virtual unsigned int channelCount() const
Retunrs the number of channels.
Definition dm32uv_codeplug.cc:1304
ZoneElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1286
virtual bool channelIndexValid(unsigned int n) const
Returns true, if the channel index is set.
Definition dm32uv_codeplug.cc:1315
virtual void clearChannelIndex(unsigned int n)
Clears the n-th channel index.
Definition dm32uv_codeplug.cc:1330
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:766
virtual QString name() const
Returns the name.
Definition dm32uv_codeplug.cc:1293
virtual Zone * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decode zone.
Definition dm32uv_codeplug.cc:1336
virtual void setName(const QString &name)
Sets the name of the zone.
Definition dm32uv_codeplug.cc:1298
virtual bool encode(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes a zone.
Definition dm32uv_codeplug.cc:1358
virtual unsigned int channelIndex(unsigned int n) const
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:1320
virtual void setChannelCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:1309
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:1325
virtual bool link(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Link zone.
Definition dm32uv_codeplug.cc:1342
virtual bool decodeChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all channels defined.
Definition dm32uv_codeplug.cc:4173
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Links all decoded channels.
Definition dm32uv_codeplug.cc:4211
virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decode codeplug elements.
Definition dm32uv_codeplug.cc:4002
virtual bool encodeContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Allocate and encode contacts.
Definition dm32uv_codeplug.cc:4322
bool encode(Config *config, const Flags &flags, const ErrorStack &err=ErrorStack()) override
Encodes a given abstract configuration (config) to the device specific binary code-plug.
Definition dm32uv_codeplug.cc:3961
DM32UVCodeplug(QObject *parent=nullptr)
Default/empty constructor.
Definition dm32uv_codeplug.cc:3845
virtual bool decodeZones(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all zones defined.
Definition dm32uv_codeplug.cc:4360
virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack())
Link decoded elements.
Definition dm32uv_codeplug.cc:4063
Config * preprocess(Config *config, const ErrorStack &err) const override
Returns a prepared configuration for this particular radio.
Definition dm32uv_codeplug.cc:3853
bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const override
Indexes all elements of the codeplug.
Definition dm32uv_codeplug.cc:3904
bool postprocess(Config *config, const ErrorStack &err) const override
Returns a post-processed configuration of the decoded config.
Definition dm32uv_codeplug.cc:3886
virtual bool encodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Encode all elements.
Definition dm32uv_codeplug.cc:4099
virtual bool encodeChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all channels.
Definition dm32uv_codeplug.cc:4247
virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack())
Links all decoded zones.
Definition dm32uv_codeplug.cc:4385
virtual bool encodeZones(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all zones.
Definition dm32uv_codeplug.cc:4408
virtual bool decodeContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Decode contacts.
Definition dm32uv_codeplug.cc:4300
bool decode(Config *config, const ErrorStack &err=ErrorStack()) override
Decodes a binary codeplug to the given abstract configuration config.
Definition dm32uv_codeplug.cc:3984
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:439
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 a DMR radio ID within the abstract config.
Definition radioid.hh:33
TalkerAliasEncoding
Possible talker alias encodings.
Definition dmrsettings.hh:35
Base class of all encryption keys.
Definition encryptionextension.hh:10
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
Bandwidth
Possible bandwidth of an analog channel.
Definition channel.hh:279
Represents a time interval.
Definition interval.hh:11
static constexpr Interval fromMinutes(unsigned long long min)
Definition interval.hh:79
static constexpr Interval fromSeconds(unsigned long long s)
Definition interval.hh:76
static constexpr Interval fromMilliseconds(unsigned long long ms)
Definition interval.hh:73
Some simple class implementing a [1-10] level setting.
Definition level.hh:15
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Simple range class representing some range in some data type.
Definition ranges.hh:14
Represents a roaming channel.
Definition roamingchannel.hh:16
Represents a RoamingZone within the abstract device configuration.
Definition roamingzone.hh:15
Format
Possible SMS formats, DMR is usually a good idea.
Definition smsextension.hh:65
Represents a SMS message template (pre defined message).
Definition smsextension.hh:11
Generic representation of a scan list.
Definition scanlist.hh:15
Represents a zone within the generic configuration.
Definition zone.hh:15
Some limits for the settings.
Definition dm32uv_codeplug.hh:2106
static constexpr Range< Interval > updatePeriod()
Valid range for update period.
Definition dm32uv_codeplug.hh:2108
static constexpr unsigned int revertChannels()
Number of revert channels.
Definition dm32uv_codeplug.hh:2112
Some offsets within the element.
Definition dm32uv_codeplug.hh:2117
Some limits.
Definition dm32uv_codeplug.hh:304
static constexpr unsigned int channelsPerBlock()
Maximum number of channels per block.
Definition dm32uv_codeplug.hh:310
static constexpr unsigned int channelsInBlock0()
Maximum number of channels in block 0.
Definition dm32uv_codeplug.hh:308
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:306
Some internal offsets.
Definition dm32uv_codeplug.hh:314
Some limits.
Definition dm32uv_codeplug.hh:224
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:226
static constexpr Range< unsigned int > squelchLevel()
Maximum squelch level.
Definition dm32uv_codeplug.hh:228
Some internal offsets.
Definition dm32uv_codeplug.hh:239
Some limits.
Definition dm32uv_codeplug.hh:374
static constexpr unsigned int count()
The number of elements within each bank.
Definition dm32uv_codeplug.hh:376
Some offsets.
Definition dm32uv_codeplug.hh:380
static constexpr unsigned int betweenBanks()
Offset betwenn banks.
Definition dm32uv_codeplug.hh:382
Some internal offsets within the element.
Definition dm32uv_codeplug.hh:360
Some limts for the contact bank.
Definition dm32uv_codeplug.hh:451
static constexpr unsigned int contacts()
Maximum number of contacts.
Definition dm32uv_codeplug.hh:453
Some internal offsets.
Definition dm32uv_codeplug.hh:458
Some limits.
Definition dm32uv_codeplug.hh:429
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:431
Some internal offsets.
Definition dm32uv_codeplug.hh:436
Some internal offsets.
Definition dm32uv_codeplug.hh:550
Some limits for the element.
Definition dm32uv_codeplug.hh:2349
static constexpr unsigned int keys()
Maximum number of keys.
Definition dm32uv_codeplug.hh:2351
Some internal offsets.
Definition dm32uv_codeplug.hh:2356
Some limits of the element.
Definition dm32uv_codeplug.hh:2306
static constexpr unsigned int keyLength()
Maximum key length (bytes).
Definition dm32uv_codeplug.hh:2310
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:2308
Some internal offsets.
Definition dm32uv_codeplug.hh:2315
Implements the translation between color names and code.
Definition dm32uv_codeplug.hh:1423
Helper encoding/decoding key functions.
Definition dm32uv_codeplug.hh:1485
Some limits.
Definition dm32uv_codeplug.hh:1925
static constexpr Range< Interval > voxDelay()
Range of valid VOX delays.
Definition dm32uv_codeplug.hh:1941
static constexpr unsigned int bootMessageLength()
Maximum boot message length.
Definition dm32uv_codeplug.hh:1927
static constexpr Range< unsigned int > micGain()
Valid mic gain settings.
Definition dm32uv_codeplug.hh:1947
static constexpr Range< unsigned int > activeRetires()
Range of valid active retires.
Definition dm32uv_codeplug.hh:1931
static constexpr Range< unsigned int > vox()
Valid VOX sensitivity levels.
Definition dm32uv_codeplug.hh:1945
static constexpr unsigned int maxBrightness()
Maximum display brightness.
Definition dm32uv_codeplug.hh:1929
static constexpr Range< Interval > longPressDuration()
Range of valid long-press durations.
Definition dm32uv_codeplug.hh:1933
static constexpr Range< Interval > transmitTimeout()
Range of valid transmit timeouts.
Definition dm32uv_codeplug.hh:1937
Some internal offsets.
Definition dm32uv_codeplug.hh:1952
Some limits.
Definition dm32uv_codeplug.hh:657
static constexpr unsigned int groupLists()
Maximum number of group lists.
Definition dm32uv_codeplug.hh:659
Some internal offsets.
Definition dm32uv_codeplug.hh:664
Some limits.
Definition dm32uv_codeplug.hh:600
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:602
static constexpr unsigned int contacts()
Maximum number of indices.
Definition dm32uv_codeplug.hh:604
Some internal offsets.
Definition dm32uv_codeplug.hh:609
Some internal limits.
Definition dm32uv_codeplug.hh:2410
Some internal offsets.
Definition dm32uv_codeplug.hh:2206
Some internal offsets.
Definition dm32uv_codeplug.hh:2419
Some limits for the element.
Definition dm32uv_codeplug.hh:2173
static constexpr unsigned int passwordLength()
Maximum password length.
Definition dm32uv_codeplug.hh:2175
Some internal offsets.
Definition dm32uv_codeplug.hh:2181
Some limits.
Definition dm32uv_codeplug.hh:741
static constexpr unsigned int ids()
Maximum number of IDs.
Definition dm32uv_codeplug.hh:743
Some internal offsets.
Definition dm32uv_codeplug.hh:748
Some limits.
Definition dm32uv_codeplug.hh:700
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:702
Some internal offsets.
Definition dm32uv_codeplug.hh:707
Some limits.
Definition dm32uv_codeplug.hh:1173
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:1175
Some internal offsets.
Definition dm32uv_codeplug.hh:1180
Some limits.
Definition dm32uv_codeplug.hh:1129
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:1131
Some internal offsets.
Definition dm32uv_codeplug.hh:1136
Some limits.
Definition dm32uv_codeplug.hh:1294
static constexpr unsigned int zones()
Maximum number of zones.
Definition dm32uv_codeplug.hh:1296
Some internal offsets.
Definition dm32uv_codeplug.hh:1301
Some limits.
Definition dm32uv_codeplug.hh:1228
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:1230
static constexpr unsigned int channels()
Maximum number of channels per zone.
Definition dm32uv_codeplug.hh:1232
Some internal offsets.
Definition dm32uv_codeplug.hh:1237
Some limits.
Definition dm32uv_codeplug.hh:1373
static constexpr unsigned int messages()
Maximum number of messages.
Definition dm32uv_codeplug.hh:1375
Some internal offsets.
Definition dm32uv_codeplug.hh:1380
Some limits.
Definition dm32uv_codeplug.hh:1334
static constexpr unsigned int messageLength()
Maximum message length.
Definition dm32uv_codeplug.hh:1336
Some internal offsets.
Definition dm32uv_codeplug.hh:1341
Some limits.
Definition dm32uv_codeplug.hh:1060
static constexpr unsigned int scanLists()
Maximum number of scan lists.
Definition dm32uv_codeplug.hh:1062
Some internal offsets.
Definition dm32uv_codeplug.hh:1066
Some limits.
Definition dm32uv_codeplug.hh:986
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:988
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:990
Some internal offsets.
Definition dm32uv_codeplug.hh:995
Some limits.
Definition dm32uv_codeplug.hh:867
static constexpr unsigned int zonesPerBlock()
Maximum number of zones per block.
Definition dm32uv_codeplug.hh:871
static constexpr unsigned int zones()
Maximum number of zones.
Definition dm32uv_codeplug.hh:869
Some internal offsets.
Definition dm32uv_codeplug.hh:876
Some limits.
Definition dm32uv_codeplug.hh:796
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:798
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:800
Some internal offsets.
Definition dm32uv_codeplug.hh:805
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:107
Encodes a selective call.
Definition signaling.hh:13