libdrmconf 0.15.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 "bootsettings.hh"
14#include "smsextension.hh"
15#include "gnsssettings.hh"
16#include "dmrsettings.hh"
17
18// forward declaration
19class Zone;
20class SMSTemplate;
21
22
23
27{
28 Q_OBJECT
29
30public:
32 class ChannelElement: public Element
33 {
34 public:
36 enum class ChannelType {
37 FM = 0, DMR = 1, FMFixed = 2, DMRFixed = 3
38 };
39
41 enum class Power {
42 Low = 0, Medium = 1, High = 2
43 };
44
46 enum class Admit {
47 Always = 0, ChannelFree = 1, ToneOrCCMatch = 2, ToneMismatch = 3
48 };
49
50 protected:
52 ChannelElement(uint8_t *ptr, size_t size);
53
54 public:
56 ChannelElement(uint8_t *ptr);
57
59 static constexpr unsigned int size() { return 0x0030; }
60
61 void clear() override;
62
64 virtual QString name() const;
66 virtual void setName(const QString &name);
67
69 virtual Frequency rxFrequency() const;
71 virtual void setRXFrequency(const Frequency &freq);
72
74 virtual bool validTXFrequency() const;
76 virtual Frequency txFrequency() const;
78 virtual void setTXFrequency(const Frequency &freq);
80 virtual void clearTXFrequency();
81
83 virtual ChannelType channelType() const;
85 virtual void setChannelType(ChannelType type);
86
88 virtual Channel::Power power() const;
90 virtual void setPower(Channel::Power power);
91
93 virtual bool loneWorkerEnabled() const;
95 virtual void enableLoneWorker(bool enable);
96
98 virtual FMChannel::Bandwidth bandwidth() const;
100 virtual void setBandwidth(FMChannel::Bandwidth bw);
101
103 virtual bool validScanListIndex() const;
105 virtual unsigned int scanListIndex() const;
107 virtual void setScanListIndex(unsigned int idx);
109 virtual void clearScanListIndex();
110
112 virtual bool talkaroundEnabled() const;
114 virtual void enableTalkaround(bool enable);
115
117 virtual Admit admitCriterion() const;
119 virtual void setAdmitCriterion(Admit admit);
120
122 virtual bool rxDMRAPRSEnabled() const;
124 virtual void enableRXDMRAPRS(bool enable);
125
127 virtual bool emergencyNotificationEnabled() const;
129 virtual void enableEmergencyNotification(bool enable);
131 virtual bool emergencyACKEnabled() const;
133 virtual void enableEmergencyACK(bool enable);
135 virtual bool validEmergencySystemIndex() const;
137 virtual unsigned int emergencySystemIndex() const;
139 virtual void setEmergencySystemIndex(unsigned int idx);
141 virtual void clearEmergencySystemIndex();
142
144 virtual Level squelchLevel() const;
146 virtual void setSquelchLevel(Level level);
147
149 virtual bool rxOnlyEnabled() const;
151 virtual void enableRXOnly(bool enable);
152
154 virtual bool dmrAPRSEnabled() const;
156 virtual void enableDMRAPRS(bool enable);
157
159 virtual bool privateCallACKEnabled() const;
161 virtual void enablePrivateCallACK(bool enable);
163 virtual bool dataACKEnabled() const;
165 virtual void enableDataACK(bool enable);
167 virtual bool dcdmEnabled() const;
169 virtual void enableDCDM(bool enable);
170
172 virtual DMRChannel::TimeSlot timeslot() const;
174 virtual void setTimeslot(DMRChannel::TimeSlot ts);
176 virtual unsigned int colorCode() const;
178 virtual void setColorCode(unsigned int cc);
179
181 virtual bool hasKeyIndex() const;
183 virtual unsigned int keyIndex() const;
185 virtual void setKeyIndex(unsigned int idx);
187 virtual void clearKeyIndex();
188
190 virtual bool encryptionEnabled() const;
191 /* Enables encryption. */
192 virtual void enableEncryption(bool enable);
193
195 virtual bool validGroupListIndex() const;
197 virtual unsigned int groupListIndex() const;
199 virtual void setGroupListIndex(unsigned int idx);
201 virtual void clearGroupListIndex();
202
204 virtual unsigned int dmrAPRSChannelIndex() const;
206 virtual void setDMRAPRSChannelIndex(unsigned int idx);
207
209 virtual SelectiveCall rxTone() const;
211 virtual void setRXTone(const SelectiveCall &tone);
213 virtual SelectiveCall txTone() const;
215 virtual void setTXTone(const SelectiveCall &tone);
216
218 virtual bool voxEnabled() const;
220 virtual void enableVOX(bool enable);
221
223 virtual unsigned int dmrIdIndex() const;
225 virtual void setDMRIdIndex(unsigned int id);
226
228 virtual Channel *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
230 virtual bool link(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack()) const;
232 virtual bool encode(const Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack());
233
234 public:
236 struct Limit: Element::Limit {
238 static constexpr unsigned int nameLength() { return 16; }
240 static constexpr Range<unsigned int> squelchLevel() { return {0, 15}; }
241 };
242
243 protected:
245 static SelectiveCall decodeSelectiveCall(uint16_t code);
247 static uint16_t encodeSelectiveCall(const SelectiveCall &tone);
248
249 protected:
251 struct Offset: Element::Offset {
253 static constexpr unsigned int name() { return 0x0000; }
254 static constexpr unsigned int rxFrequency() { return 0x0010; }
255 static constexpr unsigned int txFrequency() { return 0x0014; }
256 static constexpr Bit channelType() { return {0x0018, 4}; }
257 static constexpr Bit rxOnly() { return {0x0018, 3}; }
258 static constexpr Bit power() { return {0x0018, 1}; }
259 static constexpr Bit loneWorker() { return {0x0018, 0}; }
260 static constexpr Bit bandwidth() { return {0x0019, 7}; }
261 static constexpr Bit scanListIndex() { return {0x0019, 2}; }
262 static constexpr Bit preventTalkaround() { return {0x001a, 7}; }
263 static constexpr Bit admitCriterion() { return {0x001a, 4}; }
264 static constexpr Bit rxDMRAPRS() { return {0x001a, 2}; }
265 static constexpr Bit emergencyNotification() { return {0x001b, 7}; }
266 static constexpr Bit emergencyACK() { return {0x001b, 6}; }
267 static constexpr Bit emergencySystemIndex() { return {0x001b, 0}; }
268 static constexpr Bit squelchLevel() { return {0x001c, 4}; }
269 static constexpr Bit dmrAPRS() { return {0x001c, 2}; }
270 static constexpr Bit privateCallACK() { return {0x001d, 7}; }
271 static constexpr Bit dataACK() { return {0x001d, 6}; }
272 static constexpr Bit dcdm() { return {0x001d, 5}; }
273 static constexpr Bit timeslot() { return {0x001d, 4}; }
274 static constexpr Bit colorcode() { return {0x001d, 0}; }
275 static constexpr unsigned int keyIndex() { return 0x001e; }
276 static constexpr Bit encryptionEnable() { return {0x001f, 6}; }
277 static constexpr Bit groupListIndex() { return {0x001f, 0}; }
278 static constexpr Bit dmrAPRSChannelIndex() { return {0x0020, 0}; }
279 static constexpr unsigned int rxTone() { return 0x0021; }
280 static constexpr unsigned int txTone() { return 0x0023; }
281 static constexpr Bit vox() { return {0x0025, 4}; }
282 static constexpr Bit showPTTId() { return {0x0026, 7}; }
283 static constexpr Bit optSigEnable() { return {0x0026, 4}; }
284 static constexpr Bit optSigType() { return {0x0026, 0}; }
285 static constexpr Bit pttIdEnable() { return {0x0029, 2}; }
286 static constexpr unsigned int dmrIdIndex() { return 0x002b; }
288 };
289 };
290
291
294 {
295 public:
297 explicit ChannelBankElement(uint8_t *ptr);
298
300 static constexpr unsigned int size() { return 0x0010; }
301
303 virtual unsigned int channelCount() const;
305 virtual void setChannelCount(unsigned int n);
306
307 public:
309 static unsigned int channelBank(unsigned int index);
311 static unsigned int indexInBank(unsigned int index);
313 static unsigned int bankCount(unsigned int channelCount);
314
315 public:
317 struct Limit: Element::Limit {
319 static constexpr unsigned int channels() { return 4000; }
321 static constexpr unsigned int channelsInBlock0() { return 84; }
323 static constexpr unsigned int channelsPerBlock() { return 85; }
324 };
325
327 struct Offset: Element::Offset {
329 static constexpr unsigned int channelCount() { return 0x0000; }
330 static constexpr unsigned int channelBlock0() { return 0x0010; }
331 static constexpr unsigned int betweenChannelBlocks() {
332 return DM32UVCodeplug::Limit::blockSize();
333 }
335 };
336 };
337
338
344 {
345 public:
347 explicit ChannelExtensionElement(uint8_t *ptr);
348
350 static constexpr unsigned int size() { return 0x0002; }
351
353 void clear() override;
354
356 virtual bool hasContactIndex() const;
358 virtual unsigned int contactIndex() const;
360 virtual void setContactIndex(unsigned int index);
362 virtual void clearContactIndex();
363
365 virtual bool encode(const Channel *ch, Context &ctx, const ErrorStack &err);
367 virtual bool decode(Channel *ch, Context &ctx, const ErrorStack &err) const;
369 virtual bool link(Channel *ch, Context &ctx, const ErrorStack &err) const;
370
371 protected:
373 struct Offset: Element::Offset {
375 static constexpr Bit indexMSN() { return { 0x0000, 4}; }
376 static constexpr unsigned int indexLSB() { return 0x0001; }
378 };
379 };
380
381
384 {
385 public:
387 struct Limit : Element::Limit {
389 static constexpr unsigned int count() { return 2047; }
390 };
391
393 struct Offset: Element::Offset {
395 static constexpr unsigned int betweenBanks(){ return DM32UVCodeplug::Limit::blockSize(); }
396 };
397 };
398
399
402 {
403 public:
405 enum class Type {
406 Private = 3, Group = 4, All = 5
407 };
408
409 protected:
411 ContactElement(uint8_t *ptr, size_t size);
412
413 public:
415 ContactElement(uint8_t *ptr);
416
418 static constexpr unsigned int size() { return 0x0018; }
419
421 virtual QString name() const;
423 virtual void setName(const QString &name);
424
426 virtual DMRContact::Type callType() const;
428 virtual void setCallType(DMRContact::Type type);
429
431 virtual unsigned int dmrId() const;
433 virtual void setDMRId(unsigned int id);
434
436 virtual DMRContact *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
438 virtual bool encode(const DMRContact *contact, const ErrorStack &err=ErrorStack());
439
440 public:
442 struct Limit: Element::Limit {
444 static constexpr unsigned int nameLength() { return 16; }
445 };
446
447 protected:
449 struct Offset: Element::Offset {
451 static constexpr unsigned int name() { return 0x0002; }
452 static constexpr unsigned int dmrId() { return 0x0013; }
453 static constexpr unsigned int callType() { return 0x0016; }
454 // @endcond
455 };
456 };
457
458
461 {
462 public:
464 struct Limit: Element::Limit {
466 static constexpr unsigned int contacts() { return 800; }
467 static constexpr unsigned int contactsPerBlock() { return 170; }
468 };
469
471 struct Offset: Element::Offset {
473 static constexpr unsigned int betweenBlocks() { return 0x1000; };
475 };
476 };
477
478
481 {
482 protected:
484 ContactIndexElement(uint8_t *ptr, size_t size);
485
486 public:
489 {
490 public:
492 ContactBitmapElement(uint8_t *ptr);
494 static constexpr unsigned int size() { return 0x0064; }
495 };
496
498 class EntryElement: public Element
499 {
500 public:
501 typedef ContactElement::Type Type;
502
503 protected:
505 EntryElement(uint8_t *ptr, size_t size);
506
507 public:
509 EntryElement(uint8_t *ptr);
510
511 void clear() override;
512
514 static constexpr unsigned int size() { return 0x0002; }
515
517 bool isValid() const override;
518
520 virtual DMRContact::Type callType() const;
522 virtual void setCallType(DMRContact::Type type);
523
525 virtual unsigned int index() const;
527 virtual void setIndex(unsigned int idx);
528 };
529
530 public:
532 ContactIndexElement(uint8_t *ptr);
533
535 static constexpr unsigned int size() { return 0x1000; }
536
538 virtual unsigned int contactCount() const;
540 virtual void setContactCount(unsigned int n);
542 virtual unsigned int groupCallCount() const;
544 virtual void setGroupCallCount(unsigned int n);
546 virtual unsigned int privateCallCount() const;
548 virtual void setPrivateCallCount(unsigned int n);
549
551 virtual ContactBitmapElement bitmap() const;
552
554 virtual EntryElement indexEntry(unsigned n);
556 virtual EntryElement sortedIndexEntry(unsigned n);
557
559 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
560
561 protected:
563 struct Offset: Element::Offset {
565 static unsigned int contactCount() { return 0x0000; }
566 static unsigned int groupCount() { return 0x0002; }
567 static unsigned int privateCount() { return 0x0004; }
568 static unsigned int bitmap() { return 0x0010; }
569 static unsigned int index() { return 0x0100; }
570 static unsigned int sorted() { return 0x0740; }
572 };
573 };
574
575
578 {
579 protected:
581 GroupListElement(uint8_t *ptr, size_t size);
582
583 public:
585 GroupListElement(uint8_t *ptr);
586
588 static constexpr unsigned int size() { return 0x006d; }
589
591 virtual QString name() const;
593 virtual void setName(const QString &name);
594
596 virtual bool validId(unsigned int n);
598 virtual unsigned int id(unsigned int n);
600 virtual void setId(unsigned int n, unsigned int id);
602 virtual void clearId(unsigned int n);
603
605 virtual RXGroupList *decode(Context &ctx, const ErrorStack &err=ErrorStack());
607 virtual bool link(RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack());
609 virtual bool encode(const RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack());
610
611 public:
613 struct Limit: Element::Limit {
615 static constexpr unsigned int nameLength() { return 11; }
617 static constexpr unsigned int contacts() { return 32; }
618 };
619
620 protected:
622 struct Offset: Element::Offset {
624 static constexpr unsigned int name() { return 0x0000; }
625 static constexpr unsigned int ids() { return 0x000b; }
626 static constexpr unsigned int betweenIds() { return 0x0003; }
628 };
629 };
630
631
634 {
635 public:
638 {
639 public:
641 GroupListBitmapElement(uint8_t *ptr);
642 };
643
644 protected:
646 GroupListBankElement(uint8_t *ptr, size_t size);
647
648 public:
650 GroupListBankElement(uint8_t *ptr);
651
653 static constexpr unsigned int size() { return 0x1000; }
654
656 virtual GroupListBitmapElement bitmap() const;
657
659 virtual GroupListElement groupList(unsigned int n) const;
660
662 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
664 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
666 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
667
668 public:
670 struct Limit: Element::Limit {
672 static constexpr unsigned int groupLists() { return 32; }
673 };
674
675 protected:
677 struct Offset: Element::Offset {
679 static constexpr unsigned int bitmap() { return 0x0000; }
680 static constexpr unsigned int groupLists() { return 0x0011; }
682 };
683 };
684
685
688 {
689 public:
691 RadioIdElement(uint8_t *ptr);
692
694 static constexpr unsigned int size() { return 0x0010; }
695
697 virtual unsigned int id() const;
699 virtual void setId(unsigned int id);
700
702 virtual QString name() const;
704 virtual void setName(const QString &name);
705
707 virtual DMRRadioID *decode(Context &ctx, const ErrorStack &err=ErrorStack());
709 virtual bool encode(const DMRRadioID *id, const ErrorStack &err=ErrorStack());
710
711 public:
713 struct Limit: Element::Limit {
715 static constexpr unsigned int nameLength() { return 12; }
716 };
717
718 protected:
720 struct Offset: Element::Offset {
722 static constexpr unsigned int id() { return 0x0000; }
723 static constexpr unsigned int name() { return 0x0003; }
725 };
726 };
727
728
731 {
732 public:
734 RadioIdBankElement(uint8_t *ptr);
735
737 static constexpr unsigned int size() { return 0x1000; }
738
740 virtual unsigned int idCount() const;
742 virtual void setIdCount(unsigned int n);
743
745 virtual RadioIdElement id(unsigned int n) const;
746
748 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
750 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
751
752 public:
754 struct Limit: Element::Limit {
756 static constexpr unsigned int ids() { return 250; }
757 };
758
759 protected:
761 struct Offset: Element::Offset {
763 static constexpr unsigned int count() { return 0x0000; }
764 static constexpr unsigned int ids() { return 0x0010; }
765 static constexpr unsigned int betweenIds() { return RadioIdElement::size(); }
767 };
768 };
769
770
772 class ZoneElement: public Element
773 {
774 public:
776 ZoneElement(uint8_t *ptr);
777
779 static constexpr unsigned int size() { return 0x0091; }
780
782 virtual QString name() const;
784 virtual void setName(const QString &name);
785
787 virtual unsigned int channelCount() const;
789 virtual void setChannelCount(unsigned int n);
790
792 virtual bool channelIndexValid(unsigned int n) const;
794 virtual unsigned int channelIndex(unsigned int n) const;
796 virtual void setChannelIndex(unsigned int n, unsigned int idx);
798 virtual void clearChannelIndex(unsigned int n);
799
801 virtual Zone *decode(Context &ctx, const ErrorStack &err=ErrorStack());
803 virtual bool link(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
805 virtual bool encode(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
806
807 public:
809 struct Limit: Element::Limit {
811 static constexpr unsigned int nameLength() { return 16; }
813 static constexpr unsigned int channels() { return 64; }
814 };
815
816 protected:
818 struct Offset: Element::Offset {
820 static constexpr unsigned int name() { return 0x0000; }
821 static constexpr unsigned int channelCount() { return 0x0010; }
822 static constexpr unsigned int channels() { return 0x0011; }
824 };
825 };
826
827
829 {
830 public:
832 ZoneBankElement(uint8_t *ptr);
833
835 static constexpr unsigned int size() { return 0x1000; }
836
838 virtual unsigned int count() const;
840 virtual void setCount(unsigned int n);
841
843 virtual bool channelIndexAValid() const;
845 virtual unsigned int channelIndexA() const;
847 virtual void setChannelIndexA(unsigned int idx);
849 virtual void clearChannelIndexA();
850
852 virtual bool channelIndexBValid() const;
854 virtual unsigned int channelIndexB() const;
856 virtual void setChannelIndexB(unsigned int idx);
858 virtual void clearChannelIndexB();
859
861 virtual bool zoneIndexAValid() const;
863 virtual unsigned int zoneIndexA() const;
865 virtual void setZoneIndexA(unsigned int idx);
867 virtual void clearZoneIndexA();
868
870 virtual bool zoneIndexBValid() const;
872 virtual unsigned int zoneIndexB() const;
874 virtual void setZoneIndexB(unsigned int idx);
876 virtual void clearZoneIndexB();
877
878 public:
880 struct Limit: Element::Limit {
882 static constexpr unsigned int zones() { return 250; }
884 static constexpr unsigned int zonesPerBlock() { return 28; }
885
886 };
887
889 struct Offset: Element::Offset {
891 static constexpr unsigned int count() { return 0x0000; }
892 static constexpr unsigned int channelIndexA() { return 0x0001; }
893 static constexpr unsigned int channelIndexB() { return 0x0003; }
894 static constexpr unsigned int zoneIndexA() { return 0x0005; }
895 static constexpr unsigned int zoneIndexB() { return 0x0007; }
896 static constexpr unsigned int zones0() { return 0x0010; }
897 static constexpr unsigned int betweenBlocks() { return 0x1000; }
899 };
900 };
901
902
905 {
906 public:
908 enum class TransmitMode {
909 CurrentChannel=0, ActiveChannel=1, RevertChannel=2
910 };
911
913 enum class ToneDetectionMode {
914 None = 0, NonPriority = 1, Priority = 2, All = 3
915 };
916
917 public:
919 ScanListElement(uint8_t *ptr);
920
922 static constexpr unsigned int size() { return 0x0039; }
923
925 virtual QString name() const;
927 virtual void setName(const QString &name);
928
930 virtual unsigned int channelCount() const;
932 virtual void setChannelCount(unsigned int count);
933
935 virtual TransmitMode transmitMode() const;
937 virtual void setTransmitMode(TransmitMode mode);
938
940 virtual ToneDetectionMode toneDetectionMode() const;
942 virtual void setToneDetectionMode(ToneDetectionMode mode);
943
945 virtual Interval hangTime() const;
947 virtual void setHangTime(const Interval &dur);
948
950 virtual bool secondaryChannelIndexValid() const;
952 virtual unsigned int secondaryChannelIndex() const;
954 virtual void setSecondaryChannelIndex(unsigned int idx);
956 virtual void clearSecondaryChannelIndex();
957
959 virtual bool primaryChannelIndexValid() const;
961 virtual unsigned int primaryChannelIndex() const;
963 virtual void setPrimaryChannelIndex(unsigned int idx);
965 virtual void clearPrimaryChannelIndex();
966
968 virtual bool revertChannelIndexValid() const;
970 virtual unsigned int revertChannelIndex() const;
972 virtual void setRevertChannelIndex(unsigned int idx);
974 virtual void clearRevertChannelIndex();
975
977 virtual Interval prioritySweepTime() const;
979 virtual void setPrioritySweepTime(const Interval &dur);
980
982 virtual bool isCurrentChannel(unsigned int n) const;
984 virtual unsigned int channelIndex(unsigned int n) const;
986 virtual void setChannelIndex(unsigned int n, unsigned int idx);
988 virtual void setCurrentChannel(unsigned int n);
989
991 virtual ScanList *decode(Context &ctx, const ErrorStack &err=ErrorStack());
993 virtual bool link(ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
995 virtual bool encode(const ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
996
997 public:
999 struct Limit: Element::Limit {
1001 static constexpr unsigned int nameLength() { return 11; }
1003 static constexpr unsigned int channels() { return 15; }
1004 };
1005
1006 protected:
1008 struct Offset: Element::Offset {
1010 static constexpr unsigned int name() { return 0x0000; }
1011 static constexpr unsigned int channelCount() { return 0x000b; }
1012 static constexpr Bit transmitMode() { return {0x000c, 4}; }
1013 static constexpr Bit toneDetection() { return {0x000c, 0}; }
1014 static constexpr Bit hangTime() { return {0x000d, 0}; }
1015 static constexpr Bit secondaryChannel() { return {0x000e, 4}; }
1016 static constexpr Bit primaryChannel() { return {0x000e, 0}; }
1017 static constexpr unsigned int revertChannel() { return 0x000f; }
1018 static constexpr Bit prioritySweepTime() { return {0x0015, 2}; }
1019 static constexpr unsigned int channels() { return 0x0018; }
1021 };
1022 };
1023
1024
1026 class ScanListBankElement: public Element
1027 {
1028 public:
1030 enum class ScanMode {
1031 Time = 0 , Carrier = 1, Search = 2
1032 };
1033
1034 public:
1035 /* Constructor from pointer to the element. */
1036 ScanListBankElement(uint8_t *ptr);
1037
1039 static constexpr unsigned int size() { return 0x1000; }
1040
1042 virtual unsigned int count() const;
1044 virtual void setCount(unsigned int n);
1045
1047 virtual ScanListElement scanList(unsigned int n) const;
1048
1050 virtual ScanMode scanMode() const;
1052 virtual void setScanMode(ScanMode mode);
1053
1055 virtual FrequencyRange vhfRange() const;
1057 virtual void setVHFRange(const FrequencyRange &range);
1058
1060 virtual FrequencyRange uhfRange() const;
1062 virtual void setUHFRange(const FrequencyRange &range);
1063
1065 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1067 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
1069 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1070
1071 public:
1073 struct Limit: Element::Limit {
1075 static constexpr unsigned int scanLists() { return 31; }
1076 };
1077
1079 struct Offset: Element::Offset {
1081 static constexpr unsigned int count() { return 0x0000; }
1082 static constexpr unsigned int scanLists() { return 0x0001; }
1083 static constexpr unsigned int scanMode() { return 0x0e00; }
1084 static constexpr unsigned int vhfLower() { return 0x0e01; }
1085 static constexpr unsigned int vhfUpper() { return 0x0e03; }
1086 static constexpr unsigned int uhfLower() { return 0x0e05; }
1087 static constexpr unsigned int uhfUpper() { return 0x0e07; }
1089 };
1090 };
1091
1092
1095 {
1096 public:
1098 enum class TimeSlot {
1099 TS1 = 0, TS2 = 1
1100 };
1101
1102 public:
1104 RoamingChannelElement(uint8_t *ptr);
1105
1107 static constexpr unsigned int size() { return 0x001a; }
1108
1110 virtual QString name() const;
1112 virtual void setName(const QString &name);
1113
1115 virtual Frequency rxFrequency() const;
1117 virtual void setRXFrequency(const Frequency &f);
1118
1120 virtual Frequency txFrequency() const;
1122 virtual void setTXFrequency(const Frequency &f);
1123
1125 virtual unsigned int colorCode() const;
1127 virtual void setColorCode(unsigned int cc);
1128
1130 virtual DMRChannel::TimeSlot timeSlot() const;
1132 virtual void setTimeSlot(DMRChannel::TimeSlot ts);
1133
1136 virtual RoamingChannel *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
1138 virtual bool encode(const RoamingChannel *ch, const ErrorStack &err=ErrorStack());
1139
1140 public:
1142 struct Limit: Element::Limit {
1144 static constexpr unsigned int nameLength() { return 16; }
1145 };
1146
1147 protected:
1149 struct Offset: Element::Offset {
1151 static constexpr unsigned int name() { return 0x0000; }
1152 static constexpr unsigned int rxFrequency() { return 0x0010; }
1153 static constexpr unsigned int txFrequency() { return 0x0014; }
1154 static constexpr unsigned int colorCode() { return 0x0018; }
1155 static constexpr unsigned int timeSlot() { return 0x0019; }
1157 };
1158 };
1159
1160
1163 {
1164 public:
1166 RoamingChannelBankElement(uint8_t *ptr);
1167
1169 static constexpr unsigned int size() { return 0x1000; }
1170
1172 virtual unsigned int count() const;
1174 virtual void setCount(unsigned int n);
1175
1177 virtual RoamingChannelElement channel(unsigned int n);
1178
1180 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1182 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1183
1184 public:
1186 struct Limit: Element::Limit {
1188 static constexpr unsigned int channels() { return 150; }
1189 };
1190
1191 protected:
1193 struct Offset: Element::Offset {
1195 static constexpr unsigned int channels() { return 0x0000; }
1196 static constexpr unsigned int count() { return 0x0ff0; }
1197 static constexpr unsigned int betweenChannels() { return RoamingChannelElement::size(); }
1199 };
1200 };
1201
1202
1205 {
1206 public:
1208 RoamingZoneElement(uint8_t *ptr);
1209
1211 static constexpr unsigned int size() { return 0x0021; }
1212
1214 virtual QString name() const;
1216 virtual void setName(const QString &name);
1217
1219 virtual unsigned int count() const;
1221 virtual void setCount(unsigned int n);
1222
1224 virtual bool channelIndexValid(unsigned int n);
1226 virtual unsigned int channelIndex(unsigned int n);
1228 virtual void setChannelIndex(unsigned int n, unsigned int idx);
1230 virtual void clearChannelIndex(unsigned int n);
1231
1233 virtual RoamingZone *decode(Context &ctx, const ErrorStack &err=ErrorStack());
1235 virtual bool link(RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
1237 virtual bool encode(const RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
1238
1239 public:
1241 struct Limit: Element::Limit {
1243 static constexpr unsigned int nameLength() { return 16; }
1245 static constexpr unsigned int channels() { return 16; }
1246 };
1247
1248 protected:
1250 struct Offset: Element::Offset {
1252 static constexpr unsigned int name() { return 0x0000; }
1253 static constexpr unsigned int channelCount() { return 0x0010; }
1254 static constexpr unsigned int channels() { return 0x0011; }
1255 static constexpr unsigned int betweenChannels() { return 0x0001; }
1257 };
1258 };
1259
1260
1263 {
1264 public:
1266 RoamingZoneBankElement(uint8_t *ptr);
1267
1269 static constexpr unsigned int size() { return 0x1000; }
1270
1272 virtual unsigned int count() const;
1274 virtual void setCount(unsigned int n);
1275
1277 virtual bool autoRoamEnabled() const;
1279 virtual void enableAutoRoam(bool enable);
1280
1282 virtual Interval roamingDelay() const;
1284 virtual void setRoamingDelay(const Interval &delay);
1285
1287 virtual bool defaultRoamingZoneIndexValid() const;
1289 virtual unsigned int defaultRoamingZoneIndex() const;
1291 virtual void setDefaultRoamingZoneIndex(unsigned int idx);
1293 virtual void clearDefaultRoamingZoneIndex();
1294
1296 virtual RoamingZoneElement zone(unsigned int n);
1297
1299 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1301 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
1303 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1304
1305 public:
1307 struct Limit: Element::Limit {
1309 static constexpr unsigned int zones() { return 64; }
1310 };
1311
1312 protected:
1314 struct Offset: Element::Offset {
1316 static constexpr unsigned int count() { return 0x0000; }
1317 static constexpr unsigned int autoRoam() { return 0x0001; }
1318 static constexpr unsigned int roamingDelay() { return 0x0002; }
1319 static constexpr unsigned int defaultRoamingZone() { return 0x0003; }
1320 static constexpr unsigned int zones() { return 0x0010; }
1321 static constexpr unsigned int betweenZones() { return RoamingZoneElement::size(); }
1323 };
1324 };
1325
1326
1329 {
1330 public:
1332 SMSTemplateElement(uint8_t *ptr);
1333
1335 static constexpr unsigned int size() { return 0x0081; }
1336
1338 virtual QString message() const;
1340 virtual void setMessage(const QString &msg);
1341
1343 SMSTemplate *decode(Context &ctx, const ErrorStack &err=ErrorStack());
1344
1345 public:
1347 struct Limit: Element::Limit {
1349 static constexpr unsigned int messageLength() { return 126; }
1350 };
1351
1352 protected:
1354 struct Offset: Element::Offset {
1356 static constexpr unsigned int length() { return 0x0000; }
1357 static constexpr unsigned int message() { return 0x0001; }
1359 };
1360 };
1361
1362
1365 {
1366 public:
1368 SMSTemplateBankElement(uint8_t *ptr);
1369
1371 static constexpr unsigned int size() { return 0x1000; }
1372
1374 virtual unsigned int count() const;
1376 virtual void setCount(unsigned int n);
1377
1379 virtual SMSTemplateElement message(unsigned int n) const;
1380
1382 virtual bool decode(Context &ctx, const ErrorStack &err = ErrorStack());
1383
1384 public:
1386 struct Limit: Element::Limit {
1388 static constexpr unsigned int messages() { return 20; }
1389 };
1390
1391 protected:
1393 struct Offset: Element::Offset {
1395 static constexpr unsigned int count() { return 0x0000; }
1396 static constexpr unsigned int messages() { return 0x0010; }
1397 static constexpr unsigned int betweenMessages() { return SMSTemplateElement::size(); }
1399 };
1400 };
1401
1402
1405 {
1406 public:
1408 enum class BootDisplay {
1409 Image=0, Message=1, Voltage=2
1410 };
1411
1414 Off = 0, T30Min=1, T60Min=2, T2h=3, T4h=4, T8h=5
1415 };
1416
1418 enum class FMRogerTone {
1419 Off=0, Beep=1, BDC=2
1420 };
1421
1424 Infinity = 0, T5s=1, T10s=2, T15s=3, T20s=4, T25s=5, T30s=6, T1min=7, T2min=8, T3min=9,
1425 T4min=10, T5min=11
1426 };
1427
1429 enum class DateFormat {
1430 YYYYMMDD = 0, DDMMYYYY = 1
1431 };
1432
1436 struct Color {
1437 enum class Code {
1438 White = 0, Black = 1, Orange = 2, Red = 3, Yellow = 4, Green = 5, Cyan = 6, Blue = 7
1439 };
1440
1441 static unsigned int encode(Code name);
1442 static Code decode(unsigned int code);
1443 };
1444
1446 enum class PositionFormat {
1447 DD = 0,
1448 DMS = 1
1449 };
1450
1452 enum class GNSSMode {
1453 GPS = 0, Beidou = 1, Both = 2
1454 };
1455
1457 enum class RecordMode {
1458 RX = 0, TX = 1, Both = 2
1459 };
1460
1462 enum class SMSFormat {
1463 Hytera = 0, Motorola = 1, DMR = 2
1464 };
1465
1468 ISO8 = 0, UnicodeU16 = 1
1469 };
1470
1473 CallsignDB = 0, OverTheAir = 1
1474 };
1475
1477 enum class DualStandbyMode {
1478 SingleVFO = 0, DoubleStandby = 1, SingleStandby = 2
1479 };
1480
1482 enum class VFO {
1483 A = 0, B = 1
1484 };
1485
1487 enum class VFODisplayMode {
1488 Frequency = 0, ChannelName = 1
1489 };
1490
1492 enum class VFOMode {
1493 Channel = 0, VFO = 1
1494 };
1495
1498 {
1499 enum class Function {
1500 None=0, PowerSelect=1, Volt=2, Talkaround=3, DMREncryption=4, VOX=6, ChannelMode=7, Alarm=8,
1501 OneTouch1=9, OneTouch2=10, OneTouch3=11,OneTouch4=12, OneTouch5=13, SMS=14, Contacts=15,
1502 ZoneUp=16, ZoneDown=17, Scan=18, ToggleRecord=19, PreviousRecord=20, NextRecord=21,
1503 FMBCRadio=22, FMBCScan=23, GPSInformation=24, Monitor=25, ToggleMainChannel=26, LoneWorker=27,
1504 KeypadLock=28, Mute=29, TBST=30, APRSTX=31, ChannelType=32, DisplayMode=33, CTCSSDSCScan=34,
1505 CTCSSDSCSettings=25, SilentTone=36, Roaming=37, SubPTT=38, OneKeyScanFrequency=40,
1506 Flashlight=41
1507 };
1508
1509 static unsigned int encode(Function func);
1510 static Function decode(unsigned int code);
1511 };
1512
1514 enum class PowerSaveMode {
1515 Off=0, Percent50 = 1, Percent66 = 2, Percent75=3
1516 };
1517
1519 enum class TBSTFrequency {
1520 Hz1000=0, Hz1450=1, Hz1750=2, Hz2100=3
1521 };
1522
1524 enum class STEMode {
1525 Off = 0, Deg120 = 1, Deg180 = 2, Hz55 = 3
1526 };
1527
1528
1529 public:
1531 GeneralSettingsElement(uint8_t *ptr);
1532
1534 static constexpr unsigned int size() { return 0x0100; }
1535
1537 virtual BootSettings::BootDisplay bootDisplay() const;
1539 virtual void setBootDisplay(BootSettings::BootDisplay dis);
1540
1542 virtual QString bootMessage1() const;
1544 virtual void setBootMessage1(const QString &msg);
1546 virtual QString bootMessage2() const;
1548 virtual void setBootMessage2(const QString &msg);
1549
1551 virtual bool mcuResetEnabled() const;
1553 virtual void enableMCUReset(bool enable);
1554
1556 virtual Interval autoPowerOffDelay() const;
1558 virtual void setAutoPowerOffDelay(const Interval &delay);
1559
1561 virtual bool radioSilentEnabled() const;
1563 virtual void enableRadioSilent(bool enable);
1564
1566 virtual bool keyToneEnabled() const;
1568 virtual void enableKeyTone(bool enable);
1569
1571 virtual bool smsToneEnabled() const;
1573 virtual void enableSMSTone(bool enable);
1574
1576 virtual bool groupCallToneEnabled() const;
1578 virtual void enableGroupCallTone(bool enable);
1580 virtual bool privateCallToneEnabled() const;
1582 virtual void enablePrivateCallTone(bool enable);
1583
1585 virtual bool eotToneEnabled() const;
1587 virtual void enableEOTTone(bool enable);
1588
1590 virtual bool talkPermitToneEnabled() const;
1592 virtual void enableTalkPermitTone(bool enable);
1593
1595 virtual bool bootToneEnabled() const;
1597 virtual void enableBootTone(bool enable);
1598
1600 virtual bool voicePromptEnabled() const;
1602 virtual void enableVoicePrompt(bool enable);
1603
1605 virtual bool lowBatteryToneEnabled() const;
1607 virtual void enableLowBatteryTone(bool enable);
1608
1610 virtual FMRogerTone fmRogerTone() const;
1612 virtual void setFMRogerTone(FMRogerTone tone);
1613
1615 virtual unsigned int displayBrightness() const;
1617 virtual void setDisplayBrightness(unsigned int n);
1618
1620 virtual Interval backlightDuration() const;
1622 virtual void setBacklightDuration(Interval duration);
1623
1625 virtual Interval menuDuration() const;
1627 virtual void setMenuDuration(Interval duration);
1628
1630 virtual bool showVolmueChange() const;
1632 virtual void enableShowVolumeChange(bool enable);
1633
1635 virtual DateFormat dateFormat() const;
1637 virtual void setDateFormat(DateFormat format);
1638
1640 virtual bool showClock() const;
1642 virtual void enableShowClock(bool enable);
1643
1645 virtual Color::Code callColor() const;
1647 virtual void setCallColor(Color::Code c);
1649 virtual Color::Code standbyColor() const;
1651 virtual void setStandbyColor(Color::Code c);
1653 virtual Color::Code channelNameAColor() const;
1655 virtual void setChannelNameAColor(Color::Code c);
1657 virtual Color::Code channelNameBColor() const;
1659 virtual void setChannelNameBColor(Color::Code c);
1661 virtual Color::Code zoneNameAColor() const;
1663 virtual void setZoneNameAColor(Color::Code c);
1665 virtual Color::Code zoneNameBColor() const;
1667 virtual void setZoneNameBColor(Color::Code c);
1668
1670 virtual PositionFormat positionFormat() const;
1672 virtual void setPositionFormat(PositionFormat format);
1673
1675 virtual GNSSSettings::Systems gnss() const;
1677 virtual void setGNSS(GNSSSettings::Systems mode);
1678
1680 virtual bool gnssEnabled() const;
1682 virtual void enableGNSS(bool enable);
1683
1685 virtual QTimeZone timeZone() const;
1687 virtual void setTimeZone(const QTimeZone &timeZone);
1688
1690 virtual Interval posUpdatePeriod() const;
1692 virtual void setPosUpdatePeriod(const Interval &period);
1693
1695 virtual RecordMode recordMode() const;
1697 virtual void setRecordMode(RecordMode mode);
1698
1700 virtual bool recordingEnabled() const;
1702 virtual void enableRecording(bool enable);
1703
1705 virtual bool groupCallMatchEnabled() const;
1707 virtual void enableGroupCallMatch(bool enable);
1708
1710 virtual bool privateCallMatchEnabled() const;
1712 virtual void enablePrivateCallMatch(bool enable);
1713
1715 virtual Interval dmrCallHangTime() const;
1717 virtual void setDMRCallHangTime(const Interval &hangTime);
1718
1720 virtual Interval activeWaitTime() const;
1722 virtual void setActiveWaitTime(Interval waitTime);
1723
1725 virtual unsigned int activeRetries() const;
1727 virtual void setActiveRetries(unsigned int retries);
1728
1730 virtual Interval dmrPreambleDuration() const;
1732 virtual void setDmrPreambleDuration(Interval duration);
1733
1735 virtual bool dmrRemoteMonitorEnabled() const;
1737 virtual void enableDMRRemoteMonitor(bool enable);
1738
1740 virtual bool dmrRemoteKillEnabled() const;
1742 virtual void enableDMRRemoteKill(bool enable);
1743
1745 virtual bool dmrRemoteRadioCheckEnabled() const;
1747 virtual void enableDMRRemoteRadioCheck(bool enable);
1748
1750 virtual bool dmrRemoteReenableEnabled() const;
1752 virtual void enableDMRRemoteReenable(bool enable);
1753
1755 virtual bool dmrRXAlertEnabled() const;
1757 virtual void enableDMRRXAlert(bool enable);
1758
1760 virtual SMSExtension::Format smsFormat() const;
1762 virtual void setSMSFormat(SMSExtension::Format format);
1763
1765 virtual bool missedCallNotificationEnabled() const;
1767 virtual void enableMissedCallNotification(bool enable);
1768
1770 virtual Interval dmrRemoteMonitorDuration() const;
1772 virtual void setDMRRemoteMonitorDuration(Interval duration);
1773
1778
1780 virtual bool txTalkerAliasEnabled() const;
1782 virtual void enableTXTalkerAlias(bool enable);
1783
1785 virtual TalkerAliasSource talkerAliasSource() const;
1787 virtual void setTalkerAliasSource(TalkerAliasSource source);
1788
1790 virtual DualStandbyMode dualStandbyMode() const;
1792 virtual void setDualStandbyMode(DualStandbyMode mode);
1793
1795 virtual VFO mainVFO() const;
1797 virtual void setMainVFO(VFO mainVFO);
1798
1800 virtual VFODisplayMode vfoDisplayModeA() const;
1802 virtual void setVFODisplayModeA(VFODisplayMode mode);
1804 virtual VFODisplayMode vfoDisplayModeB() const;
1806 virtual void setVFODisplayModeB(VFODisplayMode mode);
1808 virtual VFOMode vfoModeA() const;
1809
1811 virtual void setVFOModeA(VFOMode mode);
1813 virtual VFOMode vfoModeB() const;
1815 virtual void setVFOModeB(VFOMode mode);
1816
1818 virtual bool vfoModeDisabled() const;
1820 virtual void disableVFOMode(bool enable);
1821
1823 virtual Interval dualStandbyHangTime() const;
1825 virtual void setDualStandbyHangTime(Interval hangTime);
1826
1828 virtual bool sideKeyLockEnabled() const;
1830 virtual void enableSideKeyLock(bool enable);
1832 virtual bool knobLockEnabled() const;
1834 virtual void enableKnobLock(bool enable);
1836 virtual Interval autoKeyLockDelay() const;
1838 virtual void setAutoKeyLockDelay(Interval delay);
1839
1841 virtual KeyFunction::Function sk1Short() const;
1843 virtual void setSK1Short(KeyFunction::Function function);
1845 virtual KeyFunction::Function sk1Long() const;
1847 virtual void setSK1Long(KeyFunction::Function function);
1849 virtual KeyFunction::Function sk2Short() const;
1851 virtual void setSK2Short(KeyFunction::Function function);
1853 virtual KeyFunction::Function sk2Long() const;
1855 virtual void setSK2Long(KeyFunction::Function function);
1856
1858 virtual KeyFunction::Function p1Short() const;
1860 virtual void setP1Short(KeyFunction::Function function);
1862 virtual KeyFunction::Function p1Long() const;
1864 virtual void setP1Long(KeyFunction::Function function);
1866 virtual KeyFunction::Function p2Short() const;
1868 virtual void setP2Short(KeyFunction::Function function);
1870 virtual KeyFunction::Function p2Long() const;
1872 virtual void setP2Long(KeyFunction::Function function);
1873
1875 virtual Interval longPressDuration() const;
1877 virtual void setLongPressDuration(Interval duration);
1878
1880 virtual Interval transmitTimeout() const;
1882 virtual void setTransmitTimeout(Interval timeout);
1884 virtual Interval transmitTimeoutReminder() const;
1886 virtual void setTransmitTimeoutReminder(Interval timeout);
1887
1889 virtual Level voxLevel() const;
1891 virtual void setVOXLevel(Level voxLevel);
1893 virtual Interval voxDelay() const;
1895 virtual void setVoxDelay(Interval delay);
1896
1898 virtual PowerSaveMode powerSaveMode() const;
1900 virtual void setPowerSaveMode(PowerSaveMode mode);
1901
1903 virtual bool weatherAlarmEnabled() const;
1905 virtual void enableWeatherAlarm(bool enable);
1906
1908 virtual bool allLEDsDisabled() const;
1910 virtual void disableAllLEDs(bool disable);
1911
1913 virtual Frequency tbstFrequency() const;
1915 virtual void setTBSTFrequency(const Frequency &frequency);
1916
1918 virtual STEMode steMode() const;
1920 virtual void setSTEMode(STEMode mode);
1921
1923 virtual Level fmMicLevel() const;
1925 virtual void setFMMicLevel(Level level);
1926
1928 virtual Level dmrMicLevel() const;
1930 virtual void setDMRMicLevel(Level level);
1931
1933 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1935 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1936
1937 public:
1939 struct Limit: Element::Limit {
1941 static constexpr unsigned int bootMessageLength() { return 14; }
1943 static constexpr unsigned int maxBrightness() { return 5; }
1945 static constexpr Range<unsigned int> activeRetires() { return {1, 8}; }
1949 }
1950
1953 }
1954
1955 static constexpr Range<Interval> voxDelay() {
1957 }
1958
1959 static constexpr Range<unsigned int> vox() { return {1,5}; }
1961 static constexpr Range<unsigned int> micGain() { return {0,4}; }
1962 };
1963
1964 protected:
1966 struct Offset: Element::Offset {
1968 static constexpr unsigned int bootDisplay() { return 0x0000; }
1969 static constexpr unsigned int bootMessage1() { return 0x0001; }
1970 static constexpr unsigned int bootMessage2() { return 0x000f; }
1971 static constexpr unsigned int mcuReset() { return 0x001d; }
1972 static constexpr unsigned int autoPowerOffDelay() { return 0x001e; }
1973 static constexpr Bit radioSilent() { return {0x0020, 7}; }
1974 static constexpr Bit keyTone() { return {0x0020, 6}; }
1975 static constexpr Bit smsTone() { return {0x0020, 5}; }
1976 static constexpr Bit groupCallTone() { return {0x0020, 4}; }
1977 static constexpr Bit privateCallTone() { return {0x0020, 3}; }
1978 static constexpr Bit eotTone() { return {0x0020, 2}; }
1979 static constexpr Bit talkPermitTone() { return {0x0020, 1}; }
1980 static constexpr Bit bootTone() { return {0x0020, 0}; }
1981 static constexpr Bit voicePrompt() { return {0x0021, 7}; }
1982 static constexpr Bit lowBatteryTone() { return {0x0021, 6}; }
1983 static constexpr Bit fmRogerTone() { return {0x0021, 1}; }
1984 static constexpr unsigned int displayBrightness() { return 0x0030; }
1985 static constexpr unsigned int backlightDuration() { return 0x0031; }
1986 static constexpr unsigned int menuDuration() { return 0x0032; }
1987 static constexpr Bit showVolumeChange() { return {0x0033, 4}; }
1988 static constexpr Bit dateFormat() { return {0x0033, 3}; }
1989 static constexpr Bit showClock() { return {0x0033, 0}; }
1990 static constexpr unsigned int callColor() { return 0x0034; }
1991 static constexpr unsigned int standbyColor() { return 0x0035; }
1992 static constexpr unsigned int channelNameAColor() { return 0x0038; }
1993 static constexpr unsigned int channelNameBColor() { return 0x0039; }
1994 static constexpr unsigned int zoneNameAColor() { return 0x003a; }
1995 static constexpr unsigned int zoneNameBColor() { return 0x003b; }
1996 static constexpr Bit positionFormat() { return {0x0040, 6}; }
1997 static constexpr Bit gnssMode() { return {0x0040, 3}; }
1998 static constexpr Bit enableGNSS() { return {0x0040, 0}; }
1999 static constexpr unsigned int timeZone() { return 0x0041; }
2000 static constexpr unsigned int posUpdatePeriod() { return 0x0042; }
2001 static constexpr Bit recordMode() { return {0x0043, 2}; }
2002 static constexpr Bit enableRecording() { return {0x0045, 0}; }
2003 static constexpr Bit groupCallMatch() { return {0x0060, 1}; }
2004 static constexpr Bit privateCallMatch() { return {0x0060, 0}; }
2005 static constexpr unsigned int dmrCallHangTime() { return 0x0061; }
2006 static constexpr unsigned int activeWaitTime() { return 0x0062; }
2007 static constexpr unsigned int activeReties() { return 0x0063; }
2008 static constexpr unsigned int dmrPreambleDur() { return 0x0064; }
2009 static constexpr Bit dmrMonitor() { return {0x0065, 7}; }
2010 static constexpr Bit dmrKill() { return {0x0065, 6}; }
2011 static constexpr Bit dmrRadioCheck() { return {0x0065, 5}; }
2012 static constexpr Bit dmrReenable() { return {0x0065, 4}; }
2013 static constexpr Bit dmrRXAlert() { return {0x0065, 3}; }
2014 static constexpr Bit smsFormat() { return {0x0065, 1}; }
2015 static constexpr Bit missedCallNotification() { return {0x0065, 0}; }
2016 static constexpr unsigned int dmrRemoteMonitorDuration() { return 0x0066; }
2017 static constexpr Bit dmrTalkerAliasFormat() { return {0x0067, 4}; }
2018 static constexpr Bit txTalkerAlias() { return {0x0067, 3}; }
2019 static constexpr Bit talkerSource() { return {0x0067, 2}; }
2020 static constexpr Bit dualStandbyMode() { return {0x0080, 6}; }
2021 static constexpr Bit mainVFO() { return {0x0080, 5}; }
2022 static constexpr Bit displayModeB() { return {0x0080, 4}; }
2023 static constexpr Bit displayModeA() { return {0x0080, 3}; }
2024 static constexpr Bit vfoModeB() { return {0x0080, 2}; }
2025 static constexpr Bit vfoModeA() { return {0x0080, 1}; }
2026 static constexpr Bit disableVFOMode() { return {0x0080, 0}; }
2027 static constexpr unsigned int dualStandbyHangTime() { return 0x0081;}
2028 static constexpr Bit sideKeyLock() { return {0x0085, 2}; }
2029 static constexpr Bit knobLock() { return {0x0085, 1}; }
2030 static constexpr Bit enableAutoKeyLock() { return {0x0085, 0}; }
2031 static constexpr unsigned int autoKeyLockDelay() { return 0x0086; }
2032 static constexpr unsigned int sk1Short() { return 0x0087; }
2033 static constexpr unsigned int sk1Long() { return 0x0088; }
2034 static constexpr unsigned int sk2Short() { return 0x0089; }
2035 static constexpr unsigned int sk2Long() { return 0x008a; }
2036 static constexpr unsigned int p1Short() { return 0x008d; }
2037 static constexpr unsigned int p1Long() { return 0x008e; }
2038 static constexpr unsigned int p2Short() { return 0x008f; }
2039 static constexpr unsigned int p2Long() { return 0x0090; }
2040 static constexpr unsigned int longPressDuration() { return 0x0094; }
2041 static constexpr unsigned int transmitTimeout() { return 0x00a0; }
2042 static constexpr unsigned int totReminder() { return 0x00a1; }
2043 static constexpr unsigned int voxLevel() { return 0x00a2; }
2044 static constexpr unsigned int voxDelay() { return 0x00a3; }
2045 static constexpr Bit powerSaveMode() { return {0x00a4, 4}; }
2046 static constexpr Bit weatherAlarm() { return {0x00a4, 2}; }
2047 static constexpr Bit disableLEDs() { return {0x00a4, 0}; }
2048 static constexpr Bit tbstFrequency() { return {0x00a5, 4}; }
2049 static constexpr Bit steMode() { return {0x00a5, 0}; }
2050 static constexpr unsigned int fmMicLevel() { return 0x00a6; }
2051 static constexpr unsigned int dmrMicLevel() { return 0x00a7; }
2053 };
2054 };
2055
2056
2059 {
2060 protected:
2062 enum class CallType {
2063 Private = 0, Group = 1
2064 };
2065
2066 public:
2068 APRSSettingsElement(uint8_t *ptr);
2069
2071 static constexpr unsigned int size() { return 0x0100; }
2072
2074 virtual Interval updatePeriod();
2076 virtual void setUpdatePeriod(Interval interval);
2077
2079 virtual bool fixedLocationEnabled() const;
2081 virtual QGeoCoordinate fixedLocation() const;
2083 virtual void setFixedLocation(const QGeoCoordinate &coordinate);
2085 virtual void enableFixedLocation(bool enable);
2086
2088 virtual bool revertChannelIsCurrent(unsigned int n);
2090 virtual unsigned int revertChannelIndex(unsigned int n) const;
2092 virtual void setRevertChannelIndex(unsigned int n, unsigned int idx);
2094 virtual void setRevertChannelToCurrent(unsigned int n);
2095
2097 virtual Interval preWaveDelay() const;
2099 virtual void setPreWaveDelay(const Interval &delay);
2100
2102 virtual DMRContact::Type callType() const;
2104 virtual void setCallType(DMRContact::Type type);
2105
2107 virtual unsigned int destinationId() const;
2109 virtual void setDestinationId(unsigned int id);
2110
2112 bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
2114 bool link(Context &ctx, const ErrorStack &err=ErrorStack());
2116 bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
2117
2118 public:
2120 struct Limit: Element::Limit {
2122 static constexpr Range<Interval> updatePeriod() {
2123 return {Interval::fromSeconds(30), Interval::fromMinutes(120) };
2124 }
2125
2126 static constexpr unsigned int revertChannels() { return 8; }
2127 };
2128
2129 protected:
2131 struct Offset: Element::Offset {
2133 static constexpr unsigned int updatePeriod() { return 0x0001; }
2134 static constexpr unsigned int enableFixedLocation() { return 0x0002; }
2135 static constexpr unsigned int fixedLocationLatitude() { return 0x0006; }
2136 static constexpr unsigned int fixedLocationLongitude() { return 0x0010; }
2137 static constexpr unsigned int revertChannelIndices() { return 0x0020; }
2138 static constexpr unsigned int betweenRevertChannelIndices() { return 0x0002; }
2139 static constexpr unsigned int prewaveDelay() { return 0x0030; }
2140 static constexpr unsigned int callType() { return 0x0031; }
2141 static constexpr unsigned int destinationId() { return 0x0032; }
2143 };
2144 };
2145
2146
2149 {
2150 public:
2152 PasswordSettingsElement(uint8_t *ptr);
2153
2155 static constexpr unsigned int size() { return 0x0100; }
2156
2158 virtual bool bootPasswordEnabled() const;
2160 virtual QString bootPassword() const;
2162 virtual void setBootPassword(const QString &value);
2164 virtual void clearBootPassword();
2165
2167 virtual bool writePasswordEnabled() const;
2169 virtual QString writePassword() const;
2171 virtual void setWritePassword(const QString &value);
2173 virtual void clearWritePassword();
2174
2176 virtual bool readPasswordEnabled() const;
2178 virtual QString readPassword() const;
2180 virtual void setReadPassword(const QString &value);
2182 virtual void clearReadPassword();
2183
2185 virtual bool encode(Context &ctx, ErrorStack err=ErrorStack());
2187 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
2188
2189 public:
2191 struct Limit: Element::Limit
2192 {
2194 static constexpr unsigned int passwordLength() { return 8;}
2195 };
2196
2197 protected:
2199 struct Offset: Element::Offset
2200 {
2202 static constexpr unsigned int enableBootPassword() { return 0x0030; }
2203 static constexpr unsigned int bootPassword() { return 0x0031; }
2204 static constexpr unsigned int enableWritePassword() { return 0x0039; }
2205 static constexpr unsigned int enableReadPassword() { return 0x003a; }
2206 static constexpr unsigned int writePassword() { return 0x003b; }
2207 static constexpr unsigned int readPassword() { return 0x0043; }
2209 };
2210 };
2211
2212
2215 {
2216 public:
2218 MenuSettingElement(uint8_t *ptr);
2219
2221 static constexpr unsigned int size() { return 0x0100; }
2222
2223 protected:
2225 struct Offset: Element::Offset {
2227 static constexpr Bit newZone() { return {0x0000,1}; }
2228 static constexpr Bit listZones() { return {0x0000,0}; }
2229 static constexpr Bit measurePeriod() { return {0x0001,5}; }
2230 static constexpr Bit remoteKill() { return {0x0001,4}; }
2231 static constexpr Bit reenableRadio() { return {0x0001,3}; }
2232 static constexpr Bit remoteMonitor() { return {0x0001,2}; }
2233 static constexpr Bit radioCheck() { return {0x0001,1}; }
2234 static constexpr Bit callAlert() { return {0x0001,0}; }
2235 static constexpr Bit matchGroupCall() { return {0x0002,7}; }
2236 static constexpr Bit displayMode() { return {0x0002,6}; }
2237 static constexpr Bit matchPrivateCall() { return {0x0002,5}; }
2238 static constexpr Bit languageSelect() { return {0x0002,4}; }
2239 static constexpr Bit bootDisplay() { return {0x0002,3}; }
2240 static constexpr Bit transmitPower() { return {0x0002,2}; }
2241 static constexpr Bit alertTone() { return {0x0002,1}; }
2242 static constexpr Bit talkaround() { return {0x0002,0}; }
2243 static constexpr Bit record() { return {0x0003,6}; }
2244 static constexpr Bit aprs() { return {0x0003,5}; }
2245 static constexpr Bit gnss() { return {0x0003,4}; }
2246 static constexpr Bit powerSave() { return {0x0003,3}; }
2247 static constexpr Bit subChannelMode() { return {0x0003,2}; }
2248 static constexpr Bit fmBCRadio() { return {0x0003,1}; }
2249 static constexpr Bit smsFormat() { return {0x0003,0}; }
2250 static constexpr Bit callsignDB() { return {0x0004,6}; }
2251 static constexpr Bit manualDial() { return {0x0004,5}; }
2252 static constexpr Bit sendMessage() { return {0x0004,4}; }
2253 static constexpr Bit contactFunc() { return {0x0004,3}; }
2254 static constexpr Bit editContact() { return {0x0004,2}; }
2255 static constexpr Bit deleteContact() { return {0x0004,1}; }
2256 static constexpr Bit addContact() { return {0x0004,0}; }
2257 static constexpr Bit clearCallLog() { return {0x0005,3}; }
2258 static constexpr Bit outgoingCalls() { return {0x0005,2}; }
2259 static constexpr Bit incomingCalls() { return {0x0005,1}; }
2260 static constexpr Bit missedCalls() { return {0x0005,0}; }
2261 static constexpr Bit radioName() { return {0x0006,7}; }
2262 static constexpr Bit radioId() { return {0x0006,6}; }
2263 static constexpr Bit timeslot() { return {0x0006,5}; }
2264 static constexpr Bit colorCode() { return {0x0006,4}; }
2265 static constexpr Bit txContact() { return {0x0006,3}; }
2266 static constexpr Bit ctcssDcs() { return {0x0006,2}; }
2267 static constexpr Bit txFrequency() { return {0x0006,1}; }
2268 static constexpr Bit rxFrequency() { return {0x0006,0}; }
2269 static constexpr Bit channelName() { return {0x0007,4}; }
2270 static constexpr Bit addChannel() { return {0x0007,3}; }
2271 static constexpr Bit groupList() { return {0x0007,2}; }
2272 static constexpr Bit dcdm() { return {0x0007,1}; }
2273 static constexpr Bit channelType() { return {0x0007,0}; }
2275 };
2276 };
2277
2278
2279
2282 {
2283 public:
2285 enum class Type {
2286 Off = 0, Custom = 1, ARC4 = 2, AES128 = 3, AES256 = 4
2287 };
2288
2289 public:
2291 EncryptionKeyElement(uint8_t *ptr);
2292
2294 static constexpr unsigned int size() { return 0x2c; }
2295
2296 virtual void clear() override;
2297
2299 virtual unsigned int keyId() const;
2301 virtual void setKeyId(unsigned int id);
2302
2304 virtual QString name() const;
2306 virtual void setName(const QString &name);
2307
2309 virtual Type type() const;
2311 virtual void setType(Type type);
2312
2314 virtual QByteArray key() const;
2316 virtual void setKey(const QByteArray &key);
2317
2319 EncryptionKey *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
2321 bool encode(const EncryptionKey *key, Context &ctx, const ErrorStack &err=ErrorStack());
2322
2323 public:
2325 struct Limit: Element::Limit {
2327 static constexpr unsigned int nameLength() { return 10; }
2329 static constexpr unsigned int keyLength() { return 32; }
2330 };
2331
2332 protected:
2334 struct Offset: Element::Offset {
2336 static constexpr unsigned int keyId() { return 0x0000; }
2337 static constexpr unsigned int name() { return 0x0001; }
2338 static constexpr unsigned int type() { return 0x000b; }
2339 static constexpr unsigned int key() { return 0x000c; }
2341 };
2342 };
2343
2344
2345
2348 {
2349 public:
2351 EncryptionKeyBankElement(uint8_t *ptr);
2352
2354 static constexpr unsigned int size() { return 0x600; }
2355
2357 virtual bool keyValid(unsigned int idx) const;
2359 virtual EncryptionKeyElement key(unsigned int idx) const;
2360
2362 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
2364 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
2365
2366 public:
2368 struct Limit: Element::Limit {
2370 static constexpr unsigned int keys() { return 32; }
2371 };
2372
2373 protected:
2375 struct Offset: Element::Offset {
2377 static constexpr unsigned int keys() { return 0x0000; }
2378 static constexpr unsigned int betweenKeys() {
2380 }
2382 };
2383 };
2384
2385
2386public:
2391 explicit DM32UVCodeplug(QObject *parent = nullptr);
2392
2393 Config * preprocess(Config *config, const ErrorStack &err) const override;
2394 bool postprocess(Config *config, const ErrorStack &err) const override;
2395
2396 bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const override;
2397 bool encode(Config *config, const Flags &flags, const ErrorStack &err=ErrorStack()) override;
2398 bool decode(Config *config, const ErrorStack &err=ErrorStack()) override;
2399
2400protected:
2402 virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
2404 virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack());
2406 virtual bool encodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
2407
2409 virtual bool decodeChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2411 virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2413 virtual bool encodeChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2414
2416 virtual bool decodeContacts(Context &ctx, const ErrorStack &err=ErrorStack());
2418 virtual bool encodeContacts(Context &ctx, const ErrorStack &err=ErrorStack());
2419
2421 virtual bool decodeZones(Context &ctx, const ErrorStack &err=ErrorStack());
2423 virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack());
2425 virtual bool encodeZones(Context &ctx, const ErrorStack &err=ErrorStack());
2426
2427public:
2429 struct Limit: Element::Limit {
2430 static constexpr unsigned int blockSize() { return 0x1000; }
2431 static constexpr Range<unsigned int> channelBanks() { return {1, 49}; }
2432 static constexpr Range<unsigned int> contactBanks() { return {1, 5}; }
2433 static constexpr Range<unsigned int> zoneBanks() { return {1, 8}; }
2434 };
2435
2436protected:
2438 struct Offset {
2440 static constexpr unsigned int generalSettings() { return 0x00004000; }
2441 static constexpr unsigned int aprsSettings() { return 0x00004300; }
2442 static constexpr unsigned int passwordSettings() { return 0x00004400; }
2443 static constexpr unsigned int contactIndex() { return 0x0000b000; }
2444 static constexpr unsigned int groupListBank() { return 0x0000f000; }
2445 static constexpr unsigned int extendedSettings() { return 0x00010000; }
2446 static constexpr unsigned int encryptionKeys() { return 0x00010300; }
2447 static constexpr unsigned int scanListBank() { return 0x00011000; }
2448 static constexpr unsigned int channelBanks() { return 0x00012000; }
2449 static constexpr unsigned int channelExtensionBanks() { return 0x00042000; }
2450 static constexpr unsigned int contactBanks() { return 0x00044000; }
2451 static constexpr unsigned int zoneBanks() { return 0x0005c000; }
2452 static constexpr unsigned int roamingZoneBank() { return 0x00065000; }
2453 static constexpr unsigned int roamingChannelBank() { return 0x00066000; }
2454 static constexpr unsigned int radioIdBank() { return 0x00067000; }
2456 };
2457};
2458
2459#endif // DM32UV_CODEPLUG_HH
BootDisplay
What to display during boot.
Definition bootsettings.hh:50
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:38
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:65
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:3565
virtual bool fixedLocationEnabled() const
Returns true if the fixed location is used.
Definition dm32uv_codeplug.cc:3486
CallType
Encoding of call type.
Definition dm32uv_codeplug.hh:2062
bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links the APRS settings.
Definition dm32uv_codeplug.cc:3622
virtual void setFixedLocation(const QGeoCoordinate &coordinate)
Sets the fixed location.
Definition dm32uv_codeplug.cc:3508
APRSSettingsElement(uint8_t *ptr)
Constructor from pointer.
Definition dm32uv_codeplug.cc:3461
virtual void enableFixedLocation(bool enable)
Enabled fixed location.
Definition dm32uv_codeplug.cc:3523
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2071
virtual void setRevertChannelToCurrent(unsigned int n)
Sets the n-th revert channel to be the current channel.
Definition dm32uv_codeplug.cc:3547
virtual unsigned int revertChannelIndex(unsigned int n) const
Returns the n-th revert channel index.
Definition dm32uv_codeplug.cc:3535
virtual Interval preWaveDelay() const
Returns the pre-wave delay.
Definition dm32uv_codeplug.cc:3554
virtual unsigned int destinationId() const
Returns the destination ID.
Definition dm32uv_codeplug.cc:3588
virtual void setPreWaveDelay(const Interval &delay)
Sets the pre-wave delay.
Definition dm32uv_codeplug.cc:3559
bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the APRS settings.
Definition dm32uv_codeplug.cc:3663
virtual void setRevertChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th revert channel index.
Definition dm32uv_codeplug.cc:3541
virtual Interval updatePeriod()
Returns the update interval.
Definition dm32uv_codeplug.cc:3468
virtual void setCallType(DMRContact::Type type)
Sets the call type for all revert channels.
Definition dm32uv_codeplug.cc:3574
bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the APRS settings.
Definition dm32uv_codeplug.cc:3599
virtual QGeoCoordinate fixedLocation() const
Returns the fixed location.
Definition dm32uv_codeplug.cc:3491
virtual void setDestinationId(unsigned int id)
Sets the destination ID for all revert channels.
Definition dm32uv_codeplug.cc:3593
virtual void setUpdatePeriod(Interval interval)
Sets the update interval.
Definition dm32uv_codeplug.cc:3475
virtual bool revertChannelIsCurrent(unsigned int n)
Returns true if the n-th revert channel is set.
Definition dm32uv_codeplug.cc:3529
virtual unsigned int channelCount() const
Returns the channel count.
Definition dm32uv_codeplug.cc:667
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:300
virtual void setChannelCount(unsigned int n)
Sets the channel count.
Definition dm32uv_codeplug.cc:672
static unsigned int channelBank(unsigned int index)
Returns the block index for the given channel index.
Definition dm32uv_codeplug.cc:678
ChannelBankElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:659
static unsigned int indexInBank(unsigned int index)
Returns the channel index within the block for the given channel index.
Definition dm32uv_codeplug.cc:686
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:694
static SelectiveCall decodeSelectiveCall(uint16_t code)
Helper function to decode selective call.
Definition dm32uv_codeplug.cc:624
Power
Possible power settings.
Definition dm32uv_codeplug.hh:41
virtual ChannelType channelType() const
Returns the channel type.
Definition dm32uv_codeplug.cc:75
virtual bool dcdmEnabled() const
Return true if DCDM (dual capacity direct mode) is enabled.
Definition dm32uv_codeplug.cc:290
virtual void clearGroupListIndex()
Invalidates group list index.
Definition dm32uv_codeplug.cc:369
virtual bool hasKeyIndex() const
Returns true if a key index is set.
Definition dm32uv_codeplug.cc:322
virtual unsigned int keyIndex() const
Returns the key index.
Definition dm32uv_codeplug.cc:327
virtual unsigned int dmrIdIndex() const
Returns the DMR radio id index.
Definition dm32uv_codeplug.cc:418
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:59
virtual void enableRXDMRAPRS(bool enable)
Enables/disables DMR APRS reception.
Definition dm32uv_codeplug.cc:190
virtual void enableVOX(bool enable)
Enables the VOX.
Definition dm32uv_codeplug.cc:412
virtual unsigned int dmrAPRSChannelIndex() const
Returns DMR APRS report channel index.
Definition dm32uv_codeplug.cc:375
virtual bool validScanListIndex() const
Returns true, if the scan list index is set.
Definition dm32uv_codeplug.cc:142
virtual DMRChannel::TimeSlot timeslot() const
Returns the timeslot of the channel.
Definition dm32uv_codeplug.cc:301
ChannelType
Possible channel types.
Definition dm32uv_codeplug.hh:36
virtual void enableEmergencyACK(bool enable)
Enables/disables emergency notification.
Definition dm32uv_codeplug.cc:211
virtual unsigned int groupListIndex() const
Get group list index.
Definition dm32uv_codeplug.cc:359
virtual bool rxDMRAPRSEnabled() const
Returns true if DMR APRS reception is enabled.
Definition dm32uv_codeplug.cc:185
virtual void setPower(Channel::Power power)
Sets the channel power.
Definition dm32uv_codeplug.cc:96
virtual void enableTalkaround(bool enable)
Enables/disables talkaround feature on this channel.
Definition dm32uv_codeplug.cc:168
virtual bool rxOnlyEnabled() const
Returns true if the channel is RX only.
Definition dm32uv_codeplug.cc:248
virtual bool encode(const Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes a channel.
Definition dm32uv_codeplug.cc:541
virtual bool link(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links the channel object.
Definition dm32uv_codeplug.cc:487
virtual FMChannel::Bandwidth bandwidth() const
Returns the bandwidth for FM channels.
Definition dm32uv_codeplug.cc:125
virtual Admit admitCriterion() const
Returns the admit criterion.
Definition dm32uv_codeplug.cc:174
virtual void setColorCode(unsigned int cc)
Sets the color code of the channel.
Definition dm32uv_codeplug.cc:316
virtual void setRXFrequency(const Frequency &freq)
Set RX frequency.
Definition dm32uv_codeplug.cc:46
virtual void setEmergencySystemIndex(unsigned int idx)
Sets the emergency system index.
Definition dm32uv_codeplug.cc:226
static uint16_t encodeSelectiveCall(const SelectiveCall &tone)
Helper function to encode selective call.
Definition dm32uv_codeplug.cc:642
virtual Channel * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a channel object.
Definition dm32uv_codeplug.cc:429
virtual Frequency rxFrequency() const
Returns the RX frequency.
Definition dm32uv_codeplug.cc:41
virtual void enableDCDM(bool enable)
Enables DCDM (dual capacity direct mode).
Definition dm32uv_codeplug.cc:295
virtual void clearScanListIndex()
Invalidates the scan list index.
Definition dm32uv_codeplug.cc:157
virtual void clearEmergencySystemIndex()
Invalidates the emergency system index.
Definition dm32uv_codeplug.cc:231
virtual bool validGroupListIndex() const
Returns true if group list index is valid.
Definition dm32uv_codeplug.cc:354
virtual void enableDMRAPRS(bool enable)
Enables DMR APRS for the channel.
Definition dm32uv_codeplug.cc:264
virtual unsigned int scanListIndex() const
Returns the 0-based scan list index.
Definition dm32uv_codeplug.cc:147
virtual bool dataACKEnabled() const
Return true if data is confirmed.
Definition dm32uv_codeplug.cc:280
virtual QString name() const
Returns the channel name.
Definition dm32uv_codeplug.cc:30
virtual bool talkaroundEnabled() const
Returns true if talkaround is enabled on this channel.
Definition dm32uv_codeplug.cc:163
virtual bool voxEnabled() const
Returns true, if the VOX is enabled.
Definition dm32uv_codeplug.cc:407
virtual void setScanListIndex(unsigned int idx)
Sets the scan list index.
Definition dm32uv_codeplug.cc:152
virtual unsigned int colorCode() const
Returns the color code of the channel.
Definition dm32uv_codeplug.cc:311
virtual void setName(const QString &name)
Sets the channel name.
Definition dm32uv_codeplug.cc:35
virtual bool encryptionEnabled() const
Returns true if encryption is enabled.
Definition dm32uv_codeplug.cc:343
virtual void setKeyIndex(unsigned int idx)
Sets the key index.
Definition dm32uv_codeplug.cc:332
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:119
virtual void setTXFrequency(const Frequency &freq)
Set TX frequency.
Definition dm32uv_codeplug.cc:64
virtual void setGroupListIndex(unsigned int idx)
Set group list index.
Definition dm32uv_codeplug.cc:364
virtual void setBandwidth(FMChannel::Bandwidth bw)
Sets the FM channel bandwidth.
Definition dm32uv_codeplug.cc:133
virtual void enableDataACK(bool enable)
Enables confirmation of data.
Definition dm32uv_codeplug.cc:285
virtual void setSquelchLevel(Level level)
Sets the FM and DMR squelch level.
Definition dm32uv_codeplug.cc:242
virtual bool privateCallACKEnabled() const
Return true if private calls are confirmed.
Definition dm32uv_codeplug.cc:270
virtual bool emergencyNotificationEnabled() const
Retruns true, if the emergency notification is enabled.
Definition dm32uv_codeplug.cc:196
virtual bool dmrAPRSEnabled() const
Returns true if DMR APRS is enabled.
Definition dm32uv_codeplug.cc:259
void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_codeplug.cc:25
virtual Level squelchLevel() const
Returns FM and DMR squelch level.
Definition dm32uv_codeplug.cc:237
virtual unsigned int emergencySystemIndex() const
Returns the emergency system index.
Definition dm32uv_codeplug.cc:221
Admit
Possible admit criteria.
Definition dm32uv_codeplug.hh:46
virtual Frequency txFrequency() const
Returns the TX frequency.
Definition dm32uv_codeplug.cc:57
virtual void enablePrivateCallACK(bool enable)
Enables confirmation of private calls.
Definition dm32uv_codeplug.cc:275
virtual void setDMRIdIndex(unsigned int id)
Sets the dmr ID index.
Definition dm32uv_codeplug.cc:423
virtual void setDMRAPRSChannelIndex(unsigned int idx)
Sets the DMR APRS report channel index.
Definition dm32uv_codeplug.cc:380
virtual SelectiveCall rxTone() const
Returns the RX tone.
Definition dm32uv_codeplug.cc:386
virtual void enableRXOnly(bool enable)
Enables RX only for the channel.
Definition dm32uv_codeplug.cc:253
virtual bool validTXFrequency() const
Returns true, if a valid TX frequency is stored.
Definition dm32uv_codeplug.cc:52
virtual bool validEmergencySystemIndex() const
Returns true if the emergency system index is set.
Definition dm32uv_codeplug.cc:216
virtual void setRXTone(const SelectiveCall &tone)
Sets the RX tone.
Definition dm32uv_codeplug.cc:391
virtual void setAdmitCriterion(Admit admit)
Sets the admit criterion.
Definition dm32uv_codeplug.cc:179
virtual bool loneWorkerEnabled() const
Returns true, if the lone-worker feature is enabled.
Definition dm32uv_codeplug.cc:114
virtual SelectiveCall txTone() const
Returns the TX tone.
Definition dm32uv_codeplug.cc:396
virtual Channel::Power power() const
Returns the channel power setting.
Definition dm32uv_codeplug.cc:86
virtual void enableEmergencyNotification(bool enable)
Enables/disables emergency notification.
Definition dm32uv_codeplug.cc:201
virtual void clearKeyIndex()
Resets the key index.
Definition dm32uv_codeplug.cc:337
virtual void clearTXFrequency()
Invalidates the TX frequency.
Definition dm32uv_codeplug.cc:69
virtual void setTimeslot(DMRChannel::TimeSlot ts)
Sets the timeslot of the channel.
Definition dm32uv_codeplug.cc:306
virtual void setChannelType(ChannelType type)
Sets the channel type.
Definition dm32uv_codeplug.cc:80
virtual void setTXTone(const SelectiveCall &tone)
Sets the TX tone.
Definition dm32uv_codeplug.cc:401
virtual bool emergencyACKEnabled() const
Retruns true, if the emergency ACK is enabled.
Definition dm32uv_codeplug.cc:206
Encodes a bank of channel extension settings.
Definition dm32uv_codeplug.hh:384
virtual bool hasContactIndex() const
Returns true if a TX contact index is set.
Definition dm32uv_codeplug.cc:720
void clear() override
Resets the element.
Definition dm32uv_codeplug.cc:713
virtual bool link(Channel *ch, Context &ctx, const ErrorStack &err) const
Links the given channel.
Definition dm32uv_codeplug.cc:755
ChannelExtensionElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:706
virtual void setContactIndex(unsigned int index)
Sets the contact index.
Definition dm32uv_codeplug.cc:734
virtual void clearContactIndex()
Resets the contact index.
Definition dm32uv_codeplug.cc:742
virtual bool encode(const Channel *ch, Context &ctx, const ErrorStack &err)
Encodes the extended settings from the given channel.
Definition dm32uv_codeplug.cc:770
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:350
virtual unsigned int contactIndex() const
Returns the TX contact index.
Definition dm32uv_codeplug.cc:727
virtual bool decode(Channel *ch, Context &ctx, const ErrorStack &err) const
Updates the given channel.
Definition dm32uv_codeplug.cc:749
Implements the contact bank.
Definition dm32uv_codeplug.hh:461
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:418
virtual void setDMRId(unsigned int id)
Sets the DMR Id.
Definition dm32uv_codeplug.cc:848
Type
Possible contact types.
Definition dm32uv_codeplug.hh:405
virtual void setName(const QString &name)
Sets the name of the contact.
Definition dm32uv_codeplug.cc:811
virtual QString name() const
Returns the name of the contact.
Definition dm32uv_codeplug.cc:806
ContactElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:792
virtual DMRContact * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a contact object.
Definition dm32uv_codeplug.cc:853
virtual void setCallType(DMRContact::Type type)
Sets the call type.
Definition dm32uv_codeplug.cc:827
virtual bool encode(const DMRContact *contact, const ErrorStack &err=ErrorStack())
Encodes the contact.
Definition dm32uv_codeplug.cc:860
virtual unsigned int dmrId() const
Returns the DMR Id.
Definition dm32uv_codeplug.cc:842
virtual DMRContact::Type callType() const
Returns the call type.
Definition dm32uv_codeplug.cc:817
ContactBitmapElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:875
static constexpr unsigned int size()
Returns the size of the bitmap.
Definition dm32uv_codeplug.hh:494
bool isValid() const override
Returns true if the entry is valid.
Definition dm32uv_codeplug.cc:903
void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_codeplug.cc:898
EntryElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:885
virtual DMRContact::Type callType() const
Returns the call type.
Definition dm32uv_codeplug.cc:908
virtual void setCallType(DMRContact::Type type)
Sets the call type.
Definition dm32uv_codeplug.cc:918
virtual void setIndex(unsigned int idx)
Sets the index.
Definition dm32uv_codeplug.cc:935
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:514
virtual unsigned int index() const
Returns the contact index.
Definition dm32uv_codeplug.cc:930
virtual unsigned int groupCallCount() const
Returns the number of group call contacts encoded.
Definition dm32uv_codeplug.cc:969
virtual ContactBitmapElement bitmap() const
Returns the contact bitmap.
Definition dm32uv_codeplug.cc:990
static constexpr unsigned int size()
Size of this element.
Definition dm32uv_codeplug.hh:535
virtual EntryElement indexEntry(unsigned n)
Returns the n-th index entry.
Definition dm32uv_codeplug.cc:995
virtual unsigned int privateCallCount() const
Returns the number of private call contacts encoded.
Definition dm32uv_codeplug.cc:979
virtual void setPrivateCallCount(unsigned int n)
Sets the number of private call contacts.
Definition dm32uv_codeplug.cc:984
virtual void setContactCount(unsigned int n)
Sets the number of contacts.
Definition dm32uv_codeplug.cc:964
virtual void setGroupCallCount(unsigned int n)
Sets the number of group call contacts.
Definition dm32uv_codeplug.cc:974
ContactIndexElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:945
virtual EntryElement sortedIndexEntry(unsigned n)
Returns the n-th sorted index entry.
Definition dm32uv_codeplug.cc:1000
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the contact index.
Definition dm32uv_codeplug.cc:1006
virtual unsigned int contactCount() const
Returns the number of contacts encoded.
Definition dm32uv_codeplug.cc:959
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all keys.
Definition dm32uv_codeplug.cc:3962
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all keys.
Definition dm32uv_codeplug.cc:3944
EncryptionKeyBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:3924
virtual bool keyValid(unsigned int idx) const
Returns true, if the key is valid.
Definition dm32uv_codeplug.cc:3931
virtual EncryptionKeyElement key(unsigned int idx) const
Returns the n-th key.
Definition dm32uv_codeplug.cc:3938
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2354
Implementation of a single encryption key.
Definition dm32uv_codeplug.hh:2282
virtual void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_codeplug.cc:3809
EncryptionKeyElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:3801
bool encode(const EncryptionKey *key, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the key.
Definition dm32uv_codeplug.cc:3900
virtual QString name() const
Returns the key name.
Definition dm32uv_codeplug.cc:3828
virtual void setKeyId(unsigned int id)
Sets the key id.
Definition dm32uv_codeplug.cc:3822
virtual QByteArray key() const
Returns the key data.
Definition dm32uv_codeplug.cc:3850
virtual Type type() const
Returns the key type.
Definition dm32uv_codeplug.cc:3839
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2294
Type
Possible key types.
Definition dm32uv_codeplug.hh:2285
virtual void setType(Type type)
Sets the key type.
Definition dm32uv_codeplug.cc:3844
EncryptionKey * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes the key.
Definition dm32uv_codeplug.cc:3863
virtual unsigned int keyId() const
Returns the key id.
Definition dm32uv_codeplug.cc:3817
virtual void setName(const QString &name)
Sets the name.
Definition dm32uv_codeplug.cc:3833
virtual void setKey(const QByteArray &key)
Sets the key data.
Definition dm32uv_codeplug.cc:3855
virtual KeyFunction::Function sk1Short() const
Returns the side-key 1 short-press function.
Definition dm32uv_codeplug.cc:3113
virtual bool dmrRemoteKillEnabled() const
Returns true if the remote kill switch is enabled.
Definition dm32uv_codeplug.cc:2865
virtual Interval dmrPreambleDuration() const
Retruns the DMR preamble duration.
Definition dm32uv_codeplug.cc:2843
SMSFormat
Possible SMS formats.
Definition dm32uv_codeplug.hh:1462
virtual Interval dmrCallHangTime() const
Returns the DMR call hang time.
Definition dm32uv_codeplug.cc:2810
virtual void setDualStandbyMode(DualStandbyMode mode)
Sets the dual-standby mode.
Definition dm32uv_codeplug.cc:2991
virtual void enableDMRRXAlert(bool enable)
Enables enables reception of DMR alerts.
Definition dm32uv_codeplug.cc:2903
virtual bool privateCallToneEnabled() const
Returns true if private call tone is enabled.
Definition dm32uv_codeplug.cc:2450
virtual VFODisplayMode vfoDisplayModeB() const
Returns the VFO B display mode.
Definition dm32uv_codeplug.cc:3019
VFOMode
VFO Modes.
Definition dm32uv_codeplug.hh:1492
virtual void enableShowVolumeChange(bool enable)
Enable volume change prompt.
Definition dm32uv_codeplug.cc:2612
virtual void disableVFOMode(bool enable)
Disables VFO modes.
Definition dm32uv_codeplug.cc:3056
virtual bool groupCallMatchEnabled() const
Returns true if group call must match.
Definition dm32uv_codeplug.cc:2788
virtual void setP2Short(KeyFunction::Function function)
Sets the programmable key 2 short-press function.
Definition dm32uv_codeplug.cc:3179
virtual void setGNSS(GNSSSettings::Systems mode)
Sets the GNSS mode.
Definition dm32uv_codeplug.cc:2722
TBSTFrequency
Possible TBST frequencies.
Definition dm32uv_codeplug.hh:1519
virtual void enableSMSTone(bool enable)
Enables sms tones.
Definition dm32uv_codeplug.cc:2434
virtual bool smsToneEnabled() const
Returns true if sms tones are enabled.
Definition dm32uv_codeplug.cc:2429
virtual void setFMMicLevel(Level level)
Sets the FM mic level.
Definition dm32uv_codeplug.cc:3337
virtual Color::Code channelNameAColor() const
Returns the channel name A color.
Definition dm32uv_codeplug.cc:2660
virtual void setActiveRetries(unsigned int retries)
Sets the number of active retires.
Definition dm32uv_codeplug.cc:2837
virtual void setDMRCallHangTime(const Interval &hangTime)
Sets the DMR call hang time.
Definition dm32uv_codeplug.cc:2815
FMRogerTone
Possible FM roger tones.
Definition dm32uv_codeplug.hh:1418
virtual void setSK1Long(KeyFunction::Function function)
Sets the side-key 1 long-press function.
Definition dm32uv_codeplug.cc:3128
virtual VFOMode vfoModeA() const
Returns the VFO A mode.
Definition dm32uv_codeplug.cc:3030
virtual void setBacklightDuration(Interval duration)
Sets the backlight duration.
Definition dm32uv_codeplug.cc:2557
virtual bool missedCallNotificationEnabled() const
Retruns true missed call notification is enabled.
Definition dm32uv_codeplug.cc:2929
virtual void enableShowClock(bool enable)
Enable clock.
Definition dm32uv_codeplug.cc:2634
virtual void enableTXTalkerAlias(bool enable)
Enables transmission of talker alias.
Definition dm32uv_codeplug.cc:2969
virtual void setTimeZone(const QTimeZone &timeZone)
Sets the timezone.
Definition dm32uv_codeplug.cc:2749
virtual void enableWeatherAlarm(bool enable)
Enables the NOAA weather alarm.
Definition dm32uv_codeplug.cc:3280
virtual void setP1Long(KeyFunction::Function function)
Sets the programmable key 1 long-press function.
Definition dm32uv_codeplug.cc:3169
virtual void disableAllLEDs(bool disable)
Disables all LEDs.
Definition dm32uv_codeplug.cc:3291
virtual void setSK2Long(KeyFunction::Function function)
Sets the side-key 2 long-press function.
Definition dm32uv_codeplug.cc:3148
virtual bool allLEDsDisabled() const
Returns true if all LEDs are disabled.
Definition dm32uv_codeplug.cc:3286
virtual void setChannelNameAColor(Color::Code c)
Sets the channel name A color.
Definition dm32uv_codeplug.cc:2665
virtual void setMainVFO(VFO mainVFO)
Sets the main VFO.
Definition dm32uv_codeplug.cc:3002
GNSSMode
GNSS modes.
Definition dm32uv_codeplug.hh:1452
virtual void enableDMRRemoteKill(bool enable)
Enables the remote kill swtich.
Definition dm32uv_codeplug.cc:2870
virtual void setTalkerAliasSource(TalkerAliasSource source)
Sets the talker alias source.
Definition dm32uv_codeplug.cc:2980
VFO
VFO selection.
Definition dm32uv_codeplug.hh:1482
virtual bool talkPermitToneEnabled() const
Returns true if talk permit tone is enabled.
Definition dm32uv_codeplug.cc:2472
virtual void setDMRRemoteMonitorDuration(Interval duration)
Sets the remote monitor duration.
Definition dm32uv_codeplug.cc:2945
virtual void setP2Long(KeyFunction::Function function)
Sets the programmable key 2 long-press function.
Definition dm32uv_codeplug.cc:3189
virtual void enableBootTone(bool enable)
Enables boot tones.
Definition dm32uv_codeplug.cc:2488
virtual void setTransmitTimeout(Interval timeout)
Sets transmit timeout.
Definition dm32uv_codeplug.cc:3214
virtual TalkerAliasSource talkerAliasSource() const
Returns the talker alias source.
Definition dm32uv_codeplug.cc:2975
virtual bool sideKeyLockEnabled() const
Returns true if the side keys are locked.
Definition dm32uv_codeplug.cc:3073
virtual void enableMCUReset(bool enable)
Enables MCU reset.
Definition dm32uv_codeplug.cc:2369
virtual BootSettings::BootDisplay bootDisplay() const
Returns the boot display setting.
Definition dm32uv_codeplug.cc:2319
virtual DualStandbyMode dualStandbyMode() const
Returns the dual-standby mode.
Definition dm32uv_codeplug.cc:2986
virtual void setZoneNameAColor(Color::Code c)
Sets the zone name A color.
Definition dm32uv_codeplug.cc:2685
virtual bool showVolmueChange() const
Returns true if the volume change prompt is shown.
Definition dm32uv_codeplug.cc:2607
VFODisplayMode
VFO display modes.
Definition dm32uv_codeplug.hh:1487
virtual bool radioSilentEnabled() const
Returns true if all tones are disabled.
Definition dm32uv_codeplug.cc:2407
virtual void setZoneNameBColor(Color::Code c)
Sets the zone name B color.
Definition dm32uv_codeplug.cc:2695
virtual VFO mainVFO() const
Returns the main VFO.
Definition dm32uv_codeplug.cc:2997
PowerSaveMode
Possible power-save mode.
Definition dm32uv_codeplug.hh:1514
virtual void enableGroupCallMatch(bool enable)
Enables group call match.
Definition dm32uv_codeplug.cc:2793
virtual Interval voxDelay() const
Returns the VOX delay.
Definition dm32uv_codeplug.cc:3252
virtual GNSSSettings::Systems gnss() const
Returns the GNSS mode.
Definition dm32uv_codeplug.cc:2712
virtual Level dmrMicLevel() const
Returns the DMR mic level.
Definition dm32uv_codeplug.cc:3342
virtual bool groupCallToneEnabled() const
Returns true if group call tone is enabled.
Definition dm32uv_codeplug.cc:2440
virtual void setDateFormat(DateFormat format)
Sets the date format.
Definition dm32uv_codeplug.cc:2623
virtual void enableVoicePrompt(bool enable)
Enables voice prompt.
Definition dm32uv_codeplug.cc:2499
virtual void setDisplayBrightness(unsigned int n)
Sets the display brightness [0-10].
Definition dm32uv_codeplug.cc:2532
virtual void setDmrPreambleDuration(Interval duration)
Sets the DMR preamble duration.
Definition dm32uv_codeplug.cc:2848
virtual bool vfoModeDisabled() const
Returns true if VFO modes are disabled.
Definition dm32uv_codeplug.cc:3051
virtual void enableRadioSilent(bool enable)
Disables all tones.
Definition dm32uv_codeplug.cc:2412
virtual void setRecordMode(RecordMode mode)
Sets the record mode.
Definition dm32uv_codeplug.cc:2771
virtual Color::Code zoneNameAColor() const
Returns the zone name A color.
Definition dm32uv_codeplug.cc:2680
virtual bool showClock() const
Returns true if the clock is shown.
Definition dm32uv_codeplug.cc:2629
virtual KeyFunction::Function p1Long() const
Returns the programmable key 1 long-press function.
Definition dm32uv_codeplug.cc:3164
STEMode
Possible squelch tail-eliminations.
Definition dm32uv_codeplug.hh:1524
virtual void setPowerSaveMode(PowerSaveMode mode)
Sets the power-save mode.
Definition dm32uv_codeplug.cc:3269
virtual bool gnssEnabled() const
Returns true if GNSS is enabled.
Definition dm32uv_codeplug.cc:2733
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encode general settings.
Definition dm32uv_codeplug.cc:3403
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the general settings.
Definition dm32uv_codeplug.cc:3353
virtual void setVoxDelay(Interval delay)
Sets the VOX delay.
Definition dm32uv_codeplug.cc:3257
virtual void setMenuDuration(Interval duration)
Sets the menu hold time.
Definition dm32uv_codeplug.cc:2597
virtual void setAutoPowerOffDelay(const Interval &delay)
Sets the auto-power-off delay.
Definition dm32uv_codeplug.cc:2388
virtual void enableGNSS(bool enable)
Enables GNSS.
Definition dm32uv_codeplug.cc:2738
virtual void enableKnobLock(bool enable)
Enables the knob lock.
Definition dm32uv_codeplug.cc:3089
virtual Color::Code standbyColor() const
Returns the standby text color.
Definition dm32uv_codeplug.cc:2650
virtual Interval transmitTimeout() const
Returns the transmit timeout.
Definition dm32uv_codeplug.cc:3207
virtual Level voxLevel() const
Returns the VOX level.
Definition dm32uv_codeplug.cc:3236
virtual void enableDMRRemoteReenable(bool enable)
Enables DMR remote reenable.
Definition dm32uv_codeplug.cc:2892
virtual SMSExtension::Format smsFormat() const
Returns the DMR SMS format.
Definition dm32uv_codeplug.cc:2909
virtual KeyFunction::Function sk2Short() const
Returns the side-key 2 short-press function.
Definition dm32uv_codeplug.cc:3133
virtual void setBootMessage2(const QString &msg)
Sets the second boot message line.
Definition dm32uv_codeplug.cc:2358
virtual KeyFunction::Function p1Short() const
Returns the programmable key 1 short-press function.
Definition dm32uv_codeplug.cc:3154
virtual void setVFODisplayModeB(VFODisplayMode mode)
Sets the VFO B display mode.
Definition dm32uv_codeplug.cc:3024
BootDisplay
Possible boot display settings.
Definition dm32uv_codeplug.hh:1408
virtual bool lowBatteryToneEnabled() const
Returns true if low-battery tone is enabled.
Definition dm32uv_codeplug.cc:2505
GeneralSettingsElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2311
virtual Color::Code callColor() const
Returns the call color.
Definition dm32uv_codeplug.cc:2640
virtual bool weatherAlarmEnabled() const
Returns true, if the NOAA weather alarm is enabled.
Definition dm32uv_codeplug.cc:3275
virtual void enableMissedCallNotification(bool enable)
Enables missed call notification.
Definition dm32uv_codeplug.cc:2934
virtual Frequency tbstFrequency() const
Returns the TBST frequency.
Definition dm32uv_codeplug.cc:3297
BacklightDuration
Possible settings for the backlight duration.
Definition dm32uv_codeplug.hh:1423
virtual bool eotToneEnabled() const
Returns true if EOT tone is enabled.
Definition dm32uv_codeplug.cc:2461
virtual void setTalkerAliasEncoding(DMRSettings::TalkerAliasEncoding format)
Sets the talker alias format.
Definition dm32uv_codeplug.cc:2958
PositionFormat
Possible position formats.
Definition dm32uv_codeplug.hh:1446
@ DD
Decimal degree.
Definition dm32uv_codeplug.hh:1447
@ DMS
Degree, minute, second.
Definition dm32uv_codeplug.hh:1448
virtual KeyFunction::Function sk1Long() const
Returns the side-key 1 long-press function.
Definition dm32uv_codeplug.cc:3123
virtual bool dmrRemoteRadioCheckEnabled() const
Returns true if the remote radio check is enabled.
Definition dm32uv_codeplug.cc:2876
virtual unsigned int activeRetries() const
Returns the number of active retries.
Definition dm32uv_codeplug.cc:2832
virtual void setVFOModeA(VFOMode mode)
Sets the VFO A mode.
Definition dm32uv_codeplug.cc:3035
virtual STEMode steMode() const
Returns the squelch tail elimination mode.
Definition dm32uv_codeplug.cc:3321
virtual void setDMRMicLevel(Level level)
Sets the DMR mic level.
Definition dm32uv_codeplug.cc:3347
virtual void setPosUpdatePeriod(const Interval &period)
Sets the position update period.
Definition dm32uv_codeplug.cc:2760
RecordMode
Possible recording modes.
Definition dm32uv_codeplug.hh:1457
virtual void setP1Short(KeyFunction::Function function)
Sets the programmable key 1 short-press function.
Definition dm32uv_codeplug.cc:3159
virtual Interval posUpdatePeriod() const
Returns the position update period.
Definition dm32uv_codeplug.cc:2755
virtual void setVFOModeB(VFOMode mode)
Sets the VFO B mode.
Definition dm32uv_codeplug.cc:3045
virtual void setCallColor(Color::Code c)
Sets the call color.
Definition dm32uv_codeplug.cc:2645
virtual VFOMode vfoModeB() const
Returns the VFO B mode.
Definition dm32uv_codeplug.cc:3040
virtual void setVFODisplayModeA(VFODisplayMode mode)
Sets the VFO A display mode.
Definition dm32uv_codeplug.cc:3013
virtual Interval longPressDuration() const
Returns the long-press duration.
Definition dm32uv_codeplug.cc:3195
virtual void setActiveWaitTime(Interval waitTime)
Sets the active wait time.
Definition dm32uv_codeplug.cc:2826
virtual void enableKeyTone(bool enable)
Enables key tones.
Definition dm32uv_codeplug.cc:2423
virtual DMRSettings::TalkerAliasEncoding talkerAliasEncoding() const
Returns the talker alias format.
Definition dm32uv_codeplug.cc:2951
virtual Interval dualStandbyHangTime() const
Returns the dual-standby hang-time.
Definition dm32uv_codeplug.cc:3062
static constexpr unsigned int size()
Returns the size og the element.
Definition dm32uv_codeplug.hh:1534
virtual void enableSideKeyLock(bool enable)
Enable side key lock.
Definition dm32uv_codeplug.cc:3078
virtual Interval autoPowerOffDelay() const
Returns the auto-power-off delay.
Definition dm32uv_codeplug.cc:2375
TalkerAliasSource
Talker alias sources.
Definition dm32uv_codeplug.hh:1472
virtual bool bootToneEnabled() const
Returns true if boot tone is enabled.
Definition dm32uv_codeplug.cc:2483
virtual Interval autoKeyLockDelay() const
Returns the auto key-lock delay.
Definition dm32uv_codeplug.cc:3095
virtual Level fmMicLevel() const
Returns the FM mic level.
Definition dm32uv_codeplug.cc:3332
virtual bool keyToneEnabled() const
Returns true if key tones are enabled.
Definition dm32uv_codeplug.cc:2418
virtual void enableDMRRemoteRadioCheck(bool enable)
Enables remote radio check.
Definition dm32uv_codeplug.cc:2881
virtual bool dmrRXAlertEnabled() const
Returns true reception of DMR alerts is enabled.
Definition dm32uv_codeplug.cc:2898
TalkerAliasFormat
Talker alias formats.
Definition dm32uv_codeplug.hh:1467
virtual void setPositionFormat(PositionFormat format)
Sets the position display format.
Definition dm32uv_codeplug.cc:2706
virtual void enableRecording(bool enable)
Enables/disables recording.
Definition dm32uv_codeplug.cc:2782
virtual void setTransmitTimeoutReminder(Interval timeout)
Sets transmit timeout reminder.
Definition dm32uv_codeplug.cc:3230
virtual void enableGroupCallTone(bool enable)
Enables group call tones.
Definition dm32uv_codeplug.cc:2445
virtual KeyFunction::Function p2Short() const
Returns the programmable key 2 short-press function.
Definition dm32uv_codeplug.cc:3174
virtual bool voicePromptEnabled() const
Returns true if voice prompt is enabled.
Definition dm32uv_codeplug.cc:2494
virtual Interval menuDuration() const
Returns the menu hold time.
Definition dm32uv_codeplug.cc:2589
virtual void setSMSFormat(SMSExtension::Format format)
Sets the DMR SMS format.
Definition dm32uv_codeplug.cc:2919
virtual void setFMRogerTone(FMRogerTone tone)
Sets the FM roger tone.
Definition dm32uv_codeplug.cc:2521
virtual bool dmrRemoteReenableEnabled() const
Returns true if the remote reenable is enabled.
Definition dm32uv_codeplug.cc:2887
virtual VFODisplayMode vfoDisplayModeA() const
Returns the VFO A display mode.
Definition dm32uv_codeplug.cc:3008
virtual void setLongPressDuration(Interval duration)
Sets the long-press duration.
Definition dm32uv_codeplug.cc:3200
virtual void setSK1Short(KeyFunction::Function function)
Sets the side-key 1 short-press function.
Definition dm32uv_codeplug.cc:3118
virtual KeyFunction::Function sk2Long() const
Returns the side-key 2 long-press function.
Definition dm32uv_codeplug.cc:3143
virtual Interval dmrRemoteMonitorDuration() const
Returns the remote monitor duration.
Definition dm32uv_codeplug.cc:2940
virtual PositionFormat positionFormat() const
Returns the position display format.
Definition dm32uv_codeplug.cc:2701
virtual void enableDMRRemoteMonitor(bool enable)
Enables the remote monitor.
Definition dm32uv_codeplug.cc:2859
virtual QString bootMessage1() const
Returns the first boot message line.
Definition dm32uv_codeplug.cc:2343
virtual bool mcuResetEnabled() const
Returns true if MCU reset is enabled.
Definition dm32uv_codeplug.cc:2364
virtual void setBootDisplay(BootSettings::BootDisplay dis)
Sets the boot display.
Definition dm32uv_codeplug.cc:2329
virtual Color::Code zoneNameBColor() const
Returns the zone name B color.
Definition dm32uv_codeplug.cc:2690
virtual KeyFunction::Function p2Long() const
Returns the programmable key 2 long-press function.
Definition dm32uv_codeplug.cc:3184
virtual void setBootMessage1(const QString &msg)
Sets the first boot message line.
Definition dm32uv_codeplug.cc:2348
virtual unsigned int displayBrightness() const
Returns the display brightness setting [0-10].
Definition dm32uv_codeplug.cc:2527
virtual bool txTalkerAliasEnabled() const
Returns true, if transmission of talker alias is enabled.
Definition dm32uv_codeplug.cc:2964
virtual void setStandbyColor(Color::Code c)
Sets the standby text color.
Definition dm32uv_codeplug.cc:2655
virtual void enableLowBatteryTone(bool enable)
Enables low-battery tones.
Definition dm32uv_codeplug.cc:2510
virtual bool dmrRemoteMonitorEnabled() const
Returns true if the DMR remote monitor is enabled.
Definition dm32uv_codeplug.cc:2854
virtual void enablePrivateCallTone(bool enable)
Enables group call tones.
Definition dm32uv_codeplug.cc:2455
virtual void setDualStandbyHangTime(Interval hangTime)
Sets the dual-standby hang-time.
Definition dm32uv_codeplug.cc:3067
virtual DateFormat dateFormat() const
Returns the date format.
Definition dm32uv_codeplug.cc:2618
virtual void enableEOTTone(bool enable)
Enables EOT tones.
Definition dm32uv_codeplug.cc:2466
virtual void setTBSTFrequency(const Frequency &frequency)
Sets the TBST frequency.
Definition dm32uv_codeplug.cc:3308
virtual bool knobLockEnabled() const
Returns true, if the knowb is locked.
Definition dm32uv_codeplug.cc:3084
virtual FMRogerTone fmRogerTone() const
Returns the FM roger tone setting.
Definition dm32uv_codeplug.cc:2516
virtual Interval transmitTimeoutReminder() const
Returns the transmit timeout reminder.
Definition dm32uv_codeplug.cc:3225
virtual void setVOXLevel(Level voxLevel)
Sets the VOX level.
Definition dm32uv_codeplug.cc:3243
virtual QTimeZone timeZone() const
Returns the time zone.
Definition dm32uv_codeplug.cc:2744
virtual void setSTEMode(STEMode mode)
Sets the STE mode.
Definition dm32uv_codeplug.cc:3326
virtual Interval activeWaitTime() const
Returns the active wait time.
Definition dm32uv_codeplug.cc:2821
virtual void setSK2Short(KeyFunction::Function function)
Sets the side-key 2 short-press function.
Definition dm32uv_codeplug.cc:3138
DateFormat
Possible date formats.
Definition dm32uv_codeplug.hh:1429
virtual Color::Code channelNameBColor() const
Returns the channel name B color.
Definition dm32uv_codeplug.cc:2670
virtual bool recordingEnabled() const
Returns true if recording is enabled.
Definition dm32uv_codeplug.cc:2777
virtual PowerSaveMode powerSaveMode() const
Returns the power-save mode.
Definition dm32uv_codeplug.cc:3264
virtual QString bootMessage2() const
Returns the second boot message line.
Definition dm32uv_codeplug.cc:2353
virtual void enableTalkPermitTone(bool enable)
Enables talk permit tones.
Definition dm32uv_codeplug.cc:2477
AutoPowerOffDelay
Possible auto-power-off delays.
Definition dm32uv_codeplug.hh:1413
virtual void setChannelNameBColor(Color::Code c)
Sets the channel name B color.
Definition dm32uv_codeplug.cc:2675
virtual bool privateCallMatchEnabled() const
Returns true if private call must match.
Definition dm32uv_codeplug.cc:2799
virtual RecordMode recordMode() const
Returns possible recording modes.
Definition dm32uv_codeplug.cc:2766
virtual Interval backlightDuration() const
Returns the backlight duration.
Definition dm32uv_codeplug.cc:2538
virtual void setAutoKeyLockDelay(Interval delay)
Sets the auto key-lock delay.
Definition dm32uv_codeplug.cc:3102
DualStandbyMode
Possible dual-standby modes.
Definition dm32uv_codeplug.hh:1477
virtual void enablePrivateCallMatch(bool enable)
Enables private call match.
Definition dm32uv_codeplug.cc:2804
GroupListBitmapElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1138
virtual GroupListBitmapElement bitmap() const
Retunrs the bitmap.
Definition dm32uv_codeplug.cc:1163
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all group lists.
Definition dm32uv_codeplug.cc:1207
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:653
virtual GroupListElement groupList(unsigned int n) const
Returns the n-th group list element.
Definition dm32uv_codeplug.cc:1168
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all group lists.
Definition dm32uv_codeplug.cc:1191
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all group lists.
Definition dm32uv_codeplug.cc:1174
GroupListBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:1149
Implements the group list bank element.
Definition dm32uv_codeplug.hh:578
virtual bool link(RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack())
Links this group list.
Definition dm32uv_codeplug.cc:1097
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:588
virtual bool encode(const RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes this group list.
Definition dm32uv_codeplug.cc:1125
virtual QString name() const
Returns the name of the list.
Definition dm32uv_codeplug.cc:1059
virtual void clearId(unsigned int n)
Clears the n-th ID.
Definition dm32uv_codeplug.cc:1085
virtual RXGroupList * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes this group list.
Definition dm32uv_codeplug.cc:1091
virtual unsigned int id(unsigned int n)
Returns the n-th ID.
Definition dm32uv_codeplug.cc:1075
virtual bool validId(unsigned int n)
Retruns true if the n-th ID is set.
Definition dm32uv_codeplug.cc:1070
GroupListElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:1045
virtual void setId(unsigned int n, unsigned int id)
Sets the n-th ID.
Definition dm32uv_codeplug.cc:1080
virtual void setName(const QString &name)
Sets the name of the list.
Definition dm32uv_codeplug.cc:1064
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2221
MenuSettingElement(uint8_t *ptr)
Constructor.
virtual void clearReadPassword()
Clears the read password.
Definition dm32uv_codeplug.cc:3766
virtual void setReadPassword(const QString &value)
Sets the read password.
Definition dm32uv_codeplug.cc:3760
virtual QString readPassword() const
Returns the read password.
Definition dm32uv_codeplug.cc:3755
PasswordSettingsElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:3699
virtual bool writePasswordEnabled() const
Returns true if the write password is set.
Definition dm32uv_codeplug.cc:3728
virtual bool encode(Context &ctx, ErrorStack err=ErrorStack())
Encode password settings from given config.
Definition dm32uv_codeplug.cc:3772
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decode password settings and update config.
Definition dm32uv_codeplug.cc:3788
virtual QString bootPassword() const
Returns the boot password.
Definition dm32uv_codeplug.cc:3711
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2155
virtual void clearWritePassword()
Clears the write password.
Definition dm32uv_codeplug.cc:3744
virtual void setWritePassword(const QString &value)
Sets the write password.
Definition dm32uv_codeplug.cc:3738
virtual QString writePassword() const
Returns the write password.
Definition dm32uv_codeplug.cc:3733
virtual void clearBootPassword()
Clears the boot password.
Definition dm32uv_codeplug.cc:3722
virtual bool bootPasswordEnabled() const
Returns true if the boot password is set.
Definition dm32uv_codeplug.cc:3706
virtual bool readPasswordEnabled() const
Returns true if the read password is set.
Definition dm32uv_codeplug.cc:3750
virtual void setBootPassword(const QString &value)
Sets the boot password.
Definition dm32uv_codeplug.cc:3716
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:737
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes add radio IDs.
Definition dm32uv_codeplug.cc:1314
virtual RadioIdElement id(unsigned int n) const
Returns the n-th DMR Id.
Definition dm32uv_codeplug.cc:1292
virtual unsigned int idCount() const
Returns the number of IDs.
Definition dm32uv_codeplug.cc:1281
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all radio IDs.
Definition dm32uv_codeplug.cc:1298
RadioIdBankElement(uint8_t *ptr)
Contsturctor.
Definition dm32uv_codeplug.cc:1273
virtual void setIdCount(unsigned int n)
Sets the number of encoded IDs.
Definition dm32uv_codeplug.cc:1286
Implements a DMR radio ID.
Definition dm32uv_codeplug.hh:688
virtual void setId(unsigned int id)
Sets the DMR id.
Definition dm32uv_codeplug.cc:1237
virtual bool encode(const DMRRadioID *id, const ErrorStack &err=ErrorStack())
Encodes the given ID.
Definition dm32uv_codeplug.cc:1261
RadioIdElement(uint8_t *ptr)
Contsturctor.
Definition dm32uv_codeplug.cc:1224
virtual DMRRadioID * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the radio ID.
Definition dm32uv_codeplug.cc:1254
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:694
virtual QString name() const
Returns the name of the id.
Definition dm32uv_codeplug.cc:1243
virtual unsigned int id() const
Returns the DMR Id.
Definition dm32uv_codeplug.cc:1232
virtual void setName(const QString &name)
Sets the name of the id.
Definition dm32uv_codeplug.cc:1248
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all roaming channels.
Definition dm32uv_codeplug.cc:1997
virtual RoamingChannelElement channel(unsigned int n)
Returns the n-th channel.
Definition dm32uv_codeplug.cc:1977
RoamingChannelBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1960
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1169
virtual void setCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:1972
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decides all romaming channels.
Definition dm32uv_codeplug.cc:1982
virtual unsigned int count() const
Returns the number of channels.
Definition dm32uv_codeplug.cc:1967
Implements a roaming channel.
Definition dm32uv_codeplug.hh:1095
virtual Frequency rxFrequency() const
Returns the RX frequency.
Definition dm32uv_codeplug.cc:1882
virtual void setRXFrequency(const Frequency &f)
Sets the RX frequency.
Definition dm32uv_codeplug.cc:1887
TimeSlot
Possible time-slot settings.
Definition dm32uv_codeplug.hh:1098
virtual void setTimeSlot(DMRChannel::TimeSlot ts)
Sets the time slots.
Definition dm32uv_codeplug.cc:1921
virtual void setTXFrequency(const Frequency &f)
Sets the TX frequency.
Definition dm32uv_codeplug.cc:1897
virtual void setColorCode(unsigned int cc)
Sets the color code.
Definition dm32uv_codeplug.cc:1907
virtual RoamingChannel * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes the roaming channel.
Definition dm32uv_codeplug.cc:1930
virtual void setName(const QString &name)
Sets the name of the channel.
Definition dm32uv_codeplug.cc:1877
virtual unsigned int colorCode() const
Return the color code.
Definition dm32uv_codeplug.cc:1902
RoamingChannelElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1865
virtual Frequency txFrequency() const
Returns the TX frequency.
Definition dm32uv_codeplug.cc:1892
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1107
virtual DMRChannel::TimeSlot timeSlot() const
Returns the time slot.
Definition dm32uv_codeplug.cc:1912
virtual bool encode(const RoamingChannel *ch, const ErrorStack &err=ErrorStack())
Encodes the roaming channel.
Definition dm32uv_codeplug.cc:1945
virtual QString name() const
Returns the name of the channel.
Definition dm32uv_codeplug.cc:1872
virtual void enableAutoRoam(bool enable)
Enables auto roaming.
Definition dm32uv_codeplug.cc:2121
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encode all roaming zones.
Definition dm32uv_codeplug.cc:2196
virtual unsigned int count() const
Returns the zone count.
Definition dm32uv_codeplug.cc:2105
RoamingZoneBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2098
virtual void setRoamingDelay(const Interval &delay)
Sets the roaming delay.
Definition dm32uv_codeplug.cc:2132
virtual void setCount(unsigned int n)
Sets the number of zones.
Definition dm32uv_codeplug.cc:2110
virtual Interval roamingDelay() const
Returns the roaming delay.
Definition dm32uv_codeplug.cc:2127
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all roaming zones.
Definition dm32uv_codeplug.cc:2179
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1269
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all roaming zones.
Definition dm32uv_codeplug.cc:2165
virtual RoamingZoneElement zone(unsigned int n)
Returns the n-th roaming zone.
Definition dm32uv_codeplug.cc:2159
virtual bool autoRoamEnabled() const
Returns true if auto roaming is enabled.
Definition dm32uv_codeplug.cc:2116
virtual void clearDefaultRoamingZoneIndex()
Clears the default roaming zone index.
Definition dm32uv_codeplug.cc:2153
virtual void setDefaultRoamingZoneIndex(unsigned int idx)
Sets the default roaming zone index.
Definition dm32uv_codeplug.cc:2148
virtual unsigned int defaultRoamingZoneIndex() const
Returns the default roaming zone index.
Definition dm32uv_codeplug.cc:2143
virtual bool defaultRoamingZoneIndexValid() const
Returns true, if a default roaming zone is set.
Definition dm32uv_codeplug.cc:2138
En/Decodes a roaming zone.
Definition dm32uv_codeplug.hh:1205
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:2052
virtual void clearChannelIndex(unsigned int n)
Clears the n-th channel index.
Definition dm32uv_codeplug.cc:2057
RoamingZoneElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2013
virtual QString name() const
Returns the name of the zone.
Definition dm32uv_codeplug.cc:2021
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1211
virtual unsigned int channelIndex(unsigned int n)
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:2047
virtual void setName(const QString &name)
Sets the name.
Definition dm32uv_codeplug.cc:2026
virtual void setCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:2036
virtual bool link(RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given roaming zone.
Definition dm32uv_codeplug.cc:2068
virtual bool encode(const RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given roaming zone.
Definition dm32uv_codeplug.cc:2083
virtual RoamingZone * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the roaming zone.
Definition dm32uv_codeplug.cc:2062
virtual unsigned int count() const
Returns the channel count.
Definition dm32uv_codeplug.cc:2031
virtual bool channelIndexValid(unsigned int n)
Returns true if the n-th channel index is set.
Definition dm32uv_codeplug.cc:2042
virtual SMSTemplateElement message(unsigned int n) const
Returns the n-th message.
Definition dm32uv_codeplug.cc:2260
virtual void setCount(unsigned int n)
Sets the number of messages.
Definition dm32uv_codeplug.cc:2254
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1371
virtual unsigned int count() const
Returns the number of messages.
Definition dm32uv_codeplug.cc:2249
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all preset SMS messages.
Definition dm32uv_codeplug.cc:2265
SMSTemplateBankElement(uint8_t *ptr)
Constructor from pointer.
Definition dm32uv_codeplug.cc:2242
A sinlge preset message.
Definition dm32uv_codeplug.hh:1329
SMSTemplate * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes a single message.
Definition dm32uv_codeplug.cc:2232
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1335
virtual QString message() const
Returns the message text.
Definition dm32uv_codeplug.cc:2219
SMSTemplateElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2212
virtual void setMessage(const QString &msg)
Sets the message text.
Definition dm32uv_codeplug.cc:2225
Implements the scan list bank.
Definition dm32uv_codeplug.hh:1027
virtual void setUHFRange(const FrequencyRange &range)
Sets the UHF scan range.
Definition dm32uv_codeplug.cc:1815
virtual FrequencyRange uhfRange() const
Returns the UHF scan range.
Definition dm32uv_codeplug.cc:1809
virtual void setVHFRange(const FrequencyRange &range)
Sets the VHF scan range.
Definition dm32uv_codeplug.cc:1803
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decode all scan lists.
Definition dm32uv_codeplug.cc:1822
virtual FrequencyRange vhfRange() const
Returns the VHF scan range.
Definition dm32uv_codeplug.cc:1797
virtual ScanMode scanMode() const
Returns the scan mode.
Definition dm32uv_codeplug.cc:1786
virtual void setCount(unsigned int n)
Sets the number of scan lists.
Definition dm32uv_codeplug.cc:1774
virtual ScanListElement scanList(unsigned int n) const
Returns the n-th scan list.
Definition dm32uv_codeplug.cc:1780
virtual unsigned int count() const
Returns the number of scan lists.
Definition dm32uv_codeplug.cc:1769
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all scan lists.
Definition dm32uv_codeplug.cc:1849
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:1039
virtual void setScanMode(ScanMode mode)
Sets the scan mode.
Definition dm32uv_codeplug.cc:1791
ScanMode
Possible scan modes.
Definition dm32uv_codeplug.hh:1030
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Link all scan lists.
Definition dm32uv_codeplug.cc:1836
Implements a scan list.
Definition dm32uv_codeplug.hh:905
virtual bool encode(const ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Encode the scan list.
Definition dm32uv_codeplug.cc:1735
virtual void setChannelCount(unsigned int count)
Sets the channel count.
Definition dm32uv_codeplug.cc:1548
virtual unsigned int revertChannelIndex() const
Returns the revert channel index.
Definition dm32uv_codeplug.cc:1634
virtual bool secondaryChannelIndexValid() const
Returns true if the secondary priority channel index is set.
Definition dm32uv_codeplug.cc:1587
virtual ScanList * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the scan list.
Definition dm32uv_codeplug.cc:1685
ToneDetectionMode
Possible CTCSS/DCS detection modes.
Definition dm32uv_codeplug.hh:913
virtual void setHangTime(const Interval &dur)
Sets the scan hang time.
Definition dm32uv_codeplug.cc:1581
virtual QString name() const
Returns the name of the scan list.
Definition dm32uv_codeplug.cc:1532
virtual void setName(const QString &name)
Sets the name of the scan list.
Definition dm32uv_codeplug.cc:1537
virtual void setToneDetectionMode(ToneDetectionMode mode)
Sets the tone-detection mode.
Definition dm32uv_codeplug.cc:1570
TransmitMode
Possible transmit modes.
Definition dm32uv_codeplug.hh:908
virtual void setRevertChannelIndex(unsigned int idx)
Sets the revert channel index.
Definition dm32uv_codeplug.cc:1639
virtual void setPrimaryChannelIndex(unsigned int idx)
Sets the primary priority channel index.
Definition dm32uv_codeplug.cc:1618
virtual bool revertChannelIndexValid() const
Returns true if the revert channel index is set.
Definition dm32uv_codeplug.cc:1629
virtual unsigned int channelCount() const
Returns the number of channels.
Definition dm32uv_codeplug.cc:1543
virtual bool isCurrentChannel(unsigned int n) const
Returns true, if the n-th channel index refers to the current channel.
Definition dm32uv_codeplug.cc:1665
virtual void clearPrimaryChannelIndex()
Clears the primary priority channel index.
Definition dm32uv_codeplug.cc:1623
virtual unsigned int primaryChannelIndex() const
Returns the primary priority channel index.
Definition dm32uv_codeplug.cc:1613
virtual void clearSecondaryChannelIndex()
Clears the secondary priority channel index.
Definition dm32uv_codeplug.cc:1602
virtual ToneDetectionMode toneDetectionMode() const
Returns the tone-detection mode.
Definition dm32uv_codeplug.cc:1565
virtual void setPrioritySweepTime(const Interval &dur)
Sets the priority sweep time.
Definition dm32uv_codeplug.cc:1655
virtual void setTransmitMode(TransmitMode mode)
Sets the transmit mode.
Definition dm32uv_codeplug.cc:1559
virtual bool link(ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given scan list.
Definition dm32uv_codeplug.cc:1691
virtual TransmitMode transmitMode() const
Returns the transmit mode.
Definition dm32uv_codeplug.cc:1554
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:1675
virtual Interval prioritySweepTime() const
Returns the priority sweep time.
Definition dm32uv_codeplug.cc:1650
virtual bool primaryChannelIndexValid() const
Returns true if the primary priority channel index is set.
Definition dm32uv_codeplug.cc:1608
virtual unsigned int secondaryChannelIndex() const
Returns the secondary priority channel index.
Definition dm32uv_codeplug.cc:1592
virtual unsigned int channelIndex(unsigned int n) const
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:1670
virtual Interval hangTime() const
Returns the scan hang time.
Definition dm32uv_codeplug.cc:1576
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:922
virtual void clearRevertChannelIndex()
Clears the revert channel index.
Definition dm32uv_codeplug.cc:1644
virtual void setCurrentChannel(unsigned int n)
Sets the n-th channel index to the current channel.
Definition dm32uv_codeplug.cc:1680
ScanListElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1525
virtual void setSecondaryChannelIndex(unsigned int idx)
Sets the secondary priority channel index.
Definition dm32uv_codeplug.cc:1597
virtual unsigned int zoneIndexA() const
Returns the zone index VFO A.
Definition dm32uv_codeplug.cc:1485
virtual void clearChannelIndexA()
Clears the channel index VFO A.
Definition dm32uv_codeplug.cc:1453
virtual void setZoneIndexA(unsigned int idx)
Sets the zone index VFO A.
Definition dm32uv_codeplug.cc:1490
virtual unsigned int channelIndexB() const
Returns the channel index VFO B.
Definition dm32uv_codeplug.cc:1464
virtual void setZoneIndexB(unsigned int idx)
Sets the zone index VFO B.
Definition dm32uv_codeplug.cc:1511
ZoneBankElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1420
virtual bool channelIndexAValid() const
Returns true if the channel index VFO A is set.
Definition dm32uv_codeplug.cc:1438
virtual void clearChannelIndexB()
Clears the channel index VFO B.
Definition dm32uv_codeplug.cc:1474
static constexpr unsigned int size()
Returns the size of a zone bank.
Definition dm32uv_codeplug.hh:835
virtual void setChannelIndexB(unsigned int idx)
Sets the channel index VFO B.
Definition dm32uv_codeplug.cc:1469
virtual bool zoneIndexAValid() const
Returns true if the zone index VFO A is set.
Definition dm32uv_codeplug.cc:1480
virtual void setChannelIndexA(unsigned int idx)
Sets the channel index VFO A.
Definition dm32uv_codeplug.cc:1448
virtual unsigned int count() const
Returns the total number of zones.
Definition dm32uv_codeplug.cc:1427
virtual void clearZoneIndexA()
Clears the zone index VFO A.
Definition dm32uv_codeplug.cc:1495
virtual void clearZoneIndexB()
Clears the zone index VFO B.
Definition dm32uv_codeplug.cc:1516
virtual void setCount(unsigned int n)
Sets the total number of zones.
Definition dm32uv_codeplug.cc:1432
virtual bool channelIndexBValid() const
Returns true if the channel index VFO B is set.
Definition dm32uv_codeplug.cc:1459
virtual bool zoneIndexBValid() const
Returns true if the zone index VFO B is set.
Definition dm32uv_codeplug.cc:1501
virtual unsigned int channelIndexA() const
Returns the channel index VFO A.
Definition dm32uv_codeplug.cc:1443
virtual unsigned int zoneIndexB() const
Returns the zone index VFO B.
Definition dm32uv_codeplug.cc:1506
virtual unsigned int channelCount() const
Retunrs the number of channels.
Definition dm32uv_codeplug.cc:1350
ZoneElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1332
virtual bool channelIndexValid(unsigned int n) const
Returns true, if the channel index is set.
Definition dm32uv_codeplug.cc:1361
virtual void clearChannelIndex(unsigned int n)
Clears the n-th channel index.
Definition dm32uv_codeplug.cc:1376
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:779
virtual QString name() const
Returns the name.
Definition dm32uv_codeplug.cc:1339
virtual Zone * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decode zone.
Definition dm32uv_codeplug.cc:1382
virtual void setName(const QString &name)
Sets the name of the zone.
Definition dm32uv_codeplug.cc:1344
virtual bool encode(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes a zone.
Definition dm32uv_codeplug.cc:1404
virtual unsigned int channelIndex(unsigned int n) const
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:1366
virtual void setChannelCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:1355
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:1371
virtual bool link(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Link zone.
Definition dm32uv_codeplug.cc:1388
virtual bool decodeChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all channels defined.
Definition dm32uv_codeplug.cc:4331
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Links all decoded channels.
Definition dm32uv_codeplug.cc:4369
virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decode codeplug elements.
Definition dm32uv_codeplug.cc:4151
virtual bool encodeContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Allocate and encode contacts.
Definition dm32uv_codeplug.cc:4480
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:4104
DM32UVCodeplug(QObject *parent=nullptr)
Default/empty constructor.
Definition dm32uv_codeplug.cc:3980
virtual bool decodeZones(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all zones defined.
Definition dm32uv_codeplug.cc:4518
virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack())
Link decoded elements.
Definition dm32uv_codeplug.cc:4217
Config * preprocess(Config *config, const ErrorStack &err) const override
Returns a prepared configuration for this particular radio.
Definition dm32uv_codeplug.cc:3988
bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const override
Indexes all elements of the codeplug.
Definition dm32uv_codeplug.cc:4047
bool postprocess(Config *config, const ErrorStack &err) const override
Returns a post-processed configuration of the decoded config.
Definition dm32uv_codeplug.cc:4029
virtual bool encodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Encode all elements.
Definition dm32uv_codeplug.cc:4253
virtual bool encodeChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all channels.
Definition dm32uv_codeplug.cc:4405
virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack())
Links all decoded zones.
Definition dm32uv_codeplug.cc:4543
virtual bool encodeZones(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all zones.
Definition dm32uv_codeplug.cc:4566
virtual bool decodeContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Decode contacts.
Definition dm32uv_codeplug.cc:4458
bool decode(Config *config, const ErrorStack &err=ErrorStack()) override
Decodes a binary codeplug to the given abstract configuration config.
Definition dm32uv_codeplug.cc:4127
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:448
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:288
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:2120
static constexpr Range< Interval > updatePeriod()
Valid range for update period.
Definition dm32uv_codeplug.hh:2122
static constexpr unsigned int revertChannels()
Number of revert channels.
Definition dm32uv_codeplug.hh:2126
Some offsets within the element.
Definition dm32uv_codeplug.hh:2131
Some limits.
Definition dm32uv_codeplug.hh:317
static constexpr unsigned int channelsPerBlock()
Maximum number of channels per block.
Definition dm32uv_codeplug.hh:323
static constexpr unsigned int channelsInBlock0()
Maximum number of channels in block 0.
Definition dm32uv_codeplug.hh:321
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:319
Some internal offsets.
Definition dm32uv_codeplug.hh:327
Some limits.
Definition dm32uv_codeplug.hh:236
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:238
static constexpr Range< unsigned int > squelchLevel()
Maximum squelch level.
Definition dm32uv_codeplug.hh:240
Some internal offsets.
Definition dm32uv_codeplug.hh:251
Some limits.
Definition dm32uv_codeplug.hh:387
static constexpr unsigned int count()
The number of elements within each bank.
Definition dm32uv_codeplug.hh:389
Some offsets.
Definition dm32uv_codeplug.hh:393
static constexpr unsigned int betweenBanks()
Offset betwenn banks.
Definition dm32uv_codeplug.hh:395
Some internal offsets within the element.
Definition dm32uv_codeplug.hh:373
Some limts for the contact bank.
Definition dm32uv_codeplug.hh:464
static constexpr unsigned int contacts()
Maximum number of contacts.
Definition dm32uv_codeplug.hh:466
Some internal offsets.
Definition dm32uv_codeplug.hh:471
Some limits.
Definition dm32uv_codeplug.hh:442
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:444
Some internal offsets.
Definition dm32uv_codeplug.hh:449
Some internal offsets.
Definition dm32uv_codeplug.hh:563
Some limits for the element.
Definition dm32uv_codeplug.hh:2368
static constexpr unsigned int keys()
Maximum number of keys.
Definition dm32uv_codeplug.hh:2370
Some internal offsets.
Definition dm32uv_codeplug.hh:2375
Some limits of the element.
Definition dm32uv_codeplug.hh:2325
static constexpr unsigned int keyLength()
Maximum key length (bytes).
Definition dm32uv_codeplug.hh:2329
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:2327
Some internal offsets.
Definition dm32uv_codeplug.hh:2334
Implements the translation between color names and code.
Definition dm32uv_codeplug.hh:1436
Helper encoding/decoding key functions.
Definition dm32uv_codeplug.hh:1498
Some limits.
Definition dm32uv_codeplug.hh:1939
static constexpr Range< Interval > voxDelay()
Range of valid VOX delays.
Definition dm32uv_codeplug.hh:1955
static constexpr unsigned int bootMessageLength()
Maximum boot message length.
Definition dm32uv_codeplug.hh:1941
static constexpr Range< unsigned int > micGain()
Valid mic gain settings.
Definition dm32uv_codeplug.hh:1961
static constexpr Range< unsigned int > activeRetires()
Range of valid active retires.
Definition dm32uv_codeplug.hh:1945
static constexpr Range< unsigned int > vox()
Valid VOX sensitivity levels.
Definition dm32uv_codeplug.hh:1959
static constexpr unsigned int maxBrightness()
Maximum display brightness.
Definition dm32uv_codeplug.hh:1943
static constexpr Range< Interval > longPressDuration()
Range of valid long-press durations.
Definition dm32uv_codeplug.hh:1947
static constexpr Range< Interval > transmitTimeout()
Range of valid transmit timeouts.
Definition dm32uv_codeplug.hh:1951
Some internal offsets.
Definition dm32uv_codeplug.hh:1966
Some limits.
Definition dm32uv_codeplug.hh:670
static constexpr unsigned int groupLists()
Maximum number of group lists.
Definition dm32uv_codeplug.hh:672
Some internal offsets.
Definition dm32uv_codeplug.hh:677
Some limits.
Definition dm32uv_codeplug.hh:613
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:615
static constexpr unsigned int contacts()
Maximum number of indices.
Definition dm32uv_codeplug.hh:617
Some internal offsets.
Definition dm32uv_codeplug.hh:622
Some internal limits.
Definition dm32uv_codeplug.hh:2429
Some internal offsets.
Definition dm32uv_codeplug.hh:2225
Some internal offsets.
Definition dm32uv_codeplug.hh:2438
Some limits for the element.
Definition dm32uv_codeplug.hh:2192
static constexpr unsigned int passwordLength()
Maximum password length.
Definition dm32uv_codeplug.hh:2194
Some internal offsets.
Definition dm32uv_codeplug.hh:2200
Some limits.
Definition dm32uv_codeplug.hh:754
static constexpr unsigned int ids()
Maximum number of IDs.
Definition dm32uv_codeplug.hh:756
Some internal offsets.
Definition dm32uv_codeplug.hh:761
Some limits.
Definition dm32uv_codeplug.hh:713
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:715
Some internal offsets.
Definition dm32uv_codeplug.hh:720
Some limits.
Definition dm32uv_codeplug.hh:1186
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:1188
Some internal offsets.
Definition dm32uv_codeplug.hh:1193
Some limits.
Definition dm32uv_codeplug.hh:1142
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:1144
Some internal offsets.
Definition dm32uv_codeplug.hh:1149
Some limits.
Definition dm32uv_codeplug.hh:1307
static constexpr unsigned int zones()
Maximum number of zones.
Definition dm32uv_codeplug.hh:1309
Some internal offsets.
Definition dm32uv_codeplug.hh:1314
Some limits.
Definition dm32uv_codeplug.hh:1241
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:1243
static constexpr unsigned int channels()
Maximum number of channels per zone.
Definition dm32uv_codeplug.hh:1245
Some internal offsets.
Definition dm32uv_codeplug.hh:1250
Some limits.
Definition dm32uv_codeplug.hh:1386
static constexpr unsigned int messages()
Maximum number of messages.
Definition dm32uv_codeplug.hh:1388
Some internal offsets.
Definition dm32uv_codeplug.hh:1393
Some limits.
Definition dm32uv_codeplug.hh:1347
static constexpr unsigned int messageLength()
Maximum message length.
Definition dm32uv_codeplug.hh:1349
Some internal offsets.
Definition dm32uv_codeplug.hh:1354
Some limits.
Definition dm32uv_codeplug.hh:1073
static constexpr unsigned int scanLists()
Maximum number of scan lists.
Definition dm32uv_codeplug.hh:1075
Some internal offsets.
Definition dm32uv_codeplug.hh:1079
Some limits.
Definition dm32uv_codeplug.hh:999
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:1001
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:1003
Some internal offsets.
Definition dm32uv_codeplug.hh:1008
Some limits.
Definition dm32uv_codeplug.hh:880
static constexpr unsigned int zonesPerBlock()
Maximum number of zones per block.
Definition dm32uv_codeplug.hh:884
static constexpr unsigned int zones()
Maximum number of zones.
Definition dm32uv_codeplug.hh:882
Some internal offsets.
Definition dm32uv_codeplug.hh:889
Some limits.
Definition dm32uv_codeplug.hh:809
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:811
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:813
Some internal offsets.
Definition dm32uv_codeplug.hh:818
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:107
Encodes a selective call.
Definition signaling.hh:13