libdrmconf 0.14.0
A library to program DMR radios.
Loading...
Searching...
No Matches
dm32uv_codeplug.hh
1#ifndef DM32UV_CODEPLUG_HH
2#define DM32UV_CODEPLUG_HH
3
4#include <QObject>
5#include <QString>
6
7#include "channel.hh"
8#include "codeplug.hh"
9#include "contact.hh"
10#include "frequency.hh"
11#include "ranges.hh"
12#include "roamingchannel.hh"
13#include "smsextension.hh"
14#include "gnsssettings.hh"
15#include "dmrsettings.hh"
16
17// forward declaration
18class Zone;
19class SMSTemplate;
20
21
22
26{
27 Q_OBJECT
28
29public:
31 class ChannelElement: public Element
32 {
33 public:
35 enum class ChannelType {
36 FM = 0, DMR = 1, FMFixed = 2, DMRFixed = 3
37 };
38
40 enum class Power {
41 Low = 0, Medium = 1, High = 2
42 };
43
45 enum class Admit {
46 Always = 0, ChannelFree = 1, ToneOrCCMatch = 2, ToneMismatch = 3
47 };
48
49 protected:
51 ChannelElement(uint8_t *ptr, size_t size);
52
53 public:
55 ChannelElement(uint8_t *ptr);
56
58 static constexpr unsigned int size() { return 0x0030; }
59
61 virtual QString name() const;
63 virtual void setName(const QString &name);
64
66 virtual Frequency rxFrequency() const;
68 virtual void setRXFrequency(const Frequency &freq);
69
71 virtual bool validTXFrequency() const;
73 virtual Frequency txFrequency() const;
75 virtual void setTXFrequency(const Frequency &freq);
77 virtual void clearTXFrequency();
78
80 virtual ChannelType channelType() const;
82 virtual void setChannelType(ChannelType type);
83
85 virtual Channel::Power power() const;
87 virtual void setPower(Channel::Power power);
88
90 virtual bool loneWorkerEnabled() const;
92 virtual void enableLoneWorker(bool enable);
93
95 virtual FMChannel::Bandwidth bandwidth() const;
97 virtual void setBandwidth(FMChannel::Bandwidth bw);
98
100 virtual bool validScanListIndex() const;
102 virtual unsigned int scanListIndex() const;
104 virtual void setScanListIndex(unsigned int idx);
106 virtual void clearScanListIndex();
107
109 virtual bool talkaroundEnabled() const;
111 virtual void enableTalkaround(bool enable);
112
114 virtual Admit admitCriterion() const;
116 virtual void setAdmitCriterion(Admit admit);
117
119 virtual bool rxDMRAPRSEnabled() const;
121 virtual void enableRXDMRAPRS(bool enable);
122
124 virtual bool emergencyNotificationEnabled() const;
126 virtual void enableEmergencyNotification(bool enable);
128 virtual bool emergencyACKEnabled() const;
130 virtual void enableEmergencyACK(bool enable);
132 virtual bool validEmergencySystemIndex() const;
134 virtual unsigned int emergencySystemIndex() const;
136 virtual void setEmergencySystemIndex(unsigned int idx);
138 virtual void clearEmergencySystemIndex();
139
141 virtual Level squelchLevel() const;
143 virtual void setSquelchLevel(Level level);
144
146 virtual bool rxOnlyEnabled() const;
148 virtual void enableRXOnly(bool enable);
149
151 virtual bool dmrAPRSEnabled() const;
153 virtual void enableDMRAPRS(bool enable);
154
156 virtual bool privateCallACKEnabled() const;
158 virtual void enablePrivateCallACK(bool enable);
160 virtual bool dataACKEnabled() const;
162 virtual void enableDataACK(bool enable);
164 virtual bool dcdmEnabled() const;
166 virtual void enableDCDM(bool enable);
167
169 virtual DMRChannel::TimeSlot timeslot() const;
171 virtual void setTimeslot(DMRChannel::TimeSlot ts);
173 virtual unsigned int colorCode() const;
175 virtual void setColorCode(unsigned int cc);
176
178 virtual bool encryptionEnabled() const;
179 /* Enables encryption. */
180 virtual void enableEncryption(bool enable);
181
183 virtual bool validGroupListIndex() const;
185 virtual unsigned int groupListIndex() const;
187 virtual void setGroupListIndex(unsigned int idx);
189 virtual void clearGroupListIndex();
190
192 virtual unsigned int dmrAPRSChannelIndex() const;
194 virtual void setDMRAPRSChannelIndex(unsigned int idx);
195
197 virtual SelectiveCall rxTone() const;
199 virtual void setRXTone(const SelectiveCall &tone);
201 virtual SelectiveCall txTone() const;
203 virtual void setTXTone(const SelectiveCall &tone);
204
206 virtual bool voxEnabled() const;
208 virtual void enableVOX(bool enable);
209
211 virtual unsigned int dmrIdIndex() const;
213 virtual void setDMRIdIndex(unsigned int id);
214
216 virtual Channel *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
218 virtual bool link(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack()) const;
220 virtual bool encode(const Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack());
221
222 public:
224 struct Limit: Element::Limit {
226 static constexpr unsigned int nameLength() { return 16; }
228 static constexpr Range<unsigned int> squelchLevel() { return {0, 15}; }
229 };
230
231 protected:
233 static SelectiveCall decodeSelectiveCall(uint16_t code);
235 static uint16_t encodeSelectiveCall(const SelectiveCall &tone);
236
237 protected:
239 struct Offset: Element::Offset {
241 static constexpr unsigned int name() { return 0x0000; }
242 static constexpr unsigned int rxFrequency() { return 0x0010; }
243 static constexpr unsigned int txFrequency() { return 0x0014; }
244 static constexpr Bit channelType() { return {0x0018, 4}; }
245 static constexpr Bit power() { return {0x0018, 1}; }
246 static constexpr Bit loneWorker() { return {0x0018, 0}; }
247 static constexpr Bit bandwidth() { return {0x0019, 7}; }
248 static constexpr Bit scanListIndex() { return {0x0019, 2}; }
249 static constexpr Bit preventTalkaround() { return {0x001a, 7}; }
250 static constexpr Bit admitCriterion() { return {0x001a, 4}; }
251 static constexpr Bit rxDMRAPRS() { return {0x001a, 2}; }
252 static constexpr Bit emergencyNotification() { return {0x001b, 7}; }
253 static constexpr Bit emergencyACK() { return {0x001b, 6}; }
254 static constexpr Bit emergencySystemIndex() { return {0x001b, 0}; }
255 static constexpr Bit squelchLevel() { return {0x001c, 4}; }
256 static constexpr Bit rxOnly() { return {0x001c, 3}; }
257 static constexpr Bit dmrAPRS() { return {0x001c, 2}; }
258 static constexpr Bit privateCallACK() { return {0x001d, 7}; }
259 static constexpr Bit dataACK() { return {0x001d, 6}; }
260 static constexpr Bit dcdm() { return {0x001d, 5}; }
261 static constexpr Bit timeslot() { return {0x001d, 4}; }
262 static constexpr Bit colorcode() { return {0x001d, 0}; }
263 static constexpr Bit encryptionEnable() { return {0x001f, 6}; }
264 static constexpr Bit groupListIndex() { return {0x001f, 0}; }
265 static constexpr Bit dmrAPRSChannelIndex() { return {0x0020, 0}; }
266 static constexpr unsigned int rxTone() { return 0x0021; }
267 static constexpr unsigned int txTone() { return 0x0023; }
268 static constexpr Bit vox() { return {0x0025, 4}; }
269 static constexpr Bit showPTTId() { return {0x0026, 7}; }
270 static constexpr Bit optSigEnable() { return {0x0026, 4}; }
271 static constexpr Bit optSigType() { return {0x0026, 0}; }
272 static constexpr Bit pttIdEnable() { return {0x0029, 2}; }
273 static constexpr unsigned int dmrIdIndex() { return 0x002b; }
275 };
276 };
277
278
281 {
282 public:
284 ChannelBankElement(uint8_t *ptr);
285
287 static constexpr unsigned int size() { return 0x0010; }
288
290 virtual unsigned int channelCount() const;
292 virtual void setChannelCount(unsigned int n);
293
294 public:
296 struct Limit: Element::Limit {
298 static constexpr unsigned int channels() { return 4000; }
300 static constexpr unsigned int channelsPerBlock() { return 84; }
301 };
302
304 struct Offset: Element::Offset {
306 static constexpr unsigned int channelCount() { return 0x0000; }
307 static constexpr unsigned int channelBlock0() { return 0x0010; }
308 static constexpr unsigned int betweenChannelBlocks() {
309 return DM32UVCodeplug::Limit::blockSize();
310 }
312 };
313 };
314
315
321 {
322 public:
324 ChannelExtensionElement(uint8_t *ptr);
325
327 static constexpr unsigned int size() { return 0x0002; }
328
330 void clear() override;
331
333 virtual bool hasContactIndex() const;
335 virtual unsigned int contactIndex() const;
337 virtual void setContactIndex(unsigned int index);
339 virtual void clearContactIndex();
340
342 virtual bool encode(const Channel *ch, Context &ctx, const ErrorStack &err);
344 virtual bool decode(Channel *ch, Context &ctx, const ErrorStack &err) const;
346 virtual bool link(Channel *ch, Context &ctx, const ErrorStack &err) const;
347
348 protected:
350 struct Offset: Element::Offset {
352 static constexpr Bit indexMSN() { return { 0x0000, 4}; }
353 static constexpr unsigned int indexLSB() { return 0x0001; }
355 };
356 };
357
358
361 {
362 public:
364 struct Limit : Element::Limit {
366 static constexpr unsigned int count() { return 2047; }
367 };
368
370 struct Offset: Element::Offset {
372 static constexpr unsigned int betweenBanks(){ return DM32UVCodeplug::Limit::blockSize(); }
373 };
374 };
375
376
379 {
380 public:
382 enum class Type {
383 Private = 3, Group = 4, All = 5
384 };
385
386 protected:
388 ContactElement(uint8_t *ptr, size_t size);
389
390 public:
392 ContactElement(uint8_t *ptr);
393
395 static constexpr unsigned int size() { return 0x0018; }
396
398 virtual QString name() const;
400 virtual void setName(const QString &name);
401
403 virtual DMRContact::Type callType() const;
405 virtual void setCallType(DMRContact::Type type);
406
408 virtual unsigned int dmrId() const;
410 virtual void setDMRId(unsigned int id);
411
413 virtual DMRContact *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
415 virtual bool encode(const DMRContact *contact, const ErrorStack &err=ErrorStack());
416
417 public:
419 struct Limit: Element::Limit {
421 static constexpr unsigned int nameLength() { return 16; }
422 };
423
424 protected:
426 struct Offset: Element::Offset {
428 static constexpr unsigned int name() { return 0x0002; }
429 static constexpr unsigned int dmrId() { return 0x0013; }
430 static constexpr unsigned int callType() { return 0x0016; }
431 // @endcond
432 };
433 };
434
435
438 {
439 public:
441 struct Limit: Element::Limit {
443 static constexpr unsigned int contacts() { return 800; }
444 static constexpr unsigned int contactsPerBlock() { return 170; }
445 };
446
448 struct Offset: Element::Offset {
450 static constexpr unsigned int betweenBlocks() { return 0x1000; };
452 };
453 };
454
455
458 {
459 protected:
461 ContactIndexElement(uint8_t *ptr, size_t size);
462
463 public:
466 {
467 public:
469 ContactBitmapElement(uint8_t *ptr);
471 static constexpr unsigned int size() { return 0x0064; }
472 };
473
475 class EntryElement: public Element
476 {
477 public:
478 typedef ContactElement::Type Type;
479
480 protected:
482 EntryElement(uint8_t *ptr, size_t size);
483
484 public:
486 EntryElement(uint8_t *ptr);
487
488 void clear() override;
489
491 static constexpr unsigned int size() { return 0x0002; }
492
494 bool isValid() const override;
495
497 virtual DMRContact::Type callType() const;
499 virtual void setCallType(DMRContact::Type type);
500
502 virtual unsigned int index() const;
504 virtual void setIndex(unsigned int idx);
505 };
506
507 public:
509 ContactIndexElement(uint8_t *ptr);
510
512 static constexpr unsigned int size() { return 0x1000; }
513
515 virtual unsigned int contactCount() const;
517 virtual void setContactCount(unsigned int n);
519 virtual unsigned int groupCallCount() const;
521 virtual void setGroupCallCount(unsigned int n);
523 virtual unsigned int privateCallCount() const;
525 virtual void setPrivateCallCount(unsigned int n);
526
528 virtual ContactBitmapElement bitmap() const;
529
531 virtual EntryElement indexEntry(unsigned n);
533 virtual EntryElement sortedIndexEntry(unsigned n);
534
536 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
537
538 protected:
540 struct Offset: Element::Offset {
542 static unsigned int contactCount() { return 0x0000; }
543 static unsigned int groupCount() { return 0x0002; }
544 static unsigned int privateCount() { return 0x0004; }
545 static unsigned int bitmap() { return 0x0010; }
546 static unsigned int index() { return 0x0100; }
547 static unsigned int sorted() { return 0x0740; }
549 };
550 };
551
552
555 {
556 protected:
558 GroupListElement(uint8_t *ptr, size_t size);
559
560 public:
562 GroupListElement(uint8_t *ptr);
563
565 static constexpr unsigned int size() { return 0x006d; }
566
568 virtual QString name() const;
570 virtual void setName(const QString &name);
571
573 virtual bool validId(unsigned int n);
575 virtual unsigned int id(unsigned int n);
577 virtual void setId(unsigned int n, unsigned int id);
579 virtual void clearId(unsigned int n);
580
582 virtual RXGroupList *decode(Context &ctx, const ErrorStack &err=ErrorStack());
584 virtual bool link(RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack());
586 virtual bool encode(const RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack());
587
588 public:
590 struct Limit: Element::Limit {
592 static constexpr unsigned int nameLength() { return 11; }
594 static constexpr unsigned int contacts() { return 32; }
595 };
596
597 protected:
599 struct Offset: Element::Offset {
601 static constexpr unsigned int name() { return 0x0000; }
602 static constexpr unsigned int ids() { return 0x000b; }
603 static constexpr unsigned int betweenIds() { return 0x0003; }
605 };
606 };
607
608
611 {
612 public:
615 {
616 public:
618 GroupListBitmapElement(uint8_t *ptr);
619 };
620
621 protected:
623 GroupListBankElement(uint8_t *ptr, size_t size);
624
625 public:
627 GroupListBankElement(uint8_t *ptr);
628
630 static constexpr unsigned int size() { return 0x1000; }
631
633 virtual GroupListBitmapElement bitmap() const;
634
636 virtual GroupListElement groupList(unsigned int n) const;
637
639 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
641 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
643 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
644
645 public:
647 struct Limit: Element::Limit {
649 static constexpr unsigned int groupLists() { return 32; }
650 };
651
652 protected:
654 struct Offset: Element::Offset {
656 static constexpr unsigned int bitmap() { return 0x0000; }
657 static constexpr unsigned int groupLists() { return 0x0011; }
659 };
660 };
661
662
665 {
666 public:
668 RadioIdElement(uint8_t *ptr);
669
671 static constexpr unsigned int size() { return 0x0010; }
672
674 virtual unsigned int id() const;
676 virtual void setId(unsigned int id);
677
679 virtual QString name() const;
681 virtual void setName(const QString &name);
682
684 virtual DMRRadioID *decode(Context &ctx, const ErrorStack &err=ErrorStack());
686 virtual bool encode(const DMRRadioID *id, const ErrorStack &err=ErrorStack());
687
688 public:
690 struct Limit: Element::Limit {
692 static constexpr unsigned int nameLength() { return 12; }
693 };
694
695 protected:
697 struct Offset: Element::Offset {
699 static constexpr unsigned int id() { return 0x0000; }
700 static constexpr unsigned int name() { return 0x0003; }
702 };
703 };
704
705
708 {
709 public:
711 RadioIdBankElement(uint8_t *ptr);
712
714 static constexpr unsigned int size() { return 0x1000; }
715
717 virtual unsigned int idCount() const;
719 virtual void setIdCount(unsigned int n);
720
722 virtual RadioIdElement id(unsigned int n) const;
723
725 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
727 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
728
729 public:
731 struct Limit: Element::Limit {
733 static constexpr unsigned int ids() { return 250; }
734 };
735
736 protected:
738 struct Offset: Element::Offset {
740 static constexpr unsigned int count() { return 0x0000; }
741 static constexpr unsigned int ids() { return 0x0010; }
742 static constexpr unsigned int betweenIds() { return RadioIdElement::size(); }
744 };
745 };
746
747
749 class ZoneElement: public Element
750 {
751 public:
753 ZoneElement(uint8_t *ptr);
754
756 static constexpr unsigned int size() { return 0x0091; }
757
759 virtual QString name() const;
761 virtual void setName(const QString &name);
762
764 virtual unsigned int channelCount() const;
766 virtual void setChannelCount(unsigned int n);
767
769 virtual bool channelIndexValid(unsigned int n) const;
771 virtual unsigned int channelIndex(unsigned int n) const;
773 virtual void setChannelIndex(unsigned int n, unsigned int idx);
775 virtual void clearChannelIndex(unsigned int n);
776
778 virtual Zone *decode(Context &ctx, const ErrorStack &err=ErrorStack());
780 virtual bool link(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
782 virtual bool encode(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
783
784 public:
786 struct Limit: Element::Limit {
788 static constexpr unsigned int nameLength() { return 16; }
790 static constexpr unsigned int channels() { return 64; }
791 };
792
793 protected:
795 struct Offset: Element::Offset {
797 static constexpr unsigned int name() { return 0x0000; }
798 static constexpr unsigned int channelCount() { return 0x0010; }
799 static constexpr unsigned int channels() { return 0x0011; }
801 };
802 };
803
804
806 {
807 public:
809 ZoneBankElement(uint8_t *ptr);
810
812 static constexpr unsigned int size() { return 0x1000; }
813
815 virtual unsigned int count() const;
817 virtual void setCount(unsigned int n);
818
820 virtual bool channelIndexAValid() const;
822 virtual unsigned int channelIndexA() const;
824 virtual void setChannelIndexA(unsigned int idx);
826 virtual void clearChannelIndexA();
827
829 virtual bool channelIndexBValid() const;
831 virtual unsigned int channelIndexB() const;
833 virtual void setChannelIndexB(unsigned int idx);
835 virtual void clearChannelIndexB();
836
838 virtual bool zoneIndexAValid() const;
840 virtual unsigned int zoneIndexA() const;
842 virtual void setZoneIndexA(unsigned int idx);
844 virtual void clearZoneIndexA();
845
847 virtual bool zoneIndexBValid() const;
849 virtual unsigned int zoneIndexB() const;
851 virtual void setZoneIndexB(unsigned int idx);
853 virtual void clearZoneIndexB();
854
855 public:
857 struct Limit: Element::Limit {
859 static constexpr unsigned int zones() { return 250; }
861 static constexpr unsigned int zonesPerBlock() { return 28; }
862
863 };
864
866 struct Offset: Element::Offset {
868 static constexpr unsigned int count() { return 0x0000; }
869 static constexpr unsigned int channelIndexA() { return 0x0001; }
870 static constexpr unsigned int channelIndexB() { return 0x0003; }
871 static constexpr unsigned int zoneIndexA() { return 0x0005; }
872 static constexpr unsigned int zoneIndexB() { return 0x0007; }
873 static constexpr unsigned int zones0() { return 0x0010; }
874 static constexpr unsigned int betweenBlocks() { return 0x1000; }
876 };
877 };
878
879
882 {
883 public:
885 enum class TransmitMode {
886 CurrentChannel=0, ActiveChannel=1, RevertChannel=2
887 };
888
890 enum class ToneDetectionMode {
891 None = 0, NonPriority = 1, Priority = 2, All = 3
892 };
893
894 public:
896 ScanListElement(uint8_t *ptr);
897
899 static constexpr unsigned int size() { return 0x0039; }
900
902 virtual QString name() const;
904 virtual void setName(const QString &name);
905
907 virtual unsigned int channelCount() const;
909 virtual void setChannelCount(unsigned int count);
910
912 virtual TransmitMode transmitMode() const;
914 virtual void setTransmitMode(TransmitMode mode);
915
917 virtual ToneDetectionMode toneDetectionMode() const;
919 virtual void setToneDetectionMode(ToneDetectionMode mode);
920
922 virtual Interval hangTime() const;
924 virtual void setHangTime(const Interval &dur);
925
927 virtual bool secondaryChannelIndexValid() const;
929 virtual unsigned int secondaryChannelIndex() const;
931 virtual void setSecondaryChannelIndex(unsigned int idx);
933 virtual void clearSecondaryChannelIndex();
934
936 virtual bool primaryChannelIndexValid() const;
938 virtual unsigned int primaryChannelIndex() const;
940 virtual void setPrimaryChannelIndex(unsigned int idx);
942 virtual void clearPrimaryChannelIndex();
943
945 virtual bool revertChannelIndexValid() const;
947 virtual unsigned int revertChannelIndex() const;
949 virtual void setRevertChannelIndex(unsigned int idx);
951 virtual void clearRevertChannelIndex();
952
954 virtual Interval prioritySweepTime() const;
956 virtual void setPrioritySweepTime(const Interval &dur);
957
959 virtual bool isCurrentChannel(unsigned int n) const;
961 virtual unsigned int channelIndex(unsigned int n) const;
963 virtual void setChannelIndex(unsigned int n, unsigned int idx);
965 virtual void setCurrentChannel(unsigned int n);
966
968 virtual ScanList *decode(Context &ctx, const ErrorStack &err=ErrorStack());
970 virtual bool link(ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
972 virtual bool encode(const ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
973
974 public:
976 struct Limit: Element::Limit {
978 static constexpr unsigned int nameLength() { return 11; }
980 static constexpr unsigned int channels() { return 15; }
981 };
982
983 protected:
985 struct Offset: Element::Offset {
987 static constexpr unsigned int name() { return 0x0000; }
988 static constexpr unsigned int channelCount() { return 0x000b; }
989 static constexpr Bit transmitMode() { return {0x000c, 4}; }
990 static constexpr Bit toneDetection() { return {0x000c, 0}; }
991 static constexpr Bit hangTime() { return {0x000d, 0}; }
992 static constexpr Bit secondaryChannel() { return {0x000e, 4}; }
993 static constexpr Bit primaryChannel() { return {0x000e, 0}; }
994 static constexpr unsigned int revertChannel() { return 0x000f; }
995 static constexpr Bit prioritySweepTime() { return {0x0015, 2}; }
996 static constexpr unsigned int channels() { return 0x0018; }
998 };
999 };
1000
1001
1003 class ScanListBankElement: public Element
1004 {
1005 public:
1007 enum class ScanMode {
1008 Time = 0 , Carrier = 1, Search = 2
1009 };
1010
1011 public:
1012 /* Constructor from pointer to the element. */
1013 ScanListBankElement(uint8_t *ptr);
1014
1016 static constexpr unsigned int size() { return 0x1000; }
1017
1019 virtual unsigned int count() const;
1021 virtual void setCount(unsigned int n);
1022
1024 virtual ScanListElement scanList(unsigned int n) const;
1025
1027 virtual ScanMode scanMode() const;
1029 virtual void setScanMode(ScanMode mode);
1030
1032 virtual FrequencyRange vhfRange() const;
1034 virtual void setVHFRange(const FrequencyRange &range);
1035
1037 virtual FrequencyRange uhfRange() const;
1039 virtual void setUHFRange(const FrequencyRange &range);
1040
1042 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1044 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
1046 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1047
1048 public:
1050 struct Limit: Element::Limit {
1052 static constexpr unsigned int scanLists() { return 32; }
1053 };
1054
1056 struct Offset: Element::Offset {
1058 static constexpr unsigned int count() { return 0x0000; }
1059 static constexpr unsigned int scanLists() { return 0x0001; }
1060 static constexpr unsigned int scanMode() { return 0x0e00; }
1061 static constexpr unsigned int vhfLower() { return 0x0e01; }
1062 static constexpr unsigned int vhfUpper() { return 0x0e03; }
1063 static constexpr unsigned int uhfLower() { return 0x0e05; }
1064 static constexpr unsigned int uhfUpper() { return 0x0e07; }
1066 };
1067 };
1068
1069
1072 {
1073 public:
1075 enum class TimeSlot {
1076 TS1 = 0, TS2 = 1
1077 };
1078
1079 public:
1081 RoamingChannelElement(uint8_t *ptr);
1082
1084 static constexpr unsigned int size() { return 0x001a; }
1085
1087 virtual QString name() const;
1089 virtual void setName(const QString &name);
1090
1092 virtual Frequency rxFrequency() const;
1094 virtual void setRXFrequency(const Frequency &f);
1095
1097 virtual Frequency txFrequency() const;
1099 virtual void setTXFrequency(const Frequency &f);
1100
1102 virtual unsigned int colorCode() const;
1104 virtual void setColorCode(unsigned int cc);
1105
1107 virtual DMRChannel::TimeSlot timeSlot() const;
1109 virtual void setTimeSlot(DMRChannel::TimeSlot ts);
1110
1113 virtual RoamingChannel *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
1115 virtual bool encode(const RoamingChannel *ch, const ErrorStack &err=ErrorStack());
1116
1117 public:
1119 struct Limit: Element::Limit {
1121 static constexpr unsigned int nameLength() { return 16; }
1122 };
1123
1124 protected:
1126 struct Offset: Element::Offset {
1128 static constexpr unsigned int name() { return 0x0000; }
1129 static constexpr unsigned int rxFrequency() { return 0x0010; }
1130 static constexpr unsigned int txFrequency() { return 0x0014; }
1131 static constexpr unsigned int colorCode() { return 0x0018; }
1132 static constexpr unsigned int timeSlot() { return 0x0019; }
1134 };
1135 };
1136
1137
1140 {
1141 public:
1143 RoamingChannelBankElement(uint8_t *ptr);
1144
1146 static constexpr unsigned int size() { return 0x1000; }
1147
1149 virtual unsigned int count() const;
1151 virtual void setCount(unsigned int n);
1152
1154 virtual RoamingChannelElement channel(unsigned int n);
1155
1157 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1159 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1160
1161 public:
1163 struct Limit: Element::Limit {
1165 static constexpr unsigned int channels() { return 150; }
1166 };
1167
1168 protected:
1170 struct Offset: Element::Offset {
1172 static constexpr unsigned int channels() { return 0x0000; }
1173 static constexpr unsigned int count() { return 0x0ff0; }
1174 static constexpr unsigned int betweenChannels() { return RoamingChannelElement::size(); }
1176 };
1177 };
1178
1179
1182 {
1183 public:
1185 RoamingZoneElement(uint8_t *ptr);
1186
1188 static constexpr unsigned int size() { return 0x0021; }
1189
1191 virtual QString name() const;
1193 virtual void setName(const QString &name);
1194
1196 virtual unsigned int count() const;
1198 virtual void setCount(unsigned int n);
1199
1201 virtual bool channelIndexValid(unsigned int n);
1203 virtual unsigned int channelIndex(unsigned int n);
1205 virtual void setChannelIndex(unsigned int n, unsigned int idx);
1207 virtual void clearChannelIndex(unsigned int n);
1208
1210 virtual RoamingZone *decode(Context &ctx, const ErrorStack &err=ErrorStack());
1212 virtual bool link(RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
1214 virtual bool encode(const RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
1215
1216 public:
1218 struct Limit: Element::Limit {
1220 static constexpr unsigned int nameLength() { return 16; }
1222 static constexpr unsigned int channels() { return 16; }
1223 };
1224
1225 protected:
1227 struct Offset: Element::Offset {
1229 static constexpr unsigned int name() { return 0x0000; }
1230 static constexpr unsigned int channelCount() { return 0x0010; }
1231 static constexpr unsigned int channels() { return 0x0011; }
1232 static constexpr unsigned int betweenChannels() { return 0x0001; }
1234 };
1235 };
1236
1237
1240 {
1241 public:
1243 RoamingZoneBankElement(uint8_t *ptr);
1244
1246 static constexpr unsigned int size() { return 0x1000; }
1247
1249 virtual unsigned int count() const;
1251 virtual void setCount(unsigned int n);
1252
1254 virtual bool autoRoamEnabled() const;
1256 virtual void enableAutoRoam(bool enable);
1257
1259 virtual Interval roamingDelay() const;
1261 virtual void setRoamingDelay(const Interval &delay);
1262
1264 virtual bool defaultRoamingZoneIndexValid() const;
1266 virtual unsigned int defaultRoamingZoneIndex() const;
1268 virtual void setDefaultRoamingZoneIndex(unsigned int idx);
1270 virtual void clearDefaultRoamingZoneIndex();
1271
1273 virtual RoamingZoneElement zone(unsigned int n);
1274
1276 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1278 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
1280 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1281
1282 public:
1284 struct Limit: Element::Limit {
1286 static constexpr unsigned int zones() { return 64; }
1287 };
1288
1289 protected:
1291 struct Offset: Element::Offset {
1293 static constexpr unsigned int count() { return 0x0000; }
1294 static constexpr unsigned int autoRoam() { return 0x0001; }
1295 static constexpr unsigned int roamingDelay() { return 0x0002; }
1296 static constexpr unsigned int defaultRoamingZone() { return 0x0003; }
1297 static constexpr unsigned int zones() { return 0x0010; }
1298 static constexpr unsigned int betweenZones() { return RoamingZoneElement::size(); }
1300 };
1301 };
1302
1303
1306 {
1307 public:
1309 SMSTemplateElement(uint8_t *ptr);
1310
1312 static constexpr unsigned int size() { return 0x0081; }
1313
1315 virtual QString message() const;
1317 virtual void setMessage(const QString &msg);
1318
1320 SMSTemplate *decode(Context &ctx, const ErrorStack &err=ErrorStack());
1321
1322 public:
1324 struct Limit: Element::Limit {
1326 static constexpr unsigned int messageLength() { return 126; }
1327 };
1328
1329 protected:
1331 struct Offset: Element::Offset {
1333 static constexpr unsigned int length() { return 0x0000; }
1334 static constexpr unsigned int message() { return 0x0001; }
1336 };
1337 };
1338
1339
1342 {
1343 public:
1345 SMSTemplateBankElement(uint8_t *ptr);
1346
1348 static constexpr unsigned int size() { return 0x1000; }
1349
1351 virtual unsigned int count() const;
1353 virtual void setCount(unsigned int n);
1354
1356 virtual SMSTemplateElement message(unsigned int n) const;
1357
1359 virtual bool decode(Context &ctx, const ErrorStack &err = ErrorStack());
1360
1361 public:
1363 struct Limit: Element::Limit {
1365 static constexpr unsigned int messages() { return 20; }
1366 };
1367
1368 protected:
1370 struct Offset: Element::Offset {
1372 static constexpr unsigned int count() { return 0x0000; }
1373 static constexpr unsigned int messages() { return 0x0010; }
1374 static constexpr unsigned int betweenMessages() { return SMSTemplateElement::size(); }
1376 };
1377 };
1378
1379
1382 {
1383 public:
1385 enum class BootDisplay {
1386 Image=0, Message=1, Voltage=2
1387 };
1388
1391 Off = 0, T30Min=1, T60Min=2, T2h=3, T4h=4, T8h=5
1392 };
1393
1395 enum class FMRogerTone {
1396 Off=0, Beep=1, BDC=2
1397 };
1398
1401 Infinity = 0, T5s=1, T10s=2, T15s=3, T20s=4, T25s=5, T30s=6, T1min=7, T2min=8, T3min=9,
1402 T4min=10, T5min=11
1403 };
1404
1406 enum class DateFormat {
1407 YYYYMMDD = 0, DDMMYYYY = 1
1408 };
1409
1413 struct Color {
1414 enum class Code {
1415 White = 0, Black = 1, Orange = 2, Red = 3, Yellow = 4, Green = 5, Cyan = 6, Blue = 7
1416 };
1417
1418 static unsigned int encode(Code name);
1419 static Code decode(unsigned int code);
1420 };
1421
1423 enum class PositionFormat {
1424 DD = 0,
1425 DMS = 1
1426 };
1427
1429 enum class GNSSMode {
1430 GPS = 0, Beidou = 1, Both = 2
1431 };
1432
1434 enum class RecordMode {
1435 RX = 0, TX = 1, Both = 2
1436 };
1437
1439 enum class SMSFormat {
1440 Hytera = 0, Motorola = 1, DMR = 2
1441 };
1442
1445 ISO8 = 0, UnicodeU16 = 1
1446 };
1447
1450 CallsignDB = 0, OverTheAir = 1
1451 };
1452
1454 enum class DualStandbyMode {
1455 SingleVFO = 0, DoubleStandby = 1, SingleStandby = 2
1456 };
1457
1459 enum class VFO {
1460 A = 0, B = 1
1461 };
1462
1464 enum class VFODisplayMode {
1465 Frequency = 0, ChannelName = 1
1466 };
1467
1469 enum class VFOMode {
1470 Channel = 0, VFO = 1
1471 };
1472
1475 {
1476 enum class Function {
1477 None=0, PowerSelect=1, Volt=2, Talkaround=3, DMREncryption=4, VOX=6, ChannelMode=7, Alarm=8,
1478 OneTouch1=9, OneTouch2=10, OneTouch3=11,OneTouch4=12, OneTouch5=13, SMS=14, Contacts=15,
1479 ZoneUp=16, ZoneDown=17, Scan=18, ToggleRecord=19, PreviousRecord=20, NextRecord=21,
1480 FMBCRadio=22, FMBCScan=23, GPSInformation=24, Monitor=25, ToggleMainChannel=26, LoneWorker=27,
1481 KeypadLock=28, Mute=29, TBST=30, APRSTX=31, ChannelType=32, DisplayMode=33, CTCSSDSCScan=34,
1482 CTCSSDSCSettings=25, SilentTone=36, Roaming=37, SubPTT=38, OneKeyScanFrequency=40,
1483 Flashlight=41
1484 };
1485
1486 static unsigned int encode(Function func);
1487 static Function decode(unsigned int code);
1488 };
1489
1491 enum class PowerSaveMode {
1492 Off=0, Percent50 = 1, Percent66 = 2, Percent75=3
1493 };
1494
1496 enum class TBSTFrequency {
1497 Hz1000=0, Hz1450=1, Hz1750=2, Hz2100=3
1498 };
1499
1501 enum class STEMode {
1502 Off = 0, Deg120 = 1, Deg180 = 2, Hz55 = 3
1503 };
1504
1505
1506 public:
1508 GeneralSettingsElement(uint8_t *ptr);
1509
1511 static constexpr unsigned int size() { return 0x0100; }
1512
1514 virtual BootDisplay bootDisplay() const;
1516 virtual void setBootDisplay(BootDisplay dis);
1517
1519 virtual QString bootMessage1() const;
1521 virtual void setBootMessage1(const QString &msg);
1523 virtual QString bootMessage2() const;
1525 virtual void setBootMessage2(const QString &msg);
1526
1528 virtual bool mcuResetEnabled() const;
1530 virtual void enableMCUReset(bool enable);
1532 virtual Interval autoPowerOffDelay() const;
1534 virtual void setAutoPowerOffDelay(const Interval &delay);
1535
1537 virtual bool radioSilentEnabled() const;
1539 virtual void enableRadioSilent(bool enable);
1540
1542 virtual bool keyToneEnabled() const;
1544 virtual void enableKeyTone(bool enable);
1545
1547 virtual bool smsToneEnabled() const;
1549 virtual void enableSMSTone(bool enable);
1550
1552 virtual bool groupCallToneEnabled() const;
1554 virtual void enableGroupCallTone(bool enable);
1556 virtual bool privateCallToneEnabled() const;
1558 virtual void enablePrivateCallTone(bool enable);
1559
1561 virtual bool eotToneEnabled() const;
1563 virtual void enableEOTTone(bool enable);
1564
1566 virtual bool talkPermitToneEnabled() const;
1568 virtual void enableTalkPermitTone(bool enable);
1569
1571 virtual bool bootToneEnabled() const;
1573 virtual void enableBootTone(bool enable);
1574
1576 virtual bool voicePromptEnabled() const;
1578 virtual void enableVoicePrompt(bool enable);
1579
1581 virtual bool lowBatteryToneEnabled() const;
1583 virtual void enableLowBatteryTone(bool enable);
1584
1586 virtual FMRogerTone fmRogerTone() const;
1588 virtual void setFMRogerTone(FMRogerTone tone);
1589
1591 virtual unsigned int displayBrightness() const;
1593 virtual void setDisplayBrightness(unsigned int n);
1594
1596 virtual Interval backlightDuration() const;
1598 virtual void setBacklightDuration(Interval duration);
1599
1601 virtual Interval menuDuration() const;
1603 virtual void setMenuDuration(Interval duration);
1604
1606 virtual bool showVolmueChange() const;
1608 virtual void enableShowVolumeChange(bool enable);
1609
1611 virtual DateFormat dateFormat() const;
1613 virtual void setDateFormat(DateFormat format);
1614
1616 virtual bool showClock() const;
1618 virtual void enableShowClock(bool enable);
1619
1621 virtual Color::Code callColor() const;
1623 virtual void setCallColor(Color::Code c);
1625 virtual Color::Code standbyColor() const;
1627 virtual void setStandbyColor(Color::Code c);
1629 virtual Color::Code channelNameAColor() const;
1631 virtual void setChannelNameAColor(Color::Code c);
1633 virtual Color::Code channelNameBColor() const;
1635 virtual void setChannelNameBColor(Color::Code c);
1637 virtual Color::Code zoneNameAColor() const;
1639 virtual void setZoneNameAColor(Color::Code c);
1641 virtual Color::Code zoneNameBColor() const;
1643 virtual void setZoneNameBColor(Color::Code c);
1644
1646 virtual PositionFormat positionFormat() const;
1648 virtual void setPositionFormat(PositionFormat format);
1649
1651 virtual GNSSSettings::Systems gnss() const;
1653 virtual void setGNSS(GNSSSettings::Systems mode);
1654
1656 virtual bool gnssEnabled() const;
1658 virtual void enableGNSS(bool enable);
1659
1661 virtual QTimeZone timeZone() const;
1663 virtual void setTimeZone(const QTimeZone &timeZone);
1664
1666 virtual Interval posUpdatePeriod() const;
1668 virtual void setPosUpdatePeriod(const Interval &period);
1669
1671 virtual RecordMode recordMode() const;
1673 virtual void setRecordMode(RecordMode mode);
1674
1676 virtual bool recordingEnabled() const;
1678 virtual void enableRecording(bool enable);
1679
1681 virtual bool groupCallMatchEnabled() const;
1683 virtual void enableGroupCallMatch(bool enable);
1684
1686 virtual bool privateCallMatchEnabled() const;
1688 virtual void enablePrivateCallMatch(bool enable);
1689
1691 virtual Interval dmrCallHangTime() const;
1693 virtual void setDMRCallHangTime(const Interval &hangTime);
1694
1696 virtual Interval activeWaitTime() const;
1698 virtual void setActiveWaitTime(Interval waitTime);
1699
1701 virtual unsigned int activeRetries() const;
1703 virtual void setActiveRetries(unsigned int retries);
1704
1706 virtual Interval dmrPreambleDuration() const;
1708 virtual void setDmrPreambleDuration(Interval duration);
1709
1711 virtual bool dmrRemoteMonitorEnabled() const;
1713 virtual void enableDMRRemoteMonitor(bool enable);
1714
1716 virtual bool dmrRemoteKillEnabled() const;
1718 virtual void enableDMRRemoteKill(bool enable);
1719
1721 virtual bool dmrRemoteRadioCheckEnabled() const;
1723 virtual void enableDMRRemoteRadioCheck(bool enable);
1724
1726 virtual bool dmrRemoteReenableEnabled() const;
1728 virtual void enableDMRRemoteReenable(bool enable);
1729
1731 virtual bool dmrRXAlertEnabled() const;
1733 virtual void enableDMRRXAlert(bool enable);
1734
1736 virtual SMSExtension::Format smsFormat() const;
1738 virtual void setSMSFormat(SMSExtension::Format format);
1739
1741 virtual bool missedCallNotificationEnabled() const;
1743 virtual void enableMissedCallNotification(bool enable);
1744
1746 virtual Interval dmrRemoteMonitorDuration() const;
1748 virtual void setDMRRemoteMonitorDuration(Interval duration);
1749
1754
1756 virtual bool txTalkerAliasEnabled() const;
1758 virtual void enableTXTalkerAlias(bool enable);
1759
1761 virtual TalkerAliasSource talkerAliasSource() const;
1763 virtual void setTalkerAliasSource(TalkerAliasSource source);
1764
1766 virtual DualStandbyMode dualStandbyMode() const;
1768 virtual void setDualStandbyMode(DualStandbyMode mode);
1769
1771 virtual VFO mainVFO() const;
1773 virtual void setMainVFO(VFO mainVFO);
1774
1776 virtual VFODisplayMode vfoDisplayModeA() const;
1778 virtual void setVFODisplayModeA(VFODisplayMode mode);
1780 virtual VFODisplayMode vfoDisplayModeB() const;
1782 virtual void setVFODisplayModeB(VFODisplayMode mode);
1784 virtual VFOMode vfoModeA() const;
1785
1787 virtual void setVFOModeA(VFOMode mode);
1789 virtual VFOMode vfoModeB() const;
1791 virtual void setVFOModeB(VFOMode mode);
1792
1794 virtual bool vfoModeDisabled() const;
1796 virtual void disableVFOMode(bool enable);
1797
1799 virtual Interval dualStandbyHangTime() const;
1801 virtual void setDualStandbyHangTime(Interval hangTime);
1802
1804 virtual bool sideKeyLockEnabled() const;
1806 virtual void enableSideKeyLock(bool enable);
1808 virtual bool knobLockEnabled() const;
1810 virtual void enableKnobLock(bool enable);
1812 virtual Interval autoKeyLockDelay() const;
1814 virtual void setAutoKeyLockDelay(Interval delay);
1815
1817 virtual KeyFunction::Function sk1Short() const;
1819 virtual void setSK1Short(KeyFunction::Function function);
1821 virtual KeyFunction::Function sk1Long() const;
1823 virtual void setSK1Long(KeyFunction::Function function);
1825 virtual KeyFunction::Function sk2Short() const;
1827 virtual void setSK2Short(KeyFunction::Function function);
1829 virtual KeyFunction::Function sk2Long() const;
1831 virtual void setSK2Long(KeyFunction::Function function);
1832
1834 virtual KeyFunction::Function p1Short() const;
1836 virtual void setP1Short(KeyFunction::Function function);
1838 virtual KeyFunction::Function p1Long() const;
1840 virtual void setP1Long(KeyFunction::Function function);
1842 virtual KeyFunction::Function p2Short() const;
1844 virtual void setP2Short(KeyFunction::Function function);
1846 virtual KeyFunction::Function p2Long() const;
1848 virtual void setP2Long(KeyFunction::Function function);
1849
1851 virtual Interval longPressDuration() const;
1853 virtual void setLongPressDuration(Interval duration);
1854
1856 virtual Interval transmitTimeout() const;
1858 virtual void setTransmitTimeout(Interval timeout);
1860 virtual Interval transmitTimeoutReminder() const;
1862 virtual void setTransmitTimeoutReminder(Interval timeout);
1863
1865 virtual Level voxLevel() const;
1867 virtual void setVOXLevel(Level voxLevel);
1869 virtual Interval voxDelay() const;
1871 virtual void setVoxDelay(Interval delay);
1872
1874 virtual PowerSaveMode powerSaveMode() const;
1876 virtual void setPowerSaveMode(PowerSaveMode mode);
1877
1879 virtual bool weatherAlarmEnabled() const;
1881 virtual void enableWeatherAlarm(bool enable);
1882
1884 virtual bool allLEDsDisabled() const;
1886 virtual void disableAllLEDs(bool disable);
1887
1889 virtual Frequency tbstFrequency() const;
1891 virtual void setTBSTFrequency(const Frequency &frequency);
1892
1894 virtual STEMode steMode() const;
1896 virtual void setSTEMode(STEMode mode);
1897
1899 virtual Level fmMicLevel() const;
1901 virtual void setFMMicLevel(Level level);
1902
1904 virtual Level dmrMicLevel() const;
1906 virtual void setDMRMicLevel(Level level);
1907
1909 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1911 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1912
1913 public:
1915 struct Limit: Element::Limit {
1917 static constexpr unsigned int bootMessageLength() { return 14; }
1919 static constexpr unsigned int maxBrightness() { return 5; }
1921 static constexpr Range<unsigned int> activeRetires() { return {1, 8}; }
1925 }
1926
1929 }
1930
1931 static constexpr Range<Interval> voxDelay() {
1933 }
1934
1935 static constexpr Range<unsigned int> vox() { return {1,5}; }
1937 static constexpr Range<unsigned int> micGain() { return {0,4}; }
1938 };
1939
1940 protected:
1942 struct Offset: Element::Offset {
1944 static constexpr unsigned int bootDisplay() { return 0x0000; }
1945 static constexpr unsigned int bootMessage1() { return 0x0001; }
1946 static constexpr unsigned int bootMessage2() { return 0x000f; }
1947 static constexpr unsigned int mcuReset() { return 0x001d; }
1948 static constexpr unsigned int autoPowerOffDelay() { return 0x001e; }
1949 static constexpr Bit radioSilent() { return {0x0020, 7}; }
1950 static constexpr Bit keyTone() { return {0x0020, 6}; }
1951 static constexpr Bit smsTone() { return {0x0020, 5}; }
1952 static constexpr Bit groupCallTone() { return {0x0020, 4}; }
1953 static constexpr Bit privateCallTone() { return {0x0020, 3}; }
1954 static constexpr Bit eotTone() { return {0x0020, 2}; }
1955 static constexpr Bit talkPermitTone() { return {0x0020, 1}; }
1956 static constexpr Bit bootTone() { return {0x0020, 0}; }
1957 static constexpr Bit voicePrompt() { return {0x0021, 7}; }
1958 static constexpr Bit lowBatteryTone() { return {0x0021, 6}; }
1959 static constexpr Bit fmRogerTone() { return {0x0021, 1}; }
1960 static constexpr unsigned int displayBrightness() { return 0x0030; }
1961 static constexpr unsigned int backlightDuration() { return 0x0031; }
1962 static constexpr unsigned int menuDuration() { return 0x0032; }
1963 static constexpr Bit showVolumeChange() { return {0x0033, 4}; }
1964 static constexpr Bit dateFormat() { return {0x0033, 3}; }
1965 static constexpr Bit showClock() { return {0x0033, 0}; }
1966 static constexpr unsigned int callColor() { return 0x0034; }
1967 static constexpr unsigned int standbyColor() { return 0x0035; }
1968 static constexpr unsigned int channelNameAColor() { return 0x0038; }
1969 static constexpr unsigned int channelNameBColor() { return 0x0039; }
1970 static constexpr unsigned int zoneNameAColor() { return 0x003a; }
1971 static constexpr unsigned int zoneNameBColor() { return 0x003b; }
1972 static constexpr Bit positionFormat() { return {0x0040, 6}; }
1973 static constexpr Bit gnssMode() { return {0x0040, 3}; }
1974 static constexpr Bit enableGNSS() { return {0x0040, 0}; }
1975 static constexpr unsigned int timeZone() { return 0x0041; }
1976 static constexpr unsigned int posUpdatePeriod() { return 0x0042; }
1977 static constexpr Bit recordMode() { return {0x0043, 2}; }
1978 static constexpr Bit enableRecording() { return {0x0045, 0}; }
1979 static constexpr Bit groupCallMatch() { return {0x0060, 1}; }
1980 static constexpr Bit privateCallMatch() { return {0x0060, 0}; }
1981 static constexpr unsigned int dmrCallHangTime() { return 0x0061; }
1982 static constexpr unsigned int activeWaitTime() { return 0x0062; }
1983 static constexpr unsigned int activeReties() { return 0x0063; }
1984 static constexpr unsigned int dmrPreambleDur() { return 0x0064; }
1985 static constexpr Bit dmrMonitor() { return {0x0065, 7}; }
1986 static constexpr Bit dmrKill() { return {0x0065, 6}; }
1987 static constexpr Bit dmrRadioCheck() { return {0x0065, 5}; }
1988 static constexpr Bit dmrReenable() { return {0x0065, 4}; }
1989 static constexpr Bit dmrRXAlert() { return {0x0065, 3}; }
1990 static constexpr Bit smsFormat() { return {0x0065, 1}; }
1991 static constexpr Bit missedCallNotification() { return {0x0065, 0}; }
1992 static constexpr unsigned int dmrRemoteMonitorDuration() { return 0x0066; }
1993 static constexpr Bit dmrTalkerAliasFormat() { return {0x0067, 4}; }
1994 static constexpr Bit txTalkerAlias() { return {0x0067, 3}; }
1995 static constexpr Bit talkerSource() { return {0x0067, 2}; }
1996 static constexpr Bit dualStandbyMode() { return {0x0080, 6}; }
1997 static constexpr Bit mainVFO() { return {0x0080, 5}; }
1998 static constexpr Bit displayModeB() { return {0x0080, 4}; }
1999 static constexpr Bit displayModeA() { return {0x0080, 3}; }
2000 static constexpr Bit vfoModeB() { return {0x0080, 2}; }
2001 static constexpr Bit vfoModeA() { return {0x0080, 1}; }
2002 static constexpr Bit disableVFOMode() { return {0x0080, 0}; }
2003 static constexpr unsigned int dualStandbyHangTime() { return 0x0081;}
2004 static constexpr Bit sideKeyLock() { return {0x0085, 2}; }
2005 static constexpr Bit knobLock() { return {0x0085, 1}; }
2006 static constexpr Bit enableAutoKeyLock() { return {0x0085, 0}; }
2007 static constexpr unsigned int autoKeyLockDelay() { return 0x0086; }
2008 static constexpr unsigned int sk1Short() { return 0x0087; }
2009 static constexpr unsigned int sk1Long() { return 0x0088; }
2010 static constexpr unsigned int sk2Short() { return 0x0089; }
2011 static constexpr unsigned int sk2Long() { return 0x008a; }
2012 static constexpr unsigned int p1Short() { return 0x008d; }
2013 static constexpr unsigned int p1Long() { return 0x008e; }
2014 static constexpr unsigned int p2Short() { return 0x008f; }
2015 static constexpr unsigned int p2Long() { return 0x0090; }
2016 static constexpr unsigned int longPressDuration() { return 0x0094; }
2017 static constexpr unsigned int transmitTimeout() { return 0x00a0; }
2018 static constexpr unsigned int totReminder() { return 0x00a1; }
2019 static constexpr unsigned int voxLevel() { return 0x00a2; }
2020 static constexpr unsigned int voxDelay() { return 0x00a3; }
2021 static constexpr Bit powerSaveMode() { return {0x00a4, 4}; }
2022 static constexpr Bit weatherAlarm() { return {0x00a4, 2}; }
2023 static constexpr Bit disableLEDs() { return {0x00a4, 0}; }
2024 static constexpr Bit tbstFrequency() { return {0x00a5, 4}; }
2025 static constexpr Bit steMode() { return {0x00a5, 0}; }
2026 static constexpr unsigned int fmMicLevel() { return 0x00a6; }
2027 static constexpr unsigned int dmrMicLevel() { return 0x00a7; }
2029 };
2030 };
2031
2032
2035 {
2036 protected:
2038 enum class CallType {
2039 Private = 0, Group = 1
2040 };
2041
2042 public:
2044 APRSSettingsElement(uint8_t *ptr);
2045
2047 static constexpr unsigned int size() { return 0x0100; }
2048
2050 virtual Interval updatePeriod();
2052 virtual void setUpdatePeriod(Interval interval);
2053
2055 virtual bool fixedLocationEnabled() const;
2057 virtual QGeoCoordinate fixedLocation() const;
2059 virtual void setFixedLocation(const QGeoCoordinate &coordinate);
2061 virtual void enableFixedLocation(bool enable);
2062
2064 virtual bool revertChannelIsCurrent(unsigned int n);
2066 virtual unsigned int revertChannelIndex(unsigned int n) const;
2068 virtual void setRevertChannelIndex(unsigned int n, unsigned int idx);
2070 virtual void setRevertChannelToCurrent(unsigned int n);
2071
2073 virtual Interval preWaveDelay() const;
2075 virtual void setPreWaveDelay(const Interval &delay);
2076
2078 virtual DMRContact::Type callType() const;
2080 virtual void setCallType(DMRContact::Type type);
2081
2083 virtual unsigned int destinationId() const;
2085 virtual void setDestinationId(unsigned int id);
2086
2088 bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
2090 bool link(Context &ctx, const ErrorStack &err=ErrorStack());
2092 bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
2093
2094 public:
2096 struct Limit: Element::Limit {
2098 static constexpr Range<Interval> updatePeriod() {
2099 return {Interval::fromSeconds(30), Interval::fromMinutes(120) };
2100 }
2101
2102 static constexpr unsigned int revertChannels() { return 8; }
2103 };
2104
2105 protected:
2107 struct Offset: Element::Offset {
2109 static constexpr unsigned int updatePeriod() { return 0x0001; }
2110 static constexpr unsigned int enableFixedLocation() { return 0x0002; }
2111 static constexpr unsigned int fixedLocationLatitude() { return 0x0006; }
2112 static constexpr unsigned int fixedLocationLongitude() { return 0x0010; }
2113 static constexpr unsigned int revertChannelIndices() { return 0x0020; }
2114 static constexpr unsigned int betweenRevertChannelIndices() { return 0x0002; }
2115 static constexpr unsigned int prewaveDelay() { return 0x0030; }
2116 static constexpr unsigned int callType() { return 0x0031; }
2117 static constexpr unsigned int destinationId() { return 0x0032; }
2119 };
2120 };
2121
2122
2125 {
2126 public:
2128 PasswordSettingsElement(uint8_t *ptr);
2129
2131 static constexpr unsigned int size() { return 0x0100; }
2132
2134 virtual bool bootPasswordEnabled() const;
2136 virtual QString bootPassword() const;
2138 virtual void setBootPassword(const QString &value);
2140 virtual void clearBootPassword();
2141
2143 virtual bool writePasswordEnabled() const;
2145 virtual QString writePassword() const;
2147 virtual void setWritePassword(const QString &value);
2149 virtual void clearWritePassword();
2150
2152 virtual bool readPasswordEnabled() const;
2154 virtual QString readPassword() const;
2156 virtual void setReadPassword(const QString &value);
2158 virtual void clearReadPassword();
2159
2160 public:
2162 struct Limit: Element::Limit
2163 {
2165 static constexpr unsigned int passwordLength() { return 8;}
2166 };
2167
2168 protected:
2170 struct Offset: Element::Offset
2171 {
2173 static constexpr unsigned int enableBootPassword() { return 0x0030; }
2174 static constexpr unsigned int bootPassword() { return 0x0031; }
2175 static constexpr unsigned int enableWritePassword() { return 0x0039; }
2176 static constexpr unsigned int enableReadPassword() { return 0x003a; }
2177 static constexpr unsigned int writePassword() { return 0x003b; }
2178 static constexpr unsigned int readPassword() { return 0x0043; }
2180 };
2181 };
2182
2183
2186 {
2187 public:
2189 MenuSettingElement(uint8_t *ptr);
2190
2192 static constexpr unsigned int size() { return 0x0100; }
2193
2194 protected:
2196 struct Offset: Element::Offset {
2198 static constexpr Bit newZone() { return {0x0000,1}; }
2199 static constexpr Bit listZones() { return {0x0000,0}; }
2200 static constexpr Bit measurePeriod() { return {0x0001,5}; }
2201 static constexpr Bit remoteKill() { return {0x0001,4}; }
2202 static constexpr Bit reenableRadio() { return {0x0001,3}; }
2203 static constexpr Bit remoteMonitor() { return {0x0001,2}; }
2204 static constexpr Bit radioCheck() { return {0x0001,1}; }
2205 static constexpr Bit callAlert() { return {0x0001,0}; }
2206 static constexpr Bit matchGroupCall() { return {0x0002,7}; }
2207 static constexpr Bit displayMode() { return {0x0002,6}; }
2208 static constexpr Bit matchPrivateCall() { return {0x0002,5}; }
2209 static constexpr Bit languageSelect() { return {0x0002,4}; }
2210 static constexpr Bit bootDisplay() { return {0x0002,3}; }
2211 static constexpr Bit transmitPower() { return {0x0002,2}; }
2212 static constexpr Bit alertTone() { return {0x0002,1}; }
2213 static constexpr Bit talkaround() { return {0x0002,0}; }
2214 static constexpr Bit record() { return {0x0003,6}; }
2215 static constexpr Bit aprs() { return {0x0003,5}; }
2216 static constexpr Bit gnss() { return {0x0003,4}; }
2217 static constexpr Bit powerSave() { return {0x0003,3}; }
2218 static constexpr Bit subChannelMode() { return {0x0003,2}; }
2219 static constexpr Bit fmBCRadio() { return {0x0003,1}; }
2220 static constexpr Bit smsFormat() { return {0x0003,0}; }
2221 static constexpr Bit callsignDB() { return {0x0004,6}; }
2222 static constexpr Bit manualDial() { return {0x0004,5}; }
2223 static constexpr Bit sendMessage() { return {0x0004,4}; }
2224 static constexpr Bit contactFunc() { return {0x0004,3}; }
2225 static constexpr Bit editContact() { return {0x0004,2}; }
2226 static constexpr Bit deleteContact() { return {0x0004,1}; }
2227 static constexpr Bit addContact() { return {0x0004,0}; }
2228 static constexpr Bit clearCallLog() { return {0x0005,3}; }
2229 static constexpr Bit outgoingCalls() { return {0x0005,2}; }
2230 static constexpr Bit incomingCalls() { return {0x0005,1}; }
2231 static constexpr Bit missedCalls() { return {0x0005,0}; }
2232 static constexpr Bit radioName() { return {0x0006,7}; }
2233 static constexpr Bit radioId() { return {0x0006,6}; }
2234 static constexpr Bit timeslot() { return {0x0006,5}; }
2235 static constexpr Bit colorCode() { return {0x0006,4}; }
2236 static constexpr Bit txContact() { return {0x0006,3}; }
2237 static constexpr Bit ctcssDcs() { return {0x0006,2}; }
2238 static constexpr Bit txFrequency() { return {0x0006,1}; }
2239 static constexpr Bit rxFrequency() { return {0x0006,0}; }
2240 static constexpr Bit channelName() { return {0x0007,4}; }
2241 static constexpr Bit addChannel() { return {0x0007,3}; }
2242 static constexpr Bit groupList() { return {0x0007,2}; }
2243 static constexpr Bit dcdm() { return {0x0007,1}; }
2244 static constexpr Bit channelType() { return {0x0007,0}; }
2246 };
2247 };
2248
2249
2250
2253 {
2254 public:
2256 enum class Type {
2257 Off = 0, Custom = 1, ARC4 = 2, AES128 = 3, AES256 = 4
2258 };
2259
2260 public:
2262 EncryptionKeyElement(uint8_t *ptr);
2263
2265 static constexpr unsigned int size() { return 0x2c; }
2266
2267 virtual void clear() override;
2268
2270 virtual unsigned int keyId() const;
2272 virtual void setKeyId(unsigned int id);
2273
2275 virtual QString name() const;
2277 virtual void setName(const QString &name);
2278
2280 virtual Type type() const;
2282 virtual void setType(Type type);
2283
2285 virtual QByteArray key() const;
2287 virtual void setKey(const QByteArray &key);
2288
2290 EncryptionKey *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
2292 bool encode(const EncryptionKey *key, Context &ctx, const ErrorStack &err=ErrorStack());
2293
2294 public:
2296 struct Limit: Element::Limit {
2298 static constexpr unsigned int nameLength() { return 10; }
2300 static constexpr unsigned int keyLength() { return 32; }
2301 };
2302
2303 protected:
2305 struct Offset: Element::Offset {
2307 static constexpr unsigned int keyId() { return 0x0000; }
2308 static constexpr unsigned int name() { return 0x0001; }
2309 static constexpr unsigned int type() { return 0x000b; }
2310 static constexpr unsigned int key() { return 0x000c; }
2312 };
2313 };
2314
2315
2316
2319 {
2320 public:
2322 EncryptionKeyBankElement(uint8_t *ptr);
2323
2325 static constexpr unsigned int size() { return 0x600; }
2326
2328 virtual bool keyValid(unsigned int idx) const;
2330 virtual EncryptionKeyElement key(unsigned int idx) const;
2331
2333 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
2335 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
2336
2337 public:
2339 struct Limit: Element::Limit {
2341 static constexpr unsigned int keys() { return 32; }
2342 };
2343
2344 protected:
2346 struct Offset: Element::Offset {
2348 static constexpr unsigned int keys() { return 0x0000; }
2349 static constexpr unsigned int betweenKeys() {
2351 }
2353 };
2354 };
2355
2356
2357public:
2362 explicit DM32UVCodeplug(QObject *parent = nullptr);
2363
2364 Config * preprocess(Config *config, const ErrorStack &err) const override;
2365 bool postprocess(Config *config, const ErrorStack &err) const override;
2366
2367 bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const override;
2368 bool encode(Config *config, const Flags &flags, const ErrorStack &err=ErrorStack()) override;
2369 bool decode(Config *config, const ErrorStack &err=ErrorStack()) override;
2370
2371protected:
2373 virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
2375 virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack());
2377 virtual bool encodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
2378
2380 virtual bool decodeChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2382 virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2384 virtual bool encodeChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2385
2387 virtual bool decodeContacts(Context &ctx, const ErrorStack &err=ErrorStack());
2389 virtual bool encodeContacts(Context &ctx, const ErrorStack &err=ErrorStack());
2390
2392 virtual bool decodeZones(Context &ctx, const ErrorStack &err=ErrorStack());
2394 virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack());
2396 virtual bool encodeZones(Context &ctx, const ErrorStack &err=ErrorStack());
2397
2398public:
2400 struct Limit: Element::Limit {
2401 static constexpr unsigned int blockSize() { return 0x1000; }
2402 static constexpr Range<unsigned int> channelBanks() { return {1, 49}; }
2403 static constexpr Range<unsigned int> contactBanks() { return {1, 5}; }
2404 static constexpr Range<unsigned int> zoneBanks() { return {1, 8}; }
2405 };
2406
2407protected:
2409 struct Offset {
2411 static constexpr unsigned int generalSettings() { return 0x00004000; }
2412 static constexpr unsigned int aprsSettings() { return 0x00004300; }
2413 static constexpr unsigned int contactIndex() { return 0x0000b000; }
2414 static constexpr unsigned int groupListBank() { return 0x0000f000; }
2415 static constexpr unsigned int extendedSettings() { return 0x00010000; }
2416 static constexpr unsigned int encryptionKeys() { return 0x00010300; }
2417 static constexpr unsigned int scanListBank() { return 0x00011000; }
2418 static constexpr unsigned int channelBanks() { return 0x00012000; }
2419 static constexpr unsigned int channelExtensionBanks() { return 0x00042000; }
2420 static constexpr unsigned int contactBanks() { return 0x00044000; }
2421 static constexpr unsigned int zoneBanks() { return 0x0005c000; }
2422 static constexpr unsigned int roamingZoneBank() { return 0x00065000; }
2423 static constexpr unsigned int roamingChannelBank() { return 0x00066000; }
2424 static constexpr unsigned int radioIdBank() { return 0x00067000; }
2426 };
2427};
2428
2429#endif // DM32UV_CODEPLUG_HH
Abstract base class of all callsign database implementations.
Definition callsigndb.hh:16
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:37
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:64
BitmapElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:692
Base class for all codeplug contexts.
Definition codeplug.hh:331
Element(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:56
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition codeplug.hh:24
InvertedBitmapElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:732
Codeplug(QObject *parent=nullptr)
Hidden default constructor.
Definition codeplug.cc:872
The config class, representing the codeplug configuration.
Definition config.hh:70
Represents a single image within a DFUFile.
Definition dfufile.hh:121
uint32_t size() const
Returns the total size of the DFU file.
Definition dfufile.cc:52
virtual DMRContact::Type callType() const
Returns the call type for all revert channels.
Definition dm32uv_codeplug.cc:3431
virtual bool fixedLocationEnabled() const
Returns true if the fixed location is used.
Definition dm32uv_codeplug.cc:3353
CallType
Encoding of call type.
Definition dm32uv_codeplug.hh:2038
bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links the APRS settings.
Definition dm32uv_codeplug.cc:3488
virtual void setFixedLocation(const QGeoCoordinate &coordinate)
Sets the fixed location.
Definition dm32uv_codeplug.cc:3375
APRSSettingsElement(uint8_t *ptr)
Constructor from pointer.
Definition dm32uv_codeplug.cc:3328
virtual void enableFixedLocation(bool enable)
Enabled fixed location.
Definition dm32uv_codeplug.cc:3389
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2047
virtual void setRevertChannelToCurrent(unsigned int n)
Sets the n-th revert channel to be the current channel.
Definition dm32uv_codeplug.cc:3413
virtual unsigned int revertChannelIndex(unsigned int n) const
Returns the n-th revert channel index.
Definition dm32uv_codeplug.cc:3401
virtual Interval preWaveDelay() const
Returns the pre-wave delay.
Definition dm32uv_codeplug.cc:3420
virtual unsigned int destinationId() const
Returns the destination ID.
Definition dm32uv_codeplug.cc:3454
virtual void setPreWaveDelay(const Interval &delay)
Sets the pre-wave delay.
Definition dm32uv_codeplug.cc:3425
bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the APRS settings.
Definition dm32uv_codeplug.cc:3524
virtual void setRevertChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th revert channel index.
Definition dm32uv_codeplug.cc:3407
virtual Interval updatePeriod()
Returns the update interval.
Definition dm32uv_codeplug.cc:3335
virtual void setCallType(DMRContact::Type type)
Sets the call type for all revert channels.
Definition dm32uv_codeplug.cc:3440
bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the APRS settings.
Definition dm32uv_codeplug.cc:3465
virtual QGeoCoordinate fixedLocation() const
Returns the fixed location.
Definition dm32uv_codeplug.cc:3358
virtual void setDestinationId(unsigned int id)
Sets the destination ID for all revert channels.
Definition dm32uv_codeplug.cc:3459
virtual void setUpdatePeriod(Interval interval)
Sets the update interval.
Definition dm32uv_codeplug.cc:3342
virtual bool revertChannelIsCurrent(unsigned int n)
Returns true if the n-th revert channel is set.
Definition dm32uv_codeplug.cc:3395
virtual unsigned int channelCount() const
Returns the channel count.
Definition dm32uv_codeplug.cc:625
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:287
virtual void setChannelCount(unsigned int n)
Sets the channel count.
Definition dm32uv_codeplug.cc:630
ChannelBankElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:617
static SelectiveCall decodeSelectiveCall(uint16_t code)
Helper function to decode selective call.
Definition dm32uv_codeplug.cc:585
Power
Possible power settings.
Definition dm32uv_codeplug.hh:40
virtual ChannelType channelType() const
Returns the channel type.
Definition dm32uv_codeplug.cc:71
virtual bool dcdmEnabled() const
Return true if DCDM (dual capacity direct mode) is enabled.
Definition dm32uv_codeplug.cc:286
virtual void clearGroupListIndex()
Invalidates group list index.
Definition dm32uv_codeplug.cc:344
virtual unsigned int dmrIdIndex() const
Returns the DMR radio id index.
Definition dm32uv_codeplug.cc:393
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:58
virtual void enableRXDMRAPRS(bool enable)
Enables/disables DMR APRS reception.
Definition dm32uv_codeplug.cc:186
virtual void enableVOX(bool enable)
Enables the VOX.
Definition dm32uv_codeplug.cc:387
virtual unsigned int dmrAPRSChannelIndex() const
Returns DMR APRS report channel index.
Definition dm32uv_codeplug.cc:350
virtual bool validScanListIndex() const
Returns true, if the scan list index is set.
Definition dm32uv_codeplug.cc:138
virtual DMRChannel::TimeSlot timeslot() const
Returns the timeslot of the channel.
Definition dm32uv_codeplug.cc:297
ChannelType
Possible channel types.
Definition dm32uv_codeplug.hh:35
virtual void enableEmergencyACK(bool enable)
Enables/disables emergency notification.
Definition dm32uv_codeplug.cc:207
virtual unsigned int groupListIndex() const
Get group list index.
Definition dm32uv_codeplug.cc:334
virtual bool rxDMRAPRSEnabled() const
Returns true if DMR APRS reception is enabled.
Definition dm32uv_codeplug.cc:181
virtual void setPower(Channel::Power power)
Sets the channel power.
Definition dm32uv_codeplug.cc:92
virtual void enableTalkaround(bool enable)
Enables/disables talkaround feature on this channel.
Definition dm32uv_codeplug.cc:164
virtual bool rxOnlyEnabled() const
Returns true if the channel is RX only.
Definition dm32uv_codeplug.cc:244
virtual bool encode(const Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes a channel.
Definition dm32uv_codeplug.cc:508
virtual bool link(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links the channel object.
Definition dm32uv_codeplug.cc:462
virtual FMChannel::Bandwidth bandwidth() const
Returns the bandwidth for FM channels.
Definition dm32uv_codeplug.cc:121
virtual Admit admitCriterion() const
Returns the admit criterion.
Definition dm32uv_codeplug.cc:170
virtual void setColorCode(unsigned int cc)
Sets the color code of the channel.
Definition dm32uv_codeplug.cc:312
virtual void setRXFrequency(const Frequency &freq)
Set RX frequency.
Definition dm32uv_codeplug.cc:42
virtual void setEmergencySystemIndex(unsigned int idx)
Sets the emergency system index.
Definition dm32uv_codeplug.cc:222
static uint16_t encodeSelectiveCall(const SelectiveCall &tone)
Helper function to encode selective call.
Definition dm32uv_codeplug.cc:602
virtual Channel * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a channel object.
Definition dm32uv_codeplug.cc:404
virtual Frequency rxFrequency() const
Returns the RX frequency.
Definition dm32uv_codeplug.cc:37
virtual void enableDCDM(bool enable)
Enables DCDM (dual capacity direct mode).
Definition dm32uv_codeplug.cc:291
virtual void clearScanListIndex()
Invalidates the scan list index.
Definition dm32uv_codeplug.cc:153
virtual void clearEmergencySystemIndex()
Invalidates the emergency system index.
Definition dm32uv_codeplug.cc:227
virtual bool validGroupListIndex() const
Returns true if group list index is valid.
Definition dm32uv_codeplug.cc:329
virtual void enableDMRAPRS(bool enable)
Enables DMR APRS for the channel.
Definition dm32uv_codeplug.cc:260
virtual unsigned int scanListIndex() const
Returns the 0-based scan list index.
Definition dm32uv_codeplug.cc:143
virtual bool dataACKEnabled() const
Return true if data is confirmed.
Definition dm32uv_codeplug.cc:276
virtual QString name() const
Returns the channel name.
Definition dm32uv_codeplug.cc:26
virtual bool talkaroundEnabled() const
Returns true if talkaround is enabled on this channel.
Definition dm32uv_codeplug.cc:159
virtual bool voxEnabled() const
Returns true, if the VOX is enabled.
Definition dm32uv_codeplug.cc:382
virtual void setScanListIndex(unsigned int idx)
Sets the scan list index.
Definition dm32uv_codeplug.cc:148
virtual unsigned int colorCode() const
Returns the color code of the channel.
Definition dm32uv_codeplug.cc:307
virtual void setName(const QString &name)
Sets the channel name.
Definition dm32uv_codeplug.cc:31
virtual bool encryptionEnabled() const
Returns true if encryption is enabled.
Definition dm32uv_codeplug.cc:318
ChannelElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:12
virtual void enableLoneWorker(bool enable)
Enables/disables lone worker feature.
Definition dm32uv_codeplug.cc:115
virtual void setTXFrequency(const Frequency &freq)
Set TX frequency.
Definition dm32uv_codeplug.cc:60
virtual void setGroupListIndex(unsigned int idx)
Set group list index.
Definition dm32uv_codeplug.cc:339
virtual void setBandwidth(FMChannel::Bandwidth bw)
Sets the FM channel bandwidth.
Definition dm32uv_codeplug.cc:129
virtual void enableDataACK(bool enable)
Enables confirmation of data.
Definition dm32uv_codeplug.cc:281
virtual void setSquelchLevel(Level level)
Sets the FM and DMR squelch level.
Definition dm32uv_codeplug.cc:238
virtual bool privateCallACKEnabled() const
Return true if private calls are confirmed.
Definition dm32uv_codeplug.cc:266
virtual bool emergencyNotificationEnabled() const
Retruns true, if the emergency notification is enabled.
Definition dm32uv_codeplug.cc:192
virtual bool dmrAPRSEnabled() const
Returns true if DMR APRS is enabled.
Definition dm32uv_codeplug.cc:255
virtual Level squelchLevel() const
Returns FM and DMR squelch level.
Definition dm32uv_codeplug.cc:233
virtual unsigned int emergencySystemIndex() const
Returns the emergency system index.
Definition dm32uv_codeplug.cc:217
Admit
Possible admit criteria.
Definition dm32uv_codeplug.hh:45
virtual Frequency txFrequency() const
Returns the TX frequency.
Definition dm32uv_codeplug.cc:53
virtual void enablePrivateCallACK(bool enable)
Enables confirmation of private calls.
Definition dm32uv_codeplug.cc:271
virtual void setDMRIdIndex(unsigned int id)
Sets the dmr ID index.
Definition dm32uv_codeplug.cc:398
virtual void setDMRAPRSChannelIndex(unsigned int idx)
Sets the DMR APRS report channel index.
Definition dm32uv_codeplug.cc:355
virtual SelectiveCall rxTone() const
Returns the RX tone.
Definition dm32uv_codeplug.cc:361
virtual void enableRXOnly(bool enable)
Enables RX only for the channel.
Definition dm32uv_codeplug.cc:249
virtual bool validTXFrequency() const
Returns true, if a valid TX frequency is stored.
Definition dm32uv_codeplug.cc:48
virtual bool validEmergencySystemIndex() const
Returns true if the emergency system index is set.
Definition dm32uv_codeplug.cc:212
virtual void setRXTone(const SelectiveCall &tone)
Sets the RX tone.
Definition dm32uv_codeplug.cc:366
virtual void setAdmitCriterion(Admit admit)
Sets the admit criterion.
Definition dm32uv_codeplug.cc:175
virtual bool loneWorkerEnabled() const
Returns true, if the lone-worker feature is enabled.
Definition dm32uv_codeplug.cc:110
virtual SelectiveCall txTone() const
Returns the TX tone.
Definition dm32uv_codeplug.cc:371
virtual Channel::Power power() const
Returns the channel power setting.
Definition dm32uv_codeplug.cc:82
virtual void enableEmergencyNotification(bool enable)
Enables/disables emergency notification.
Definition dm32uv_codeplug.cc:197
virtual void clearTXFrequency()
Invalidates the TX frequency.
Definition dm32uv_codeplug.cc:65
virtual void setTimeslot(DMRChannel::TimeSlot ts)
Sets the timeslot of the channel.
Definition dm32uv_codeplug.cc:302
virtual void setChannelType(ChannelType type)
Sets the channel type.
Definition dm32uv_codeplug.cc:76
virtual void setTXTone(const SelectiveCall &tone)
Sets the TX tone.
Definition dm32uv_codeplug.cc:376
virtual bool emergencyACKEnabled() const
Retruns true, if the emergency ACK is enabled.
Definition dm32uv_codeplug.cc:202
Encodes a bank of channel extension settings.
Definition dm32uv_codeplug.hh:361
virtual bool hasContactIndex() const
Returns true if a TX contact index is set.
Definition dm32uv_codeplug.cc:653
void clear() override
Resets the element.
Definition dm32uv_codeplug.cc:646
virtual bool link(Channel *ch, Context &ctx, const ErrorStack &err) const
Links the given channel.
Definition dm32uv_codeplug.cc:688
ChannelExtensionElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:639
virtual void setContactIndex(unsigned int index)
Sets the contact index.
Definition dm32uv_codeplug.cc:667
virtual void clearContactIndex()
Resets the contact index.
Definition dm32uv_codeplug.cc:675
virtual bool encode(const Channel *ch, Context &ctx, const ErrorStack &err)
Encodes the extended settings from the given channel.
Definition dm32uv_codeplug.cc:703
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:327
virtual unsigned int contactIndex() const
Returns the TX contact index.
Definition dm32uv_codeplug.cc:660
virtual bool decode(Channel *ch, Context &ctx, const ErrorStack &err) const
Updates the given channel.
Definition dm32uv_codeplug.cc:682
Implements the contact bank.
Definition dm32uv_codeplug.hh:438
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:395
virtual void setDMRId(unsigned int id)
Sets the DMR Id.
Definition dm32uv_codeplug.cc:781
Type
Possible contact types.
Definition dm32uv_codeplug.hh:382
virtual void setName(const QString &name)
Sets the name of the contact.
Definition dm32uv_codeplug.cc:744
virtual QString name() const
Returns the name of the contact.
Definition dm32uv_codeplug.cc:739
ContactElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:725
virtual DMRContact * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a contact object.
Definition dm32uv_codeplug.cc:786
virtual void setCallType(DMRContact::Type type)
Sets the call type.
Definition dm32uv_codeplug.cc:760
virtual bool encode(const DMRContact *contact, const ErrorStack &err=ErrorStack())
Encodes the contact.
Definition dm32uv_codeplug.cc:793
virtual unsigned int dmrId() const
Returns the DMR Id.
Definition dm32uv_codeplug.cc:775
virtual DMRContact::Type callType() const
Returns the call type.
Definition dm32uv_codeplug.cc:750
ContactBitmapElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:808
static constexpr unsigned int size()
Returns the size of the bitmap.
Definition dm32uv_codeplug.hh:471
bool isValid() const override
Returns true if the entry is valid.
Definition dm32uv_codeplug.cc:836
void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_codeplug.cc:831
EntryElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:818
virtual DMRContact::Type callType() const
Returns the call type.
Definition dm32uv_codeplug.cc:841
virtual void setCallType(DMRContact::Type type)
Sets the call type.
Definition dm32uv_codeplug.cc:851
virtual void setIndex(unsigned int idx)
Sets the index.
Definition dm32uv_codeplug.cc:868
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:491
virtual unsigned int index() const
Returns the contact index.
Definition dm32uv_codeplug.cc:863
virtual unsigned int groupCallCount() const
Returns the number of group call contacts encoded.
Definition dm32uv_codeplug.cc:902
virtual ContactBitmapElement bitmap() const
Returns the contact bitmap.
Definition dm32uv_codeplug.cc:923
static constexpr unsigned int size()
Size of this element.
Definition dm32uv_codeplug.hh:512
virtual EntryElement indexEntry(unsigned n)
Returns the n-th index entry.
Definition dm32uv_codeplug.cc:928
virtual unsigned int privateCallCount() const
Returns the number of private call contacts encoded.
Definition dm32uv_codeplug.cc:912
virtual void setPrivateCallCount(unsigned int n)
Sets the number of private call contacts.
Definition dm32uv_codeplug.cc:917
virtual void setContactCount(unsigned int n)
Sets the number of contacts.
Definition dm32uv_codeplug.cc:897
virtual void setGroupCallCount(unsigned int n)
Sets the number of group call contacts.
Definition dm32uv_codeplug.cc:907
ContactIndexElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:878
virtual EntryElement sortedIndexEntry(unsigned n)
Returns the n-th sorted index entry.
Definition dm32uv_codeplug.cc:933
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the contact index.
Definition dm32uv_codeplug.cc:939
virtual unsigned int contactCount() const
Returns the number of contacts encoded.
Definition dm32uv_codeplug.cc:892
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all keys.
Definition dm32uv_codeplug.cc:3800
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all keys.
Definition dm32uv_codeplug.cc:3782
EncryptionKeyBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:3762
virtual bool keyValid(unsigned int idx) const
Returns true, if the key is valid.
Definition dm32uv_codeplug.cc:3769
virtual EncryptionKeyElement key(unsigned int idx) const
Returns the n-th key.
Definition dm32uv_codeplug.cc:3776
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2325
Implementation of a single encryption key.
Definition dm32uv_codeplug.hh:2253
virtual void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_codeplug.cc:3647
EncryptionKeyElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:3639
bool encode(const EncryptionKey *key, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the key.
Definition dm32uv_codeplug.cc:3738
virtual QString name() const
Returns the key name.
Definition dm32uv_codeplug.cc:3666
virtual void setKeyId(unsigned int id)
Sets the key id.
Definition dm32uv_codeplug.cc:3660
virtual QByteArray key() const
Returns the key data.
Definition dm32uv_codeplug.cc:3688
virtual Type type() const
Returns the key type.
Definition dm32uv_codeplug.cc:3677
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2265
Type
Possible key types.
Definition dm32uv_codeplug.hh:2256
virtual void setType(Type type)
Sets the key type.
Definition dm32uv_codeplug.cc:3682
EncryptionKey * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes the key.
Definition dm32uv_codeplug.cc:3701
virtual unsigned int keyId() const
Returns the key id.
Definition dm32uv_codeplug.cc:3655
virtual void setName(const QString &name)
Sets the name.
Definition dm32uv_codeplug.cc:3671
virtual void setKey(const QByteArray &key)
Sets the key data.
Definition dm32uv_codeplug.cc:3693
virtual KeyFunction::Function sk1Short() const
Returns the side-key 1 short-press function.
Definition dm32uv_codeplug.cc:3025
virtual bool dmrRemoteKillEnabled() const
Returns true if the remote kill switch is enabled.
Definition dm32uv_codeplug.cc:2777
virtual Interval dmrPreambleDuration() const
Retruns the DMR preamble duration.
Definition dm32uv_codeplug.cc:2755
SMSFormat
Possible SMS formats.
Definition dm32uv_codeplug.hh:1439
virtual Interval dmrCallHangTime() const
Returns the DMR call hang time.
Definition dm32uv_codeplug.cc:2722
virtual void setDualStandbyMode(DualStandbyMode mode)
Sets the dual-standby mode.
Definition dm32uv_codeplug.cc:2903
virtual void enableDMRRXAlert(bool enable)
Enables enables reception of DMR alerts.
Definition dm32uv_codeplug.cc:2815
virtual bool privateCallToneEnabled() const
Returns true if private call tone is enabled.
Definition dm32uv_codeplug.cc:2363
virtual VFODisplayMode vfoDisplayModeB() const
Returns the VFO B display mode.
Definition dm32uv_codeplug.cc:2931
VFOMode
VFO Modes.
Definition dm32uv_codeplug.hh:1469
virtual void enableShowVolumeChange(bool enable)
Enable volume change prompt.
Definition dm32uv_codeplug.cc:2524
virtual void disableVFOMode(bool enable)
Disables VFO modes.
Definition dm32uv_codeplug.cc:2968
virtual bool groupCallMatchEnabled() const
Returns true if group call must match.
Definition dm32uv_codeplug.cc:2700
virtual void setP2Short(KeyFunction::Function function)
Sets the programmable key 2 short-press function.
Definition dm32uv_codeplug.cc:3091
virtual void setGNSS(GNSSSettings::Systems mode)
Sets the GNSS mode.
Definition dm32uv_codeplug.cc:2634
TBSTFrequency
Possible TBST frequencies.
Definition dm32uv_codeplug.hh:1496
virtual void enableSMSTone(bool enable)
Enables sms tones.
Definition dm32uv_codeplug.cc:2347
virtual bool smsToneEnabled() const
Returns true if sms tones are enabled.
Definition dm32uv_codeplug.cc:2342
virtual void setFMMicLevel(Level level)
Sets the FM mic level.
Definition dm32uv_codeplug.cc:3249
virtual Color::Code channelNameAColor() const
Returns the channel name A color.
Definition dm32uv_codeplug.cc:2572
virtual void setActiveRetries(unsigned int retries)
Sets the number of active retires.
Definition dm32uv_codeplug.cc:2749
virtual void setDMRCallHangTime(const Interval &hangTime)
Sets the DMR call hang time.
Definition dm32uv_codeplug.cc:2727
FMRogerTone
Possible FM roger tones.
Definition dm32uv_codeplug.hh:1395
virtual void setSK1Long(KeyFunction::Function function)
Sets the side-key 1 long-press function.
Definition dm32uv_codeplug.cc:3040
virtual VFOMode vfoModeA() const
Returns the VFO A mode.
Definition dm32uv_codeplug.cc:2942
virtual void setBacklightDuration(Interval duration)
Sets the backlight duration.
Definition dm32uv_codeplug.cc:2470
virtual bool missedCallNotificationEnabled() const
Retruns true missed call notification is enabled.
Definition dm32uv_codeplug.cc:2841
virtual void enableShowClock(bool enable)
Enable clock.
Definition dm32uv_codeplug.cc:2546
virtual void enableTXTalkerAlias(bool enable)
Enables transmission of talker alias.
Definition dm32uv_codeplug.cc:2881
virtual void setTimeZone(const QTimeZone &timeZone)
Sets the timezone.
Definition dm32uv_codeplug.cc:2661
virtual void enableWeatherAlarm(bool enable)
Enables the NOAA weather alarm.
Definition dm32uv_codeplug.cc:3192
virtual void setP1Long(KeyFunction::Function function)
Sets the programmable key 1 long-press function.
Definition dm32uv_codeplug.cc:3081
virtual void disableAllLEDs(bool disable)
Disables all LEDs.
Definition dm32uv_codeplug.cc:3203
virtual void setSK2Long(KeyFunction::Function function)
Sets the side-key 2 long-press function.
Definition dm32uv_codeplug.cc:3060
virtual bool allLEDsDisabled() const
Returns true if all LEDs are disabled.
Definition dm32uv_codeplug.cc:3198
virtual void setChannelNameAColor(Color::Code c)
Sets the channel name A color.
Definition dm32uv_codeplug.cc:2577
virtual void setMainVFO(VFO mainVFO)
Sets the main VFO.
Definition dm32uv_codeplug.cc:2914
GNSSMode
GNSS modes.
Definition dm32uv_codeplug.hh:1429
virtual void enableDMRRemoteKill(bool enable)
Enables the remote kill swtich.
Definition dm32uv_codeplug.cc:2782
virtual void setTalkerAliasSource(TalkerAliasSource source)
Sets the talker alias source.
Definition dm32uv_codeplug.cc:2892
VFO
VFO selection.
Definition dm32uv_codeplug.hh:1459
virtual bool talkPermitToneEnabled() const
Returns true if talk permit tone is enabled.
Definition dm32uv_codeplug.cc:2385
virtual void setDMRRemoteMonitorDuration(Interval duration)
Sets the remote monitor duration.
Definition dm32uv_codeplug.cc:2857
virtual void setP2Long(KeyFunction::Function function)
Sets the programmable key 2 long-press function.
Definition dm32uv_codeplug.cc:3101
virtual void enableBootTone(bool enable)
Enables boot tones.
Definition dm32uv_codeplug.cc:2401
virtual void setTransmitTimeout(Interval timeout)
Sets transmit timeout.
Definition dm32uv_codeplug.cc:3126
virtual TalkerAliasSource talkerAliasSource() const
Returns the talker alias source.
Definition dm32uv_codeplug.cc:2887
virtual bool sideKeyLockEnabled() const
Returns true if the side keys are locked.
Definition dm32uv_codeplug.cc:2985
virtual void enableMCUReset(bool enable)
Enables MCU reset.
Definition dm32uv_codeplug.cc:2282
virtual DualStandbyMode dualStandbyMode() const
Returns the dual-standby mode.
Definition dm32uv_codeplug.cc:2898
virtual void setZoneNameAColor(Color::Code c)
Sets the zone name A color.
Definition dm32uv_codeplug.cc:2597
virtual bool showVolmueChange() const
Returns true if the volume change prompt is shown.
Definition dm32uv_codeplug.cc:2519
VFODisplayMode
VFO display modes.
Definition dm32uv_codeplug.hh:1464
virtual bool radioSilentEnabled() const
Returns true if all tones are disabled.
Definition dm32uv_codeplug.cc:2320
virtual void setZoneNameBColor(Color::Code c)
Sets the zone name B color.
Definition dm32uv_codeplug.cc:2607
virtual VFO mainVFO() const
Returns the main VFO.
Definition dm32uv_codeplug.cc:2909
PowerSaveMode
Possible power-save mode.
Definition dm32uv_codeplug.hh:1491
virtual void enableGroupCallMatch(bool enable)
Enables group call match.
Definition dm32uv_codeplug.cc:2705
virtual Interval voxDelay() const
Retruns the VOX delay.
Definition dm32uv_codeplug.cc:3164
virtual GNSSSettings::Systems gnss() const
Returns the GNSS mode.
Definition dm32uv_codeplug.cc:2624
virtual Level dmrMicLevel() const
Returns the DMR mic level.
Definition dm32uv_codeplug.cc:3254
virtual bool groupCallToneEnabled() const
Returns true if group call tone is enabled.
Definition dm32uv_codeplug.cc:2353
virtual void setDateFormat(DateFormat format)
Sets the date format.
Definition dm32uv_codeplug.cc:2535
virtual void enableVoicePrompt(bool enable)
Enables voice prompt.
Definition dm32uv_codeplug.cc:2412
virtual void setDisplayBrightness(unsigned int n)
Sets the display brightness [0-10].
Definition dm32uv_codeplug.cc:2445
virtual void setDmrPreambleDuration(Interval duration)
Sets the DMR preamble duration.
Definition dm32uv_codeplug.cc:2760
virtual bool vfoModeDisabled() const
Returns true if VFO modes are disabled.
Definition dm32uv_codeplug.cc:2963
virtual void enableRadioSilent(bool enable)
Disables all tones.
Definition dm32uv_codeplug.cc:2325
virtual void setRecordMode(RecordMode mode)
Sets the record mode.
Definition dm32uv_codeplug.cc:2683
virtual Color::Code zoneNameAColor() const
Returns the zone name A color.
Definition dm32uv_codeplug.cc:2592
virtual bool showClock() const
Returns true if the clock is shown.
Definition dm32uv_codeplug.cc:2541
virtual KeyFunction::Function p1Long() const
Returns the programmable key 1 long-press function.
Definition dm32uv_codeplug.cc:3076
STEMode
Possible squelch tail-eliminations.
Definition dm32uv_codeplug.hh:1501
virtual void setPowerSaveMode(PowerSaveMode mode)
Sets the power-save mode.
Definition dm32uv_codeplug.cc:3181
virtual bool gnssEnabled() const
Returns true if GNSS is enabled.
Definition dm32uv_codeplug.cc:2645
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encode general settings.
Definition dm32uv_codeplug.cc:3293
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the general settings.
Definition dm32uv_codeplug.cc:3265
virtual void setVoxDelay(Interval delay)
Sets the VOX delay.
Definition dm32uv_codeplug.cc:3169
virtual void setMenuDuration(Interval duration)
Sets the menu hold time.
Definition dm32uv_codeplug.cc:2509
virtual void setAutoPowerOffDelay(const Interval &delay)
Sets the auto-power-off delay.
Definition dm32uv_codeplug.cc:2301
virtual void enableGNSS(bool enable)
Enables GNSS.
Definition dm32uv_codeplug.cc:2650
virtual void enableKnobLock(bool enable)
Enables the knob lock.
Definition dm32uv_codeplug.cc:3001
virtual Color::Code standbyColor() const
Returns the standby text color.
Definition dm32uv_codeplug.cc:2562
virtual Interval transmitTimeout() const
Returns the transmit timeout.
Definition dm32uv_codeplug.cc:3119
virtual Level voxLevel() const
Returns the VOX level.
Definition dm32uv_codeplug.cc:3148
virtual void enableDMRRemoteReenable(bool enable)
Enables DMR remote reenable.
Definition dm32uv_codeplug.cc:2804
virtual SMSExtension::Format smsFormat() const
Returns the DMR SMS format.
Definition dm32uv_codeplug.cc:2821
virtual KeyFunction::Function sk2Short() const
Returns the side-key 2 short-press function.
Definition dm32uv_codeplug.cc:3045
virtual void setBootMessage2(const QString &msg)
Sets the second boot message line.
Definition dm32uv_codeplug.cc:2271
virtual KeyFunction::Function p1Short() const
Returns the programmable key 1 short-press function.
Definition dm32uv_codeplug.cc:3066
virtual void setVFODisplayModeB(VFODisplayMode mode)
Sets the VFO B display mode.
Definition dm32uv_codeplug.cc:2936
BootDisplay
Possible boot display settings.
Definition dm32uv_codeplug.hh:1385
virtual bool lowBatteryToneEnabled() const
Returns true if low-battery tone is enabled.
Definition dm32uv_codeplug.cc:2418
GeneralSettingsElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2237
virtual Color::Code callColor() const
Returns the call color.
Definition dm32uv_codeplug.cc:2552
virtual bool weatherAlarmEnabled() const
Returns true, if the NOAA weather alarm is enabled.
Definition dm32uv_codeplug.cc:3187
virtual void enableMissedCallNotification(bool enable)
Enables missed call notification.
Definition dm32uv_codeplug.cc:2846
virtual Frequency tbstFrequency() const
Returns the TBST frequency.
Definition dm32uv_codeplug.cc:3209
BacklightDuration
Possible settings for the backlight duration.
Definition dm32uv_codeplug.hh:1400
virtual bool eotToneEnabled() const
Returns true if EOT tone is enabled.
Definition dm32uv_codeplug.cc:2374
virtual void setTalkerAliasEncoding(DMRSettings::TalkerAliasEncoding format)
Sets the talker alias format.
Definition dm32uv_codeplug.cc:2870
virtual BootDisplay bootDisplay() const
Returns the boot display setting.
Definition dm32uv_codeplug.cc:2245
PositionFormat
Possible position formats.
Definition dm32uv_codeplug.hh:1423
@ DD
Decimal degree.
Definition dm32uv_codeplug.hh:1424
@ DMS
Degree, minute, second.
Definition dm32uv_codeplug.hh:1425
virtual KeyFunction::Function sk1Long() const
Returns the side-key 1 long-press function.
Definition dm32uv_codeplug.cc:3035
virtual bool dmrRemoteRadioCheckEnabled() const
Returns true if the remote radio check is enabled.
Definition dm32uv_codeplug.cc:2788
virtual unsigned int activeRetries() const
Returns the number of active retries.
Definition dm32uv_codeplug.cc:2744
virtual void setVFOModeA(VFOMode mode)
Sets the VFO A mode.
Definition dm32uv_codeplug.cc:2947
virtual STEMode steMode() const
Returns the squelch tail elimination mode.
Definition dm32uv_codeplug.cc:3233
virtual void setDMRMicLevel(Level level)
Sets the DMR mic level.
Definition dm32uv_codeplug.cc:3259
virtual void setPosUpdatePeriod(const Interval &period)
Sets the position update period.
Definition dm32uv_codeplug.cc:2672
virtual void setBootDisplay(BootDisplay dis)
Sets the boot display.
Definition dm32uv_codeplug.cc:2250
RecordMode
Possible recording modes.
Definition dm32uv_codeplug.hh:1434
virtual void setP1Short(KeyFunction::Function function)
Sets the programmable key 1 short-press function.
Definition dm32uv_codeplug.cc:3071
virtual Interval posUpdatePeriod() const
Returns the position update period.
Definition dm32uv_codeplug.cc:2667
virtual void setVFOModeB(VFOMode mode)
Sets the VFO B mode.
Definition dm32uv_codeplug.cc:2957
virtual void setCallColor(Color::Code c)
Sets the call color.
Definition dm32uv_codeplug.cc:2557
virtual VFOMode vfoModeB() const
Returns the VFO B mode.
Definition dm32uv_codeplug.cc:2952
virtual void setVFODisplayModeA(VFODisplayMode mode)
Sets the VFO A display mode.
Definition dm32uv_codeplug.cc:2925
virtual Interval longPressDuration() const
Returns the long-press duration.
Definition dm32uv_codeplug.cc:3107
virtual void setActiveWaitTime(Interval waitTime)
Sets the active wait time.
Definition dm32uv_codeplug.cc:2738
virtual void enableKeyTone(bool enable)
Enables key tones.
Definition dm32uv_codeplug.cc:2336
virtual DMRSettings::TalkerAliasEncoding talkerAliasEncoding() const
Returns the talker alias format.
Definition dm32uv_codeplug.cc:2863
virtual Interval dualStandbyHangTime() const
Returns the dual-standby hang-time.
Definition dm32uv_codeplug.cc:2974
static constexpr unsigned int size()
Returns the size og the element.
Definition dm32uv_codeplug.hh:1511
virtual void enableSideKeyLock(bool enable)
Enable side key lock.
Definition dm32uv_codeplug.cc:2990
virtual Interval autoPowerOffDelay() const
Returns the auto-power-off delay.
Definition dm32uv_codeplug.cc:2288
TalkerAliasSource
Talker alias sources.
Definition dm32uv_codeplug.hh:1449
virtual bool bootToneEnabled() const
Returns true if boot tone is enabled.
Definition dm32uv_codeplug.cc:2396
virtual Interval autoKeyLockDelay() const
Returns the auto key-lock delay.
Definition dm32uv_codeplug.cc:3007
virtual Level fmMicLevel() const
Returns the FM mic level.
Definition dm32uv_codeplug.cc:3244
virtual bool keyToneEnabled() const
Returns true if key tones are enabled.
Definition dm32uv_codeplug.cc:2331
virtual void enableDMRRemoteRadioCheck(bool enable)
Enables remote radio check.
Definition dm32uv_codeplug.cc:2793
virtual bool dmrRXAlertEnabled() const
Returns true reception of DMR alerts is enabled.
Definition dm32uv_codeplug.cc:2810
TalkerAliasFormat
Talker alias formats.
Definition dm32uv_codeplug.hh:1444
virtual void setPositionFormat(PositionFormat format)
Sets the position display format.
Definition dm32uv_codeplug.cc:2618
virtual void enableRecording(bool enable)
Enables/disables recording.
Definition dm32uv_codeplug.cc:2694
virtual void setTransmitTimeoutReminder(Interval timeout)
Sets transmit timeout reminder.
Definition dm32uv_codeplug.cc:3142
virtual void enableGroupCallTone(bool enable)
Enables group call tones.
Definition dm32uv_codeplug.cc:2358
virtual KeyFunction::Function p2Short() const
Returns the programmable key 2 short-press function.
Definition dm32uv_codeplug.cc:3086
virtual bool voicePromptEnabled() const
Returns true if voice prompt is enabled.
Definition dm32uv_codeplug.cc:2407
virtual Interval menuDuration() const
Returns the menu hold time.
Definition dm32uv_codeplug.cc:2501
virtual void setSMSFormat(SMSExtension::Format format)
Sets the DMR SMS format.
Definition dm32uv_codeplug.cc:2831
virtual void setFMRogerTone(FMRogerTone tone)
Sets the FM roger tone.
Definition dm32uv_codeplug.cc:2434
virtual bool dmrRemoteReenableEnabled() const
Returns true if the remote reenable is enabled.
Definition dm32uv_codeplug.cc:2799
virtual VFODisplayMode vfoDisplayModeA() const
Returns the VFO A display mode.
Definition dm32uv_codeplug.cc:2920
virtual void setLongPressDuration(Interval duration)
Sets the long-press duration.
Definition dm32uv_codeplug.cc:3112
virtual void setSK1Short(KeyFunction::Function function)
Sets the side-key 1 short-press function.
Definition dm32uv_codeplug.cc:3030
virtual KeyFunction::Function sk2Long() const
Returns the side-key 2 long-press function.
Definition dm32uv_codeplug.cc:3055
virtual Interval dmrRemoteMonitorDuration() const
Returns the remote monitor duration.
Definition dm32uv_codeplug.cc:2852
virtual PositionFormat positionFormat() const
Returns the position display format.
Definition dm32uv_codeplug.cc:2613
virtual void enableDMRRemoteMonitor(bool enable)
Enables the remote monitor.
Definition dm32uv_codeplug.cc:2771
virtual QString bootMessage1() const
Returns the first boot message line.
Definition dm32uv_codeplug.cc:2256
virtual bool mcuResetEnabled() const
Returns true if MCU reset is enabled.
Definition dm32uv_codeplug.cc:2277
virtual Color::Code zoneNameBColor() const
Returns the zone name B color.
Definition dm32uv_codeplug.cc:2602
virtual KeyFunction::Function p2Long() const
Returns the programmable key 2 long-press function.
Definition dm32uv_codeplug.cc:3096
virtual void setBootMessage1(const QString &msg)
Sets the first boot message line.
Definition dm32uv_codeplug.cc:2261
virtual unsigned int displayBrightness() const
Returns the display brightness setting [0-10].
Definition dm32uv_codeplug.cc:2440
virtual bool txTalkerAliasEnabled() const
Returns true, if transmission of talker alias is enabled.
Definition dm32uv_codeplug.cc:2876
virtual void setStandbyColor(Color::Code c)
Sets the standby text color.
Definition dm32uv_codeplug.cc:2567
virtual void enableLowBatteryTone(bool enable)
Enables low-battery tones.
Definition dm32uv_codeplug.cc:2423
virtual bool dmrRemoteMonitorEnabled() const
Returns true if the DMR remote monitor is enabled.
Definition dm32uv_codeplug.cc:2766
virtual void enablePrivateCallTone(bool enable)
Enables group call tones.
Definition dm32uv_codeplug.cc:2368
virtual void setDualStandbyHangTime(Interval hangTime)
Sets the dual-standby hang-time.
Definition dm32uv_codeplug.cc:2979
virtual DateFormat dateFormat() const
Returns the date format.
Definition dm32uv_codeplug.cc:2530
virtual void enableEOTTone(bool enable)
Enables EOT tones.
Definition dm32uv_codeplug.cc:2379
virtual void setTBSTFrequency(const Frequency &frequency)
Sets the TBST frequency.
Definition dm32uv_codeplug.cc:3220
virtual bool knobLockEnabled() const
Returns true, if the knowb is locked.
Definition dm32uv_codeplug.cc:2996
virtual FMRogerTone fmRogerTone() const
Returns the FM roger tone setting.
Definition dm32uv_codeplug.cc:2429
virtual Interval transmitTimeoutReminder() const
Returns the transmit timeout reminder.
Definition dm32uv_codeplug.cc:3137
virtual void setVOXLevel(Level voxLevel)
Sets the VOX level.
Definition dm32uv_codeplug.cc:3155
virtual QTimeZone timeZone() const
Returns the time zone.
Definition dm32uv_codeplug.cc:2656
virtual void setSTEMode(STEMode mode)
Sets the STE mode.
Definition dm32uv_codeplug.cc:3238
virtual Interval activeWaitTime() const
Returns the active wait time.
Definition dm32uv_codeplug.cc:2733
virtual void setSK2Short(KeyFunction::Function function)
Sets the side-key 2 short-press function.
Definition dm32uv_codeplug.cc:3050
DateFormat
Possible date formats.
Definition dm32uv_codeplug.hh:1406
virtual Color::Code channelNameBColor() const
Returns the channel name B color.
Definition dm32uv_codeplug.cc:2582
virtual bool recordingEnabled() const
Returns true if recording is enabled.
Definition dm32uv_codeplug.cc:2689
virtual PowerSaveMode powerSaveMode() const
Returns the power-save mode.
Definition dm32uv_codeplug.cc:3176
virtual QString bootMessage2() const
Returns the second boot message line.
Definition dm32uv_codeplug.cc:2266
virtual void enableTalkPermitTone(bool enable)
Enables talk permit tones.
Definition dm32uv_codeplug.cc:2390
AutoPowerOffDelay
Possible auto-power-off delays.
Definition dm32uv_codeplug.hh:1390
virtual void setChannelNameBColor(Color::Code c)
Sets the channel name B color.
Definition dm32uv_codeplug.cc:2587
virtual bool privateCallMatchEnabled() const
Returns true if private call must match.
Definition dm32uv_codeplug.cc:2711
virtual RecordMode recordMode() const
Returns possible recording modes.
Definition dm32uv_codeplug.cc:2678
virtual Interval backlightDuration() const
Returns the backlight duration.
Definition dm32uv_codeplug.cc:2451
virtual void setAutoKeyLockDelay(Interval delay)
Sets the auto key-lock delay.
Definition dm32uv_codeplug.cc:3014
DualStandbyMode
Possible dual-standby modes.
Definition dm32uv_codeplug.hh:1454
virtual void enablePrivateCallMatch(bool enable)
Enables private call match.
Definition dm32uv_codeplug.cc:2716
GroupListBitmapElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1065
virtual GroupListBitmapElement bitmap() const
Retunrs the bitmap.
Definition dm32uv_codeplug.cc:1090
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all group lists.
Definition dm32uv_codeplug.cc:1134
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:630
virtual GroupListElement groupList(unsigned int n) const
Returns the n-th group list element.
Definition dm32uv_codeplug.cc:1095
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all group lists.
Definition dm32uv_codeplug.cc:1118
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all group lists.
Definition dm32uv_codeplug.cc:1101
GroupListBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:1076
Implements the group list bank element.
Definition dm32uv_codeplug.hh:555
virtual bool link(RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack())
Links this group list.
Definition dm32uv_codeplug.cc:1029
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:565
virtual bool encode(const RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes this group list.
Definition dm32uv_codeplug.cc:1052
virtual QString name() const
Returns the name of the list.
Definition dm32uv_codeplug.cc:991
virtual void clearId(unsigned int n)
Clears the n-th ID.
Definition dm32uv_codeplug.cc:1017
virtual RXGroupList * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes this group list.
Definition dm32uv_codeplug.cc:1023
virtual unsigned int id(unsigned int n)
Returns the n-th ID.
Definition dm32uv_codeplug.cc:1007
virtual bool validId(unsigned int n)
Retruns true if the n-th ID is set.
Definition dm32uv_codeplug.cc:1002
GroupListElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:977
virtual void setId(unsigned int n, unsigned int id)
Sets the n-th ID.
Definition dm32uv_codeplug.cc:1012
virtual void setName(const QString &name)
Sets the name of the list.
Definition dm32uv_codeplug.cc:996
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2192
MenuSettingElement(uint8_t *ptr)
Constructor.
virtual void clearReadPassword()
Clears the read password.
Definition dm32uv_codeplug.cc:3630
virtual void setReadPassword(const QString &value)
Sets the read password.
Definition dm32uv_codeplug.cc:3624
virtual QString readPassword() const
Returns the read password.
Definition dm32uv_codeplug.cc:3619
PasswordSettingsElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:3563
virtual bool writePasswordEnabled() const
Returns true if the write password is set.
Definition dm32uv_codeplug.cc:3592
virtual QString bootPassword() const
Returns the boot password.
Definition dm32uv_codeplug.cc:3575
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2131
virtual void clearWritePassword()
Clears the write password.
Definition dm32uv_codeplug.cc:3608
virtual void setWritePassword(const QString &value)
Sets the write password.
Definition dm32uv_codeplug.cc:3602
virtual QString writePassword() const
Returns the write password.
Definition dm32uv_codeplug.cc:3597
virtual void clearBootPassword()
Clears the boot password.
Definition dm32uv_codeplug.cc:3586
virtual bool bootPasswordEnabled() const
Returns true if the boot password is set.
Definition dm32uv_codeplug.cc:3570
virtual bool readPasswordEnabled() const
Returns true if the read password is set.
Definition dm32uv_codeplug.cc:3614
virtual void setBootPassword(const QString &value)
Sets the boot password.
Definition dm32uv_codeplug.cc:3580
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:714
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes add radio IDs.
Definition dm32uv_codeplug.cc:1241
virtual RadioIdElement id(unsigned int n) const
Returns the n-th DMR Id.
Definition dm32uv_codeplug.cc:1219
virtual unsigned int idCount() const
Returns the number of IDs.
Definition dm32uv_codeplug.cc:1208
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all radio IDs.
Definition dm32uv_codeplug.cc:1225
RadioIdBankElement(uint8_t *ptr)
Contsturctor.
Definition dm32uv_codeplug.cc:1200
virtual void setIdCount(unsigned int n)
Sets the number of encoded IDs.
Definition dm32uv_codeplug.cc:1213
Implements a DMR radio ID.
Definition dm32uv_codeplug.hh:665
virtual void setId(unsigned int id)
Sets the DMR id.
Definition dm32uv_codeplug.cc:1164
virtual bool encode(const DMRRadioID *id, const ErrorStack &err=ErrorStack())
Encodes the given ID.
Definition dm32uv_codeplug.cc:1188
RadioIdElement(uint8_t *ptr)
Contsturctor.
Definition dm32uv_codeplug.cc:1151
virtual DMRRadioID * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the radio ID.
Definition dm32uv_codeplug.cc:1181
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:671
virtual QString name() const
Returns the name of the id.
Definition dm32uv_codeplug.cc:1170
virtual unsigned int id() const
Returns the DMR Id.
Definition dm32uv_codeplug.cc:1159
virtual void setName(const QString &name)
Sets the name of the id.
Definition dm32uv_codeplug.cc:1175
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all roaming channels.
Definition dm32uv_codeplug.cc:1924
virtual RoamingChannelElement channel(unsigned int n)
Returns the n-th channel.
Definition dm32uv_codeplug.cc:1904
RoamingChannelBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1887
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1146
virtual void setCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:1899
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decides all romaming channels.
Definition dm32uv_codeplug.cc:1909
virtual unsigned int count() const
Returns the number of channels.
Definition dm32uv_codeplug.cc:1894
Implements a roaming channel.
Definition dm32uv_codeplug.hh:1072
virtual Frequency rxFrequency() const
Returns the RX frequency.
Definition dm32uv_codeplug.cc:1809
virtual void setRXFrequency(const Frequency &f)
Sets the RX frequency.
Definition dm32uv_codeplug.cc:1814
TimeSlot
Possible time-slot settings.
Definition dm32uv_codeplug.hh:1075
virtual void setTimeSlot(DMRChannel::TimeSlot ts)
Sets the time slots.
Definition dm32uv_codeplug.cc:1848
virtual void setTXFrequency(const Frequency &f)
Sets the TX frequency.
Definition dm32uv_codeplug.cc:1824
virtual void setColorCode(unsigned int cc)
Sets the color code.
Definition dm32uv_codeplug.cc:1834
virtual RoamingChannel * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes the roaming channel.
Definition dm32uv_codeplug.cc:1857
virtual void setName(const QString &name)
Sets the name of the channel.
Definition dm32uv_codeplug.cc:1804
virtual unsigned int colorCode() const
Return the color code.
Definition dm32uv_codeplug.cc:1829
RoamingChannelElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1792
virtual Frequency txFrequency() const
Returns the TX frequency.
Definition dm32uv_codeplug.cc:1819
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1084
virtual DMRChannel::TimeSlot timeSlot() const
Returns the time slot.
Definition dm32uv_codeplug.cc:1839
virtual bool encode(const RoamingChannel *ch, const ErrorStack &err=ErrorStack())
Encodes the roaming channel.
Definition dm32uv_codeplug.cc:1872
virtual QString name() const
Returns the name of the channel.
Definition dm32uv_codeplug.cc:1799
virtual void enableAutoRoam(bool enable)
Enables auto roaming.
Definition dm32uv_codeplug.cc:2047
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encode all roaming zones.
Definition dm32uv_codeplug.cc:2122
virtual unsigned int count() const
Returns the zone count.
Definition dm32uv_codeplug.cc:2031
RoamingZoneBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2024
virtual void setRoamingDelay(const Interval &delay)
Sets the roaming delay.
Definition dm32uv_codeplug.cc:2058
virtual void setCount(unsigned int n)
Sets the number of zones.
Definition dm32uv_codeplug.cc:2036
virtual Interval roamingDelay() const
Returns the roaming delay.
Definition dm32uv_codeplug.cc:2053
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all roaming zones.
Definition dm32uv_codeplug.cc:2105
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1246
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all roaming zones.
Definition dm32uv_codeplug.cc:2091
virtual RoamingZoneElement zone(unsigned int n)
Returns the n-th roaming zone.
Definition dm32uv_codeplug.cc:2085
virtual bool autoRoamEnabled() const
Returns true if auto roaming is enabled.
Definition dm32uv_codeplug.cc:2042
virtual void clearDefaultRoamingZoneIndex()
Clears the default roaming zone index.
Definition dm32uv_codeplug.cc:2079
virtual void setDefaultRoamingZoneIndex(unsigned int idx)
Sets the default roaming zone index.
Definition dm32uv_codeplug.cc:2074
virtual unsigned int defaultRoamingZoneIndex() const
Returns the default roaming zone index.
Definition dm32uv_codeplug.cc:2069
virtual bool defaultRoamingZoneIndexValid() const
Returns true, if a default roaming zone is set.
Definition dm32uv_codeplug.cc:2064
En/Decodes a roaming zone.
Definition dm32uv_codeplug.hh:1182
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:1979
virtual void clearChannelIndex(unsigned int n)
Clears the n-th channel index.
Definition dm32uv_codeplug.cc:1984
RoamingZoneElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1940
virtual QString name() const
Returns the name of the zone.
Definition dm32uv_codeplug.cc:1948
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1188
virtual unsigned int channelIndex(unsigned int n)
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:1974
virtual void setName(const QString &name)
Sets the name.
Definition dm32uv_codeplug.cc:1953
virtual void setCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:1963
virtual bool link(RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given roaming zone.
Definition dm32uv_codeplug.cc:1995
virtual bool encode(const RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given roaming zone.
Definition dm32uv_codeplug.cc:2009
virtual RoamingZone * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the roaming zone.
Definition dm32uv_codeplug.cc:1989
virtual unsigned int count() const
Returns the channel count.
Definition dm32uv_codeplug.cc:1958
virtual bool channelIndexValid(unsigned int n)
Returns true if the n-th channel index is set.
Definition dm32uv_codeplug.cc:1969
virtual SMSTemplateElement message(unsigned int n) const
Returns the n-th message.
Definition dm32uv_codeplug.cc:2186
virtual void setCount(unsigned int n)
Sets the number of messages.
Definition dm32uv_codeplug.cc:2180
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1348
virtual unsigned int count() const
Returns the number of messages.
Definition dm32uv_codeplug.cc:2175
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all preset SMS messages.
Definition dm32uv_codeplug.cc:2191
SMSTemplateBankElement(uint8_t *ptr)
Constructor from pointer.
Definition dm32uv_codeplug.cc:2168
A sinlge preset message.
Definition dm32uv_codeplug.hh:1306
SMSTemplate * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes a single message.
Definition dm32uv_codeplug.cc:2158
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1312
virtual QString message() const
Returns the message text.
Definition dm32uv_codeplug.cc:2145
SMSTemplateElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2138
virtual void setMessage(const QString &msg)
Sets the message text.
Definition dm32uv_codeplug.cc:2151
Implements the scan list bank.
Definition dm32uv_codeplug.hh:1004
virtual void setUHFRange(const FrequencyRange &range)
Sets the UHF scan range.
Definition dm32uv_codeplug.cc:1742
virtual FrequencyRange uhfRange() const
Returns the UHF scan range.
Definition dm32uv_codeplug.cc:1736
virtual void setVHFRange(const FrequencyRange &range)
Sets the VHF scan range.
Definition dm32uv_codeplug.cc:1730
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decode all scan lists.
Definition dm32uv_codeplug.cc:1749
virtual FrequencyRange vhfRange() const
Returns the VHF scan range.
Definition dm32uv_codeplug.cc:1724
virtual ScanMode scanMode() const
Returns the scan mode.
Definition dm32uv_codeplug.cc:1713
virtual void setCount(unsigned int n)
Sets the number of scan lists.
Definition dm32uv_codeplug.cc:1701
virtual ScanListElement scanList(unsigned int n) const
Returns the n-th scan list.
Definition dm32uv_codeplug.cc:1707
virtual unsigned int count() const
Returns the number of scan lists.
Definition dm32uv_codeplug.cc:1696
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all scan lists.
Definition dm32uv_codeplug.cc:1776
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:1016
virtual void setScanMode(ScanMode mode)
Sets the scan mode.
Definition dm32uv_codeplug.cc:1718
ScanMode
Possible scan modes.
Definition dm32uv_codeplug.hh:1007
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Link all scan lists.
Definition dm32uv_codeplug.cc:1763
Implements a scan list.
Definition dm32uv_codeplug.hh:882
virtual bool encode(const ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Encode the scan list.
Definition dm32uv_codeplug.cc:1662
virtual void setChannelCount(unsigned int count)
Sets the channel count.
Definition dm32uv_codeplug.cc:1475
virtual unsigned int revertChannelIndex() const
Returns the revert channel index.
Definition dm32uv_codeplug.cc:1561
virtual bool secondaryChannelIndexValid() const
Returns true if the secondary priority channel index is set.
Definition dm32uv_codeplug.cc:1514
virtual ScanList * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the scan list.
Definition dm32uv_codeplug.cc:1612
ToneDetectionMode
Possible CTCSS/DCS detection modes.
Definition dm32uv_codeplug.hh:890
virtual void setHangTime(const Interval &dur)
Sets the scan hang time.
Definition dm32uv_codeplug.cc:1508
virtual QString name() const
Returns the name of the scan list.
Definition dm32uv_codeplug.cc:1459
virtual void setName(const QString &name)
Sets the name of the scan list.
Definition dm32uv_codeplug.cc:1464
virtual void setToneDetectionMode(ToneDetectionMode mode)
Sets the tone-detection mode.
Definition dm32uv_codeplug.cc:1497
TransmitMode
Possible transmit modes.
Definition dm32uv_codeplug.hh:885
virtual void setRevertChannelIndex(unsigned int idx)
Sets the revert channel index.
Definition dm32uv_codeplug.cc:1566
virtual void setPrimaryChannelIndex(unsigned int idx)
Sets the primary priority channel index.
Definition dm32uv_codeplug.cc:1545
virtual bool revertChannelIndexValid() const
Returns true if the revert channel index is set.
Definition dm32uv_codeplug.cc:1556
virtual unsigned int channelCount() const
Returns the number of channels.
Definition dm32uv_codeplug.cc:1470
virtual bool isCurrentChannel(unsigned int n) const
Returns true, if the n-th channel index refers to the current channel.
Definition dm32uv_codeplug.cc:1592
virtual void clearPrimaryChannelIndex()
Clears the primary priority channel index.
Definition dm32uv_codeplug.cc:1550
virtual unsigned int primaryChannelIndex() const
Returns the primary priority channel index.
Definition dm32uv_codeplug.cc:1540
virtual void clearSecondaryChannelIndex()
Clears the secondary priority channel index.
Definition dm32uv_codeplug.cc:1529
virtual ToneDetectionMode toneDetectionMode() const
Returns the tone-detection mode.
Definition dm32uv_codeplug.cc:1492
virtual void setPrioritySweepTime(const Interval &dur)
Sets the priority sweep time.
Definition dm32uv_codeplug.cc:1582
virtual void setTransmitMode(TransmitMode mode)
Sets the transmit mode.
Definition dm32uv_codeplug.cc:1486
virtual bool link(ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given scan list.
Definition dm32uv_codeplug.cc:1618
virtual TransmitMode transmitMode() const
Returns the transmit mode.
Definition dm32uv_codeplug.cc:1481
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:1602
virtual Interval prioritySweepTime() const
Returns the priority sweep time.
Definition dm32uv_codeplug.cc:1577
virtual bool primaryChannelIndexValid() const
Returns true if the primary priority channel index is set.
Definition dm32uv_codeplug.cc:1535
virtual unsigned int secondaryChannelIndex() const
Returns the secondary priority channel index.
Definition dm32uv_codeplug.cc:1519
virtual unsigned int channelIndex(unsigned int n) const
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:1597
virtual Interval hangTime() const
Returns the scan hang time.
Definition dm32uv_codeplug.cc:1503
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:899
virtual void clearRevertChannelIndex()
Clears the revert channel index.
Definition dm32uv_codeplug.cc:1571
virtual void setCurrentChannel(unsigned int n)
Sets the n-th channel index to the current channel.
Definition dm32uv_codeplug.cc:1607
ScanListElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1452
virtual void setSecondaryChannelIndex(unsigned int idx)
Sets the secondary priority channel index.
Definition dm32uv_codeplug.cc:1524
virtual unsigned int zoneIndexA() const
Returns the zone index VFO A.
Definition dm32uv_codeplug.cc:1412
virtual void clearChannelIndexA()
Clears the channel index VFO A.
Definition dm32uv_codeplug.cc:1380
virtual void setZoneIndexA(unsigned int idx)
Sets the zone index VFO A.
Definition dm32uv_codeplug.cc:1417
virtual unsigned int channelIndexB() const
Returns the channel index VFO B.
Definition dm32uv_codeplug.cc:1391
virtual void setZoneIndexB(unsigned int idx)
Sets the zone index VFO B.
Definition dm32uv_codeplug.cc:1438
ZoneBankElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1347
virtual bool channelIndexAValid() const
Returns true if the channel index VFO A is set.
Definition dm32uv_codeplug.cc:1365
virtual void clearChannelIndexB()
Clears the channel index VFO B.
Definition dm32uv_codeplug.cc:1401
static constexpr unsigned int size()
Returns the size of a zone bank.
Definition dm32uv_codeplug.hh:812
virtual void setChannelIndexB(unsigned int idx)
Sets the channel index VFO B.
Definition dm32uv_codeplug.cc:1396
virtual bool zoneIndexAValid() const
Returns true if the zone index VFO A is set.
Definition dm32uv_codeplug.cc:1407
virtual void setChannelIndexA(unsigned int idx)
Sets the channel index VFO A.
Definition dm32uv_codeplug.cc:1375
virtual unsigned int count() const
Returns the total number of zones.
Definition dm32uv_codeplug.cc:1354
virtual void clearZoneIndexA()
Clears the zone index VFO A.
Definition dm32uv_codeplug.cc:1422
virtual void clearZoneIndexB()
Clears the zone index VFO B.
Definition dm32uv_codeplug.cc:1443
virtual void setCount(unsigned int n)
Sets the total number of zones.
Definition dm32uv_codeplug.cc:1359
virtual bool channelIndexBValid() const
Returns true if the channel index VFO B is set.
Definition dm32uv_codeplug.cc:1386
virtual bool zoneIndexBValid() const
Returns true if the zone index VFO B is set.
Definition dm32uv_codeplug.cc:1428
virtual unsigned int channelIndexA() const
Returns the channel index VFO A.
Definition dm32uv_codeplug.cc:1370
virtual unsigned int zoneIndexB() const
Returns the zone index VFO B.
Definition dm32uv_codeplug.cc:1433
virtual unsigned int channelCount() const
Retunrs the number of channels.
Definition dm32uv_codeplug.cc:1277
ZoneElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1259
virtual bool channelIndexValid(unsigned int n) const
Returns true, if the channel index is set.
Definition dm32uv_codeplug.cc:1288
virtual void clearChannelIndex(unsigned int n)
Clears the n-th channel index.
Definition dm32uv_codeplug.cc:1303
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:756
virtual QString name() const
Returns the name.
Definition dm32uv_codeplug.cc:1266
virtual Zone * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decode zone.
Definition dm32uv_codeplug.cc:1309
virtual void setName(const QString &name)
Sets the name of the zone.
Definition dm32uv_codeplug.cc:1271
virtual bool encode(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes a zone.
Definition dm32uv_codeplug.cc:1331
virtual unsigned int channelIndex(unsigned int n) const
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:1293
virtual void setChannelCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:1282
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:1298
virtual bool link(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Link zone.
Definition dm32uv_codeplug.cc:1315
virtual bool decodeChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all channels defined.
Definition dm32uv_codeplug.cc:4146
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Links all decoded channels.
Definition dm32uv_codeplug.cc:4184
virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decode codeplug elements.
Definition dm32uv_codeplug.cc:3975
virtual bool encodeContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Allocate and encode contacts.
Definition dm32uv_codeplug.cc:4297
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:3934
DM32UVCodeplug(QObject *parent=nullptr)
Default/empty constructor.
Definition dm32uv_codeplug.cc:3818
virtual bool decodeZones(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all zones defined.
Definition dm32uv_codeplug.cc:4335
virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack())
Link decoded elements.
Definition dm32uv_codeplug.cc:4036
Config * preprocess(Config *config, const ErrorStack &err) const override
Returns a prepared configuration for this particular radio.
Definition dm32uv_codeplug.cc:3826
bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const override
Indexes all elements of the codeplug.
Definition dm32uv_codeplug.cc:3877
bool postprocess(Config *config, const ErrorStack &err) const override
Returns a post-processed configuration of the decoded config.
Definition dm32uv_codeplug.cc:3859
virtual bool encodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Encode all elements.
Definition dm32uv_codeplug.cc:4072
virtual bool encodeChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all channels.
Definition dm32uv_codeplug.cc:4220
virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack())
Links all decoded zones.
Definition dm32uv_codeplug.cc:4360
virtual bool encodeZones(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all zones.
Definition dm32uv_codeplug.cc:4383
virtual bool decodeContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Decode contacts.
Definition dm32uv_codeplug.cc:4275
bool decode(Config *config, const ErrorStack &err=ErrorStack()) override
Decodes a binary codeplug to the given abstract configuration config.
Definition dm32uv_codeplug.cc:3957
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:439
Represents a digital contact, that is a DMR number.
Definition contact.hh:141
Type
Possible call types for a contact.
Definition contact.hh:155
Represents a DMR radio ID within the abstract config.
Definition radioid.hh:33
TalkerAliasEncoding
Possible talker alias encodings.
Definition dmrsettings.hh:35
Base class of all encryption keys.
Definition encryptionextension.hh:10
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
Bandwidth
Possible bandwidth of an analog channel.
Definition channel.hh:279
Represents a time interval.
Definition interval.hh:11
static constexpr Interval fromMinutes(unsigned long long min)
Definition interval.hh:79
static constexpr Interval fromSeconds(unsigned long long s)
Definition interval.hh:76
static constexpr Interval fromMilliseconds(unsigned long long ms)
Definition interval.hh:73
Some simple class implementing a [1-10] level setting.
Definition level.hh:15
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Simple range class representing some range in some data type.
Definition ranges.hh:14
Represents a roaming channel.
Definition roamingchannel.hh:16
Represents a RoamingZone within the abstract device configuration.
Definition roamingzone.hh:15
Format
Possible SMS formats, DMR is usually a good idea.
Definition smsextension.hh:65
Represents a SMS message template (pre defined message).
Definition smsextension.hh:11
Generic representation of a scan list.
Definition scanlist.hh:15
Represents a zone within the generic configuration.
Definition zone.hh:15
Some limits for the settings.
Definition dm32uv_codeplug.hh:2096
static constexpr Range< Interval > updatePeriod()
Valid range for update period.
Definition dm32uv_codeplug.hh:2098
static constexpr unsigned int revertChannels()
Number of revert channels.
Definition dm32uv_codeplug.hh:2102
Some offsets within the element.
Definition dm32uv_codeplug.hh:2107
Some limits.
Definition dm32uv_codeplug.hh:296
static constexpr unsigned int channelsPerBlock()
Maximum number of channels per block.
Definition dm32uv_codeplug.hh:300
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:298
Some internal offsets.
Definition dm32uv_codeplug.hh:304
Some limits.
Definition dm32uv_codeplug.hh:224
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:226
static constexpr Range< unsigned int > squelchLevel()
Maximum squelch level.
Definition dm32uv_codeplug.hh:228
Some internal offsets.
Definition dm32uv_codeplug.hh:239
Some limits.
Definition dm32uv_codeplug.hh:364
static constexpr unsigned int count()
The number of elements within each bank.
Definition dm32uv_codeplug.hh:366
Some offsets.
Definition dm32uv_codeplug.hh:370
static constexpr unsigned int betweenBanks()
Offset betwenn banks.
Definition dm32uv_codeplug.hh:372
Some internal offsets within the element.
Definition dm32uv_codeplug.hh:350
Some limts for the contact bank.
Definition dm32uv_codeplug.hh:441
static constexpr unsigned int contacts()
Maximum number of contacts.
Definition dm32uv_codeplug.hh:443
Some internal offsets.
Definition dm32uv_codeplug.hh:448
Some limits.
Definition dm32uv_codeplug.hh:419
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:421
Some internal offsets.
Definition dm32uv_codeplug.hh:426
Some internal offsets.
Definition dm32uv_codeplug.hh:540
Some limits for the element.
Definition dm32uv_codeplug.hh:2339
static constexpr unsigned int keys()
Maximum number of keys.
Definition dm32uv_codeplug.hh:2341
Some internal offsets.
Definition dm32uv_codeplug.hh:2346
Some limits of the element.
Definition dm32uv_codeplug.hh:2296
static constexpr unsigned int keyLength()
Maximum key length (bytes).
Definition dm32uv_codeplug.hh:2300
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:2298
Some internal offsets.
Definition dm32uv_codeplug.hh:2305
Implements the translation between color names and code.
Definition dm32uv_codeplug.hh:1413
Helper encoding/decoding key functions.
Definition dm32uv_codeplug.hh:1475
Some limits.
Definition dm32uv_codeplug.hh:1915
static constexpr Range< Interval > voxDelay()
Range of valid VOX delays.
Definition dm32uv_codeplug.hh:1931
static constexpr unsigned int bootMessageLength()
Maximum boot message length.
Definition dm32uv_codeplug.hh:1917
static constexpr Range< unsigned int > micGain()
Valid mic gain settings.
Definition dm32uv_codeplug.hh:1937
static constexpr Range< unsigned int > activeRetires()
Range of valid active retires.
Definition dm32uv_codeplug.hh:1921
static constexpr Range< unsigned int > vox()
Valid VOX sensitivity levels.
Definition dm32uv_codeplug.hh:1935
static constexpr unsigned int maxBrightness()
Maximum display brightness.
Definition dm32uv_codeplug.hh:1919
static constexpr Range< Interval > longPressDuration()
Range of valid long-press durations.
Definition dm32uv_codeplug.hh:1923
static constexpr Range< Interval > transmitTimeout()
Range of valid transmit timeouts.
Definition dm32uv_codeplug.hh:1927
Some internal offsets.
Definition dm32uv_codeplug.hh:1942
Some limits.
Definition dm32uv_codeplug.hh:647
static constexpr unsigned int groupLists()
Maximum number of group lists.
Definition dm32uv_codeplug.hh:649
Some internal offsets.
Definition dm32uv_codeplug.hh:654
Some limits.
Definition dm32uv_codeplug.hh:590
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:592
static constexpr unsigned int contacts()
Maximum number of indices.
Definition dm32uv_codeplug.hh:594
Some internal offsets.
Definition dm32uv_codeplug.hh:599
Some internal limits.
Definition dm32uv_codeplug.hh:2400
Some internal offsets.
Definition dm32uv_codeplug.hh:2196
Some internal offsets.
Definition dm32uv_codeplug.hh:2409
Some limits for the element.
Definition dm32uv_codeplug.hh:2163
static constexpr unsigned int passwordLength()
Maximum password length.
Definition dm32uv_codeplug.hh:2165
Some internal offsets.
Definition dm32uv_codeplug.hh:2171
Some limits.
Definition dm32uv_codeplug.hh:731
static constexpr unsigned int ids()
Maximum number of IDs.
Definition dm32uv_codeplug.hh:733
Some internal offsets.
Definition dm32uv_codeplug.hh:738
Some limits.
Definition dm32uv_codeplug.hh:690
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:692
Some internal offsets.
Definition dm32uv_codeplug.hh:697
Some limits.
Definition dm32uv_codeplug.hh:1163
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:1165
Some internal offsets.
Definition dm32uv_codeplug.hh:1170
Some limits.
Definition dm32uv_codeplug.hh:1119
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:1121
Some internal offsets.
Definition dm32uv_codeplug.hh:1126
Some limits.
Definition dm32uv_codeplug.hh:1284
static constexpr unsigned int zones()
Maximum number of zones.
Definition dm32uv_codeplug.hh:1286
Some internal offsets.
Definition dm32uv_codeplug.hh:1291
Some limits.
Definition dm32uv_codeplug.hh:1218
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:1220
static constexpr unsigned int channels()
Maximum number of channels per zone.
Definition dm32uv_codeplug.hh:1222
Some internal offsets.
Definition dm32uv_codeplug.hh:1227
Some limits.
Definition dm32uv_codeplug.hh:1363
static constexpr unsigned int messages()
Maximum number of messages.
Definition dm32uv_codeplug.hh:1365
Some internal offsets.
Definition dm32uv_codeplug.hh:1370
Some limits.
Definition dm32uv_codeplug.hh:1324
static constexpr unsigned int messageLength()
Maximum message length.
Definition dm32uv_codeplug.hh:1326
Some internal offsets.
Definition dm32uv_codeplug.hh:1331
Some limits.
Definition dm32uv_codeplug.hh:1050
static constexpr unsigned int scanLists()
Maximum number of scan lists.
Definition dm32uv_codeplug.hh:1052
Some internal offsets.
Definition dm32uv_codeplug.hh:1056
Some limits.
Definition dm32uv_codeplug.hh:976
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:978
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:980
Some internal offsets.
Definition dm32uv_codeplug.hh:985
Some limits.
Definition dm32uv_codeplug.hh:857
static constexpr unsigned int zonesPerBlock()
Maximum number of zones per block.
Definition dm32uv_codeplug.hh:861
static constexpr unsigned int zones()
Maximum number of zones.
Definition dm32uv_codeplug.hh:859
Some internal offsets.
Definition dm32uv_codeplug.hh:866
Some limits.
Definition dm32uv_codeplug.hh:786
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:788
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:790
Some internal offsets.
Definition dm32uv_codeplug.hh:795
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:107
Encodes a selective call.
Definition signaling.hh:13