libdrmconf 0.15.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 "bootsettings.hh"
14#include "smsextension.hh"
15#include "gnsssettings.hh"
16#include "dmrsettings.hh"
17
18// forward declaration
19class Zone;
20class SMSTemplate;
21
22
23
27{
28 Q_OBJECT
29
30public:
32 class ChannelElement: public Element
33 {
34 public:
36 enum class ChannelType {
37 FM = 0, DMR = 1, FMFixed = 2, DMRFixed = 3
38 };
39
41 enum class Power {
42 Low = 0, Medium = 1, High = 2
43 };
44
46 enum class Admit {
47 Always = 0, ChannelFree = 1, ToneOrCCMatch = 2, ToneMismatch = 3
48 };
49
50 protected:
52 ChannelElement(uint8_t *ptr, size_t size);
53
54 public:
56 ChannelElement(uint8_t *ptr);
57
59 static constexpr unsigned int size() { return 0x0030; }
60
61 void clear() override;
62
64 virtual QString name() const;
66 virtual void setName(const QString &name);
67
69 virtual Frequency rxFrequency() const;
71 virtual void setRXFrequency(const Frequency &freq);
72
74 virtual bool validTXFrequency() const;
76 virtual Frequency txFrequency() const;
78 virtual void setTXFrequency(const Frequency &freq);
80 virtual void clearTXFrequency();
81
83 virtual ChannelType channelType() const;
85 virtual void setChannelType(ChannelType type);
86
88 virtual Channel::Power power() const;
90 virtual void setPower(Channel::Power power);
91
93 virtual bool loneWorkerEnabled() const;
95 virtual void enableLoneWorker(bool enable);
96
98 virtual FMChannel::Bandwidth bandwidth() const;
100 virtual void setBandwidth(FMChannel::Bandwidth bw);
101
103 virtual bool validScanListIndex() const;
105 virtual unsigned int scanListIndex() const;
107 virtual void setScanListIndex(unsigned int idx);
109 virtual void clearScanListIndex();
110
112 virtual bool talkaroundEnabled() const;
114 virtual void enableTalkaround(bool enable);
115
117 virtual Admit admitCriterion() const;
119 virtual void setAdmitCriterion(Admit admit);
120
122 virtual bool rxDMRAPRSEnabled() const;
124 virtual void enableRXDMRAPRS(bool enable);
125
127 virtual bool emergencyNotificationEnabled() const;
129 virtual void enableEmergencyNotification(bool enable);
131 virtual bool emergencyACKEnabled() const;
133 virtual void enableEmergencyACK(bool enable);
135 virtual bool validEmergencySystemIndex() const;
137 virtual unsigned int emergencySystemIndex() const;
139 virtual void setEmergencySystemIndex(unsigned int idx);
141 virtual void clearEmergencySystemIndex();
142
144 virtual Level squelchLevel() const;
146 virtual void setSquelchLevel(Level level);
147
149 virtual bool rxOnlyEnabled() const;
151 virtual void enableRXOnly(bool enable);
152
154 virtual bool dmrAPRSEnabled() const;
156 virtual void enableDMRAPRS(bool enable);
157
159 virtual bool privateCallACKEnabled() const;
161 virtual void enablePrivateCallACK(bool enable);
163 virtual bool dataACKEnabled() const;
165 virtual void enableDataACK(bool enable);
167 virtual bool dcdmEnabled() const;
169 virtual void enableDCDM(bool enable);
170
172 virtual DMRChannel::TimeSlot timeslot() const;
174 virtual void setTimeslot(DMRChannel::TimeSlot ts);
176 virtual unsigned int colorCode() const;
178 virtual void setColorCode(unsigned int cc);
179
181 virtual bool encryptionEnabled() const;
182 /* Enables encryption. */
183 virtual void enableEncryption(bool enable);
184
186 virtual bool validGroupListIndex() const;
188 virtual unsigned int groupListIndex() const;
190 virtual void setGroupListIndex(unsigned int idx);
192 virtual void clearGroupListIndex();
193
195 virtual unsigned int dmrAPRSChannelIndex() const;
197 virtual void setDMRAPRSChannelIndex(unsigned int idx);
198
200 virtual SelectiveCall rxTone() const;
202 virtual void setRXTone(const SelectiveCall &tone);
204 virtual SelectiveCall txTone() const;
206 virtual void setTXTone(const SelectiveCall &tone);
207
209 virtual bool voxEnabled() const;
211 virtual void enableVOX(bool enable);
212
214 virtual unsigned int dmrIdIndex() const;
216 virtual void setDMRIdIndex(unsigned int id);
217
219 virtual Channel *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
221 virtual bool link(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack()) const;
223 virtual bool encode(const Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack());
224
225 public:
227 struct Limit: Element::Limit {
229 static constexpr unsigned int nameLength() { return 16; }
231 static constexpr Range<unsigned int> squelchLevel() { return {0, 15}; }
232 };
233
234 protected:
236 static SelectiveCall decodeSelectiveCall(uint16_t code);
238 static uint16_t encodeSelectiveCall(const SelectiveCall &tone);
239
240 protected:
242 struct Offset: Element::Offset {
244 static constexpr unsigned int name() { return 0x0000; }
245 static constexpr unsigned int rxFrequency() { return 0x0010; }
246 static constexpr unsigned int txFrequency() { return 0x0014; }
247 static constexpr Bit channelType() { return {0x0018, 4}; }
248 static constexpr Bit rxOnly() { return {0x0018, 3}; }
249 static constexpr Bit power() { return {0x0018, 1}; }
250 static constexpr Bit loneWorker() { return {0x0018, 0}; }
251 static constexpr Bit bandwidth() { return {0x0019, 7}; }
252 static constexpr Bit scanListIndex() { return {0x0019, 2}; }
253 static constexpr Bit preventTalkaround() { return {0x001a, 7}; }
254 static constexpr Bit admitCriterion() { return {0x001a, 4}; }
255 static constexpr Bit rxDMRAPRS() { return {0x001a, 2}; }
256 static constexpr Bit emergencyNotification() { return {0x001b, 7}; }
257 static constexpr Bit emergencyACK() { return {0x001b, 6}; }
258 static constexpr Bit emergencySystemIndex() { return {0x001b, 0}; }
259 static constexpr Bit squelchLevel() { return {0x001c, 4}; }
260 static constexpr Bit dmrAPRS() { return {0x001c, 2}; }
261 static constexpr Bit privateCallACK() { return {0x001d, 7}; }
262 static constexpr Bit dataACK() { return {0x001d, 6}; }
263 static constexpr Bit dcdm() { return {0x001d, 5}; }
264 static constexpr Bit timeslot() { return {0x001d, 4}; }
265 static constexpr Bit colorcode() { return {0x001d, 0}; }
266 static constexpr Bit encryptionEnable() { return {0x001f, 6}; }
267 static constexpr Bit groupListIndex() { return {0x001f, 0}; }
268 static constexpr Bit dmrAPRSChannelIndex() { return {0x0020, 0}; }
269 static constexpr unsigned int rxTone() { return 0x0021; }
270 static constexpr unsigned int txTone() { return 0x0023; }
271 static constexpr Bit vox() { return {0x0025, 4}; }
272 static constexpr Bit showPTTId() { return {0x0026, 7}; }
273 static constexpr Bit optSigEnable() { return {0x0026, 4}; }
274 static constexpr Bit optSigType() { return {0x0026, 0}; }
275 static constexpr Bit pttIdEnable() { return {0x0029, 2}; }
276 static constexpr unsigned int dmrIdIndex() { return 0x002b; }
278 };
279 };
280
281
284 {
285 public:
287 explicit ChannelBankElement(uint8_t *ptr);
288
290 static constexpr unsigned int size() { return 0x0010; }
291
293 virtual unsigned int channelCount() const;
295 virtual void setChannelCount(unsigned int n);
296
297 public:
299 static unsigned int channelBank(unsigned int index);
301 static unsigned int indexInBank(unsigned int index);
303 static unsigned int bankCount(unsigned int channelCount);
304
305 public:
307 struct Limit: Element::Limit {
309 static constexpr unsigned int channels() { return 4000; }
311 static constexpr unsigned int channelsInBlock0() { return 84; }
313 static constexpr unsigned int channelsPerBlock() { return 85; }
314 };
315
317 struct Offset: Element::Offset {
319 static constexpr unsigned int channelCount() { return 0x0000; }
320 static constexpr unsigned int channelBlock0() { return 0x0010; }
321 static constexpr unsigned int betweenChannelBlocks() {
322 return DM32UVCodeplug::Limit::blockSize();
323 }
325 };
326 };
327
328
334 {
335 public:
337 explicit ChannelExtensionElement(uint8_t *ptr);
338
340 static constexpr unsigned int size() { return 0x0002; }
341
343 void clear() override;
344
346 virtual bool hasContactIndex() const;
348 virtual unsigned int contactIndex() const;
350 virtual void setContactIndex(unsigned int index);
352 virtual void clearContactIndex();
353
355 virtual bool encode(const Channel *ch, Context &ctx, const ErrorStack &err);
357 virtual bool decode(Channel *ch, Context &ctx, const ErrorStack &err) const;
359 virtual bool link(Channel *ch, Context &ctx, const ErrorStack &err) const;
360
361 protected:
363 struct Offset: Element::Offset {
365 static constexpr Bit indexMSN() { return { 0x0000, 4}; }
366 static constexpr unsigned int indexLSB() { return 0x0001; }
368 };
369 };
370
371
374 {
375 public:
377 struct Limit : Element::Limit {
379 static constexpr unsigned int count() { return 2047; }
380 };
381
383 struct Offset: Element::Offset {
385 static constexpr unsigned int betweenBanks(){ return DM32UVCodeplug::Limit::blockSize(); }
386 };
387 };
388
389
392 {
393 public:
395 enum class Type {
396 Private = 3, Group = 4, All = 5
397 };
398
399 protected:
401 ContactElement(uint8_t *ptr, size_t size);
402
403 public:
405 ContactElement(uint8_t *ptr);
406
408 static constexpr unsigned int size() { return 0x0018; }
409
411 virtual QString name() const;
413 virtual void setName(const QString &name);
414
416 virtual DMRContact::Type callType() const;
418 virtual void setCallType(DMRContact::Type type);
419
421 virtual unsigned int dmrId() const;
423 virtual void setDMRId(unsigned int id);
424
426 virtual DMRContact *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
428 virtual bool encode(const DMRContact *contact, const ErrorStack &err=ErrorStack());
429
430 public:
432 struct Limit: Element::Limit {
434 static constexpr unsigned int nameLength() { return 16; }
435 };
436
437 protected:
439 struct Offset: Element::Offset {
441 static constexpr unsigned int name() { return 0x0002; }
442 static constexpr unsigned int dmrId() { return 0x0013; }
443 static constexpr unsigned int callType() { return 0x0016; }
444 // @endcond
445 };
446 };
447
448
451 {
452 public:
454 struct Limit: Element::Limit {
456 static constexpr unsigned int contacts() { return 800; }
457 static constexpr unsigned int contactsPerBlock() { return 170; }
458 };
459
461 struct Offset: Element::Offset {
463 static constexpr unsigned int betweenBlocks() { return 0x1000; };
465 };
466 };
467
468
471 {
472 protected:
474 ContactIndexElement(uint8_t *ptr, size_t size);
475
476 public:
479 {
480 public:
482 ContactBitmapElement(uint8_t *ptr);
484 static constexpr unsigned int size() { return 0x0064; }
485 };
486
488 class EntryElement: public Element
489 {
490 public:
491 typedef ContactElement::Type Type;
492
493 protected:
495 EntryElement(uint8_t *ptr, size_t size);
496
497 public:
499 EntryElement(uint8_t *ptr);
500
501 void clear() override;
502
504 static constexpr unsigned int size() { return 0x0002; }
505
507 bool isValid() const override;
508
510 virtual DMRContact::Type callType() const;
512 virtual void setCallType(DMRContact::Type type);
513
515 virtual unsigned int index() const;
517 virtual void setIndex(unsigned int idx);
518 };
519
520 public:
522 ContactIndexElement(uint8_t *ptr);
523
525 static constexpr unsigned int size() { return 0x1000; }
526
528 virtual unsigned int contactCount() const;
530 virtual void setContactCount(unsigned int n);
532 virtual unsigned int groupCallCount() const;
534 virtual void setGroupCallCount(unsigned int n);
536 virtual unsigned int privateCallCount() const;
538 virtual void setPrivateCallCount(unsigned int n);
539
541 virtual ContactBitmapElement bitmap() const;
542
544 virtual EntryElement indexEntry(unsigned n);
546 virtual EntryElement sortedIndexEntry(unsigned n);
547
549 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
550
551 protected:
553 struct Offset: Element::Offset {
555 static unsigned int contactCount() { return 0x0000; }
556 static unsigned int groupCount() { return 0x0002; }
557 static unsigned int privateCount() { return 0x0004; }
558 static unsigned int bitmap() { return 0x0010; }
559 static unsigned int index() { return 0x0100; }
560 static unsigned int sorted() { return 0x0740; }
562 };
563 };
564
565
568 {
569 protected:
571 GroupListElement(uint8_t *ptr, size_t size);
572
573 public:
575 GroupListElement(uint8_t *ptr);
576
578 static constexpr unsigned int size() { return 0x006d; }
579
581 virtual QString name() const;
583 virtual void setName(const QString &name);
584
586 virtual bool validId(unsigned int n);
588 virtual unsigned int id(unsigned int n);
590 virtual void setId(unsigned int n, unsigned int id);
592 virtual void clearId(unsigned int n);
593
595 virtual RXGroupList *decode(Context &ctx, const ErrorStack &err=ErrorStack());
597 virtual bool link(RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack());
599 virtual bool encode(const RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack());
600
601 public:
603 struct Limit: Element::Limit {
605 static constexpr unsigned int nameLength() { return 11; }
607 static constexpr unsigned int contacts() { return 32; }
608 };
609
610 protected:
612 struct Offset: Element::Offset {
614 static constexpr unsigned int name() { return 0x0000; }
615 static constexpr unsigned int ids() { return 0x000b; }
616 static constexpr unsigned int betweenIds() { return 0x0003; }
618 };
619 };
620
621
624 {
625 public:
628 {
629 public:
631 GroupListBitmapElement(uint8_t *ptr);
632 };
633
634 protected:
636 GroupListBankElement(uint8_t *ptr, size_t size);
637
638 public:
640 GroupListBankElement(uint8_t *ptr);
641
643 static constexpr unsigned int size() { return 0x1000; }
644
646 virtual GroupListBitmapElement bitmap() const;
647
649 virtual GroupListElement groupList(unsigned int n) const;
650
652 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
654 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
656 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
657
658 public:
660 struct Limit: Element::Limit {
662 static constexpr unsigned int groupLists() { return 32; }
663 };
664
665 protected:
667 struct Offset: Element::Offset {
669 static constexpr unsigned int bitmap() { return 0x0000; }
670 static constexpr unsigned int groupLists() { return 0x0011; }
672 };
673 };
674
675
678 {
679 public:
681 RadioIdElement(uint8_t *ptr);
682
684 static constexpr unsigned int size() { return 0x0010; }
685
687 virtual unsigned int id() const;
689 virtual void setId(unsigned int id);
690
692 virtual QString name() const;
694 virtual void setName(const QString &name);
695
697 virtual DMRRadioID *decode(Context &ctx, const ErrorStack &err=ErrorStack());
699 virtual bool encode(const DMRRadioID *id, const ErrorStack &err=ErrorStack());
700
701 public:
703 struct Limit: Element::Limit {
705 static constexpr unsigned int nameLength() { return 12; }
706 };
707
708 protected:
710 struct Offset: Element::Offset {
712 static constexpr unsigned int id() { return 0x0000; }
713 static constexpr unsigned int name() { return 0x0003; }
715 };
716 };
717
718
721 {
722 public:
724 RadioIdBankElement(uint8_t *ptr);
725
727 static constexpr unsigned int size() { return 0x1000; }
728
730 virtual unsigned int idCount() const;
732 virtual void setIdCount(unsigned int n);
733
735 virtual RadioIdElement id(unsigned int n) const;
736
738 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
740 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
741
742 public:
744 struct Limit: Element::Limit {
746 static constexpr unsigned int ids() { return 250; }
747 };
748
749 protected:
751 struct Offset: Element::Offset {
753 static constexpr unsigned int count() { return 0x0000; }
754 static constexpr unsigned int ids() { return 0x0010; }
755 static constexpr unsigned int betweenIds() { return RadioIdElement::size(); }
757 };
758 };
759
760
762 class ZoneElement: public Element
763 {
764 public:
766 ZoneElement(uint8_t *ptr);
767
769 static constexpr unsigned int size() { return 0x0091; }
770
772 virtual QString name() const;
774 virtual void setName(const QString &name);
775
777 virtual unsigned int channelCount() const;
779 virtual void setChannelCount(unsigned int n);
780
782 virtual bool channelIndexValid(unsigned int n) const;
784 virtual unsigned int channelIndex(unsigned int n) const;
786 virtual void setChannelIndex(unsigned int n, unsigned int idx);
788 virtual void clearChannelIndex(unsigned int n);
789
791 virtual Zone *decode(Context &ctx, const ErrorStack &err=ErrorStack());
793 virtual bool link(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
795 virtual bool encode(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
796
797 public:
799 struct Limit: Element::Limit {
801 static constexpr unsigned int nameLength() { return 16; }
803 static constexpr unsigned int channels() { return 64; }
804 };
805
806 protected:
808 struct Offset: Element::Offset {
810 static constexpr unsigned int name() { return 0x0000; }
811 static constexpr unsigned int channelCount() { return 0x0010; }
812 static constexpr unsigned int channels() { return 0x0011; }
814 };
815 };
816
817
819 {
820 public:
822 ZoneBankElement(uint8_t *ptr);
823
825 static constexpr unsigned int size() { return 0x1000; }
826
828 virtual unsigned int count() const;
830 virtual void setCount(unsigned int n);
831
833 virtual bool channelIndexAValid() const;
835 virtual unsigned int channelIndexA() const;
837 virtual void setChannelIndexA(unsigned int idx);
839 virtual void clearChannelIndexA();
840
842 virtual bool channelIndexBValid() const;
844 virtual unsigned int channelIndexB() const;
846 virtual void setChannelIndexB(unsigned int idx);
848 virtual void clearChannelIndexB();
849
851 virtual bool zoneIndexAValid() const;
853 virtual unsigned int zoneIndexA() const;
855 virtual void setZoneIndexA(unsigned int idx);
857 virtual void clearZoneIndexA();
858
860 virtual bool zoneIndexBValid() const;
862 virtual unsigned int zoneIndexB() const;
864 virtual void setZoneIndexB(unsigned int idx);
866 virtual void clearZoneIndexB();
867
868 public:
870 struct Limit: Element::Limit {
872 static constexpr unsigned int zones() { return 250; }
874 static constexpr unsigned int zonesPerBlock() { return 28; }
875
876 };
877
879 struct Offset: Element::Offset {
881 static constexpr unsigned int count() { return 0x0000; }
882 static constexpr unsigned int channelIndexA() { return 0x0001; }
883 static constexpr unsigned int channelIndexB() { return 0x0003; }
884 static constexpr unsigned int zoneIndexA() { return 0x0005; }
885 static constexpr unsigned int zoneIndexB() { return 0x0007; }
886 static constexpr unsigned int zones0() { return 0x0010; }
887 static constexpr unsigned int betweenBlocks() { return 0x1000; }
889 };
890 };
891
892
895 {
896 public:
898 enum class TransmitMode {
899 CurrentChannel=0, ActiveChannel=1, RevertChannel=2
900 };
901
903 enum class ToneDetectionMode {
904 None = 0, NonPriority = 1, Priority = 2, All = 3
905 };
906
907 public:
909 ScanListElement(uint8_t *ptr);
910
912 static constexpr unsigned int size() { return 0x0039; }
913
915 virtual QString name() const;
917 virtual void setName(const QString &name);
918
920 virtual unsigned int channelCount() const;
922 virtual void setChannelCount(unsigned int count);
923
925 virtual TransmitMode transmitMode() const;
927 virtual void setTransmitMode(TransmitMode mode);
928
930 virtual ToneDetectionMode toneDetectionMode() const;
932 virtual void setToneDetectionMode(ToneDetectionMode mode);
933
935 virtual Interval hangTime() const;
937 virtual void setHangTime(const Interval &dur);
938
940 virtual bool secondaryChannelIndexValid() const;
942 virtual unsigned int secondaryChannelIndex() const;
944 virtual void setSecondaryChannelIndex(unsigned int idx);
946 virtual void clearSecondaryChannelIndex();
947
949 virtual bool primaryChannelIndexValid() const;
951 virtual unsigned int primaryChannelIndex() const;
953 virtual void setPrimaryChannelIndex(unsigned int idx);
955 virtual void clearPrimaryChannelIndex();
956
958 virtual bool revertChannelIndexValid() const;
960 virtual unsigned int revertChannelIndex() const;
962 virtual void setRevertChannelIndex(unsigned int idx);
964 virtual void clearRevertChannelIndex();
965
967 virtual Interval prioritySweepTime() const;
969 virtual void setPrioritySweepTime(const Interval &dur);
970
972 virtual bool isCurrentChannel(unsigned int n) const;
974 virtual unsigned int channelIndex(unsigned int n) const;
976 virtual void setChannelIndex(unsigned int n, unsigned int idx);
978 virtual void setCurrentChannel(unsigned int n);
979
981 virtual ScanList *decode(Context &ctx, const ErrorStack &err=ErrorStack());
983 virtual bool link(ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
985 virtual bool encode(const ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack());
986
987 public:
989 struct Limit: Element::Limit {
991 static constexpr unsigned int nameLength() { return 11; }
993 static constexpr unsigned int channels() { return 15; }
994 };
995
996 protected:
998 struct Offset: Element::Offset {
1000 static constexpr unsigned int name() { return 0x0000; }
1001 static constexpr unsigned int channelCount() { return 0x000b; }
1002 static constexpr Bit transmitMode() { return {0x000c, 4}; }
1003 static constexpr Bit toneDetection() { return {0x000c, 0}; }
1004 static constexpr Bit hangTime() { return {0x000d, 0}; }
1005 static constexpr Bit secondaryChannel() { return {0x000e, 4}; }
1006 static constexpr Bit primaryChannel() { return {0x000e, 0}; }
1007 static constexpr unsigned int revertChannel() { return 0x000f; }
1008 static constexpr Bit prioritySweepTime() { return {0x0015, 2}; }
1009 static constexpr unsigned int channels() { return 0x0018; }
1011 };
1012 };
1013
1014
1016 class ScanListBankElement: public Element
1017 {
1018 public:
1020 enum class ScanMode {
1021 Time = 0 , Carrier = 1, Search = 2
1022 };
1023
1024 public:
1025 /* Constructor from pointer to the element. */
1026 ScanListBankElement(uint8_t *ptr);
1027
1029 static constexpr unsigned int size() { return 0x1000; }
1030
1032 virtual unsigned int count() const;
1034 virtual void setCount(unsigned int n);
1035
1037 virtual ScanListElement scanList(unsigned int n) const;
1038
1040 virtual ScanMode scanMode() const;
1042 virtual void setScanMode(ScanMode mode);
1043
1045 virtual FrequencyRange vhfRange() const;
1047 virtual void setVHFRange(const FrequencyRange &range);
1048
1050 virtual FrequencyRange uhfRange() const;
1052 virtual void setUHFRange(const FrequencyRange &range);
1053
1055 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1057 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
1059 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1060
1061 public:
1063 struct Limit: Element::Limit {
1065 static constexpr unsigned int scanLists() { return 32; }
1066 };
1067
1069 struct Offset: Element::Offset {
1071 static constexpr unsigned int count() { return 0x0000; }
1072 static constexpr unsigned int scanLists() { return 0x0001; }
1073 static constexpr unsigned int scanMode() { return 0x0e00; }
1074 static constexpr unsigned int vhfLower() { return 0x0e01; }
1075 static constexpr unsigned int vhfUpper() { return 0x0e03; }
1076 static constexpr unsigned int uhfLower() { return 0x0e05; }
1077 static constexpr unsigned int uhfUpper() { return 0x0e07; }
1079 };
1080 };
1081
1082
1085 {
1086 public:
1088 enum class TimeSlot {
1089 TS1 = 0, TS2 = 1
1090 };
1091
1092 public:
1094 RoamingChannelElement(uint8_t *ptr);
1095
1097 static constexpr unsigned int size() { return 0x001a; }
1098
1100 virtual QString name() const;
1102 virtual void setName(const QString &name);
1103
1105 virtual Frequency rxFrequency() const;
1107 virtual void setRXFrequency(const Frequency &f);
1108
1110 virtual Frequency txFrequency() const;
1112 virtual void setTXFrequency(const Frequency &f);
1113
1115 virtual unsigned int colorCode() const;
1117 virtual void setColorCode(unsigned int cc);
1118
1120 virtual DMRChannel::TimeSlot timeSlot() const;
1122 virtual void setTimeSlot(DMRChannel::TimeSlot ts);
1123
1126 virtual RoamingChannel *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
1128 virtual bool encode(const RoamingChannel *ch, const ErrorStack &err=ErrorStack());
1129
1130 public:
1132 struct Limit: Element::Limit {
1134 static constexpr unsigned int nameLength() { return 16; }
1135 };
1136
1137 protected:
1139 struct Offset: Element::Offset {
1141 static constexpr unsigned int name() { return 0x0000; }
1142 static constexpr unsigned int rxFrequency() { return 0x0010; }
1143 static constexpr unsigned int txFrequency() { return 0x0014; }
1144 static constexpr unsigned int colorCode() { return 0x0018; }
1145 static constexpr unsigned int timeSlot() { return 0x0019; }
1147 };
1148 };
1149
1150
1153 {
1154 public:
1156 RoamingChannelBankElement(uint8_t *ptr);
1157
1159 static constexpr unsigned int size() { return 0x1000; }
1160
1162 virtual unsigned int count() const;
1164 virtual void setCount(unsigned int n);
1165
1167 virtual RoamingChannelElement channel(unsigned int n);
1168
1170 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1172 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1173
1174 public:
1176 struct Limit: Element::Limit {
1178 static constexpr unsigned int channels() { return 150; }
1179 };
1180
1181 protected:
1183 struct Offset: Element::Offset {
1185 static constexpr unsigned int channels() { return 0x0000; }
1186 static constexpr unsigned int count() { return 0x0ff0; }
1187 static constexpr unsigned int betweenChannels() { return RoamingChannelElement::size(); }
1189 };
1190 };
1191
1192
1195 {
1196 public:
1198 RoamingZoneElement(uint8_t *ptr);
1199
1201 static constexpr unsigned int size() { return 0x0021; }
1202
1204 virtual QString name() const;
1206 virtual void setName(const QString &name);
1207
1209 virtual unsigned int count() const;
1211 virtual void setCount(unsigned int n);
1212
1214 virtual bool channelIndexValid(unsigned int n);
1216 virtual unsigned int channelIndex(unsigned int n);
1218 virtual void setChannelIndex(unsigned int n, unsigned int idx);
1220 virtual void clearChannelIndex(unsigned int n);
1221
1223 virtual RoamingZone *decode(Context &ctx, const ErrorStack &err=ErrorStack());
1225 virtual bool link(RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
1227 virtual bool encode(const RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack());
1228
1229 public:
1231 struct Limit: Element::Limit {
1233 static constexpr unsigned int nameLength() { return 16; }
1235 static constexpr unsigned int channels() { return 16; }
1236 };
1237
1238 protected:
1240 struct Offset: Element::Offset {
1242 static constexpr unsigned int name() { return 0x0000; }
1243 static constexpr unsigned int channelCount() { return 0x0010; }
1244 static constexpr unsigned int channels() { return 0x0011; }
1245 static constexpr unsigned int betweenChannels() { return 0x0001; }
1247 };
1248 };
1249
1250
1253 {
1254 public:
1256 RoamingZoneBankElement(uint8_t *ptr);
1257
1259 static constexpr unsigned int size() { return 0x1000; }
1260
1262 virtual unsigned int count() const;
1264 virtual void setCount(unsigned int n);
1265
1267 virtual bool autoRoamEnabled() const;
1269 virtual void enableAutoRoam(bool enable);
1270
1272 virtual Interval roamingDelay() const;
1274 virtual void setRoamingDelay(const Interval &delay);
1275
1277 virtual bool defaultRoamingZoneIndexValid() const;
1279 virtual unsigned int defaultRoamingZoneIndex() const;
1281 virtual void setDefaultRoamingZoneIndex(unsigned int idx);
1283 virtual void clearDefaultRoamingZoneIndex();
1284
1286 virtual RoamingZoneElement zone(unsigned int n);
1287
1289 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1291 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack());
1293 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1294
1295 public:
1297 struct Limit: Element::Limit {
1299 static constexpr unsigned int zones() { return 64; }
1300 };
1301
1302 protected:
1304 struct Offset: Element::Offset {
1306 static constexpr unsigned int count() { return 0x0000; }
1307 static constexpr unsigned int autoRoam() { return 0x0001; }
1308 static constexpr unsigned int roamingDelay() { return 0x0002; }
1309 static constexpr unsigned int defaultRoamingZone() { return 0x0003; }
1310 static constexpr unsigned int zones() { return 0x0010; }
1311 static constexpr unsigned int betweenZones() { return RoamingZoneElement::size(); }
1313 };
1314 };
1315
1316
1319 {
1320 public:
1322 SMSTemplateElement(uint8_t *ptr);
1323
1325 static constexpr unsigned int size() { return 0x0081; }
1326
1328 virtual QString message() const;
1330 virtual void setMessage(const QString &msg);
1331
1333 SMSTemplate *decode(Context &ctx, const ErrorStack &err=ErrorStack());
1334
1335 public:
1337 struct Limit: Element::Limit {
1339 static constexpr unsigned int messageLength() { return 126; }
1340 };
1341
1342 protected:
1344 struct Offset: Element::Offset {
1346 static constexpr unsigned int length() { return 0x0000; }
1347 static constexpr unsigned int message() { return 0x0001; }
1349 };
1350 };
1351
1352
1355 {
1356 public:
1358 SMSTemplateBankElement(uint8_t *ptr);
1359
1361 static constexpr unsigned int size() { return 0x1000; }
1362
1364 virtual unsigned int count() const;
1366 virtual void setCount(unsigned int n);
1367
1369 virtual SMSTemplateElement message(unsigned int n) const;
1370
1372 virtual bool decode(Context &ctx, const ErrorStack &err = ErrorStack());
1373
1374 public:
1376 struct Limit: Element::Limit {
1378 static constexpr unsigned int messages() { return 20; }
1379 };
1380
1381 protected:
1383 struct Offset: Element::Offset {
1385 static constexpr unsigned int count() { return 0x0000; }
1386 static constexpr unsigned int messages() { return 0x0010; }
1387 static constexpr unsigned int betweenMessages() { return SMSTemplateElement::size(); }
1389 };
1390 };
1391
1392
1395 {
1396 public:
1398 enum class BootDisplay {
1399 Image=0, Message=1, Voltage=2
1400 };
1401
1404 Off = 0, T30Min=1, T60Min=2, T2h=3, T4h=4, T8h=5
1405 };
1406
1408 enum class FMRogerTone {
1409 Off=0, Beep=1, BDC=2
1410 };
1411
1414 Infinity = 0, T5s=1, T10s=2, T15s=3, T20s=4, T25s=5, T30s=6, T1min=7, T2min=8, T3min=9,
1415 T4min=10, T5min=11
1416 };
1417
1419 enum class DateFormat {
1420 YYYYMMDD = 0, DDMMYYYY = 1
1421 };
1422
1426 struct Color {
1427 enum class Code {
1428 White = 0, Black = 1, Orange = 2, Red = 3, Yellow = 4, Green = 5, Cyan = 6, Blue = 7
1429 };
1430
1431 static unsigned int encode(Code name);
1432 static Code decode(unsigned int code);
1433 };
1434
1436 enum class PositionFormat {
1437 DD = 0,
1438 DMS = 1
1439 };
1440
1442 enum class GNSSMode {
1443 GPS = 0, Beidou = 1, Both = 2
1444 };
1445
1447 enum class RecordMode {
1448 RX = 0, TX = 1, Both = 2
1449 };
1450
1452 enum class SMSFormat {
1453 Hytera = 0, Motorola = 1, DMR = 2
1454 };
1455
1458 ISO8 = 0, UnicodeU16 = 1
1459 };
1460
1463 CallsignDB = 0, OverTheAir = 1
1464 };
1465
1467 enum class DualStandbyMode {
1468 SingleVFO = 0, DoubleStandby = 1, SingleStandby = 2
1469 };
1470
1472 enum class VFO {
1473 A = 0, B = 1
1474 };
1475
1477 enum class VFODisplayMode {
1478 Frequency = 0, ChannelName = 1
1479 };
1480
1482 enum class VFOMode {
1483 Channel = 0, VFO = 1
1484 };
1485
1488 {
1489 enum class Function {
1490 None=0, PowerSelect=1, Volt=2, Talkaround=3, DMREncryption=4, VOX=6, ChannelMode=7, Alarm=8,
1491 OneTouch1=9, OneTouch2=10, OneTouch3=11,OneTouch4=12, OneTouch5=13, SMS=14, Contacts=15,
1492 ZoneUp=16, ZoneDown=17, Scan=18, ToggleRecord=19, PreviousRecord=20, NextRecord=21,
1493 FMBCRadio=22, FMBCScan=23, GPSInformation=24, Monitor=25, ToggleMainChannel=26, LoneWorker=27,
1494 KeypadLock=28, Mute=29, TBST=30, APRSTX=31, ChannelType=32, DisplayMode=33, CTCSSDSCScan=34,
1495 CTCSSDSCSettings=25, SilentTone=36, Roaming=37, SubPTT=38, OneKeyScanFrequency=40,
1496 Flashlight=41
1497 };
1498
1499 static unsigned int encode(Function func);
1500 static Function decode(unsigned int code);
1501 };
1502
1504 enum class PowerSaveMode {
1505 Off=0, Percent50 = 1, Percent66 = 2, Percent75=3
1506 };
1507
1509 enum class TBSTFrequency {
1510 Hz1000=0, Hz1450=1, Hz1750=2, Hz2100=3
1511 };
1512
1514 enum class STEMode {
1515 Off = 0, Deg120 = 1, Deg180 = 2, Hz55 = 3
1516 };
1517
1518
1519 public:
1521 GeneralSettingsElement(uint8_t *ptr);
1522
1524 static constexpr unsigned int size() { return 0x0100; }
1525
1527 virtual BootSettings::BootDisplay bootDisplay() const;
1529 virtual void setBootDisplay(BootSettings::BootDisplay dis);
1530
1532 virtual QString bootMessage1() const;
1534 virtual void setBootMessage1(const QString &msg);
1536 virtual QString bootMessage2() const;
1538 virtual void setBootMessage2(const QString &msg);
1539
1541 virtual bool mcuResetEnabled() const;
1543 virtual void enableMCUReset(bool enable);
1544
1546 virtual Interval autoPowerOffDelay() const;
1548 virtual void setAutoPowerOffDelay(const Interval &delay);
1549
1551 virtual bool radioSilentEnabled() const;
1553 virtual void enableRadioSilent(bool enable);
1554
1556 virtual bool keyToneEnabled() const;
1558 virtual void enableKeyTone(bool enable);
1559
1561 virtual bool smsToneEnabled() const;
1563 virtual void enableSMSTone(bool enable);
1564
1566 virtual bool groupCallToneEnabled() const;
1568 virtual void enableGroupCallTone(bool enable);
1570 virtual bool privateCallToneEnabled() const;
1572 virtual void enablePrivateCallTone(bool enable);
1573
1575 virtual bool eotToneEnabled() const;
1577 virtual void enableEOTTone(bool enable);
1578
1580 virtual bool talkPermitToneEnabled() const;
1582 virtual void enableTalkPermitTone(bool enable);
1583
1585 virtual bool bootToneEnabled() const;
1587 virtual void enableBootTone(bool enable);
1588
1590 virtual bool voicePromptEnabled() const;
1592 virtual void enableVoicePrompt(bool enable);
1593
1595 virtual bool lowBatteryToneEnabled() const;
1597 virtual void enableLowBatteryTone(bool enable);
1598
1600 virtual FMRogerTone fmRogerTone() const;
1602 virtual void setFMRogerTone(FMRogerTone tone);
1603
1605 virtual unsigned int displayBrightness() const;
1607 virtual void setDisplayBrightness(unsigned int n);
1608
1610 virtual Interval backlightDuration() const;
1612 virtual void setBacklightDuration(Interval duration);
1613
1615 virtual Interval menuDuration() const;
1617 virtual void setMenuDuration(Interval duration);
1618
1620 virtual bool showVolmueChange() const;
1622 virtual void enableShowVolumeChange(bool enable);
1623
1625 virtual DateFormat dateFormat() const;
1627 virtual void setDateFormat(DateFormat format);
1628
1630 virtual bool showClock() const;
1632 virtual void enableShowClock(bool enable);
1633
1635 virtual Color::Code callColor() const;
1637 virtual void setCallColor(Color::Code c);
1639 virtual Color::Code standbyColor() const;
1641 virtual void setStandbyColor(Color::Code c);
1643 virtual Color::Code channelNameAColor() const;
1645 virtual void setChannelNameAColor(Color::Code c);
1647 virtual Color::Code channelNameBColor() const;
1649 virtual void setChannelNameBColor(Color::Code c);
1651 virtual Color::Code zoneNameAColor() const;
1653 virtual void setZoneNameAColor(Color::Code c);
1655 virtual Color::Code zoneNameBColor() const;
1657 virtual void setZoneNameBColor(Color::Code c);
1658
1660 virtual PositionFormat positionFormat() const;
1662 virtual void setPositionFormat(PositionFormat format);
1663
1665 virtual GNSSSettings::Systems gnss() const;
1667 virtual void setGNSS(GNSSSettings::Systems mode);
1668
1670 virtual bool gnssEnabled() const;
1672 virtual void enableGNSS(bool enable);
1673
1675 virtual QTimeZone timeZone() const;
1677 virtual void setTimeZone(const QTimeZone &timeZone);
1678
1680 virtual Interval posUpdatePeriod() const;
1682 virtual void setPosUpdatePeriod(const Interval &period);
1683
1685 virtual RecordMode recordMode() const;
1687 virtual void setRecordMode(RecordMode mode);
1688
1690 virtual bool recordingEnabled() const;
1692 virtual void enableRecording(bool enable);
1693
1695 virtual bool groupCallMatchEnabled() const;
1697 virtual void enableGroupCallMatch(bool enable);
1698
1700 virtual bool privateCallMatchEnabled() const;
1702 virtual void enablePrivateCallMatch(bool enable);
1703
1705 virtual Interval dmrCallHangTime() const;
1707 virtual void setDMRCallHangTime(const Interval &hangTime);
1708
1710 virtual Interval activeWaitTime() const;
1712 virtual void setActiveWaitTime(Interval waitTime);
1713
1715 virtual unsigned int activeRetries() const;
1717 virtual void setActiveRetries(unsigned int retries);
1718
1720 virtual Interval dmrPreambleDuration() const;
1722 virtual void setDmrPreambleDuration(Interval duration);
1723
1725 virtual bool dmrRemoteMonitorEnabled() const;
1727 virtual void enableDMRRemoteMonitor(bool enable);
1728
1730 virtual bool dmrRemoteKillEnabled() const;
1732 virtual void enableDMRRemoteKill(bool enable);
1733
1735 virtual bool dmrRemoteRadioCheckEnabled() const;
1737 virtual void enableDMRRemoteRadioCheck(bool enable);
1738
1740 virtual bool dmrRemoteReenableEnabled() const;
1742 virtual void enableDMRRemoteReenable(bool enable);
1743
1745 virtual bool dmrRXAlertEnabled() const;
1747 virtual void enableDMRRXAlert(bool enable);
1748
1750 virtual SMSExtension::Format smsFormat() const;
1752 virtual void setSMSFormat(SMSExtension::Format format);
1753
1755 virtual bool missedCallNotificationEnabled() const;
1757 virtual void enableMissedCallNotification(bool enable);
1758
1760 virtual Interval dmrRemoteMonitorDuration() const;
1762 virtual void setDMRRemoteMonitorDuration(Interval duration);
1763
1768
1770 virtual bool txTalkerAliasEnabled() const;
1772 virtual void enableTXTalkerAlias(bool enable);
1773
1775 virtual TalkerAliasSource talkerAliasSource() const;
1777 virtual void setTalkerAliasSource(TalkerAliasSource source);
1778
1780 virtual DualStandbyMode dualStandbyMode() const;
1782 virtual void setDualStandbyMode(DualStandbyMode mode);
1783
1785 virtual VFO mainVFO() const;
1787 virtual void setMainVFO(VFO mainVFO);
1788
1790 virtual VFODisplayMode vfoDisplayModeA() const;
1792 virtual void setVFODisplayModeA(VFODisplayMode mode);
1794 virtual VFODisplayMode vfoDisplayModeB() const;
1796 virtual void setVFODisplayModeB(VFODisplayMode mode);
1798 virtual VFOMode vfoModeA() const;
1799
1801 virtual void setVFOModeA(VFOMode mode);
1803 virtual VFOMode vfoModeB() const;
1805 virtual void setVFOModeB(VFOMode mode);
1806
1808 virtual bool vfoModeDisabled() const;
1810 virtual void disableVFOMode(bool enable);
1811
1813 virtual Interval dualStandbyHangTime() const;
1815 virtual void setDualStandbyHangTime(Interval hangTime);
1816
1818 virtual bool sideKeyLockEnabled() const;
1820 virtual void enableSideKeyLock(bool enable);
1822 virtual bool knobLockEnabled() const;
1824 virtual void enableKnobLock(bool enable);
1826 virtual Interval autoKeyLockDelay() const;
1828 virtual void setAutoKeyLockDelay(Interval delay);
1829
1831 virtual KeyFunction::Function sk1Short() const;
1833 virtual void setSK1Short(KeyFunction::Function function);
1835 virtual KeyFunction::Function sk1Long() const;
1837 virtual void setSK1Long(KeyFunction::Function function);
1839 virtual KeyFunction::Function sk2Short() const;
1841 virtual void setSK2Short(KeyFunction::Function function);
1843 virtual KeyFunction::Function sk2Long() const;
1845 virtual void setSK2Long(KeyFunction::Function function);
1846
1848 virtual KeyFunction::Function p1Short() const;
1850 virtual void setP1Short(KeyFunction::Function function);
1852 virtual KeyFunction::Function p1Long() const;
1854 virtual void setP1Long(KeyFunction::Function function);
1856 virtual KeyFunction::Function p2Short() const;
1858 virtual void setP2Short(KeyFunction::Function function);
1860 virtual KeyFunction::Function p2Long() const;
1862 virtual void setP2Long(KeyFunction::Function function);
1863
1865 virtual Interval longPressDuration() const;
1867 virtual void setLongPressDuration(Interval duration);
1868
1870 virtual Interval transmitTimeout() const;
1872 virtual void setTransmitTimeout(Interval timeout);
1874 virtual Interval transmitTimeoutReminder() const;
1876 virtual void setTransmitTimeoutReminder(Interval timeout);
1877
1879 virtual Level voxLevel() const;
1881 virtual void setVOXLevel(Level voxLevel);
1883 virtual Interval voxDelay() const;
1885 virtual void setVoxDelay(Interval delay);
1886
1888 virtual PowerSaveMode powerSaveMode() const;
1890 virtual void setPowerSaveMode(PowerSaveMode mode);
1891
1893 virtual bool weatherAlarmEnabled() const;
1895 virtual void enableWeatherAlarm(bool enable);
1896
1898 virtual bool allLEDsDisabled() const;
1900 virtual void disableAllLEDs(bool disable);
1901
1903 virtual Frequency tbstFrequency() const;
1905 virtual void setTBSTFrequency(const Frequency &frequency);
1906
1908 virtual STEMode steMode() const;
1910 virtual void setSTEMode(STEMode mode);
1911
1913 virtual Level fmMicLevel() const;
1915 virtual void setFMMicLevel(Level level);
1916
1918 virtual Level dmrMicLevel() const;
1920 virtual void setDMRMicLevel(Level level);
1921
1923 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
1925 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1926
1927 public:
1929 struct Limit: Element::Limit {
1931 static constexpr unsigned int bootMessageLength() { return 14; }
1933 static constexpr unsigned int maxBrightness() { return 5; }
1935 static constexpr Range<unsigned int> activeRetires() { return {1, 8}; }
1939 }
1940
1943 }
1944
1945 static constexpr Range<Interval> voxDelay() {
1947 }
1948
1949 static constexpr Range<unsigned int> vox() { return {1,5}; }
1951 static constexpr Range<unsigned int> micGain() { return {0,4}; }
1952 };
1953
1954 protected:
1956 struct Offset: Element::Offset {
1958 static constexpr unsigned int bootDisplay() { return 0x0000; }
1959 static constexpr unsigned int bootMessage1() { return 0x0001; }
1960 static constexpr unsigned int bootMessage2() { return 0x000f; }
1961 static constexpr unsigned int mcuReset() { return 0x001d; }
1962 static constexpr unsigned int autoPowerOffDelay() { return 0x001e; }
1963 static constexpr Bit radioSilent() { return {0x0020, 7}; }
1964 static constexpr Bit keyTone() { return {0x0020, 6}; }
1965 static constexpr Bit smsTone() { return {0x0020, 5}; }
1966 static constexpr Bit groupCallTone() { return {0x0020, 4}; }
1967 static constexpr Bit privateCallTone() { return {0x0020, 3}; }
1968 static constexpr Bit eotTone() { return {0x0020, 2}; }
1969 static constexpr Bit talkPermitTone() { return {0x0020, 1}; }
1970 static constexpr Bit bootTone() { return {0x0020, 0}; }
1971 static constexpr Bit voicePrompt() { return {0x0021, 7}; }
1972 static constexpr Bit lowBatteryTone() { return {0x0021, 6}; }
1973 static constexpr Bit fmRogerTone() { return {0x0021, 1}; }
1974 static constexpr unsigned int displayBrightness() { return 0x0030; }
1975 static constexpr unsigned int backlightDuration() { return 0x0031; }
1976 static constexpr unsigned int menuDuration() { return 0x0032; }
1977 static constexpr Bit showVolumeChange() { return {0x0033, 4}; }
1978 static constexpr Bit dateFormat() { return {0x0033, 3}; }
1979 static constexpr Bit showClock() { return {0x0033, 0}; }
1980 static constexpr unsigned int callColor() { return 0x0034; }
1981 static constexpr unsigned int standbyColor() { return 0x0035; }
1982 static constexpr unsigned int channelNameAColor() { return 0x0038; }
1983 static constexpr unsigned int channelNameBColor() { return 0x0039; }
1984 static constexpr unsigned int zoneNameAColor() { return 0x003a; }
1985 static constexpr unsigned int zoneNameBColor() { return 0x003b; }
1986 static constexpr Bit positionFormat() { return {0x0040, 6}; }
1987 static constexpr Bit gnssMode() { return {0x0040, 3}; }
1988 static constexpr Bit enableGNSS() { return {0x0040, 0}; }
1989 static constexpr unsigned int timeZone() { return 0x0041; }
1990 static constexpr unsigned int posUpdatePeriod() { return 0x0042; }
1991 static constexpr Bit recordMode() { return {0x0043, 2}; }
1992 static constexpr Bit enableRecording() { return {0x0045, 0}; }
1993 static constexpr Bit groupCallMatch() { return {0x0060, 1}; }
1994 static constexpr Bit privateCallMatch() { return {0x0060, 0}; }
1995 static constexpr unsigned int dmrCallHangTime() { return 0x0061; }
1996 static constexpr unsigned int activeWaitTime() { return 0x0062; }
1997 static constexpr unsigned int activeReties() { return 0x0063; }
1998 static constexpr unsigned int dmrPreambleDur() { return 0x0064; }
1999 static constexpr Bit dmrMonitor() { return {0x0065, 7}; }
2000 static constexpr Bit dmrKill() { return {0x0065, 6}; }
2001 static constexpr Bit dmrRadioCheck() { return {0x0065, 5}; }
2002 static constexpr Bit dmrReenable() { return {0x0065, 4}; }
2003 static constexpr Bit dmrRXAlert() { return {0x0065, 3}; }
2004 static constexpr Bit smsFormat() { return {0x0065, 1}; }
2005 static constexpr Bit missedCallNotification() { return {0x0065, 0}; }
2006 static constexpr unsigned int dmrRemoteMonitorDuration() { return 0x0066; }
2007 static constexpr Bit dmrTalkerAliasFormat() { return {0x0067, 4}; }
2008 static constexpr Bit txTalkerAlias() { return {0x0067, 3}; }
2009 static constexpr Bit talkerSource() { return {0x0067, 2}; }
2010 static constexpr Bit dualStandbyMode() { return {0x0080, 6}; }
2011 static constexpr Bit mainVFO() { return {0x0080, 5}; }
2012 static constexpr Bit displayModeB() { return {0x0080, 4}; }
2013 static constexpr Bit displayModeA() { return {0x0080, 3}; }
2014 static constexpr Bit vfoModeB() { return {0x0080, 2}; }
2015 static constexpr Bit vfoModeA() { return {0x0080, 1}; }
2016 static constexpr Bit disableVFOMode() { return {0x0080, 0}; }
2017 static constexpr unsigned int dualStandbyHangTime() { return 0x0081;}
2018 static constexpr Bit sideKeyLock() { return {0x0085, 2}; }
2019 static constexpr Bit knobLock() { return {0x0085, 1}; }
2020 static constexpr Bit enableAutoKeyLock() { return {0x0085, 0}; }
2021 static constexpr unsigned int autoKeyLockDelay() { return 0x0086; }
2022 static constexpr unsigned int sk1Short() { return 0x0087; }
2023 static constexpr unsigned int sk1Long() { return 0x0088; }
2024 static constexpr unsigned int sk2Short() { return 0x0089; }
2025 static constexpr unsigned int sk2Long() { return 0x008a; }
2026 static constexpr unsigned int p1Short() { return 0x008d; }
2027 static constexpr unsigned int p1Long() { return 0x008e; }
2028 static constexpr unsigned int p2Short() { return 0x008f; }
2029 static constexpr unsigned int p2Long() { return 0x0090; }
2030 static constexpr unsigned int longPressDuration() { return 0x0094; }
2031 static constexpr unsigned int transmitTimeout() { return 0x00a0; }
2032 static constexpr unsigned int totReminder() { return 0x00a1; }
2033 static constexpr unsigned int voxLevel() { return 0x00a2; }
2034 static constexpr unsigned int voxDelay() { return 0x00a3; }
2035 static constexpr Bit powerSaveMode() { return {0x00a4, 4}; }
2036 static constexpr Bit weatherAlarm() { return {0x00a4, 2}; }
2037 static constexpr Bit disableLEDs() { return {0x00a4, 0}; }
2038 static constexpr Bit tbstFrequency() { return {0x00a5, 4}; }
2039 static constexpr Bit steMode() { return {0x00a5, 0}; }
2040 static constexpr unsigned int fmMicLevel() { return 0x00a6; }
2041 static constexpr unsigned int dmrMicLevel() { return 0x00a7; }
2043 };
2044 };
2045
2046
2049 {
2050 protected:
2052 enum class CallType {
2053 Private = 0, Group = 1
2054 };
2055
2056 public:
2058 APRSSettingsElement(uint8_t *ptr);
2059
2061 static constexpr unsigned int size() { return 0x0100; }
2062
2064 virtual Interval updatePeriod();
2066 virtual void setUpdatePeriod(Interval interval);
2067
2069 virtual bool fixedLocationEnabled() const;
2071 virtual QGeoCoordinate fixedLocation() const;
2073 virtual void setFixedLocation(const QGeoCoordinate &coordinate);
2075 virtual void enableFixedLocation(bool enable);
2076
2078 virtual bool revertChannelIsCurrent(unsigned int n);
2080 virtual unsigned int revertChannelIndex(unsigned int n) const;
2082 virtual void setRevertChannelIndex(unsigned int n, unsigned int idx);
2084 virtual void setRevertChannelToCurrent(unsigned int n);
2085
2087 virtual Interval preWaveDelay() const;
2089 virtual void setPreWaveDelay(const Interval &delay);
2090
2092 virtual DMRContact::Type callType() const;
2094 virtual void setCallType(DMRContact::Type type);
2095
2097 virtual unsigned int destinationId() const;
2099 virtual void setDestinationId(unsigned int id);
2100
2102 bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
2104 bool link(Context &ctx, const ErrorStack &err=ErrorStack());
2106 bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
2107
2108 public:
2110 struct Limit: Element::Limit {
2112 static constexpr Range<Interval> updatePeriod() {
2113 return {Interval::fromSeconds(30), Interval::fromMinutes(120) };
2114 }
2115
2116 static constexpr unsigned int revertChannels() { return 8; }
2117 };
2118
2119 protected:
2121 struct Offset: Element::Offset {
2123 static constexpr unsigned int updatePeriod() { return 0x0001; }
2124 static constexpr unsigned int enableFixedLocation() { return 0x0002; }
2125 static constexpr unsigned int fixedLocationLatitude() { return 0x0006; }
2126 static constexpr unsigned int fixedLocationLongitude() { return 0x0010; }
2127 static constexpr unsigned int revertChannelIndices() { return 0x0020; }
2128 static constexpr unsigned int betweenRevertChannelIndices() { return 0x0002; }
2129 static constexpr unsigned int prewaveDelay() { return 0x0030; }
2130 static constexpr unsigned int callType() { return 0x0031; }
2131 static constexpr unsigned int destinationId() { return 0x0032; }
2133 };
2134 };
2135
2136
2139 {
2140 public:
2142 PasswordSettingsElement(uint8_t *ptr);
2143
2145 static constexpr unsigned int size() { return 0x0100; }
2146
2148 virtual bool bootPasswordEnabled() const;
2150 virtual QString bootPassword() const;
2152 virtual void setBootPassword(const QString &value);
2154 virtual void clearBootPassword();
2155
2157 virtual bool writePasswordEnabled() const;
2159 virtual QString writePassword() const;
2161 virtual void setWritePassword(const QString &value);
2163 virtual void clearWritePassword();
2164
2166 virtual bool readPasswordEnabled() const;
2168 virtual QString readPassword() const;
2170 virtual void setReadPassword(const QString &value);
2172 virtual void clearReadPassword();
2173
2175 virtual bool encode(Context &ctx, ErrorStack err=ErrorStack());
2177 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
2178
2179 public:
2181 struct Limit: Element::Limit
2182 {
2184 static constexpr unsigned int passwordLength() { return 8;}
2185 };
2186
2187 protected:
2189 struct Offset: Element::Offset
2190 {
2192 static constexpr unsigned int enableBootPassword() { return 0x0030; }
2193 static constexpr unsigned int bootPassword() { return 0x0031; }
2194 static constexpr unsigned int enableWritePassword() { return 0x0039; }
2195 static constexpr unsigned int enableReadPassword() { return 0x003a; }
2196 static constexpr unsigned int writePassword() { return 0x003b; }
2197 static constexpr unsigned int readPassword() { return 0x0043; }
2199 };
2200 };
2201
2202
2205 {
2206 public:
2208 MenuSettingElement(uint8_t *ptr);
2209
2211 static constexpr unsigned int size() { return 0x0100; }
2212
2213 protected:
2215 struct Offset: Element::Offset {
2217 static constexpr Bit newZone() { return {0x0000,1}; }
2218 static constexpr Bit listZones() { return {0x0000,0}; }
2219 static constexpr Bit measurePeriod() { return {0x0001,5}; }
2220 static constexpr Bit remoteKill() { return {0x0001,4}; }
2221 static constexpr Bit reenableRadio() { return {0x0001,3}; }
2222 static constexpr Bit remoteMonitor() { return {0x0001,2}; }
2223 static constexpr Bit radioCheck() { return {0x0001,1}; }
2224 static constexpr Bit callAlert() { return {0x0001,0}; }
2225 static constexpr Bit matchGroupCall() { return {0x0002,7}; }
2226 static constexpr Bit displayMode() { return {0x0002,6}; }
2227 static constexpr Bit matchPrivateCall() { return {0x0002,5}; }
2228 static constexpr Bit languageSelect() { return {0x0002,4}; }
2229 static constexpr Bit bootDisplay() { return {0x0002,3}; }
2230 static constexpr Bit transmitPower() { return {0x0002,2}; }
2231 static constexpr Bit alertTone() { return {0x0002,1}; }
2232 static constexpr Bit talkaround() { return {0x0002,0}; }
2233 static constexpr Bit record() { return {0x0003,6}; }
2234 static constexpr Bit aprs() { return {0x0003,5}; }
2235 static constexpr Bit gnss() { return {0x0003,4}; }
2236 static constexpr Bit powerSave() { return {0x0003,3}; }
2237 static constexpr Bit subChannelMode() { return {0x0003,2}; }
2238 static constexpr Bit fmBCRadio() { return {0x0003,1}; }
2239 static constexpr Bit smsFormat() { return {0x0003,0}; }
2240 static constexpr Bit callsignDB() { return {0x0004,6}; }
2241 static constexpr Bit manualDial() { return {0x0004,5}; }
2242 static constexpr Bit sendMessage() { return {0x0004,4}; }
2243 static constexpr Bit contactFunc() { return {0x0004,3}; }
2244 static constexpr Bit editContact() { return {0x0004,2}; }
2245 static constexpr Bit deleteContact() { return {0x0004,1}; }
2246 static constexpr Bit addContact() { return {0x0004,0}; }
2247 static constexpr Bit clearCallLog() { return {0x0005,3}; }
2248 static constexpr Bit outgoingCalls() { return {0x0005,2}; }
2249 static constexpr Bit incomingCalls() { return {0x0005,1}; }
2250 static constexpr Bit missedCalls() { return {0x0005,0}; }
2251 static constexpr Bit radioName() { return {0x0006,7}; }
2252 static constexpr Bit radioId() { return {0x0006,6}; }
2253 static constexpr Bit timeslot() { return {0x0006,5}; }
2254 static constexpr Bit colorCode() { return {0x0006,4}; }
2255 static constexpr Bit txContact() { return {0x0006,3}; }
2256 static constexpr Bit ctcssDcs() { return {0x0006,2}; }
2257 static constexpr Bit txFrequency() { return {0x0006,1}; }
2258 static constexpr Bit rxFrequency() { return {0x0006,0}; }
2259 static constexpr Bit channelName() { return {0x0007,4}; }
2260 static constexpr Bit addChannel() { return {0x0007,3}; }
2261 static constexpr Bit groupList() { return {0x0007,2}; }
2262 static constexpr Bit dcdm() { return {0x0007,1}; }
2263 static constexpr Bit channelType() { return {0x0007,0}; }
2265 };
2266 };
2267
2268
2269
2272 {
2273 public:
2275 enum class Type {
2276 Off = 0, Custom = 1, ARC4 = 2, AES128 = 3, AES256 = 4
2277 };
2278
2279 public:
2281 EncryptionKeyElement(uint8_t *ptr);
2282
2284 static constexpr unsigned int size() { return 0x2c; }
2285
2286 virtual void clear() override;
2287
2289 virtual unsigned int keyId() const;
2291 virtual void setKeyId(unsigned int id);
2292
2294 virtual QString name() const;
2296 virtual void setName(const QString &name);
2297
2299 virtual Type type() const;
2301 virtual void setType(Type type);
2302
2304 virtual QByteArray key() const;
2306 virtual void setKey(const QByteArray &key);
2307
2309 EncryptionKey *decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
2311 bool encode(const EncryptionKey *key, Context &ctx, const ErrorStack &err=ErrorStack());
2312
2313 public:
2315 struct Limit: Element::Limit {
2317 static constexpr unsigned int nameLength() { return 10; }
2319 static constexpr unsigned int keyLength() { return 32; }
2320 };
2321
2322 protected:
2324 struct Offset: Element::Offset {
2326 static constexpr unsigned int keyId() { return 0x0000; }
2327 static constexpr unsigned int name() { return 0x0001; }
2328 static constexpr unsigned int type() { return 0x000b; }
2329 static constexpr unsigned int key() { return 0x000c; }
2331 };
2332 };
2333
2334
2335
2338 {
2339 public:
2341 EncryptionKeyBankElement(uint8_t *ptr);
2342
2344 static constexpr unsigned int size() { return 0x600; }
2345
2347 virtual bool keyValid(unsigned int idx) const;
2349 virtual EncryptionKeyElement key(unsigned int idx) const;
2350
2352 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack());
2354 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
2355
2356 public:
2358 struct Limit: Element::Limit {
2360 static constexpr unsigned int keys() { return 32; }
2361 };
2362
2363 protected:
2365 struct Offset: Element::Offset {
2367 static constexpr unsigned int keys() { return 0x0000; }
2368 static constexpr unsigned int betweenKeys() {
2370 }
2372 };
2373 };
2374
2375
2376public:
2381 explicit DM32UVCodeplug(QObject *parent = nullptr);
2382
2383 Config * preprocess(Config *config, const ErrorStack &err) const override;
2384 bool postprocess(Config *config, const ErrorStack &err) const override;
2385
2386 bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const override;
2387 bool encode(Config *config, const Flags &flags, const ErrorStack &err=ErrorStack()) override;
2388 bool decode(Config *config, const ErrorStack &err=ErrorStack()) override;
2389
2390protected:
2392 virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
2394 virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack());
2396 virtual bool encodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
2397
2399 virtual bool decodeChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2401 virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2403 virtual bool encodeChannels(Context &ctx, const ErrorStack &err=ErrorStack());
2404
2406 virtual bool decodeContacts(Context &ctx, const ErrorStack &err=ErrorStack());
2408 virtual bool encodeContacts(Context &ctx, const ErrorStack &err=ErrorStack());
2409
2411 virtual bool decodeZones(Context &ctx, const ErrorStack &err=ErrorStack());
2413 virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack());
2415 virtual bool encodeZones(Context &ctx, const ErrorStack &err=ErrorStack());
2416
2417public:
2419 struct Limit: Element::Limit {
2420 static constexpr unsigned int blockSize() { return 0x1000; }
2421 static constexpr Range<unsigned int> channelBanks() { return {1, 49}; }
2422 static constexpr Range<unsigned int> contactBanks() { return {1, 5}; }
2423 static constexpr Range<unsigned int> zoneBanks() { return {1, 8}; }
2424 };
2425
2426protected:
2428 struct Offset {
2430 static constexpr unsigned int generalSettings() { return 0x00004000; }
2431 static constexpr unsigned int aprsSettings() { return 0x00004300; }
2432 static constexpr unsigned int passwordSettings() { return 0x00004400; }
2433 static constexpr unsigned int contactIndex() { return 0x0000b000; }
2434 static constexpr unsigned int groupListBank() { return 0x0000f000; }
2435 static constexpr unsigned int extendedSettings() { return 0x00010000; }
2436 static constexpr unsigned int encryptionKeys() { return 0x00010300; }
2437 static constexpr unsigned int scanListBank() { return 0x00011000; }
2438 static constexpr unsigned int channelBanks() { return 0x00012000; }
2439 static constexpr unsigned int channelExtensionBanks() { return 0x00042000; }
2440 static constexpr unsigned int contactBanks() { return 0x00044000; }
2441 static constexpr unsigned int zoneBanks() { return 0x0005c000; }
2442 static constexpr unsigned int roamingZoneBank() { return 0x00065000; }
2443 static constexpr unsigned int roamingChannelBank() { return 0x00066000; }
2444 static constexpr unsigned int radioIdBank() { return 0x00067000; }
2446 };
2447};
2448
2449#endif // DM32UV_CODEPLUG_HH
BootDisplay
What to display during boot.
Definition bootsettings.hh:50
Abstract base class of all callsign database implementations.
Definition callsigndb.hh:16
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:38
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:65
BitmapElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:692
Base class for all codeplug contexts.
Definition codeplug.hh:331
Element(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:56
Certain flags passed to CodePlug::encode to control the transfer and encoding of the codeplug.
Definition codeplug.hh:24
InvertedBitmapElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition codeplug.cc:732
Codeplug(QObject *parent=nullptr)
Hidden default constructor.
Definition codeplug.cc:872
The config class, representing the codeplug configuration.
Definition config.hh:70
Represents a single image within a DFUFile.
Definition dfufile.hh:121
uint32_t size() const
Returns the total size of the DFU file.
Definition dfufile.cc:52
virtual DMRContact::Type callType() const
Returns the call type for all revert channels.
Definition dm32uv_codeplug.cc:3530
virtual bool fixedLocationEnabled() const
Returns true if the fixed location is used.
Definition dm32uv_codeplug.cc:3451
CallType
Encoding of call type.
Definition dm32uv_codeplug.hh:2052
bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links the APRS settings.
Definition dm32uv_codeplug.cc:3587
virtual void setFixedLocation(const QGeoCoordinate &coordinate)
Sets the fixed location.
Definition dm32uv_codeplug.cc:3473
APRSSettingsElement(uint8_t *ptr)
Constructor from pointer.
Definition dm32uv_codeplug.cc:3426
virtual void enableFixedLocation(bool enable)
Enabled fixed location.
Definition dm32uv_codeplug.cc:3488
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2061
virtual void setRevertChannelToCurrent(unsigned int n)
Sets the n-th revert channel to be the current channel.
Definition dm32uv_codeplug.cc:3512
virtual unsigned int revertChannelIndex(unsigned int n) const
Returns the n-th revert channel index.
Definition dm32uv_codeplug.cc:3500
virtual Interval preWaveDelay() const
Returns the pre-wave delay.
Definition dm32uv_codeplug.cc:3519
virtual unsigned int destinationId() const
Returns the destination ID.
Definition dm32uv_codeplug.cc:3553
virtual void setPreWaveDelay(const Interval &delay)
Sets the pre-wave delay.
Definition dm32uv_codeplug.cc:3524
bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the APRS settings.
Definition dm32uv_codeplug.cc:3629
virtual void setRevertChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th revert channel index.
Definition dm32uv_codeplug.cc:3506
virtual Interval updatePeriod()
Returns the update interval.
Definition dm32uv_codeplug.cc:3433
virtual void setCallType(DMRContact::Type type)
Sets the call type for all revert channels.
Definition dm32uv_codeplug.cc:3539
bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the APRS settings.
Definition dm32uv_codeplug.cc:3564
virtual QGeoCoordinate fixedLocation() const
Returns the fixed location.
Definition dm32uv_codeplug.cc:3456
virtual void setDestinationId(unsigned int id)
Sets the destination ID for all revert channels.
Definition dm32uv_codeplug.cc:3558
virtual void setUpdatePeriod(Interval interval)
Sets the update interval.
Definition dm32uv_codeplug.cc:3440
virtual bool revertChannelIsCurrent(unsigned int n)
Returns true if the n-th revert channel is set.
Definition dm32uv_codeplug.cc:3494
virtual unsigned int channelCount() const
Returns the channel count.
Definition dm32uv_codeplug.cc:632
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:290
virtual void setChannelCount(unsigned int n)
Sets the channel count.
Definition dm32uv_codeplug.cc:637
static unsigned int channelBank(unsigned int index)
Returns the block index for the given channel index.
Definition dm32uv_codeplug.cc:643
ChannelBankElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:624
static unsigned int indexInBank(unsigned int index)
Returns the channel index within the block for the given channel index.
Definition dm32uv_codeplug.cc:651
static unsigned int bankCount(unsigned int channelCount)
Computes the number of channel banks required to encode the given number of channels.
Definition dm32uv_codeplug.cc:659
static SelectiveCall decodeSelectiveCall(uint16_t code)
Helper function to decode selective call.
Definition dm32uv_codeplug.cc:592
Power
Possible power settings.
Definition dm32uv_codeplug.hh:41
virtual ChannelType channelType() const
Returns the channel type.
Definition dm32uv_codeplug.cc:75
virtual bool dcdmEnabled() const
Return true if DCDM (dual capacity direct mode) is enabled.
Definition dm32uv_codeplug.cc:290
virtual void clearGroupListIndex()
Invalidates group list index.
Definition dm32uv_codeplug.cc:348
virtual unsigned int dmrIdIndex() const
Returns the DMR radio id index.
Definition dm32uv_codeplug.cc:397
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:59
virtual void enableRXDMRAPRS(bool enable)
Enables/disables DMR APRS reception.
Definition dm32uv_codeplug.cc:190
virtual void enableVOX(bool enable)
Enables the VOX.
Definition dm32uv_codeplug.cc:391
virtual unsigned int dmrAPRSChannelIndex() const
Returns DMR APRS report channel index.
Definition dm32uv_codeplug.cc:354
virtual bool validScanListIndex() const
Returns true, if the scan list index is set.
Definition dm32uv_codeplug.cc:142
virtual DMRChannel::TimeSlot timeslot() const
Returns the timeslot of the channel.
Definition dm32uv_codeplug.cc:301
ChannelType
Possible channel types.
Definition dm32uv_codeplug.hh:36
virtual void enableEmergencyACK(bool enable)
Enables/disables emergency notification.
Definition dm32uv_codeplug.cc:211
virtual unsigned int groupListIndex() const
Get group list index.
Definition dm32uv_codeplug.cc:338
virtual bool rxDMRAPRSEnabled() const
Returns true if DMR APRS reception is enabled.
Definition dm32uv_codeplug.cc:185
virtual void setPower(Channel::Power power)
Sets the channel power.
Definition dm32uv_codeplug.cc:96
virtual void enableTalkaround(bool enable)
Enables/disables talkaround feature on this channel.
Definition dm32uv_codeplug.cc:168
virtual bool rxOnlyEnabled() const
Returns true if the channel is RX only.
Definition dm32uv_codeplug.cc:248
virtual bool encode(const Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes a channel.
Definition dm32uv_codeplug.cc:508
virtual bool link(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links the channel object.
Definition dm32uv_codeplug.cc:466
virtual FMChannel::Bandwidth bandwidth() const
Returns the bandwidth for FM channels.
Definition dm32uv_codeplug.cc:125
virtual Admit admitCriterion() const
Returns the admit criterion.
Definition dm32uv_codeplug.cc:174
virtual void setColorCode(unsigned int cc)
Sets the color code of the channel.
Definition dm32uv_codeplug.cc:316
virtual void setRXFrequency(const Frequency &freq)
Set RX frequency.
Definition dm32uv_codeplug.cc:46
virtual void setEmergencySystemIndex(unsigned int idx)
Sets the emergency system index.
Definition dm32uv_codeplug.cc:226
static uint16_t encodeSelectiveCall(const SelectiveCall &tone)
Helper function to encode selective call.
Definition dm32uv_codeplug.cc:609
virtual Channel * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a channel object.
Definition dm32uv_codeplug.cc:408
virtual Frequency rxFrequency() const
Returns the RX frequency.
Definition dm32uv_codeplug.cc:41
virtual void enableDCDM(bool enable)
Enables DCDM (dual capacity direct mode).
Definition dm32uv_codeplug.cc:295
virtual void clearScanListIndex()
Invalidates the scan list index.
Definition dm32uv_codeplug.cc:157
virtual void clearEmergencySystemIndex()
Invalidates the emergency system index.
Definition dm32uv_codeplug.cc:231
virtual bool validGroupListIndex() const
Returns true if group list index is valid.
Definition dm32uv_codeplug.cc:333
virtual void enableDMRAPRS(bool enable)
Enables DMR APRS for the channel.
Definition dm32uv_codeplug.cc:264
virtual unsigned int scanListIndex() const
Returns the 0-based scan list index.
Definition dm32uv_codeplug.cc:147
virtual bool dataACKEnabled() const
Return true if data is confirmed.
Definition dm32uv_codeplug.cc:280
virtual QString name() const
Returns the channel name.
Definition dm32uv_codeplug.cc:30
virtual bool talkaroundEnabled() const
Returns true if talkaround is enabled on this channel.
Definition dm32uv_codeplug.cc:163
virtual bool voxEnabled() const
Returns true, if the VOX is enabled.
Definition dm32uv_codeplug.cc:386
virtual void setScanListIndex(unsigned int idx)
Sets the scan list index.
Definition dm32uv_codeplug.cc:152
virtual unsigned int colorCode() const
Returns the color code of the channel.
Definition dm32uv_codeplug.cc:311
virtual void setName(const QString &name)
Sets the channel name.
Definition dm32uv_codeplug.cc:35
virtual bool encryptionEnabled() const
Returns true if encryption is enabled.
Definition dm32uv_codeplug.cc:322
ChannelElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:12
virtual void enableLoneWorker(bool enable)
Enables/disables lone worker feature.
Definition dm32uv_codeplug.cc:119
virtual void setTXFrequency(const Frequency &freq)
Set TX frequency.
Definition dm32uv_codeplug.cc:64
virtual void setGroupListIndex(unsigned int idx)
Set group list index.
Definition dm32uv_codeplug.cc:343
virtual void setBandwidth(FMChannel::Bandwidth bw)
Sets the FM channel bandwidth.
Definition dm32uv_codeplug.cc:133
virtual void enableDataACK(bool enable)
Enables confirmation of data.
Definition dm32uv_codeplug.cc:285
virtual void setSquelchLevel(Level level)
Sets the FM and DMR squelch level.
Definition dm32uv_codeplug.cc:242
virtual bool privateCallACKEnabled() const
Return true if private calls are confirmed.
Definition dm32uv_codeplug.cc:270
virtual bool emergencyNotificationEnabled() const
Retruns true, if the emergency notification is enabled.
Definition dm32uv_codeplug.cc:196
virtual bool dmrAPRSEnabled() const
Returns true if DMR APRS is enabled.
Definition dm32uv_codeplug.cc:259
void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_codeplug.cc:25
virtual Level squelchLevel() const
Returns FM and DMR squelch level.
Definition dm32uv_codeplug.cc:237
virtual unsigned int emergencySystemIndex() const
Returns the emergency system index.
Definition dm32uv_codeplug.cc:221
Admit
Possible admit criteria.
Definition dm32uv_codeplug.hh:46
virtual Frequency txFrequency() const
Returns the TX frequency.
Definition dm32uv_codeplug.cc:57
virtual void enablePrivateCallACK(bool enable)
Enables confirmation of private calls.
Definition dm32uv_codeplug.cc:275
virtual void setDMRIdIndex(unsigned int id)
Sets the dmr ID index.
Definition dm32uv_codeplug.cc:402
virtual void setDMRAPRSChannelIndex(unsigned int idx)
Sets the DMR APRS report channel index.
Definition dm32uv_codeplug.cc:359
virtual SelectiveCall rxTone() const
Returns the RX tone.
Definition dm32uv_codeplug.cc:365
virtual void enableRXOnly(bool enable)
Enables RX only for the channel.
Definition dm32uv_codeplug.cc:253
virtual bool validTXFrequency() const
Returns true, if a valid TX frequency is stored.
Definition dm32uv_codeplug.cc:52
virtual bool validEmergencySystemIndex() const
Returns true if the emergency system index is set.
Definition dm32uv_codeplug.cc:216
virtual void setRXTone(const SelectiveCall &tone)
Sets the RX tone.
Definition dm32uv_codeplug.cc:370
virtual void setAdmitCriterion(Admit admit)
Sets the admit criterion.
Definition dm32uv_codeplug.cc:179
virtual bool loneWorkerEnabled() const
Returns true, if the lone-worker feature is enabled.
Definition dm32uv_codeplug.cc:114
virtual SelectiveCall txTone() const
Returns the TX tone.
Definition dm32uv_codeplug.cc:375
virtual Channel::Power power() const
Returns the channel power setting.
Definition dm32uv_codeplug.cc:86
virtual void enableEmergencyNotification(bool enable)
Enables/disables emergency notification.
Definition dm32uv_codeplug.cc:201
virtual void clearTXFrequency()
Invalidates the TX frequency.
Definition dm32uv_codeplug.cc:69
virtual void setTimeslot(DMRChannel::TimeSlot ts)
Sets the timeslot of the channel.
Definition dm32uv_codeplug.cc:306
virtual void setChannelType(ChannelType type)
Sets the channel type.
Definition dm32uv_codeplug.cc:80
virtual void setTXTone(const SelectiveCall &tone)
Sets the TX tone.
Definition dm32uv_codeplug.cc:380
virtual bool emergencyACKEnabled() const
Retruns true, if the emergency ACK is enabled.
Definition dm32uv_codeplug.cc:206
Encodes a bank of channel extension settings.
Definition dm32uv_codeplug.hh:374
virtual bool hasContactIndex() const
Returns true if a TX contact index is set.
Definition dm32uv_codeplug.cc:685
void clear() override
Resets the element.
Definition dm32uv_codeplug.cc:678
virtual bool link(Channel *ch, Context &ctx, const ErrorStack &err) const
Links the given channel.
Definition dm32uv_codeplug.cc:720
ChannelExtensionElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:671
virtual void setContactIndex(unsigned int index)
Sets the contact index.
Definition dm32uv_codeplug.cc:699
virtual void clearContactIndex()
Resets the contact index.
Definition dm32uv_codeplug.cc:707
virtual bool encode(const Channel *ch, Context &ctx, const ErrorStack &err)
Encodes the extended settings from the given channel.
Definition dm32uv_codeplug.cc:735
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:340
virtual unsigned int contactIndex() const
Returns the TX contact index.
Definition dm32uv_codeplug.cc:692
virtual bool decode(Channel *ch, Context &ctx, const ErrorStack &err) const
Updates the given channel.
Definition dm32uv_codeplug.cc:714
Implements the contact bank.
Definition dm32uv_codeplug.hh:451
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:408
virtual void setDMRId(unsigned int id)
Sets the DMR Id.
Definition dm32uv_codeplug.cc:813
Type
Possible contact types.
Definition dm32uv_codeplug.hh:395
virtual void setName(const QString &name)
Sets the name of the contact.
Definition dm32uv_codeplug.cc:776
virtual QString name() const
Returns the name of the contact.
Definition dm32uv_codeplug.cc:771
ContactElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:757
virtual DMRContact * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a contact object.
Definition dm32uv_codeplug.cc:818
virtual void setCallType(DMRContact::Type type)
Sets the call type.
Definition dm32uv_codeplug.cc:792
virtual bool encode(const DMRContact *contact, const ErrorStack &err=ErrorStack())
Encodes the contact.
Definition dm32uv_codeplug.cc:825
virtual unsigned int dmrId() const
Returns the DMR Id.
Definition dm32uv_codeplug.cc:807
virtual DMRContact::Type callType() const
Returns the call type.
Definition dm32uv_codeplug.cc:782
ContactBitmapElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:840
static constexpr unsigned int size()
Returns the size of the bitmap.
Definition dm32uv_codeplug.hh:484
bool isValid() const override
Returns true if the entry is valid.
Definition dm32uv_codeplug.cc:868
void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_codeplug.cc:863
EntryElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:850
virtual DMRContact::Type callType() const
Returns the call type.
Definition dm32uv_codeplug.cc:873
virtual void setCallType(DMRContact::Type type)
Sets the call type.
Definition dm32uv_codeplug.cc:883
virtual void setIndex(unsigned int idx)
Sets the index.
Definition dm32uv_codeplug.cc:900
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:504
virtual unsigned int index() const
Returns the contact index.
Definition dm32uv_codeplug.cc:895
virtual unsigned int groupCallCount() const
Returns the number of group call contacts encoded.
Definition dm32uv_codeplug.cc:934
virtual ContactBitmapElement bitmap() const
Returns the contact bitmap.
Definition dm32uv_codeplug.cc:955
static constexpr unsigned int size()
Size of this element.
Definition dm32uv_codeplug.hh:525
virtual EntryElement indexEntry(unsigned n)
Returns the n-th index entry.
Definition dm32uv_codeplug.cc:960
virtual unsigned int privateCallCount() const
Returns the number of private call contacts encoded.
Definition dm32uv_codeplug.cc:944
virtual void setPrivateCallCount(unsigned int n)
Sets the number of private call contacts.
Definition dm32uv_codeplug.cc:949
virtual void setContactCount(unsigned int n)
Sets the number of contacts.
Definition dm32uv_codeplug.cc:929
virtual void setGroupCallCount(unsigned int n)
Sets the number of group call contacts.
Definition dm32uv_codeplug.cc:939
ContactIndexElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:910
virtual EntryElement sortedIndexEntry(unsigned n)
Returns the n-th sorted index entry.
Definition dm32uv_codeplug.cc:965
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the contact index.
Definition dm32uv_codeplug.cc:971
virtual unsigned int contactCount() const
Returns the number of contacts encoded.
Definition dm32uv_codeplug.cc:924
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all keys.
Definition dm32uv_codeplug.cc:3928
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all keys.
Definition dm32uv_codeplug.cc:3910
EncryptionKeyBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:3890
virtual bool keyValid(unsigned int idx) const
Returns true, if the key is valid.
Definition dm32uv_codeplug.cc:3897
virtual EncryptionKeyElement key(unsigned int idx) const
Returns the n-th key.
Definition dm32uv_codeplug.cc:3904
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2344
Implementation of a single encryption key.
Definition dm32uv_codeplug.hh:2272
virtual void clear() override
Abstract method to reset the element within the codeplug.
Definition dm32uv_codeplug.cc:3775
EncryptionKeyElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:3767
bool encode(const EncryptionKey *key, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the key.
Definition dm32uv_codeplug.cc:3866
virtual QString name() const
Returns the key name.
Definition dm32uv_codeplug.cc:3794
virtual void setKeyId(unsigned int id)
Sets the key id.
Definition dm32uv_codeplug.cc:3788
virtual QByteArray key() const
Returns the key data.
Definition dm32uv_codeplug.cc:3816
virtual Type type() const
Returns the key type.
Definition dm32uv_codeplug.cc:3805
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2284
Type
Possible key types.
Definition dm32uv_codeplug.hh:2275
virtual void setType(Type type)
Sets the key type.
Definition dm32uv_codeplug.cc:3810
EncryptionKey * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes the key.
Definition dm32uv_codeplug.cc:3829
virtual unsigned int keyId() const
Returns the key id.
Definition dm32uv_codeplug.cc:3783
virtual void setName(const QString &name)
Sets the name.
Definition dm32uv_codeplug.cc:3799
virtual void setKey(const QByteArray &key)
Sets the key data.
Definition dm32uv_codeplug.cc:3821
virtual KeyFunction::Function sk1Short() const
Returns the side-key 1 short-press function.
Definition dm32uv_codeplug.cc:3078
virtual bool dmrRemoteKillEnabled() const
Returns true if the remote kill switch is enabled.
Definition dm32uv_codeplug.cc:2830
virtual Interval dmrPreambleDuration() const
Retruns the DMR preamble duration.
Definition dm32uv_codeplug.cc:2808
SMSFormat
Possible SMS formats.
Definition dm32uv_codeplug.hh:1452
virtual Interval dmrCallHangTime() const
Returns the DMR call hang time.
Definition dm32uv_codeplug.cc:2775
virtual void setDualStandbyMode(DualStandbyMode mode)
Sets the dual-standby mode.
Definition dm32uv_codeplug.cc:2956
virtual void enableDMRRXAlert(bool enable)
Enables enables reception of DMR alerts.
Definition dm32uv_codeplug.cc:2868
virtual bool privateCallToneEnabled() const
Returns true if private call tone is enabled.
Definition dm32uv_codeplug.cc:2415
virtual VFODisplayMode vfoDisplayModeB() const
Returns the VFO B display mode.
Definition dm32uv_codeplug.cc:2984
VFOMode
VFO Modes.
Definition dm32uv_codeplug.hh:1482
virtual void enableShowVolumeChange(bool enable)
Enable volume change prompt.
Definition dm32uv_codeplug.cc:2577
virtual void disableVFOMode(bool enable)
Disables VFO modes.
Definition dm32uv_codeplug.cc:3021
virtual bool groupCallMatchEnabled() const
Returns true if group call must match.
Definition dm32uv_codeplug.cc:2753
virtual void setP2Short(KeyFunction::Function function)
Sets the programmable key 2 short-press function.
Definition dm32uv_codeplug.cc:3144
virtual void setGNSS(GNSSSettings::Systems mode)
Sets the GNSS mode.
Definition dm32uv_codeplug.cc:2687
TBSTFrequency
Possible TBST frequencies.
Definition dm32uv_codeplug.hh:1509
virtual void enableSMSTone(bool enable)
Enables sms tones.
Definition dm32uv_codeplug.cc:2399
virtual bool smsToneEnabled() const
Returns true if sms tones are enabled.
Definition dm32uv_codeplug.cc:2394
virtual void setFMMicLevel(Level level)
Sets the FM mic level.
Definition dm32uv_codeplug.cc:3302
virtual Color::Code channelNameAColor() const
Returns the channel name A color.
Definition dm32uv_codeplug.cc:2625
virtual void setActiveRetries(unsigned int retries)
Sets the number of active retires.
Definition dm32uv_codeplug.cc:2802
virtual void setDMRCallHangTime(const Interval &hangTime)
Sets the DMR call hang time.
Definition dm32uv_codeplug.cc:2780
FMRogerTone
Possible FM roger tones.
Definition dm32uv_codeplug.hh:1408
virtual void setSK1Long(KeyFunction::Function function)
Sets the side-key 1 long-press function.
Definition dm32uv_codeplug.cc:3093
virtual VFOMode vfoModeA() const
Returns the VFO A mode.
Definition dm32uv_codeplug.cc:2995
virtual void setBacklightDuration(Interval duration)
Sets the backlight duration.
Definition dm32uv_codeplug.cc:2522
virtual bool missedCallNotificationEnabled() const
Retruns true missed call notification is enabled.
Definition dm32uv_codeplug.cc:2894
virtual void enableShowClock(bool enable)
Enable clock.
Definition dm32uv_codeplug.cc:2599
virtual void enableTXTalkerAlias(bool enable)
Enables transmission of talker alias.
Definition dm32uv_codeplug.cc:2934
virtual void setTimeZone(const QTimeZone &timeZone)
Sets the timezone.
Definition dm32uv_codeplug.cc:2714
virtual void enableWeatherAlarm(bool enable)
Enables the NOAA weather alarm.
Definition dm32uv_codeplug.cc:3245
virtual void setP1Long(KeyFunction::Function function)
Sets the programmable key 1 long-press function.
Definition dm32uv_codeplug.cc:3134
virtual void disableAllLEDs(bool disable)
Disables all LEDs.
Definition dm32uv_codeplug.cc:3256
virtual void setSK2Long(KeyFunction::Function function)
Sets the side-key 2 long-press function.
Definition dm32uv_codeplug.cc:3113
virtual bool allLEDsDisabled() const
Returns true if all LEDs are disabled.
Definition dm32uv_codeplug.cc:3251
virtual void setChannelNameAColor(Color::Code c)
Sets the channel name A color.
Definition dm32uv_codeplug.cc:2630
virtual void setMainVFO(VFO mainVFO)
Sets the main VFO.
Definition dm32uv_codeplug.cc:2967
GNSSMode
GNSS modes.
Definition dm32uv_codeplug.hh:1442
virtual void enableDMRRemoteKill(bool enable)
Enables the remote kill swtich.
Definition dm32uv_codeplug.cc:2835
virtual void setTalkerAliasSource(TalkerAliasSource source)
Sets the talker alias source.
Definition dm32uv_codeplug.cc:2945
VFO
VFO selection.
Definition dm32uv_codeplug.hh:1472
virtual bool talkPermitToneEnabled() const
Returns true if talk permit tone is enabled.
Definition dm32uv_codeplug.cc:2437
virtual void setDMRRemoteMonitorDuration(Interval duration)
Sets the remote monitor duration.
Definition dm32uv_codeplug.cc:2910
virtual void setP2Long(KeyFunction::Function function)
Sets the programmable key 2 long-press function.
Definition dm32uv_codeplug.cc:3154
virtual void enableBootTone(bool enable)
Enables boot tones.
Definition dm32uv_codeplug.cc:2453
virtual void setTransmitTimeout(Interval timeout)
Sets transmit timeout.
Definition dm32uv_codeplug.cc:3179
virtual TalkerAliasSource talkerAliasSource() const
Returns the talker alias source.
Definition dm32uv_codeplug.cc:2940
virtual bool sideKeyLockEnabled() const
Returns true if the side keys are locked.
Definition dm32uv_codeplug.cc:3038
virtual void enableMCUReset(bool enable)
Enables MCU reset.
Definition dm32uv_codeplug.cc:2334
virtual BootSettings::BootDisplay bootDisplay() const
Returns the boot display setting.
Definition dm32uv_codeplug.cc:2284
virtual DualStandbyMode dualStandbyMode() const
Returns the dual-standby mode.
Definition dm32uv_codeplug.cc:2951
virtual void setZoneNameAColor(Color::Code c)
Sets the zone name A color.
Definition dm32uv_codeplug.cc:2650
virtual bool showVolmueChange() const
Returns true if the volume change prompt is shown.
Definition dm32uv_codeplug.cc:2572
VFODisplayMode
VFO display modes.
Definition dm32uv_codeplug.hh:1477
virtual bool radioSilentEnabled() const
Returns true if all tones are disabled.
Definition dm32uv_codeplug.cc:2372
virtual void setZoneNameBColor(Color::Code c)
Sets the zone name B color.
Definition dm32uv_codeplug.cc:2660
virtual VFO mainVFO() const
Returns the main VFO.
Definition dm32uv_codeplug.cc:2962
PowerSaveMode
Possible power-save mode.
Definition dm32uv_codeplug.hh:1504
virtual void enableGroupCallMatch(bool enable)
Enables group call match.
Definition dm32uv_codeplug.cc:2758
virtual Interval voxDelay() const
Returns the VOX delay.
Definition dm32uv_codeplug.cc:3217
virtual GNSSSettings::Systems gnss() const
Returns the GNSS mode.
Definition dm32uv_codeplug.cc:2677
virtual Level dmrMicLevel() const
Returns the DMR mic level.
Definition dm32uv_codeplug.cc:3307
virtual bool groupCallToneEnabled() const
Returns true if group call tone is enabled.
Definition dm32uv_codeplug.cc:2405
virtual void setDateFormat(DateFormat format)
Sets the date format.
Definition dm32uv_codeplug.cc:2588
virtual void enableVoicePrompt(bool enable)
Enables voice prompt.
Definition dm32uv_codeplug.cc:2464
virtual void setDisplayBrightness(unsigned int n)
Sets the display brightness [0-10].
Definition dm32uv_codeplug.cc:2497
virtual void setDmrPreambleDuration(Interval duration)
Sets the DMR preamble duration.
Definition dm32uv_codeplug.cc:2813
virtual bool vfoModeDisabled() const
Returns true if VFO modes are disabled.
Definition dm32uv_codeplug.cc:3016
virtual void enableRadioSilent(bool enable)
Disables all tones.
Definition dm32uv_codeplug.cc:2377
virtual void setRecordMode(RecordMode mode)
Sets the record mode.
Definition dm32uv_codeplug.cc:2736
virtual Color::Code zoneNameAColor() const
Returns the zone name A color.
Definition dm32uv_codeplug.cc:2645
virtual bool showClock() const
Returns true if the clock is shown.
Definition dm32uv_codeplug.cc:2594
virtual KeyFunction::Function p1Long() const
Returns the programmable key 1 long-press function.
Definition dm32uv_codeplug.cc:3129
STEMode
Possible squelch tail-eliminations.
Definition dm32uv_codeplug.hh:1514
virtual void setPowerSaveMode(PowerSaveMode mode)
Sets the power-save mode.
Definition dm32uv_codeplug.cc:3234
virtual bool gnssEnabled() const
Returns true if GNSS is enabled.
Definition dm32uv_codeplug.cc:2698
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encode general settings.
Definition dm32uv_codeplug.cc:3368
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the general settings.
Definition dm32uv_codeplug.cc:3318
virtual void setVoxDelay(Interval delay)
Sets the VOX delay.
Definition dm32uv_codeplug.cc:3222
virtual void setMenuDuration(Interval duration)
Sets the menu hold time.
Definition dm32uv_codeplug.cc:2562
virtual void setAutoPowerOffDelay(const Interval &delay)
Sets the auto-power-off delay.
Definition dm32uv_codeplug.cc:2353
virtual void enableGNSS(bool enable)
Enables GNSS.
Definition dm32uv_codeplug.cc:2703
virtual void enableKnobLock(bool enable)
Enables the knob lock.
Definition dm32uv_codeplug.cc:3054
virtual Color::Code standbyColor() const
Returns the standby text color.
Definition dm32uv_codeplug.cc:2615
virtual Interval transmitTimeout() const
Returns the transmit timeout.
Definition dm32uv_codeplug.cc:3172
virtual Level voxLevel() const
Returns the VOX level.
Definition dm32uv_codeplug.cc:3201
virtual void enableDMRRemoteReenable(bool enable)
Enables DMR remote reenable.
Definition dm32uv_codeplug.cc:2857
virtual SMSExtension::Format smsFormat() const
Returns the DMR SMS format.
Definition dm32uv_codeplug.cc:2874
virtual KeyFunction::Function sk2Short() const
Returns the side-key 2 short-press function.
Definition dm32uv_codeplug.cc:3098
virtual void setBootMessage2(const QString &msg)
Sets the second boot message line.
Definition dm32uv_codeplug.cc:2323
virtual KeyFunction::Function p1Short() const
Returns the programmable key 1 short-press function.
Definition dm32uv_codeplug.cc:3119
virtual void setVFODisplayModeB(VFODisplayMode mode)
Sets the VFO B display mode.
Definition dm32uv_codeplug.cc:2989
BootDisplay
Possible boot display settings.
Definition dm32uv_codeplug.hh:1398
virtual bool lowBatteryToneEnabled() const
Returns true if low-battery tone is enabled.
Definition dm32uv_codeplug.cc:2470
GeneralSettingsElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2276
virtual Color::Code callColor() const
Returns the call color.
Definition dm32uv_codeplug.cc:2605
virtual bool weatherAlarmEnabled() const
Returns true, if the NOAA weather alarm is enabled.
Definition dm32uv_codeplug.cc:3240
virtual void enableMissedCallNotification(bool enable)
Enables missed call notification.
Definition dm32uv_codeplug.cc:2899
virtual Frequency tbstFrequency() const
Returns the TBST frequency.
Definition dm32uv_codeplug.cc:3262
BacklightDuration
Possible settings for the backlight duration.
Definition dm32uv_codeplug.hh:1413
virtual bool eotToneEnabled() const
Returns true if EOT tone is enabled.
Definition dm32uv_codeplug.cc:2426
virtual void setTalkerAliasEncoding(DMRSettings::TalkerAliasEncoding format)
Sets the talker alias format.
Definition dm32uv_codeplug.cc:2923
PositionFormat
Possible position formats.
Definition dm32uv_codeplug.hh:1436
@ DD
Decimal degree.
Definition dm32uv_codeplug.hh:1437
@ DMS
Degree, minute, second.
Definition dm32uv_codeplug.hh:1438
virtual KeyFunction::Function sk1Long() const
Returns the side-key 1 long-press function.
Definition dm32uv_codeplug.cc:3088
virtual bool dmrRemoteRadioCheckEnabled() const
Returns true if the remote radio check is enabled.
Definition dm32uv_codeplug.cc:2841
virtual unsigned int activeRetries() const
Returns the number of active retries.
Definition dm32uv_codeplug.cc:2797
virtual void setVFOModeA(VFOMode mode)
Sets the VFO A mode.
Definition dm32uv_codeplug.cc:3000
virtual STEMode steMode() const
Returns the squelch tail elimination mode.
Definition dm32uv_codeplug.cc:3286
virtual void setDMRMicLevel(Level level)
Sets the DMR mic level.
Definition dm32uv_codeplug.cc:3312
virtual void setPosUpdatePeriod(const Interval &period)
Sets the position update period.
Definition dm32uv_codeplug.cc:2725
RecordMode
Possible recording modes.
Definition dm32uv_codeplug.hh:1447
virtual void setP1Short(KeyFunction::Function function)
Sets the programmable key 1 short-press function.
Definition dm32uv_codeplug.cc:3124
virtual Interval posUpdatePeriod() const
Returns the position update period.
Definition dm32uv_codeplug.cc:2720
virtual void setVFOModeB(VFOMode mode)
Sets the VFO B mode.
Definition dm32uv_codeplug.cc:3010
virtual void setCallColor(Color::Code c)
Sets the call color.
Definition dm32uv_codeplug.cc:2610
virtual VFOMode vfoModeB() const
Returns the VFO B mode.
Definition dm32uv_codeplug.cc:3005
virtual void setVFODisplayModeA(VFODisplayMode mode)
Sets the VFO A display mode.
Definition dm32uv_codeplug.cc:2978
virtual Interval longPressDuration() const
Returns the long-press duration.
Definition dm32uv_codeplug.cc:3160
virtual void setActiveWaitTime(Interval waitTime)
Sets the active wait time.
Definition dm32uv_codeplug.cc:2791
virtual void enableKeyTone(bool enable)
Enables key tones.
Definition dm32uv_codeplug.cc:2388
virtual DMRSettings::TalkerAliasEncoding talkerAliasEncoding() const
Returns the talker alias format.
Definition dm32uv_codeplug.cc:2916
virtual Interval dualStandbyHangTime() const
Returns the dual-standby hang-time.
Definition dm32uv_codeplug.cc:3027
static constexpr unsigned int size()
Returns the size og the element.
Definition dm32uv_codeplug.hh:1524
virtual void enableSideKeyLock(bool enable)
Enable side key lock.
Definition dm32uv_codeplug.cc:3043
virtual Interval autoPowerOffDelay() const
Returns the auto-power-off delay.
Definition dm32uv_codeplug.cc:2340
TalkerAliasSource
Talker alias sources.
Definition dm32uv_codeplug.hh:1462
virtual bool bootToneEnabled() const
Returns true if boot tone is enabled.
Definition dm32uv_codeplug.cc:2448
virtual Interval autoKeyLockDelay() const
Returns the auto key-lock delay.
Definition dm32uv_codeplug.cc:3060
virtual Level fmMicLevel() const
Returns the FM mic level.
Definition dm32uv_codeplug.cc:3297
virtual bool keyToneEnabled() const
Returns true if key tones are enabled.
Definition dm32uv_codeplug.cc:2383
virtual void enableDMRRemoteRadioCheck(bool enable)
Enables remote radio check.
Definition dm32uv_codeplug.cc:2846
virtual bool dmrRXAlertEnabled() const
Returns true reception of DMR alerts is enabled.
Definition dm32uv_codeplug.cc:2863
TalkerAliasFormat
Talker alias formats.
Definition dm32uv_codeplug.hh:1457
virtual void setPositionFormat(PositionFormat format)
Sets the position display format.
Definition dm32uv_codeplug.cc:2671
virtual void enableRecording(bool enable)
Enables/disables recording.
Definition dm32uv_codeplug.cc:2747
virtual void setTransmitTimeoutReminder(Interval timeout)
Sets transmit timeout reminder.
Definition dm32uv_codeplug.cc:3195
virtual void enableGroupCallTone(bool enable)
Enables group call tones.
Definition dm32uv_codeplug.cc:2410
virtual KeyFunction::Function p2Short() const
Returns the programmable key 2 short-press function.
Definition dm32uv_codeplug.cc:3139
virtual bool voicePromptEnabled() const
Returns true if voice prompt is enabled.
Definition dm32uv_codeplug.cc:2459
virtual Interval menuDuration() const
Returns the menu hold time.
Definition dm32uv_codeplug.cc:2554
virtual void setSMSFormat(SMSExtension::Format format)
Sets the DMR SMS format.
Definition dm32uv_codeplug.cc:2884
virtual void setFMRogerTone(FMRogerTone tone)
Sets the FM roger tone.
Definition dm32uv_codeplug.cc:2486
virtual bool dmrRemoteReenableEnabled() const
Returns true if the remote reenable is enabled.
Definition dm32uv_codeplug.cc:2852
virtual VFODisplayMode vfoDisplayModeA() const
Returns the VFO A display mode.
Definition dm32uv_codeplug.cc:2973
virtual void setLongPressDuration(Interval duration)
Sets the long-press duration.
Definition dm32uv_codeplug.cc:3165
virtual void setSK1Short(KeyFunction::Function function)
Sets the side-key 1 short-press function.
Definition dm32uv_codeplug.cc:3083
virtual KeyFunction::Function sk2Long() const
Returns the side-key 2 long-press function.
Definition dm32uv_codeplug.cc:3108
virtual Interval dmrRemoteMonitorDuration() const
Returns the remote monitor duration.
Definition dm32uv_codeplug.cc:2905
virtual PositionFormat positionFormat() const
Returns the position display format.
Definition dm32uv_codeplug.cc:2666
virtual void enableDMRRemoteMonitor(bool enable)
Enables the remote monitor.
Definition dm32uv_codeplug.cc:2824
virtual QString bootMessage1() const
Returns the first boot message line.
Definition dm32uv_codeplug.cc:2308
virtual bool mcuResetEnabled() const
Returns true if MCU reset is enabled.
Definition dm32uv_codeplug.cc:2329
virtual void setBootDisplay(BootSettings::BootDisplay dis)
Sets the boot display.
Definition dm32uv_codeplug.cc:2294
virtual Color::Code zoneNameBColor() const
Returns the zone name B color.
Definition dm32uv_codeplug.cc:2655
virtual KeyFunction::Function p2Long() const
Returns the programmable key 2 long-press function.
Definition dm32uv_codeplug.cc:3149
virtual void setBootMessage1(const QString &msg)
Sets the first boot message line.
Definition dm32uv_codeplug.cc:2313
virtual unsigned int displayBrightness() const
Returns the display brightness setting [0-10].
Definition dm32uv_codeplug.cc:2492
virtual bool txTalkerAliasEnabled() const
Returns true, if transmission of talker alias is enabled.
Definition dm32uv_codeplug.cc:2929
virtual void setStandbyColor(Color::Code c)
Sets the standby text color.
Definition dm32uv_codeplug.cc:2620
virtual void enableLowBatteryTone(bool enable)
Enables low-battery tones.
Definition dm32uv_codeplug.cc:2475
virtual bool dmrRemoteMonitorEnabled() const
Returns true if the DMR remote monitor is enabled.
Definition dm32uv_codeplug.cc:2819
virtual void enablePrivateCallTone(bool enable)
Enables group call tones.
Definition dm32uv_codeplug.cc:2420
virtual void setDualStandbyHangTime(Interval hangTime)
Sets the dual-standby hang-time.
Definition dm32uv_codeplug.cc:3032
virtual DateFormat dateFormat() const
Returns the date format.
Definition dm32uv_codeplug.cc:2583
virtual void enableEOTTone(bool enable)
Enables EOT tones.
Definition dm32uv_codeplug.cc:2431
virtual void setTBSTFrequency(const Frequency &frequency)
Sets the TBST frequency.
Definition dm32uv_codeplug.cc:3273
virtual bool knobLockEnabled() const
Returns true, if the knowb is locked.
Definition dm32uv_codeplug.cc:3049
virtual FMRogerTone fmRogerTone() const
Returns the FM roger tone setting.
Definition dm32uv_codeplug.cc:2481
virtual Interval transmitTimeoutReminder() const
Returns the transmit timeout reminder.
Definition dm32uv_codeplug.cc:3190
virtual void setVOXLevel(Level voxLevel)
Sets the VOX level.
Definition dm32uv_codeplug.cc:3208
virtual QTimeZone timeZone() const
Returns the time zone.
Definition dm32uv_codeplug.cc:2709
virtual void setSTEMode(STEMode mode)
Sets the STE mode.
Definition dm32uv_codeplug.cc:3291
virtual Interval activeWaitTime() const
Returns the active wait time.
Definition dm32uv_codeplug.cc:2786
virtual void setSK2Short(KeyFunction::Function function)
Sets the side-key 2 short-press function.
Definition dm32uv_codeplug.cc:3103
DateFormat
Possible date formats.
Definition dm32uv_codeplug.hh:1419
virtual Color::Code channelNameBColor() const
Returns the channel name B color.
Definition dm32uv_codeplug.cc:2635
virtual bool recordingEnabled() const
Returns true if recording is enabled.
Definition dm32uv_codeplug.cc:2742
virtual PowerSaveMode powerSaveMode() const
Returns the power-save mode.
Definition dm32uv_codeplug.cc:3229
virtual QString bootMessage2() const
Returns the second boot message line.
Definition dm32uv_codeplug.cc:2318
virtual void enableTalkPermitTone(bool enable)
Enables talk permit tones.
Definition dm32uv_codeplug.cc:2442
AutoPowerOffDelay
Possible auto-power-off delays.
Definition dm32uv_codeplug.hh:1403
virtual void setChannelNameBColor(Color::Code c)
Sets the channel name B color.
Definition dm32uv_codeplug.cc:2640
virtual bool privateCallMatchEnabled() const
Returns true if private call must match.
Definition dm32uv_codeplug.cc:2764
virtual RecordMode recordMode() const
Returns possible recording modes.
Definition dm32uv_codeplug.cc:2731
virtual Interval backlightDuration() const
Returns the backlight duration.
Definition dm32uv_codeplug.cc:2503
virtual void setAutoKeyLockDelay(Interval delay)
Sets the auto key-lock delay.
Definition dm32uv_codeplug.cc:3067
DualStandbyMode
Possible dual-standby modes.
Definition dm32uv_codeplug.hh:1467
virtual void enablePrivateCallMatch(bool enable)
Enables private call match.
Definition dm32uv_codeplug.cc:2769
GroupListBitmapElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1104
virtual GroupListBitmapElement bitmap() const
Retunrs the bitmap.
Definition dm32uv_codeplug.cc:1129
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all group lists.
Definition dm32uv_codeplug.cc:1173
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:643
virtual GroupListElement groupList(unsigned int n) const
Returns the n-th group list element.
Definition dm32uv_codeplug.cc:1134
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all group lists.
Definition dm32uv_codeplug.cc:1157
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all group lists.
Definition dm32uv_codeplug.cc:1140
GroupListBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:1115
Implements the group list bank element.
Definition dm32uv_codeplug.hh:568
virtual bool link(RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack())
Links this group list.
Definition dm32uv_codeplug.cc:1062
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:578
virtual bool encode(const RXGroupList *gl, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes this group list.
Definition dm32uv_codeplug.cc:1091
virtual QString name() const
Returns the name of the list.
Definition dm32uv_codeplug.cc:1024
virtual void clearId(unsigned int n)
Clears the n-th ID.
Definition dm32uv_codeplug.cc:1050
virtual RXGroupList * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes this group list.
Definition dm32uv_codeplug.cc:1056
virtual unsigned int id(unsigned int n)
Returns the n-th ID.
Definition dm32uv_codeplug.cc:1040
virtual bool validId(unsigned int n)
Retruns true if the n-th ID is set.
Definition dm32uv_codeplug.cc:1035
GroupListElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dm32uv_codeplug.cc:1010
virtual void setId(unsigned int n, unsigned int id)
Sets the n-th ID.
Definition dm32uv_codeplug.cc:1045
virtual void setName(const QString &name)
Sets the name of the list.
Definition dm32uv_codeplug.cc:1029
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2211
MenuSettingElement(uint8_t *ptr)
Constructor.
virtual void clearReadPassword()
Clears the read password.
Definition dm32uv_codeplug.cc:3732
virtual void setReadPassword(const QString &value)
Sets the read password.
Definition dm32uv_codeplug.cc:3726
virtual QString readPassword() const
Returns the read password.
Definition dm32uv_codeplug.cc:3721
PasswordSettingsElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:3665
virtual bool writePasswordEnabled() const
Returns true if the write password is set.
Definition dm32uv_codeplug.cc:3694
virtual bool encode(Context &ctx, ErrorStack err=ErrorStack())
Encode password settings from given config.
Definition dm32uv_codeplug.cc:3738
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decode password settings and update config.
Definition dm32uv_codeplug.cc:3754
virtual QString bootPassword() const
Returns the boot password.
Definition dm32uv_codeplug.cc:3677
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:2145
virtual void clearWritePassword()
Clears the write password.
Definition dm32uv_codeplug.cc:3710
virtual void setWritePassword(const QString &value)
Sets the write password.
Definition dm32uv_codeplug.cc:3704
virtual QString writePassword() const
Returns the write password.
Definition dm32uv_codeplug.cc:3699
virtual void clearBootPassword()
Clears the boot password.
Definition dm32uv_codeplug.cc:3688
virtual bool bootPasswordEnabled() const
Returns true if the boot password is set.
Definition dm32uv_codeplug.cc:3672
virtual bool readPasswordEnabled() const
Returns true if the read password is set.
Definition dm32uv_codeplug.cc:3716
virtual void setBootPassword(const QString &value)
Sets the boot password.
Definition dm32uv_codeplug.cc:3682
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:727
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes add radio IDs.
Definition dm32uv_codeplug.cc:1280
virtual RadioIdElement id(unsigned int n) const
Returns the n-th DMR Id.
Definition dm32uv_codeplug.cc:1258
virtual unsigned int idCount() const
Returns the number of IDs.
Definition dm32uv_codeplug.cc:1247
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all radio IDs.
Definition dm32uv_codeplug.cc:1264
RadioIdBankElement(uint8_t *ptr)
Contsturctor.
Definition dm32uv_codeplug.cc:1239
virtual void setIdCount(unsigned int n)
Sets the number of encoded IDs.
Definition dm32uv_codeplug.cc:1252
Implements a DMR radio ID.
Definition dm32uv_codeplug.hh:678
virtual void setId(unsigned int id)
Sets the DMR id.
Definition dm32uv_codeplug.cc:1203
virtual bool encode(const DMRRadioID *id, const ErrorStack &err=ErrorStack())
Encodes the given ID.
Definition dm32uv_codeplug.cc:1227
RadioIdElement(uint8_t *ptr)
Contsturctor.
Definition dm32uv_codeplug.cc:1190
virtual DMRRadioID * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the radio ID.
Definition dm32uv_codeplug.cc:1220
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:684
virtual QString name() const
Returns the name of the id.
Definition dm32uv_codeplug.cc:1209
virtual unsigned int id() const
Returns the DMR Id.
Definition dm32uv_codeplug.cc:1198
virtual void setName(const QString &name)
Sets the name of the id.
Definition dm32uv_codeplug.cc:1214
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all roaming channels.
Definition dm32uv_codeplug.cc:1963
virtual RoamingChannelElement channel(unsigned int n)
Returns the n-th channel.
Definition dm32uv_codeplug.cc:1943
RoamingChannelBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1926
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1159
virtual void setCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:1938
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decides all romaming channels.
Definition dm32uv_codeplug.cc:1948
virtual unsigned int count() const
Returns the number of channels.
Definition dm32uv_codeplug.cc:1933
Implements a roaming channel.
Definition dm32uv_codeplug.hh:1085
virtual Frequency rxFrequency() const
Returns the RX frequency.
Definition dm32uv_codeplug.cc:1848
virtual void setRXFrequency(const Frequency &f)
Sets the RX frequency.
Definition dm32uv_codeplug.cc:1853
TimeSlot
Possible time-slot settings.
Definition dm32uv_codeplug.hh:1088
virtual void setTimeSlot(DMRChannel::TimeSlot ts)
Sets the time slots.
Definition dm32uv_codeplug.cc:1887
virtual void setTXFrequency(const Frequency &f)
Sets the TX frequency.
Definition dm32uv_codeplug.cc:1863
virtual void setColorCode(unsigned int cc)
Sets the color code.
Definition dm32uv_codeplug.cc:1873
virtual RoamingChannel * decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes the roaming channel.
Definition dm32uv_codeplug.cc:1896
virtual void setName(const QString &name)
Sets the name of the channel.
Definition dm32uv_codeplug.cc:1843
virtual unsigned int colorCode() const
Return the color code.
Definition dm32uv_codeplug.cc:1868
RoamingChannelElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1831
virtual Frequency txFrequency() const
Returns the TX frequency.
Definition dm32uv_codeplug.cc:1858
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1097
virtual DMRChannel::TimeSlot timeSlot() const
Returns the time slot.
Definition dm32uv_codeplug.cc:1878
virtual bool encode(const RoamingChannel *ch, const ErrorStack &err=ErrorStack())
Encodes the roaming channel.
Definition dm32uv_codeplug.cc:1911
virtual QString name() const
Returns the name of the channel.
Definition dm32uv_codeplug.cc:1838
virtual void enableAutoRoam(bool enable)
Enables auto roaming.
Definition dm32uv_codeplug.cc:2086
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encode all roaming zones.
Definition dm32uv_codeplug.cc:2161
virtual unsigned int count() const
Returns the zone count.
Definition dm32uv_codeplug.cc:2070
RoamingZoneBankElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2063
virtual void setRoamingDelay(const Interval &delay)
Sets the roaming delay.
Definition dm32uv_codeplug.cc:2097
virtual void setCount(unsigned int n)
Sets the number of zones.
Definition dm32uv_codeplug.cc:2075
virtual Interval roamingDelay() const
Returns the roaming delay.
Definition dm32uv_codeplug.cc:2092
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Links all roaming zones.
Definition dm32uv_codeplug.cc:2144
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1259
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all roaming zones.
Definition dm32uv_codeplug.cc:2130
virtual RoamingZoneElement zone(unsigned int n)
Returns the n-th roaming zone.
Definition dm32uv_codeplug.cc:2124
virtual bool autoRoamEnabled() const
Returns true if auto roaming is enabled.
Definition dm32uv_codeplug.cc:2081
virtual void clearDefaultRoamingZoneIndex()
Clears the default roaming zone index.
Definition dm32uv_codeplug.cc:2118
virtual void setDefaultRoamingZoneIndex(unsigned int idx)
Sets the default roaming zone index.
Definition dm32uv_codeplug.cc:2113
virtual unsigned int defaultRoamingZoneIndex() const
Returns the default roaming zone index.
Definition dm32uv_codeplug.cc:2108
virtual bool defaultRoamingZoneIndexValid() const
Returns true, if a default roaming zone is set.
Definition dm32uv_codeplug.cc:2103
En/Decodes a roaming zone.
Definition dm32uv_codeplug.hh:1195
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:2018
virtual void clearChannelIndex(unsigned int n)
Clears the n-th channel index.
Definition dm32uv_codeplug.cc:2023
RoamingZoneElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:1979
virtual QString name() const
Returns the name of the zone.
Definition dm32uv_codeplug.cc:1987
static constexpr unsigned int size()
Returns the size of the elment.
Definition dm32uv_codeplug.hh:1201
virtual unsigned int channelIndex(unsigned int n)
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:2013
virtual void setName(const QString &name)
Sets the name.
Definition dm32uv_codeplug.cc:1992
virtual void setCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:2002
virtual bool link(RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given roaming zone.
Definition dm32uv_codeplug.cc:2034
virtual bool encode(const RoamingZone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given roaming zone.
Definition dm32uv_codeplug.cc:2048
virtual RoamingZone * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the roaming zone.
Definition dm32uv_codeplug.cc:2028
virtual unsigned int count() const
Returns the channel count.
Definition dm32uv_codeplug.cc:1997
virtual bool channelIndexValid(unsigned int n)
Returns true if the n-th channel index is set.
Definition dm32uv_codeplug.cc:2008
virtual SMSTemplateElement message(unsigned int n) const
Returns the n-th message.
Definition dm32uv_codeplug.cc:2225
virtual void setCount(unsigned int n)
Sets the number of messages.
Definition dm32uv_codeplug.cc:2219
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1361
virtual unsigned int count() const
Returns the number of messages.
Definition dm32uv_codeplug.cc:2214
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all preset SMS messages.
Definition dm32uv_codeplug.cc:2230
SMSTemplateBankElement(uint8_t *ptr)
Constructor from pointer.
Definition dm32uv_codeplug.cc:2207
A sinlge preset message.
Definition dm32uv_codeplug.hh:1319
SMSTemplate * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes a single message.
Definition dm32uv_codeplug.cc:2197
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:1325
virtual QString message() const
Returns the message text.
Definition dm32uv_codeplug.cc:2184
SMSTemplateElement(uint8_t *ptr)
Constructor from pointer to element.
Definition dm32uv_codeplug.cc:2177
virtual void setMessage(const QString &msg)
Sets the message text.
Definition dm32uv_codeplug.cc:2190
Implements the scan list bank.
Definition dm32uv_codeplug.hh:1017
virtual void setUHFRange(const FrequencyRange &range)
Sets the UHF scan range.
Definition dm32uv_codeplug.cc:1781
virtual FrequencyRange uhfRange() const
Returns the UHF scan range.
Definition dm32uv_codeplug.cc:1775
virtual void setVHFRange(const FrequencyRange &range)
Sets the VHF scan range.
Definition dm32uv_codeplug.cc:1769
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decode all scan lists.
Definition dm32uv_codeplug.cc:1788
virtual FrequencyRange vhfRange() const
Returns the VHF scan range.
Definition dm32uv_codeplug.cc:1763
virtual ScanMode scanMode() const
Returns the scan mode.
Definition dm32uv_codeplug.cc:1752
virtual void setCount(unsigned int n)
Sets the number of scan lists.
Definition dm32uv_codeplug.cc:1740
virtual ScanListElement scanList(unsigned int n) const
Returns the n-th scan list.
Definition dm32uv_codeplug.cc:1746
virtual unsigned int count() const
Returns the number of scan lists.
Definition dm32uv_codeplug.cc:1735
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all scan lists.
Definition dm32uv_codeplug.cc:1815
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:1029
virtual void setScanMode(ScanMode mode)
Sets the scan mode.
Definition dm32uv_codeplug.cc:1757
ScanMode
Possible scan modes.
Definition dm32uv_codeplug.hh:1020
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack())
Link all scan lists.
Definition dm32uv_codeplug.cc:1802
Implements a scan list.
Definition dm32uv_codeplug.hh:895
virtual bool encode(const ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Encode the scan list.
Definition dm32uv_codeplug.cc:1701
virtual void setChannelCount(unsigned int count)
Sets the channel count.
Definition dm32uv_codeplug.cc:1514
virtual unsigned int revertChannelIndex() const
Returns the revert channel index.
Definition dm32uv_codeplug.cc:1600
virtual bool secondaryChannelIndexValid() const
Returns true if the secondary priority channel index is set.
Definition dm32uv_codeplug.cc:1553
virtual ScanList * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes the scan list.
Definition dm32uv_codeplug.cc:1651
ToneDetectionMode
Possible CTCSS/DCS detection modes.
Definition dm32uv_codeplug.hh:903
virtual void setHangTime(const Interval &dur)
Sets the scan hang time.
Definition dm32uv_codeplug.cc:1547
virtual QString name() const
Returns the name of the scan list.
Definition dm32uv_codeplug.cc:1498
virtual void setName(const QString &name)
Sets the name of the scan list.
Definition dm32uv_codeplug.cc:1503
virtual void setToneDetectionMode(ToneDetectionMode mode)
Sets the tone-detection mode.
Definition dm32uv_codeplug.cc:1536
TransmitMode
Possible transmit modes.
Definition dm32uv_codeplug.hh:898
virtual void setRevertChannelIndex(unsigned int idx)
Sets the revert channel index.
Definition dm32uv_codeplug.cc:1605
virtual void setPrimaryChannelIndex(unsigned int idx)
Sets the primary priority channel index.
Definition dm32uv_codeplug.cc:1584
virtual bool revertChannelIndexValid() const
Returns true if the revert channel index is set.
Definition dm32uv_codeplug.cc:1595
virtual unsigned int channelCount() const
Returns the number of channels.
Definition dm32uv_codeplug.cc:1509
virtual bool isCurrentChannel(unsigned int n) const
Returns true, if the n-th channel index refers to the current channel.
Definition dm32uv_codeplug.cc:1631
virtual void clearPrimaryChannelIndex()
Clears the primary priority channel index.
Definition dm32uv_codeplug.cc:1589
virtual unsigned int primaryChannelIndex() const
Returns the primary priority channel index.
Definition dm32uv_codeplug.cc:1579
virtual void clearSecondaryChannelIndex()
Clears the secondary priority channel index.
Definition dm32uv_codeplug.cc:1568
virtual ToneDetectionMode toneDetectionMode() const
Returns the tone-detection mode.
Definition dm32uv_codeplug.cc:1531
virtual void setPrioritySweepTime(const Interval &dur)
Sets the priority sweep time.
Definition dm32uv_codeplug.cc:1621
virtual void setTransmitMode(TransmitMode mode)
Sets the transmit mode.
Definition dm32uv_codeplug.cc:1525
virtual bool link(ScanList *lst, Context &ctx, const ErrorStack &err=ErrorStack())
Links the given scan list.
Definition dm32uv_codeplug.cc:1657
virtual TransmitMode transmitMode() const
Returns the transmit mode.
Definition dm32uv_codeplug.cc:1520
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:1641
virtual Interval prioritySweepTime() const
Returns the priority sweep time.
Definition dm32uv_codeplug.cc:1616
virtual bool primaryChannelIndexValid() const
Returns true if the primary priority channel index is set.
Definition dm32uv_codeplug.cc:1574
virtual unsigned int secondaryChannelIndex() const
Returns the secondary priority channel index.
Definition dm32uv_codeplug.cc:1558
virtual unsigned int channelIndex(unsigned int n) const
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:1636
virtual Interval hangTime() const
Returns the scan hang time.
Definition dm32uv_codeplug.cc:1542
static constexpr unsigned int size()
Returns the size of the element.
Definition dm32uv_codeplug.hh:912
virtual void clearRevertChannelIndex()
Clears the revert channel index.
Definition dm32uv_codeplug.cc:1610
virtual void setCurrentChannel(unsigned int n)
Sets the n-th channel index to the current channel.
Definition dm32uv_codeplug.cc:1646
ScanListElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1491
virtual void setSecondaryChannelIndex(unsigned int idx)
Sets the secondary priority channel index.
Definition dm32uv_codeplug.cc:1563
virtual unsigned int zoneIndexA() const
Returns the zone index VFO A.
Definition dm32uv_codeplug.cc:1451
virtual void clearChannelIndexA()
Clears the channel index VFO A.
Definition dm32uv_codeplug.cc:1419
virtual void setZoneIndexA(unsigned int idx)
Sets the zone index VFO A.
Definition dm32uv_codeplug.cc:1456
virtual unsigned int channelIndexB() const
Returns the channel index VFO B.
Definition dm32uv_codeplug.cc:1430
virtual void setZoneIndexB(unsigned int idx)
Sets the zone index VFO B.
Definition dm32uv_codeplug.cc:1477
ZoneBankElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1386
virtual bool channelIndexAValid() const
Returns true if the channel index VFO A is set.
Definition dm32uv_codeplug.cc:1404
virtual void clearChannelIndexB()
Clears the channel index VFO B.
Definition dm32uv_codeplug.cc:1440
static constexpr unsigned int size()
Returns the size of a zone bank.
Definition dm32uv_codeplug.hh:825
virtual void setChannelIndexB(unsigned int idx)
Sets the channel index VFO B.
Definition dm32uv_codeplug.cc:1435
virtual bool zoneIndexAValid() const
Returns true if the zone index VFO A is set.
Definition dm32uv_codeplug.cc:1446
virtual void setChannelIndexA(unsigned int idx)
Sets the channel index VFO A.
Definition dm32uv_codeplug.cc:1414
virtual unsigned int count() const
Returns the total number of zones.
Definition dm32uv_codeplug.cc:1393
virtual void clearZoneIndexA()
Clears the zone index VFO A.
Definition dm32uv_codeplug.cc:1461
virtual void clearZoneIndexB()
Clears the zone index VFO B.
Definition dm32uv_codeplug.cc:1482
virtual void setCount(unsigned int n)
Sets the total number of zones.
Definition dm32uv_codeplug.cc:1398
virtual bool channelIndexBValid() const
Returns true if the channel index VFO B is set.
Definition dm32uv_codeplug.cc:1425
virtual bool zoneIndexBValid() const
Returns true if the zone index VFO B is set.
Definition dm32uv_codeplug.cc:1467
virtual unsigned int channelIndexA() const
Returns the channel index VFO A.
Definition dm32uv_codeplug.cc:1409
virtual unsigned int zoneIndexB() const
Returns the zone index VFO B.
Definition dm32uv_codeplug.cc:1472
virtual unsigned int channelCount() const
Retunrs the number of channels.
Definition dm32uv_codeplug.cc:1316
ZoneElement(uint8_t *ptr)
Constructor.
Definition dm32uv_codeplug.cc:1298
virtual bool channelIndexValid(unsigned int n) const
Returns true, if the channel index is set.
Definition dm32uv_codeplug.cc:1327
virtual void clearChannelIndex(unsigned int n)
Clears the n-th channel index.
Definition dm32uv_codeplug.cc:1342
static constexpr unsigned int size()
Size of the element.
Definition dm32uv_codeplug.hh:769
virtual QString name() const
Returns the name.
Definition dm32uv_codeplug.cc:1305
virtual Zone * decode(Context &ctx, const ErrorStack &err=ErrorStack())
Decode zone.
Definition dm32uv_codeplug.cc:1348
virtual void setName(const QString &name)
Sets the name of the zone.
Definition dm32uv_codeplug.cc:1310
virtual bool encode(const Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes a zone.
Definition dm32uv_codeplug.cc:1370
virtual unsigned int channelIndex(unsigned int n) const
Returns the n-th channel index.
Definition dm32uv_codeplug.cc:1332
virtual void setChannelCount(unsigned int n)
Sets the number of channels.
Definition dm32uv_codeplug.cc:1321
virtual void setChannelIndex(unsigned int n, unsigned int idx)
Sets the n-th channel index.
Definition dm32uv_codeplug.cc:1337
virtual bool link(Zone *zone, Context &ctx, const ErrorStack &err=ErrorStack())
Link zone.
Definition dm32uv_codeplug.cc:1354
virtual bool decodeChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all channels defined.
Definition dm32uv_codeplug.cc:4291
virtual bool linkChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Links all decoded channels.
Definition dm32uv_codeplug.cc:4329
virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decode codeplug elements.
Definition dm32uv_codeplug.cc:4111
virtual bool encodeContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Allocate and encode contacts.
Definition dm32uv_codeplug.cc:4440
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:4070
DM32UVCodeplug(QObject *parent=nullptr)
Default/empty constructor.
Definition dm32uv_codeplug.cc:3946
virtual bool decodeZones(Context &ctx, const ErrorStack &err=ErrorStack())
Decodes all zones defined.
Definition dm32uv_codeplug.cc:4478
virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack())
Link decoded elements.
Definition dm32uv_codeplug.cc:4177
Config * preprocess(Config *config, const ErrorStack &err) const override
Returns a prepared configuration for this particular radio.
Definition dm32uv_codeplug.cc:3954
bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const override
Indexes all elements of the codeplug.
Definition dm32uv_codeplug.cc:4013
bool postprocess(Config *config, const ErrorStack &err) const override
Returns a post-processed configuration of the decoded config.
Definition dm32uv_codeplug.cc:3995
virtual bool encodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Encode all elements.
Definition dm32uv_codeplug.cc:4213
virtual bool encodeChannels(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all channels.
Definition dm32uv_codeplug.cc:4365
virtual bool linkZones(Context &ctx, const ErrorStack &err=ErrorStack())
Links all decoded zones.
Definition dm32uv_codeplug.cc:4503
virtual bool encodeZones(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all zones.
Definition dm32uv_codeplug.cc:4526
virtual bool decodeContacts(Context &ctx, const ErrorStack &err=ErrorStack())
Decode contacts.
Definition dm32uv_codeplug.cc:4418
bool decode(Config *config, const ErrorStack &err=ErrorStack()) override
Decodes a binary codeplug to the given abstract configuration config.
Definition dm32uv_codeplug.cc:4093
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:448
Represents a digital contact, that is a DMR number.
Definition contact.hh:141
Type
Possible call types for a contact.
Definition contact.hh:155
Represents a DMR radio ID within the abstract config.
Definition radioid.hh:33
TalkerAliasEncoding
Possible talker alias encodings.
Definition dmrsettings.hh:35
Base class of all encryption keys.
Definition encryptionextension.hh:10
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
Bandwidth
Possible bandwidth of an analog channel.
Definition channel.hh:288
Represents a time interval.
Definition interval.hh:11
static constexpr Interval fromMinutes(unsigned long long min)
Definition interval.hh:79
static constexpr Interval fromSeconds(unsigned long long s)
Definition interval.hh:76
static constexpr Interval fromMilliseconds(unsigned long long ms)
Definition interval.hh:73
Some simple class implementing a [1-10] level setting.
Definition level.hh:15
Generic representation of a RX group list.
Definition rxgrouplist.hh:14
Simple range class representing some range in some data type.
Definition ranges.hh:14
Represents a roaming channel.
Definition roamingchannel.hh:16
Represents a RoamingZone within the abstract device configuration.
Definition roamingzone.hh:15
Format
Possible SMS formats, DMR is usually a good idea.
Definition smsextension.hh:65
Represents a SMS message template (pre defined message).
Definition smsextension.hh:11
Generic representation of a scan list.
Definition scanlist.hh:15
Represents a zone within the generic configuration.
Definition zone.hh:15
Some limits for the settings.
Definition dm32uv_codeplug.hh:2110
static constexpr Range< Interval > updatePeriod()
Valid range for update period.
Definition dm32uv_codeplug.hh:2112
static constexpr unsigned int revertChannels()
Number of revert channels.
Definition dm32uv_codeplug.hh:2116
Some offsets within the element.
Definition dm32uv_codeplug.hh:2121
Some limits.
Definition dm32uv_codeplug.hh:307
static constexpr unsigned int channelsPerBlock()
Maximum number of channels per block.
Definition dm32uv_codeplug.hh:313
static constexpr unsigned int channelsInBlock0()
Maximum number of channels in block 0.
Definition dm32uv_codeplug.hh:311
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:309
Some internal offsets.
Definition dm32uv_codeplug.hh:317
Some limits.
Definition dm32uv_codeplug.hh:227
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:229
static constexpr Range< unsigned int > squelchLevel()
Maximum squelch level.
Definition dm32uv_codeplug.hh:231
Some internal offsets.
Definition dm32uv_codeplug.hh:242
Some limits.
Definition dm32uv_codeplug.hh:377
static constexpr unsigned int count()
The number of elements within each bank.
Definition dm32uv_codeplug.hh:379
Some offsets.
Definition dm32uv_codeplug.hh:383
static constexpr unsigned int betweenBanks()
Offset betwenn banks.
Definition dm32uv_codeplug.hh:385
Some internal offsets within the element.
Definition dm32uv_codeplug.hh:363
Some limts for the contact bank.
Definition dm32uv_codeplug.hh:454
static constexpr unsigned int contacts()
Maximum number of contacts.
Definition dm32uv_codeplug.hh:456
Some internal offsets.
Definition dm32uv_codeplug.hh:461
Some limits.
Definition dm32uv_codeplug.hh:432
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:434
Some internal offsets.
Definition dm32uv_codeplug.hh:439
Some internal offsets.
Definition dm32uv_codeplug.hh:553
Some limits for the element.
Definition dm32uv_codeplug.hh:2358
static constexpr unsigned int keys()
Maximum number of keys.
Definition dm32uv_codeplug.hh:2360
Some internal offsets.
Definition dm32uv_codeplug.hh:2365
Some limits of the element.
Definition dm32uv_codeplug.hh:2315
static constexpr unsigned int keyLength()
Maximum key length (bytes).
Definition dm32uv_codeplug.hh:2319
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:2317
Some internal offsets.
Definition dm32uv_codeplug.hh:2324
Implements the translation between color names and code.
Definition dm32uv_codeplug.hh:1426
Helper encoding/decoding key functions.
Definition dm32uv_codeplug.hh:1488
Some limits.
Definition dm32uv_codeplug.hh:1929
static constexpr Range< Interval > voxDelay()
Range of valid VOX delays.
Definition dm32uv_codeplug.hh:1945
static constexpr unsigned int bootMessageLength()
Maximum boot message length.
Definition dm32uv_codeplug.hh:1931
static constexpr Range< unsigned int > micGain()
Valid mic gain settings.
Definition dm32uv_codeplug.hh:1951
static constexpr Range< unsigned int > activeRetires()
Range of valid active retires.
Definition dm32uv_codeplug.hh:1935
static constexpr Range< unsigned int > vox()
Valid VOX sensitivity levels.
Definition dm32uv_codeplug.hh:1949
static constexpr unsigned int maxBrightness()
Maximum display brightness.
Definition dm32uv_codeplug.hh:1933
static constexpr Range< Interval > longPressDuration()
Range of valid long-press durations.
Definition dm32uv_codeplug.hh:1937
static constexpr Range< Interval > transmitTimeout()
Range of valid transmit timeouts.
Definition dm32uv_codeplug.hh:1941
Some internal offsets.
Definition dm32uv_codeplug.hh:1956
Some limits.
Definition dm32uv_codeplug.hh:660
static constexpr unsigned int groupLists()
Maximum number of group lists.
Definition dm32uv_codeplug.hh:662
Some internal offsets.
Definition dm32uv_codeplug.hh:667
Some limits.
Definition dm32uv_codeplug.hh:603
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:605
static constexpr unsigned int contacts()
Maximum number of indices.
Definition dm32uv_codeplug.hh:607
Some internal offsets.
Definition dm32uv_codeplug.hh:612
Some internal limits.
Definition dm32uv_codeplug.hh:2419
Some internal offsets.
Definition dm32uv_codeplug.hh:2215
Some internal offsets.
Definition dm32uv_codeplug.hh:2428
Some limits for the element.
Definition dm32uv_codeplug.hh:2182
static constexpr unsigned int passwordLength()
Maximum password length.
Definition dm32uv_codeplug.hh:2184
Some internal offsets.
Definition dm32uv_codeplug.hh:2190
Some limits.
Definition dm32uv_codeplug.hh:744
static constexpr unsigned int ids()
Maximum number of IDs.
Definition dm32uv_codeplug.hh:746
Some internal offsets.
Definition dm32uv_codeplug.hh:751
Some limits.
Definition dm32uv_codeplug.hh:703
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:705
Some internal offsets.
Definition dm32uv_codeplug.hh:710
Some limits.
Definition dm32uv_codeplug.hh:1176
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:1178
Some internal offsets.
Definition dm32uv_codeplug.hh:1183
Some limits.
Definition dm32uv_codeplug.hh:1132
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:1134
Some internal offsets.
Definition dm32uv_codeplug.hh:1139
Some limits.
Definition dm32uv_codeplug.hh:1297
static constexpr unsigned int zones()
Maximum number of zones.
Definition dm32uv_codeplug.hh:1299
Some internal offsets.
Definition dm32uv_codeplug.hh:1304
Some limits.
Definition dm32uv_codeplug.hh:1231
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:1233
static constexpr unsigned int channels()
Maximum number of channels per zone.
Definition dm32uv_codeplug.hh:1235
Some internal offsets.
Definition dm32uv_codeplug.hh:1240
Some limits.
Definition dm32uv_codeplug.hh:1376
static constexpr unsigned int messages()
Maximum number of messages.
Definition dm32uv_codeplug.hh:1378
Some internal offsets.
Definition dm32uv_codeplug.hh:1383
Some limits.
Definition dm32uv_codeplug.hh:1337
static constexpr unsigned int messageLength()
Maximum message length.
Definition dm32uv_codeplug.hh:1339
Some internal offsets.
Definition dm32uv_codeplug.hh:1344
Some limits.
Definition dm32uv_codeplug.hh:1063
static constexpr unsigned int scanLists()
Maximum number of scan lists.
Definition dm32uv_codeplug.hh:1065
Some internal offsets.
Definition dm32uv_codeplug.hh:1069
Some limits.
Definition dm32uv_codeplug.hh:989
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:991
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:993
Some internal offsets.
Definition dm32uv_codeplug.hh:998
Some limits.
Definition dm32uv_codeplug.hh:870
static constexpr unsigned int zonesPerBlock()
Maximum number of zones per block.
Definition dm32uv_codeplug.hh:874
static constexpr unsigned int zones()
Maximum number of zones.
Definition dm32uv_codeplug.hh:872
Some internal offsets.
Definition dm32uv_codeplug.hh:879
Some limits.
Definition dm32uv_codeplug.hh:799
static constexpr unsigned int nameLength()
Maximum name length.
Definition dm32uv_codeplug.hh:801
static constexpr unsigned int channels()
Maximum number of channels.
Definition dm32uv_codeplug.hh:803
Some internal offsets.
Definition dm32uv_codeplug.hh:808
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:107
Encodes a selective call.
Definition signaling.hh:13