libdrmconf 0.14.1
A library to program DMR radios.
Loading...
Searching...
No Matches
dr1801uv_codeplug.hh
1#ifndef DR1801UVCODEPLUG_HH
2#define DR1801UVCODEPLUG_HH
3
4#include "channel.hh"
5#include "codeplug.hh"
6#include "contact.hh"
7
8class Zone;
9
10
64{
65 Q_OBJECT
66
67public:
72 class ChannelElement: public Element
73 {
74 public:
76 enum class Type {
77 FM = 1, DMR = 3
78 };
79
80 enum class Power {
81 Low = 0, High = 1
82 };
83
84 enum class Admit {
85 Always = 0, ColorCode_or_Tone = 1, ChannelFree = 2
86 };
87
88 enum class TimeSlot {
89 TS1 = 1, TS2 = 2
90 };
91
92 enum class SignalingMode {
93 None = 0, DTMF = 1
94 };
95
96 enum class Bandwidth {
97 Narrow = 1, Wide = 2
98 };
99
100 enum class SubToneType {
101 None = 0, CTCSS = 1, DCS = 2
102 };
103
104 enum class DCSMode {
105 Normal = 0, Inverted = 1
106 };
107
108 protected:
110 ChannelElement(uint8_t *ptr, size_t size);
111
112 public:
114 ChannelElement(uint8_t *ptr);
115
116 bool isValid() const;
117 void clear();
118
120 static constexpr unsigned int size() { return 0x00034; }
121
123 virtual unsigned int index() const;
125 virtual void setIndex(unsigned int idx);
126
128 virtual Type channelType() const;
130 virtual void setChannelType(Type type);
131
133 virtual Channel::Power power() const;
135 virtual void setPower(Channel::Power pwr);
136
138 virtual Frequency rxFrequency() const;
140 virtual void setRXFrequency(Frequency MHz);
142 virtual Frequency txFrequency() const;
144 virtual void setTXFrequency(Frequency MHz);
145
147 virtual bool hasTransmitContact() const;
149 virtual unsigned int transmitContactIndex() const;
151 virtual void setTransmitContactIndex(unsigned int index);
153 virtual void clearTransmitContactIndex();
154
156 virtual Admit admitCriterion() const;
158 virtual void setAdmitCriterion(Admit admit);
159
161 virtual unsigned int colorCode() const;
163 virtual void setColorCode(unsigned int cc);
165 virtual DMRChannel::TimeSlot timeSlot() const;
167 virtual void setTimeSlot(DMRChannel::TimeSlot ts);
168
170 virtual bool hasEncryptionKey() const;
172 virtual unsigned int encryptionKeyIndex() const;
174 virtual void setEncryptionKeyIndex(unsigned int index);
176 virtual void clearEncryptionKeyIndex();
177
179 virtual bool dcdm() const;
181 virtual void enableDCDM(bool enable);
183 virtual bool confirmPrivateCall() const;
185 virtual void enablePrivateCallConfirmation(bool enable);
186
188 virtual SignalingMode signalingMode() const;
190 virtual void setSignalingMode(SignalingMode mode);
191
193 virtual bool hasAlarmSystem() const;
195 virtual unsigned int alarmSystemIndex() const;
197 virtual void setAlarmSystemIndex(unsigned int index);
199 virtual void clearAlarmSystemIndex();
200
202 virtual FMChannel::Bandwidth bandwidth() const;
204 virtual void setBandwidth(FMChannel::Bandwidth bw);
205
207 virtual bool autoScanEnabled() const;
209 virtual void enableAutoScan(bool enable);
211 virtual bool hasScanList() const;
213 virtual unsigned int scanListIndex() const;
215 virtual void setScanListIndex(unsigned int index);
217 virtual void clearScanListIndex();
218
220 virtual SelectiveCall rxTone() const;
222 virtual void setRXTone(const SelectiveCall &code);
224 virtual SelectiveCall txTone() const;
226 virtual void setTXTone(const SelectiveCall &code);
227
229 virtual bool talkaround() const;
231 virtual void enableTalkaround(bool enable);
232
234 virtual bool hasPTTID() const;
236 virtual unsigned int pttIDIndex() const;
238 virtual void setPTTIDIndex(unsigned int idx);
240 virtual void clearPTTID();
241
243 virtual bool hasGroupList() const;
245 virtual unsigned int groupListIndex() const;
247 virtual void setGroupListIndex(unsigned int index);
249 virtual void clearGroupListIndex();
250
252 virtual bool loneWorker() const;
254 virtual void enableLoneWorker(bool enable);
255
257 virtual Channel *toChannelObj(Context &ctx, const ErrorStack &err=ErrorStack()) const;
259 virtual bool linkChannelObj(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack()) const;
261 virtual bool encode(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack());
262
263 protected:
265 struct Offset: Element::Offset {
267 static constexpr unsigned int index() { return 0x0000; }
268 static constexpr unsigned int channelType() { return 0x0002; }
269 static constexpr unsigned int power() { return 0x0003; }
270 static constexpr unsigned int rxFrequency() { return 0x0004; }
271 static constexpr unsigned int txFrequency() { return 0x0008; }
272 static constexpr unsigned int transmitContactIndex() { return 0x000c; }
273 static constexpr unsigned int admitCriterion() { return 0x000e; }
274 static constexpr unsigned int colorCode() { return 0x0010; }
275 static constexpr unsigned int timeSlot() { return 0x0011; }
276 static constexpr unsigned int encryptionKeyIndex() { return 0x0014; }
277 static constexpr Bit dcdm() { return {0x0015, 1} ; }
278 static constexpr Bit confirmPivateCall() { return {0x0015, 0}; }
279 static constexpr unsigned int signalingMode() { return 0x0016; }
280 static constexpr unsigned int alarmSystemIndex() { return 0x0018; }
281 static constexpr unsigned int bandwidth() { return 0x0019; }
282 static constexpr unsigned int autoScan() { return 0x001a; }
283 static constexpr unsigned int scanListIndex() { return 0x001b; }
284 static constexpr unsigned int rxSubtoneCode() { return 0x001c; }
285 static constexpr unsigned int rxSubtoneType() { return 0x001e; }
286 static constexpr unsigned int rxDCSMode() { return 0x001f; }
287 static constexpr unsigned int txSubtoneCode() { return 0x0020; }
288 static constexpr unsigned int txSubtoneType() { return 0x0022; }
289 static constexpr unsigned int txDCSMode() { return 0x0023; }
290 static constexpr unsigned int talkaround() { return 0x0025; }
291 static constexpr unsigned int pttIDIndex() { return 0x0028; }
292 static constexpr unsigned int groupListIndex() { return 0x002a; }
293 static constexpr unsigned int loneWorker() { return 0x002f; }
295 };
296 };
297
305 {
306 protected:
308 ChannelBankElement(uint8_t *ptr, size_t size);
309
310 public:
312 ChannelBankElement(uint8_t *ptr);
313
314 void clear();
315
317 static constexpr unsigned int size() { return 0x12004; }
318
320 virtual unsigned int channelCount() const;
322 virtual void setChannelCount(unsigned int count);
323
325 virtual ChannelElement channel(unsigned int index) const;
326
328 virtual QString channelName(unsigned int index) const;
330 virtual void setChannelName(unsigned int index, const QString &name);
331
333 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
335 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const;
337 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
338
339 public:
341 struct Limit {
343 static constexpr unsigned int channelCount() { return 1024; }
345 static constexpr unsigned int channelNameLength() { return 0x00014; }
346 };
347
348 protected:
350 struct Offset {
352 static constexpr unsigned int channelCount() { return 0x00000; }
353 static constexpr unsigned int channel() { return 0x00004; }
354 static constexpr unsigned int channelName() { return 0x0d004; }
356 };
357 };
358
359
365 {
366 public:
368 enum class CallType {
369 AllCall = 0x20, PrivateCall = 0x40, GroupCall = 0x80
370 };
371
372 protected:
374 ContactElement(uint8_t *ptr, size_t size);
375
376 public:
378 ContactElement(uint8_t *ptr);
379
380 bool isValid() const;
381 void clear();
382
384 static constexpr unsigned int size() { return 0x00018; }
385
387 virtual bool hasSuccessor() const;
389 virtual uint16_t successorIndex() const;
391 virtual void setSuccessorIndex(uint16_t index);
393 virtual void clearSuccessorIndex();
394
396 virtual uint32_t dmrID() const;
398 virtual void setDMRID(uint32_t id);
399
401 virtual DMRContact::Type type() const;
403 virtual void setCallType(DMRContact::Type type);
404
406 virtual QString name() const;
408 virtual void setName(const QString &name);
409
411 virtual DMRContact *toContactObj(Context &ctx, const ErrorStack &err=ErrorStack()) const;
413 virtual bool linkContactObj(DMRContact *contact, Context &ctx, const ErrorStack &err=ErrorStack());
415 virtual bool encode(DMRContact *contact, Context &ctx, const ErrorStack &err=ErrorStack());
416
417 public:
419 struct Limit {
421 static constexpr unsigned int nameLength() { return 16; }
422 };
423
424 protected:
426 struct Offset : public Element::Offset {
428 static constexpr unsigned int successorIndex() { return 0x0000; }
429 static constexpr unsigned int nameLength() { return 0x0002; }
430 static constexpr unsigned int dmrID() { return 0x0004; }
431 static constexpr unsigned int callType() { return 0x0007; }
432 static constexpr unsigned int name() { return 0x0008; }
434 };
435 };
436
445 {
446 protected:
448 ContactBankElement(uint8_t *ptr, size_t size);
449
450 public:
452 ContactBankElement(uint8_t *ptr);
453
454 void clear();
455
457 static constexpr unsigned int size() { return 0x06004; }
458
460 virtual unsigned int contactCount() const;
462 virtual void setContactCount(unsigned int count);
463
465 virtual unsigned int firstIndex() const;
467 virtual void setFirstIndex(unsigned int index);
468
470 virtual ContactElement contact(unsigned int index) const;
471
473 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
475 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const;
477 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
478
479 public:
481 struct Limit {
483 static constexpr unsigned int contactCount() { return 1024; }
484 };
485
486 protected:
488 struct Offset : public Element::Offset{
490 static constexpr unsigned int contactCount() { return 0x0000; }
491 static constexpr unsigned int firstIndex() { return 0x0002; }
492 static constexpr unsigned int contacts() { return 0x0004; }
494 };
495 };
496
497
503 {
504 protected:
506 GroupListElement(uint8_t *ptr, size_t size);
507
508 public:
510 GroupListElement(uint8_t *ptr);
511
512 bool isValid() const;
513 void clear();
514
516 static constexpr unsigned int size() { return 0x00044; }
517
519 virtual unsigned int index() const;
521 virtual void setIndex(unsigned int index);
522
524 virtual unsigned int count() const;
526 virtual void setCount(unsigned int n);
527
529 virtual bool hasMemberIndex(unsigned int n) const;
531 virtual unsigned int memberIndex(unsigned int n) const;
533 virtual void setMemberIndex(unsigned int n, unsigned int index);
535 virtual void clearMemberIndex(unsigned int n);
536
538 virtual RXGroupList *toGroupListObj(Context &ctx, const ErrorStack &err=ErrorStack()) const;
540 virtual bool linkGroupListObj(RXGroupList *list, Context &ctx, const ErrorStack &err=ErrorStack()) const;
542 virtual bool encode(RXGroupList *list, Context &ctx, const ErrorStack &err=ErrorStack());
543
544 protected:
546 struct Offset: public Element::Offset {
548 static constexpr unsigned int count() { return 0x0000; }
549 static constexpr unsigned int index() { return 0x0002; }
550 static constexpr unsigned int members() { return 0x0004; }
552 };
553
554 struct Limit {
556 static constexpr unsigned int members() { return 10; }
558 };
559 };
560
566 {
567 protected:
569 GroupListBankElement(uint8_t *ptr, size_t size);
570
571 public:
573 GroupListBankElement(uint8_t *ptr);
574
575 void clear();
576
578 static constexpr unsigned int size() { return 0x01104; }
579
581 virtual unsigned int groupListCount() const;
583 virtual void setGroupListCount(unsigned int count);
584
586 virtual GroupListElement groupList(unsigned int index) const;
587
589 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
591 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const;
593 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
594
595 public:
597 struct Limit {
599 static constexpr unsigned int groupListCount() { return 64; }
600 };
601
602 protected:
604 struct Offset {
606 static constexpr unsigned int groupListCount() { return 0x0000; }
607 static constexpr unsigned int groupLists() { return 0x00004; }
609 };
610 };
611
612
617 class ZoneElement: public Element
618 {
619 protected:
621 ZoneElement(uint8_t *ptr, size_t size);
622
623 public:
625 ZoneElement(uint8_t *ptr);
626
627 bool isValid() const;
628 void clear();
629
631 static constexpr unsigned int size() { return 0x00068; }
632
634 virtual QString name() const;
636 virtual void setName(const QString &name);
637
639 virtual unsigned int numEntries() const;
641 virtual unsigned int entryIndex(unsigned int n);
643 virtual void setEntryIndex(unsigned int n, unsigned int index);
644
646 virtual unsigned int index() const;
648 virtual void setIndex(unsigned int index);
649
651 virtual Zone *toZoneObj(Context &ctx, const ErrorStack &err=ErrorStack());
653 virtual bool linkZoneObj(Zone *obj, Context &ctx, const ErrorStack &err=ErrorStack());
655 virtual bool encode(Zone *obj, Context &ctx, const ErrorStack &err=ErrorStack());
656
658 struct Limit {
660 static constexpr unsigned int nameLength() { return 32; }
662 static constexpr unsigned int memberCount() { return 32; }
663 };
664
665 protected:
667 struct Offset {
669 static constexpr unsigned int name() { return 0x0000; }
670 static constexpr unsigned int nameLength() { return 0x0020; }
671 static constexpr unsigned int numEntries() { return 0x0022; }
672 static constexpr unsigned int index() { return 0x0024; }
673 static constexpr unsigned int members() { return 0x0028; }
675 };
676 };
677
683 {
684 protected:
686 ZoneBankElement(uint8_t *ptr, size_t size);
687
688 public:
690 ZoneBankElement(uint8_t *ptr);
691
692 void clear();
693
695 static constexpr unsigned int size() { return 0x03cf8; }
696
698 virtual unsigned int zoneCount() const;
700 virtual void setZoneCount(unsigned int count);
701
703 virtual unsigned int upZoneIndex() const;
705 virtual void setUpZoneIndex(unsigned int index);
707 virtual unsigned int downZoneIndex() const;
709 virtual void setDownZoneIndex(unsigned int index);
710
712 virtual ZoneElement zone(unsigned int index) const;
713
715 virtual bool decode(Context &ctx, const ErrorStack &err = ErrorStack()) const;
717 virtual bool link(Context &ctx, const ErrorStack &err = ErrorStack()) const;
719 virtual bool encode(Context &ctx, const ErrorStack &err = ErrorStack());
720
721 public:
723 struct Limit {
725 static constexpr unsigned int zoneCount() { return 150; }
726 };
727
728 protected:
730 struct Offset {
732 static constexpr unsigned int zoneCount() { return 0x0000; }
733 static constexpr unsigned int upZoneIndex() { return 0x0002; }
734 static constexpr unsigned int downZoneIndex() { return 0x0004; }
735 static constexpr unsigned int zones() { return 0x0008; }
737 };
738 };
739
740
746 {
747 public:
749 enum class PowerSaveMode {
750 Off = 0, Save50 = 1, Save25 = 2, Save12 = 3
751 };
752
754 enum class Language {
755 SimplifiedChinese = 0, English = 1
756 };
757
759 enum class SquelchMode {
760 Normal = 0, Silent = 1
761 };
762
764 enum class RingTone {
765 Off = 0, RingTone1 = 1, RingTone2 = 2, RingTone3 = 3, RingTone4 = 4, RingTone5 = 5,
766 RingTone6 = 6, RingTone7 = 7, RingTone8 = 8, RingTone9 = 9, RingTone10 = 10, RingTone11 = 11,
767 RingTone12 = 12, RingTone13 = 13, RingTone14 = 14, RingTone15 = 15, RingTone16 = 16,
768 RingTone17 = 17, RingTone18 = 18, RingTone19 = 19, RingTone20 = 20
769 };
770
772 enum class BacklightTime {
773 Infinite = 0, Off = 1, On5s = 2, On10s = 3
774 };
775
777 enum class TuningMode {
778 Channel = 0, VFO = 1
779 };
780
782 enum class DisplayMode {
783 Number = 0, Name = 1, Frequency = 2
784 };
785
787 enum class DualWatchMode {
788 Off = 0, DoubleDouble = 1, DoubleSingle = 2
789 };
790
792 enum class ScanMode {
793 Time = 0, Carrier = 1, Search = 2
794 };
795
797 enum class BootScreen {
798 Picture = 0, Text = 1
799 };
800
801 protected:
803 SettingsElement(uint8_t *ptr, size_t size);
804
805 public:
807 SettingsElement(uint8_t *ptr);
808
809 void clear();
810
812 static constexpr unsigned int size() { return 0x00064; }
813
815 virtual unsigned int dmrID() const;
817 virtual void setDMRID(unsigned int id);
818
820 virtual PowerSaveMode powerSaveMode() const;
822 virtual void setPowerSaveMode(PowerSaveMode mode);
823
826 virtual Level voxSensitivity() const;
829 virtual void setVOXSensitivity(Level sens);
831 virtual unsigned int voxDelay() const;
833 virtual void setVOXDelay(unsigned int ms);
834
836 virtual bool encryptionEnabled() const;
838 virtual void enableEncryption(bool enable);
839
841 virtual bool keyLockEnabled() const;
843 virtual void enableKeyLock(bool enable);
845 virtual unsigned int keyLockDelay() const;
847 virtual void setKeyLockDelay(unsigned int sec);
849 virtual bool lockSideKey1() const;
851 virtual void enableLockSideKey1(bool enable);
853 virtual bool lockSideKey2() const;
855 virtual void enableLockSideKey2(bool enable);
857 virtual bool lockPTT() const;
859 virtual void enableLockPTT(bool enable);
860
862 virtual Language language() const;
864 virtual void setLanguage(Language lang);
865
867 virtual SquelchMode squelchMode() const;
869 virtual void setSquelchMode(SquelchMode mode);
870
872 virtual bool rogerTonesEnabled() const;
874 virtual void enableRogerTones(bool enable);
876 virtual bool dmrCallOutToneEnabled() const;
878 virtual void enableDMRCallOutTone(bool enable);
880 virtual bool dmrVoiceEndToneEnabled() const;
882 virtual void enableDMRVoiceEndTone(bool enable);
884 virtual bool dmrCallEndToneEnabled() const;
886 virtual void enableDMRCallEndTone(bool enable);
888 virtual bool fmVoiceEndToneEnabled() const;
890 virtual void enableFMVoiceEndTone(bool enable);
892 virtual bool fmCallOutToneEnabled() const;
894 virtual void enableFMCallOutTone(bool enable);
896 virtual bool messageToneEnabled() const;
898 virtual void enableMessageTone(bool enable);
899
901 virtual RingTone ringTone() const;
903 virtual void setRingTone(RingTone tone);
904
906 virtual QString radioName() const;
908 virtual void setRadioName(const QString &name);
909
911 virtual float reverseBurstFrequency() const;
913 virtual void setReverseBurstFrequency(float Hz);
914
916 virtual BacklightTime backlightTime() const;
918 virtual void setBacklightTime(BacklightTime time);
919
921 virtual bool campandingEnabled() const;
923 virtual void enableCampanding(bool enable);
924
926 virtual TuningMode tunigModeUp() const;
928 virtual void setTuningModeUp(TuningMode mode);
930 virtual TuningMode tunigModeDown() const;
932 virtual void setTuningModeDown(TuningMode mode);
933
935 virtual DisplayMode displayMode() const;
937 virtual void setDisplayMode(DisplayMode mode);
938
940 virtual DualWatchMode dualWatchMode() const;
942 virtual void setDualWatchMode(DualWatchMode mode);
943
945 virtual ScanMode scanMode() const;
947 virtual void setScanMode(ScanMode mode);
948
950 virtual BootScreen bootScreen() const;
952 virtual void setBootScreen(BootScreen mode);
953
955 virtual QString bootLine1() const;
957 virtual void setBootLine1(const QString &line);
959 virtual QString bootLine2() const;
961 virtual void setBootLine2(const QString &line);
962
964 virtual bool ledEnabled() const;
966 virtual void enableLED(bool enabled);
967
969 virtual unsigned int loneWorkerResponseTime() const;
971 virtual void setLoneWorkerResponseTime(unsigned int sec);
973 virtual unsigned int loneWorkerReminderTime() const;
975 virtual void setLoneWorkerReminderTime(unsigned int sec);
976
978 virtual bool bootPasswordEnabled() const;
980 virtual QString bootPassword() const;
982 virtual void setBootPassword(const QString &passwd);
984 virtual void clearBootPassword();
985
987 virtual bool progPasswordEnabled() const;
989 virtual QString progPassword() const;
991 virtual void setProgPassword(const QString &passwd);
993 virtual void clearProgPassword();
994
996 virtual bool updateConfig(Config *config, const ErrorStack &err=ErrorStack());
998 virtual bool fromConfig(Config *config, const ErrorStack &err=ErrorStack());
999
1000 protected:
1002 struct Offset: Element::Offset {
1004 static constexpr unsigned int dmrID() { return 0x0000; }
1005 static constexpr unsigned int powerSaveEnabled() { return 0x0008; }
1006 static constexpr unsigned int powerSaveMode() { return 0x0009; }
1007 static constexpr unsigned int voxSensitivity() { return 0x000a; }
1008 static constexpr unsigned int voxDelay() { return 0x000c; }
1009 static constexpr unsigned int encryptionEnabled() { return 0x000d; }
1010 static constexpr unsigned int keyLockDelay() { return 0x000e; }
1011 static constexpr Bit lockPTT() { return {0x000f, 0}; }
1012 static constexpr Bit lockSideKey1() { return {0x000f, 1}; }
1013 static constexpr Bit lockSideKey2() { return {0x000f, 2}; }
1014 static constexpr unsigned int language() { return 0x0010; }
1015 static constexpr unsigned int squelchMode() { return 0x0011; }
1016 static constexpr unsigned int rogerTonesEnabled() { return 0x0013; }
1017 static constexpr unsigned int keyLockEnabled() { return 0x0017; }
1018 static constexpr unsigned int ringTone() { return 0x0016; }
1019 static constexpr unsigned int radioName() { return 0x0018; }
1020 static constexpr Bit dmrCallOutToneEnabled() { return {0x0028, 1}; }
1021 static constexpr Bit fmCallOutToneEnabled() { return {0x0028, 2}; }
1022 static constexpr Bit dmrVoiceEndToneEnabled() { return {0x0028, 3}; }
1023 static constexpr Bit fmVoiceEndToneEnabled() { return {0x0028, 4}; }
1024 static constexpr Bit dmrCallEndToneEnabled() { return {0x0028, 5}; }
1025 static constexpr Bit messageToneEnabled() { return {0x0028, 6}; }
1026 static constexpr unsigned int reverseBurstFrequency() { return 0x002c; }
1027 static constexpr unsigned int backlightTime() { return 0x002f; }
1028 static constexpr unsigned int voxEnabled() { return 0x0030; }
1029 static constexpr unsigned int campandingEnabled() { return 0x0032; }
1030 static constexpr unsigned int tuningModeUp() { return 0x0036; }
1031 static constexpr unsigned int tunigModeDown() { return 0x0037; }
1032 static constexpr unsigned int displayMode() { return 0x003c; }
1033 static constexpr unsigned int dualWatchMode() { return 0x003d; }
1034 static constexpr unsigned int scanMode() { return 0x003e; }
1035 static constexpr unsigned int bootScreen() { return 0x003f; }
1036 static constexpr unsigned int bootLine1() { return 0x0040; }
1037 static constexpr unsigned int bootLine2() { return 0x0048; }
1038 static constexpr unsigned int ledEnabled() { return 0x0050; }
1039 static constexpr unsigned int loneWorkerResponseTime() { return 0x0051; }
1040 static constexpr unsigned int loneWorkerReminderTime() { return 0x005c; }
1041 static constexpr Bit progPasswordEnabled() { return {0x0052, 0}; }
1042 static constexpr Bit bootPasswordEnabled() { return {0x0052, 1}; }
1043 static constexpr unsigned int progPasswordLength() { return 0x0053; }
1044 static constexpr unsigned int progPassword() { return 0x0054; }
1045 static constexpr unsigned int boolPasswordLength() { return 0x005d; }
1046 static constexpr unsigned int bootPassword() { return 0x005e; }
1048 };
1049
1050 public:
1052 struct Limit: Element::Limit {
1054 static constexpr unsigned int radioNameLength() { return 16; }
1056 static constexpr unsigned int bootLineLength() { return 8; }
1058 static constexpr unsigned int bootPasswordLength() { return 6; }
1060 static constexpr unsigned int progPasswordLength() { return 6; }
1062 static constexpr Range<unsigned int> vox() { return {1, 3}; }
1063 };
1064 };
1065
1066
1072 {
1073 public:
1075 enum class PriorityChannel {
1076 None = 0, Fixed = 1, Selected = 2
1077 };
1078
1080 enum class RevertChannel {
1081 LastActive = 0, Fixed = 1, Selected = 2
1082 };
1083
1084 protected:
1086 ScanListElement(uint8_t *ptr, size_t size);
1087
1088 public:
1090 ScanListElement(uint8_t *ptr);
1091
1092 bool isValid() const;
1093 void clear();
1094
1096 static constexpr unsigned int size() { return 0x00050; }
1097
1099 virtual unsigned int index() const;
1101 virtual void setIndex(unsigned int idx);
1102
1104 virtual unsigned int entryCount() const;
1106 virtual void setEntryCount(unsigned int num);
1107
1109 virtual PriorityChannel priorityChannel1() const;
1111 virtual void setPriorityChannel1(PriorityChannel mode);
1113 virtual unsigned int priorityChannel1Index() const;
1115 virtual void setPriorityChannel1Index(unsigned int index);
1116
1118 virtual PriorityChannel priorityChannel2() const;
1120 virtual void setPriorityChannel2(PriorityChannel mode);
1122 virtual unsigned int priorityChannel2Index() const;
1124 virtual void setPriorityChannel2Index(unsigned int index);
1125
1127 virtual RevertChannel revertChannel() const;
1129 virtual void setRevertChannel(RevertChannel mode);
1131 virtual unsigned int revertChannelIndex() const;
1133 virtual void setRevertChannelIndex(unsigned int index);
1134
1136 virtual QString name() const;
1138 virtual void setName(const QString &name);
1139
1141 virtual unsigned int entryIndex(unsigned int n);
1143 virtual void setEntryIndex(unsigned int n, unsigned int index);
1144
1146 virtual ScanList *toScanListObj(Context &ctx, const ErrorStack &err=ErrorStack());
1148 virtual bool linkScanListObj(ScanList *obj, Context &ctx, const ErrorStack &err=ErrorStack());
1150 virtual bool encode(ScanList *obj, Context &ctx, const ErrorStack &err=ErrorStack());
1151
1152 protected:
1154 struct Offset {
1156 static constexpr unsigned int index() { return 0x0000; }
1157 static constexpr unsigned int name() { return 0x0010; }
1158 static constexpr unsigned int priorityChannel1() { return 0x0002; }
1159 static constexpr unsigned int priorityChannel1Index() { return 0x0004; }
1160 static constexpr unsigned int priorityChannel2() { return 0x0003; }
1161 static constexpr unsigned int priorityChannel2Index() { return 0x0006; }
1162 static constexpr unsigned int revertChannel() { return 0x0008; }
1163 static constexpr unsigned int revertChannelIndex() { return 0x000a; }
1164 static constexpr unsigned int memberCount() { return 0x0001; }
1165 static constexpr unsigned int memberIndices() { return 0x0030; }
1167 };
1168
1169 public:
1171 struct Limit {
1173 static constexpr unsigned int nameLength() { return 32; }
1175 static constexpr unsigned int memberCount() { return 16; }
1176 };
1177 };
1178
1186 {
1187 protected:
1189 ScanListBankElement(uint8_t *ptr, size_t size);
1190
1191 public:
1193 ScanListBankElement(uint8_t *ptr);
1194
1195 void clear();
1196
1198 static constexpr unsigned int size() { return 0x00324; }
1199
1201 virtual unsigned int scanListCount() const;
1203 virtual void setScanListCount(unsigned int count);
1204
1206 virtual ScanListElement scanList(unsigned int index) const;
1207
1209 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
1211 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const;
1213 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1214
1215 protected:
1217 struct Offset {
1219 static constexpr unsigned int scanListCount() { return 0x0000; }
1220 static constexpr unsigned int scanLists() { return 0x0004; }
1222 };
1223
1224 public:
1226 struct Limit {
1228 static constexpr unsigned int scanListCount() { return 10; }
1229 };
1230 };
1231
1232
1238 {
1239 protected:
1241 MessageElement(uint8_t *ptr, size_t size);
1242
1243 public:
1245 MessageElement(uint8_t *ptr);
1246
1247 void clear();
1248 bool isValid() const;
1249
1251 static constexpr unsigned int size() { return 0x0044; }
1252
1254 virtual unsigned int index() const;
1256 virtual void setIndex(unsigned int index);
1257
1259 virtual QString text() const;
1261 virtual void setText(const QString &text);
1262
1263 protected:
1265 struct Offset {
1267 static constexpr unsigned int index() { return 0x0000; }
1268 static constexpr unsigned int textLength() { return 0x0001; }
1269 static constexpr unsigned int text() { return 0x0004; }
1271 };
1272
1273 public:
1275 struct Limit {
1277 static constexpr unsigned int textLength() { return 64; }
1278 };
1279 };
1280
1289 {
1290 protected:
1292 MessageBankElement(uint8_t *ptr, size_t size);
1293
1294 public:
1296 MessageBankElement(uint8_t *ptr);
1297
1298 void clear();
1299
1301 static constexpr unsigned int size() { return 0x00164; }
1302
1304 virtual unsigned int messageCount() const;
1306 virtual void setMessageCount(unsigned int count);
1307
1309 virtual MessageElement message(unsigned int n) const;
1310
1312 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
1314 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1315
1316 public:
1318 struct Limit {
1319 static constexpr unsigned int messageCount() { return 8; }
1320 };
1321
1322 protected:
1324 struct Offset {
1326 static constexpr unsigned int messageCount() { return 0x0000; }
1327 static constexpr unsigned int messages() { return 0x0004; }
1329 };
1330 };
1331
1332
1338 {
1339 public:
1341 enum class Function {
1342 None = 0, ToggleAlertTones = 1, EmergencyOn = 2, EmergencyOff = 3, TogglePower = 4,
1343 Monitor = 5, DeleteNuisance = 6, OneTouch1 = 7, OneTouch2 = 8, OneTouch3 = 9, OneTouch4 = 10,
1344 OneTouch5 = 11, ToggleTalkaround = 13, ToggleScan = 14, ToggleEncryption = 15, ToggleVOX = 16,
1345 ZoneSelect = 17, ToggleLoneWorker = 19, PhoneExit = 20
1346 };
1347
1348 protected:
1350 KeySettingsElement(uint8_t *ptr, size_t size);
1351
1352 public:
1354 KeySettingsElement(uint8_t *ptr);
1355
1356 void clear();
1357
1359 static constexpr unsigned int size() { return 0x00018; }
1360
1362 virtual Function sideKey1Short() const;
1364 virtual void setSideKey1Short(Function func);
1366 virtual Function sideKey1Long() const;
1368 virtual void setSideKey1Long(Function func);
1370 virtual Function sideKey2Short() const;
1372 virtual void setSideKey2Short(Function func);
1374 virtual Function sideKey2Long() const;
1376 virtual void setSideKey2Long(Function func);
1378 virtual Function topKeyShort() const;
1380 virtual void setTopKeyShort(Function func);
1382 virtual Function topKeyLong() const;
1384 virtual void setTopKeyLong(Function func);
1385
1386 protected:
1388 struct Offset {
1390 static constexpr unsigned int sideKey1Short() { return 0x0001; }
1391 static constexpr unsigned int sideKey1Long() { return 0x0002; }
1392 static constexpr unsigned int sideKey2Short() { return 0x0005; }
1393 static constexpr unsigned int sideKey2Long() { return 0x0006; }
1394 static constexpr unsigned int topKeyShort() { return 0x0009; }
1395 static constexpr unsigned int topKeyLong() { return 0x000a; }
1397 };
1398 };
1399
1400
1406 {
1407 protected:
1409 VFOBankElement(uint8_t *ptr, size_t size);
1410
1411 public:
1413 VFOBankElement(uint8_t *ptr);
1414
1415 void clear();
1416
1418 static constexpr unsigned int size() { return 0x0090; }
1419
1421 virtual ChannelElement vfoA() const;
1423 virtual ChannelElement vfoB() const;
1424
1426 virtual QString nameA() const;
1428 virtual void setNameA(const QString &name);
1430 virtual QString nameB() const;
1432 virtual void setNameB(const QString &name);
1433
1434 public:
1436 struct Limit {
1438 static constexpr unsigned int nameLength() { return 20; }
1439 };
1440
1441 protected:
1443 struct Offset {
1445 static constexpr unsigned int vfoA() { return 0x0000; }
1446 static constexpr unsigned int vfoB() { return 0x0034; }
1447 static constexpr unsigned int nameA() { return 0x0068; }
1448 static constexpr unsigned int nameB() { return 0x007c; }
1450 };
1451 };
1452
1453
1459 {
1460 protected:
1462 EncryptionKeyElement(uint8_t *ptr, size_t size);
1463
1464 public:
1466 EncryptionKeyElement(uint8_t *ptr);
1467
1468 void clear();
1469 bool isValid() const;
1470
1472 static constexpr unsigned int size() { return 0x000c; }
1473
1475 virtual unsigned int index() const;
1477 virtual void setIndex(unsigned int index);
1478
1480 virtual unsigned int keyLength() const;
1481
1483 virtual QString key() const;
1485 virtual void setKey(const QString &key);
1486
1488 virtual EncryptionKey *toKeyObj(Context &ctx, const ErrorStack &err=ErrorStack());
1490 virtual bool linkKeyObj(EncryptionKey *obj, Context &ctx, const ErrorStack &err=ErrorStack());
1492 virtual bool encode(EncryptionKey *obj, Context &ctx, const ErrorStack &err=ErrorStack());
1493
1494 public:
1496 struct Limit {
1498 static constexpr unsigned int keyLength() { return 8; }
1499 };
1500
1501 protected:
1503 struct Offset {
1505 static constexpr unsigned int index() { return 0x0000; }
1506 static constexpr unsigned int length() { return 0x0001; }
1507 static constexpr unsigned int key() { return 0x0004; }
1509 };
1510 };
1511
1517 {
1518 protected:
1520 EncryptionKeyBankElement(uint8_t *ptr, size_t size);
1521
1522 public:
1524 EncryptionKeyBankElement(uint8_t *ptr);
1525
1526 void clear();
1527
1529 static constexpr unsigned int size() { return 0x0078;}
1530
1532 virtual EncryptionKeyElement key(unsigned int index) const;
1533
1535 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
1537 virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const;
1539 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
1540
1541 public:
1543 struct Limit {
1545 static constexpr unsigned int keyCount() { return 10; }
1546 };
1547 };
1548
1549
1555 {
1556 protected:
1558 DTMFSystemElement(uint8_t *ptr, size_t size);
1559
1560 public:
1562 DTMFSystemElement(uint8_t *ptr);
1563
1564 void clear();
1565
1567 static constexpr unsigned int size() { return 0x0c; }
1568
1570 virtual bool sideToneEnabled() const;
1572 virtual void enableSideTone(bool enable);
1573
1575 virtual unsigned int preTime() const;
1577 virtual void setPreTime(unsigned int ms);
1578
1580 virtual unsigned int codeDuration() const;
1582 virtual void setCodeDuration(unsigned int ms);
1583
1585 virtual unsigned int codeItervall() const;
1587 virtual void setCodeItervall(unsigned int ms);
1588
1590 virtual unsigned int resetTime() const;
1592 virtual void setResetTime(unsigned int ms);
1593
1594 protected:
1596 struct Offset {
1598 static constexpr unsigned int sideTone() { return 0x0000; }
1599 static constexpr unsigned int preTime() { return 0x0002; }
1600 static constexpr unsigned int codeDuration() { return 0x0004; }
1601 static constexpr unsigned int codeIntervall() { return 0x0006; }
1602 static constexpr unsigned int resetTime() { return 0x0008; }
1604 };
1605 };
1606
1613 {
1614 protected:
1616 DTMFSystemBankElement(uint8_t *ptr, size_t size);
1617
1618 public:
1620 DTMFSystemBankElement(uint8_t *ptr);
1621
1622 void clear();
1623
1625 static constexpr unsigned int size() { return 0x34; }
1626
1628 virtual unsigned int systemCount() const;
1630 virtual void setSystemCount(unsigned int count);
1631
1633 virtual DTMFSystemElement system(unsigned int n) const;
1634
1635 public:
1637 struct Limit {
1639 static constexpr unsigned int systemCount() { return 4; }
1640 };
1641
1642 protected:
1644 struct Offset {
1646 static constexpr unsigned int systemCount() { return 0x0000; }
1647 static constexpr unsigned int systems() { return 0x0004; }
1649 };
1650 };
1651
1652
1658 {
1659 protected:
1661 DTMFIDElement(uint8_t *ptr, size_t size);
1662
1663 public:
1665 DTMFIDElement(uint8_t *ptr);
1666
1667 void clear();
1668
1670 static constexpr unsigned int size() { return 0x0014; }
1671
1672 public:
1674 virtual QString number() const;
1676 virtual void setNumber(const QString &number);
1677
1679 struct Limit {
1681 static constexpr unsigned int numberLength() { return 16; }
1682 };
1683
1684 protected:
1686 virtual unsigned int numberLength() const;
1688 virtual void setNumberLength(unsigned int len);
1689
1691 struct Offset {
1693 static constexpr unsigned int numberLength() { return 0x0000; }
1694 static constexpr unsigned int number() { return 0x0004; }
1696 };
1697
1699 static QVector<QChar> _bin_dtmf_tab;
1700 };
1701
1708 {
1709 protected:
1711 DTMFIDBankElement(uint8_t *ptr, size_t size);
1712
1713 public:
1715 DTMFIDBankElement(uint8_t *ptr);
1716
1717 void clear();
1718
1720 static constexpr unsigned int size() { return 0x0144; }
1721
1723 virtual unsigned int idCount() const;
1725 virtual void setIDCount(unsigned int n);
1726
1728 virtual DTMFIDElement id(unsigned int n) const;
1729
1730 public:
1732 struct Limit {
1734 static constexpr unsigned int idCount() { return 16; }
1735 };
1736
1737 protected:
1739 struct Offset {
1741 static constexpr unsigned int idCount() { return 0x0000; }
1742 static constexpr unsigned int ids() { return 0x0004; }
1744 };
1745 };
1746
1747
1752 class PTTIDElement: public Element
1753 {
1754 public:
1756 enum class Transmit {
1757 None = 0, Start = 1, End = 2, Both = 3
1758 };
1759
1760 enum class IDMode {
1761 Forbidden = 0, Each = 1, Once = 2
1762 };
1763
1764 protected:
1766 PTTIDElement(uint8_t *ptr, size_t size);
1767
1768 public:
1770 PTTIDElement(uint8_t *ptr);
1771
1772 void clear();
1773
1775 static constexpr unsigned int size() { return 0x14; }
1776
1778 virtual bool hasDTMFSystem() const;
1780 virtual unsigned int dtmfSystemIndex() const;
1782 virtual void setDTMFSystemIndex(unsigned int index);
1784 virtual void clearDTMFSystem();
1785
1787 virtual Transmit transmitMode() const;
1789 virtual void setTransmitMode(Transmit mode);
1790
1792 virtual IDMode idMode() const;
1794 virtual void setIDMode(IDMode mode);
1795
1797 virtual bool hasBOTID() const;
1799 virtual unsigned int botIDIndex() const;
1801 virtual void setBOTIDIndex(unsigned int index);
1803 virtual void clearBOTID();
1804
1806 virtual bool hasEOTID() const;
1808 virtual unsigned int eotIDIndex() const;
1810 virtual void setEOTIDIndex(unsigned int index);
1812 virtual void clearEOTID();
1813
1814 protected:
1816 struct Offset {
1818 static constexpr unsigned int dtmfSystemIndex() { return 0x0000; }
1819 static constexpr unsigned int transmitMode() { return 0x0001; }
1820 static constexpr unsigned int idMode() { return 0x0002; }
1821 static constexpr unsigned int botIDIndex() { return 0x0003; }
1822 static constexpr unsigned int eotIDIndex() { return 0x0004; }
1824 };
1825 };
1826
1833 {
1834 protected:
1836 PTTIDBankElement(uint8_t *ptr, size_t size);
1837
1838 public:
1840 PTTIDBankElement(uint8_t *ptr);
1841
1842 void clear();
1843
1845 static constexpr unsigned int size() { return 0x0104; }
1846
1848 virtual unsigned int idCount() const;
1850 virtual void setPTTIDCount(unsigned int n);
1851
1853 virtual PTTIDElement pttID(unsigned int n);
1854
1855 public:
1857 struct Limit {
1859 static constexpr unsigned int idCount() { return 16; }
1860 };
1861
1862 protected:
1864 struct Offset {
1866 static constexpr unsigned int idCount() { return 0x0000; }
1867 static constexpr unsigned int ids() { return 0x0004; }
1869 };
1870 };
1871
1872
1878 {
1879 public:
1881 enum class NonNumber {
1882 None = 0, A=0xa, B=0xb, C=0xc, D=0xd, Asterisk=0xe, Gate=0xf
1883 };
1884
1885 enum class Response {
1886 None=0, Reminder=1, Reply=2, Both=3
1887 };
1888
1889 enum class Kill {
1890 DisableTX = 0, DisableRXandTX = 1
1891 };
1892
1893 protected:
1895 DTMFSettingsElement(uint8_t *ptr, size_t size);
1896
1897 public:
1899 DTMFSettingsElement(uint8_t *ptr);
1900
1901 void clear();
1902
1904 static constexpr unsigned int size() { return 0x029c; }
1905
1907 virtual QString radioID() const;
1909 virtual void setRadioID(const QString &id);
1911 virtual QString killCode() const;
1913 virtual void setKillCode(const QString &code);
1915 virtual QString wakeCode() const;
1917 virtual void setWakeCode(const QString &code);
1918
1920 virtual NonNumber delimiter() const;
1922 virtual void setDelimiter(NonNumber code);
1924 virtual NonNumber groupCode() const;
1926 virtual void setGroupCode(NonNumber code);
1927
1929 virtual Response response() const;
1931 virtual void setResponse(Response resp);
1932
1934 virtual unsigned int autoResetTime() const;
1936 virtual void setAutoResetTime(unsigned int sec);
1937
1939 virtual bool killWakeEnabled() const;
1941 virtual void enableKillWake(bool enable);
1942
1944 virtual Kill killType() const;
1946 virtual void setKillType(Kill type);
1947
1949 virtual DTMFSystemBankElement dtmfSystems() const;
1951 virtual DTMFIDBankElement dtmfIDs() const;
1953 virtual PTTIDBankElement pttIDs() const;
1954
1955 public:
1957 struct Limit {
1959 static constexpr unsigned int radioIDLength() { return 5; }
1961 static constexpr unsigned int killCodeLength() { return 6; }
1963 static constexpr unsigned int wakeCodeLength() { return 6; }
1964 };
1965
1966 protected:
1968 struct Offset {
1970 static constexpr unsigned int radioID() { return 0x0000; }
1971 static constexpr unsigned int radioIDLength() { return 0x0005; }
1972 static constexpr unsigned int killCode() { return 0x0008; }
1973 static constexpr unsigned int killCodeLength() { return 0x000e; }
1974 static constexpr unsigned int wakeCode() { return 0x0010; }
1975 static constexpr unsigned int wakeCodeLength() { return 0x0016; }
1976 static constexpr unsigned int delimiter() { return 0x0018; }
1977 static constexpr unsigned int groupCode() { return 0x0019; }
1978 static constexpr unsigned int response() { return 0x001a; }
1979 static constexpr unsigned int autoResetTime() { return 0x001b; }
1980 static constexpr unsigned int killWake() { return 0x001c; }
1981 static constexpr unsigned int killType() { return 0x001d; }
1982 static constexpr unsigned int dtmfSystems() { return 0x0020; }
1983 static constexpr unsigned int dtmfIDs() { return 0x0054; }
1984 static constexpr unsigned int pttIDs() { return 0x0198; }
1986 };
1987 };
1988
1989
1995 {
1996 protected:
1998 AlarmSystemElement(uint8_t *ptr, size_t size);
1999
2000 public:
2002 AlarmSystemElement(uint8_t *ptr);
2003
2004 void clear();
2005 bool isValid() const;
2006
2008 static constexpr unsigned int size() { return 0x0018; }
2009
2011 virtual unsigned int index() const;
2013 virtual void setIndex(unsigned int index);
2015 virtual void clearIndex();
2016
2018 virtual bool alarmEnabled() const;
2020 virtual void enableAlarm(bool enable);
2021
2023 virtual bool noAlarmChannel() const;
2025 virtual bool alarmChannelIsSelected() const;
2027 virtual unsigned int alarmChannelIndex() const;
2029 virtual void setAlarmChannelIndex(unsigned int index);
2031 virtual void setAlarmChannelSelected();
2033 virtual void clearAlarmChannel();
2034
2036 virtual QString name() const;
2038 virtual void setName(const QString &name);
2039
2040 public:
2042 struct Limit {
2044 static constexpr unsigned int nameLength() { return 16; }
2045 };
2046
2047 protected:
2049 struct Offset {
2051 static constexpr unsigned int index() { return 0x0000; }
2052 static constexpr unsigned int alarmEnabled() { return 0x0001; }
2053 static constexpr unsigned int alarmChannelIndex() { return 0x0004; }
2054 static constexpr unsigned int name() { return 0x0008; }
2056 };
2057 };
2058
2066 {
2067 protected:
2069 AlarmSystemBankElement(uint8_t *ptr, size_t size);
2070
2071 public:
2073 AlarmSystemBankElement(uint8_t *ptr);
2074
2075 void clear();
2076
2078 static constexpr unsigned int size() { return 0x00c4; }
2079
2081 virtual unsigned int alarmSystemCount() const;
2083 virtual void setAlarmSystemCount(unsigned int n);
2084
2086 virtual AlarmSystemElement alarmSystem(unsigned int n) const;
2087
2088 public:
2090 struct Limit {
2092 static constexpr unsigned int alarmSystemCount() { return 8; }
2093 };
2094
2095 protected:
2097 struct Offset {
2099 static constexpr unsigned int alarmSystemCount() { return 0x0000; }
2100 static constexpr unsigned int alarmSystems() { return 0x0004; }
2102 };
2103 };
2104
2105
2111 {
2112 public:
2114 enum class SMSFormat {
2115 CompressedIP = 0, DefinedData = 1, IPData = 2
2116 };
2117
2118 protected:
2120 DMRSettingsElement(uint8_t *ptr, size_t size);
2121
2122 public:
2124 DMRSettingsElement(uint8_t *ptr);
2125
2126 void clear();
2127
2129 static constexpr unsigned int size() { return 0x0010; }
2130
2132 virtual Interval callHangTime() const;
2134 virtual void setCallHangTime(const Interval &dur);
2135
2137 virtual unsigned int remoteListen() const;
2139 virtual void setRemoteListen(unsigned int sec);
2140
2142 virtual unsigned int activeWait() const;
2144 virtual void setActiveWait(unsigned int ms);
2145
2147 virtual unsigned int activeResend() const;
2149 virtual void setActiveResend(unsigned int count);
2150
2152 virtual unsigned int preSend() const;
2154 virtual void setPreSend(unsigned int count);
2155
2157 virtual unsigned int voiceHead() const;
2159 virtual void setVoiceHead(unsigned int count);
2160
2162 virtual SMSFormat smsFormat() const;
2164 virtual void setSMSFormat(SMSFormat format);
2165
2167 virtual bool killEnc() const;
2169 virtual void enableKillEnc(bool enable);
2171 virtual bool killDec() const;
2173 virtual void enableKillDec(bool enable);
2174
2176 virtual bool activeEnc() const;
2178 virtual void enableActiveEnc(bool enable);
2180 virtual bool activeDec() const;
2182 virtual void enableActiveDec(bool enable);
2183
2185 virtual bool checkEnc() const;
2187 virtual void enableCheckEnc(bool enable);
2189 virtual bool checkDec() const;
2191 virtual void enableCheckDec(bool enable);
2192
2194 virtual bool callAlterEnc() const;
2196 virtual void enableCallAlterEnc(bool enable);
2198 virtual bool callAlterDec() const;
2200 virtual void enableCallAlterDec(bool enable);
2201
2203 virtual bool remoteMonitorEnc() const;
2205 virtual void enableRemoteMonitorEnc(bool enable);
2207 virtual bool remoteMonitorDec() const;
2209 virtual void enableRemoteMonitorDec(bool enable);
2210
2212 virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const;
2214 virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack());
2215
2216
2217 public:
2219 struct Limit: public Element::Limit {
2221 static constexpr Range<Interval> holdTime() {
2223
2224 static constexpr Range<unsigned int> remoteListen() { return {10, 120}; }
2226 static constexpr Range<unsigned int> activeWait() { return {120, 600}; }
2228 static constexpr Range<unsigned int> activeResend() { return {1, 10}; }
2230 static constexpr Range<unsigned int> preSend() { return {4, 15}; }
2232 static constexpr Range<unsigned int> voiceHead() { return {0, 20}; }
2233 };
2234
2235 protected:
2237 struct Offset: public Element::Offset {
2239 static constexpr unsigned int holdTime() { return 0x0000; }
2240 static constexpr unsigned int remoteListen() { return 0x0001; }
2241 static constexpr unsigned int activeWait() { return 0x0002; }
2242 static constexpr unsigned int activeResend() { return 0x0003; }
2243 static constexpr unsigned int preSend() { return 0x0004; }
2244 static constexpr unsigned int killEnc() { return 0x0005; }
2245 static constexpr unsigned int activeEnc() { return 0x0006; }
2246 static constexpr unsigned int checkEnc() { return 0x0007; }
2247 static constexpr unsigned int killDec() { return 0x0008; }
2248 static constexpr unsigned int activeDec() { return 0x0009; }
2249 static constexpr unsigned int checkDec() { return 0x000a; }
2250 static constexpr unsigned int smsFormat() { return 0x000b; }
2251 static constexpr unsigned int voiceHead() { return 0x000c; }
2252 static constexpr Bit callAlterEnc() { return {0x000d, 0}; }
2253 static constexpr Bit callAlterDec() { return {0x000d, 1}; }
2254 static constexpr Bit remoteMonitorEnc() { return {0x000d, 2}; }
2255 static constexpr Bit remoteMonitorDec() { return {0x000d, 3}; }
2257 };
2258 };
2259
2260
2266 {
2267 public:
2269 enum class Action {
2270 Call = 0, Message = 1
2271 };
2272
2273 enum class Type {
2274 Disabled = 0, DMR=1, FM=2
2275 };
2276
2277 protected:
2279 OneTouchSettingElement(uint8_t *ptr, size_t size);
2280
2281 public:
2283 OneTouchSettingElement(uint8_t *ptr);
2284
2285 void clear();
2286
2288 static constexpr unsigned int size() { return 0x0008; }
2289
2291 bool isValid() const;
2292
2294 virtual bool hasContact() const;
2296 virtual unsigned int contactIndex() const;
2298 virtual void setContactIndex(unsigned int index);
2300 virtual void clearContact();
2301
2303 virtual Action action() const;
2305 virtual void setAction(Action action);
2306
2308 virtual bool hasMessage() const;
2310 virtual unsigned int messageIndex() const;
2312 virtual void setMessageIndex(unsigned int index);
2314 virtual void clearMessage();
2315
2317 virtual Type type() const;
2319 virtual void setType(Type type);
2320
2322 virtual bool hasDTMFID() const;
2324 virtual unsigned int dtmfIDIndex() const;
2326 virtual void setDTMFIDIndex(unsigned int index);
2328 virtual void clearDTMFIDIndex();
2329
2330 protected:
2332 struct Offset {
2334 static constexpr unsigned int contactIndex() { return 0x0000; }
2335 static constexpr unsigned int action() { return 0x0002; }
2336 static constexpr unsigned int messageIndex() { return 0x0003; }
2337 static constexpr unsigned int type() { return 0x0004; }
2338 static constexpr unsigned int dtmfIDIndex() { return 0x0005; }
2340 };
2341 };
2342
2350 {
2351 protected:
2353 OneTouchSettingsElement(uint8_t *ptr, size_t size);
2354
2355 public:
2357 OneTouchSettingsElement(uint8_t *ptr);
2358
2359 void clear();
2360
2362 static constexpr unsigned int size() { return 0x0028; }
2363
2365 virtual unsigned int settingsCount() const;
2366
2368 virtual OneTouchSettingElement setting(unsigned int n) const;
2369
2370 public:
2372 struct Limit {
2374 static constexpr unsigned int settingsCount() { return 5; }
2375 };
2376
2377 protected:
2379 struct Offset {
2381 static constexpr unsigned int settings() { return 0x0000; }
2383 };
2384 };
2385
2386
2387public:
2389 explicit DR1801UVCodeplug(QObject *parent = nullptr);
2390
2391 Config * preprocess(Config *config, const ErrorStack &err) const;
2392 bool postprocess(Config *config, const ErrorStack &err) const;
2393
2394 bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const;
2395 bool encode(Config *config, const Flags &flags, const ErrorStack &err=ErrorStack());
2396 bool decode(Config *config, const ErrorStack &err=ErrorStack());
2397
2398protected:
2400 virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
2402 virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack());
2404 virtual bool encodeElements(Context &ctx, const ErrorStack &err=ErrorStack());
2405
2406protected:
2408 struct Offset {
2410 static constexpr unsigned int size() { return 0x1dd90; }
2411 static constexpr unsigned int settings() { return 0x003b4; }
2412 static constexpr unsigned int zoneBank() { return 0x00418; }
2413 static constexpr unsigned int messageBank() { return 0x04110; }
2414 static constexpr unsigned int contactBank() { return 0x04334; }
2415 static constexpr unsigned int scanListBank() { return 0x0a338; }
2416 static constexpr unsigned int channelBank() { return 0x0a65c; }
2417 static constexpr unsigned int keySettings() { return 0x1c6c4; }
2418 static constexpr unsigned int groupListBank() { return 0x1c6dc; }
2419 static constexpr unsigned int encryptionKeyBank() { return 0x1d7e0; }
2420 static constexpr unsigned int dtmfSettings() { return 0x1d858; }
2421 static constexpr unsigned int alarmSettings() { return 0x1daf4; }
2422 static constexpr unsigned int dmrSettings() { return 0x1dbb8; }
2423 static constexpr unsigned int vfoBank() { return 0x1dd00; }
2425 };
2426};
2427
2428#endif // DR1801UVCODEPLUG_HH
The base class of all channels (analog and digital) of a codeplug configuration.
Definition channel.hh:37
Power
Specifies the prefix for every ID assigned to every channel during serialization.
Definition channel.hh:64
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
Codeplug(QObject *parent=nullptr)
Hidden default constructor.
Definition codeplug.cc:872
The config class, representing the codeplug configuration.
Definition config.hh:70
uint32_t size() const
Returns the total size of the DFU file.
Definition dfufile.cc:52
TimeSlot
Possible timeslots for digital channels.
Definition channel.hh:439
Represents a digital contact, that is a DMR number.
Definition contact.hh:141
Type
Possible call types for a contact.
Definition contact.hh:155
virtual AlarmSystemElement alarmSystem(unsigned int n) const
Returns a reference to the n-th alarm system.
Definition dr1801uv_codeplug.cc:2813
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2799
virtual void setAlarmSystemCount(unsigned int n)
Sets the number of alarm systems.
Definition dr1801uv_codeplug.cc:2808
virtual unsigned int alarmSystemCount() const
Returns the number of alarm systems defined.
Definition dr1801uv_codeplug.cc:2804
AlarmSystemBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2786
static constexpr unsigned int size()
The size of the alarm system bank.
Definition dr1801uv_codeplug.hh:2078
Implements the binary encoding of the alarm system.
Definition dr1801uv_codeplug.hh:1995
virtual bool noAlarmChannel() const
Returns true if no alarm channel is specified.
Definition dr1801uv_codeplug.cc:2866
virtual QString name() const
Returns the name.
Definition dr1801uv_codeplug.cc:2891
virtual void setAlarmChannelIndex(unsigned int index)
Sets the alarm channel index.
Definition dr1801uv_codeplug.cc:2878
AlarmSystemElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2821
virtual void clearAlarmChannel()
Clears the alarm channel.
Definition dr1801uv_codeplug.cc:2886
virtual unsigned int index() const
Returns the index of the system.
Definition dr1801uv_codeplug.cc:2844
virtual void enableAlarm(bool enable)
Enables/disables the alarm.
Definition dr1801uv_codeplug.cc:2861
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2834
bool isValid() const
Returns true if the pointer is not null.
Definition dr1801uv_codeplug.cc:2839
virtual bool alarmChannelIsSelected() const
Returns true if the alarm channel is the current channel.
Definition dr1801uv_codeplug.cc:2870
virtual void setIndex(unsigned int index)
Sets the index of the element.
Definition dr1801uv_codeplug.cc:2848
virtual unsigned int alarmChannelIndex() const
Returns the index of the alarm channel.
Definition dr1801uv_codeplug.cc:2874
virtual void setAlarmChannelSelected()
Sets the alarm channel to the selected channel.
Definition dr1801uv_codeplug.cc:2882
virtual void setName(const QString &name)
Sets the system name.
Definition dr1801uv_codeplug.cc:2895
virtual void clearIndex()
Clears the index.
Definition dr1801uv_codeplug.cc:2852
virtual bool alarmEnabled() const
Returns true if the alarm is enabled.
Definition dr1801uv_codeplug.cc:2857
static constexpr unsigned int size()
The size of the alarm system element.
Definition dr1801uv_codeplug.hh:2008
virtual void setChannelCount(unsigned int count)
Sets the number of channels.
Definition dr1801uv_codeplug.cc:35
virtual unsigned int channelCount() const
Returns the number of channels.
Definition dr1801uv_codeplug.cc:31
static constexpr unsigned int size()
Returns the size of the element.
Definition dr1801uv_codeplug.hh:317
ChannelBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:13
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:26
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes all defined channels.
Definition dr1801uv_codeplug.cc:55
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all channels.
Definition dr1801uv_codeplug.cc:99
virtual QString channelName(unsigned int index) const
Returns the name of the channel at the given index.
Definition dr1801uv_codeplug.cc:46
virtual ChannelElement channel(unsigned int index) const
Returns a reference to the channel element that the given index.
Definition dr1801uv_codeplug.cc:41
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const
Links channels.
Definition dr1801uv_codeplug.cc:77
virtual void setChannelName(unsigned int index, const QString &name)
Sets the name of the channel at the given index.
Definition dr1801uv_codeplug.cc:50
Implements the binary encoding of the channels settings.
Definition dr1801uv_codeplug.hh:73
virtual void clearPTTID()
Clears the PTT ID.
Definition dr1801uv_codeplug.cc:437
virtual SelectiveCall txTone() const
Returns the TX CTCSS/DCS signaling.
Definition dr1801uv_codeplug.cc:386
virtual unsigned int scanListIndex() const
Returns the scan list index.
Definition dr1801uv_codeplug.cc:343
virtual DMRChannel::TimeSlot timeSlot() const
Returns the time slot.
Definition dr1801uv_codeplug.cc:239
virtual Frequency rxFrequency() const
Returns the RX frequency in MHz.
Definition dr1801uv_codeplug.cc:187
virtual void setIndex(unsigned int idx)
Sets the index.
Definition dr1801uv_codeplug.cc:149
virtual unsigned int encryptionKeyIndex() const
Returns the encryption key index.
Definition dr1801uv_codeplug.cc:259
virtual void clearTransmitContactIndex()
Clears the contact index.
Definition dr1801uv_codeplug.cc:216
bool isValid() const
Returns true if the pointer is not null.
Definition dr1801uv_codeplug.cc:134
virtual void setGroupListIndex(unsigned int index)
Sets the group-list index.
Definition dr1801uv_codeplug.cc:450
Type
Possible channel types.
Definition dr1801uv_codeplug.hh:76
virtual void setAdmitCriterion(Admit admit)
Sets the admit criterion.
Definition dr1801uv_codeplug.cc:225
virtual void setChannelType(Type type)
Sets the channel type.
Definition dr1801uv_codeplug.cc:158
virtual void setPTTIDIndex(unsigned int idx)
Sets the PTT-ID index.
Definition dr1801uv_codeplug.cc:433
virtual bool hasAlarmSystem() const
Returns true if the alarm system index is set.
Definition dr1801uv_codeplug.cc:298
virtual SignalingMode signalingMode() const
Returns the FM signaling mode.
Definition dr1801uv_codeplug.cc:289
virtual void setRXFrequency(Frequency MHz)
Sets the RX frequency in MHz.
Definition dr1801uv_codeplug.cc:191
virtual bool linkChannelObj(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links the channel object.
Definition dr1801uv_codeplug.cc:510
virtual void setBandwidth(FMChannel::Bandwidth bw)
Sets the band width for FM channels.
Definition dr1801uv_codeplug.cc:323
virtual void setTimeSlot(DMRChannel::TimeSlot ts)
Sets the time slot.
Definition dr1801uv_codeplug.cc:247
virtual void setScanListIndex(unsigned int index)
Sets the scan list index.
Definition dr1801uv_codeplug.cc:347
virtual void setPower(Channel::Power pwr)
Sets the power for the channel.
Definition dr1801uv_codeplug.cc:172
virtual bool talkaround() const
Returns true if talkaround is enabled.
Definition dr1801uv_codeplug.cc:416
virtual bool confirmPrivateCall() const
Returns true if private-call confirmation is enabled.
Definition dr1801uv_codeplug.cc:280
virtual Admit admitCriterion() const
Returns the admit criterion.
Definition dr1801uv_codeplug.cc:221
virtual bool loneWorker() const
Returns true if lone-worker is enabled.
Definition dr1801uv_codeplug.cc:459
virtual unsigned int transmitContactIndex() const
Returns the contact index.
Definition dr1801uv_codeplug.cc:208
virtual unsigned int colorCode() const
Returns the color code (0-15).
Definition dr1801uv_codeplug.cc:230
SignalingMode
Possible FM signaling modes.
Definition dr1801uv_codeplug.hh:92
SubToneType
Possible subtone types.
Definition dr1801uv_codeplug.hh:100
virtual void setSignalingMode(SignalingMode mode)
Sets the FM signaling mode.
Definition dr1801uv_codeplug.cc:293
virtual Frequency txFrequency() const
Returns the TX frequency in MHz.
Definition dr1801uv_codeplug.cc:195
virtual Channel::Power power() const
Returns the power settings of the channel.
Definition dr1801uv_codeplug.cc:163
virtual Type channelType() const
Returns the channel type.
Definition dr1801uv_codeplug.cc:154
virtual void setTXTone(const SelectiveCall &code)
Sets the TX CTCSS/DCS signaling.
Definition dr1801uv_codeplug.cc:398
Bandwidth
Possible band width settings.
Definition dr1801uv_codeplug.hh:96
virtual void clearGroupListIndex()
Clears the group list index.
Definition dr1801uv_codeplug.cc:454
virtual bool hasGroupList() const
Returns true if a group list is assigned.
Definition dr1801uv_codeplug.cc:442
virtual void setColorCode(unsigned int cc)
Sets the color code (0-15).
Definition dr1801uv_codeplug.cc:234
virtual void clearScanListIndex()
Clears the scan list index.
Definition dr1801uv_codeplug.cc:351
virtual bool hasScanList() const
Returns true if a scan list is assigned.
Definition dr1801uv_codeplug.cc:339
virtual void setAlarmSystemIndex(unsigned int index)
Sets the alarm system index.
Definition dr1801uv_codeplug.cc:306
virtual void clearEncryptionKeyIndex()
Clears the encryption key index.
Definition dr1801uv_codeplug.cc:267
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:139
TimeSlot
Possible time-slot values.
Definition dr1801uv_codeplug.hh:88
virtual unsigned int pttIDIndex() const
Returns the PTT-ID index.
Definition dr1801uv_codeplug.cc:429
Admit
Possible values for the admid criterion.
Definition dr1801uv_codeplug.hh:84
virtual void enableDCDM(bool enable)
Enables/disables dual-capacity direct mode.
Definition dr1801uv_codeplug.cc:276
virtual bool hasEncryptionKey() const
Returns true if an ecryption key index is set.
Definition dr1801uv_codeplug.cc:255
virtual void enablePrivateCallConfirmation(bool enable)
Enables/disables private-call confirmation.
Definition dr1801uv_codeplug.cc:284
virtual FMChannel::Bandwidth bandwidth() const
Returns the band width for FM channels.
Definition dr1801uv_codeplug.cc:315
virtual bool dcdm() const
Returns true if dual-capacity direct mode is enabled.
Definition dr1801uv_codeplug.cc:272
virtual Channel * toChannelObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a channel object.
Definition dr1801uv_codeplug.cc:469
virtual void clearAlarmSystemIndex()
Clears the alarm system index.
Definition dr1801uv_codeplug.cc:310
static constexpr unsigned int size()
Returns the size of the element.
Definition dr1801uv_codeplug.hh:120
virtual void setEncryptionKeyIndex(unsigned int index)
Sets the encryption key index.
Definition dr1801uv_codeplug.cc:263
virtual unsigned int groupListIndex() const
Returns the group-list index.
Definition dr1801uv_codeplug.cc:446
virtual bool autoScanEnabled() const
Returns true, if the auto-scan is enabled.
Definition dr1801uv_codeplug.cc:331
virtual void setTransmitContactIndex(unsigned int index)
Sets the transmit contact index.
Definition dr1801uv_codeplug.cc:212
virtual SelectiveCall rxTone() const
Returns the RX CTCSS/DCS signaling.
Definition dr1801uv_codeplug.cc:356
virtual void enableLoneWorker(bool enable)
Enables/disables lone-worker.
Definition dr1801uv_codeplug.cc:463
virtual unsigned int alarmSystemIndex() const
Returns the index of the alarm system.
Definition dr1801uv_codeplug.cc:302
virtual unsigned int index() const
Returns the 0-based index of the channel.
Definition dr1801uv_codeplug.cc:145
virtual bool hasTransmitContact() const
Returns true if a contact index is set.
Definition dr1801uv_codeplug.cc:204
virtual void enableAutoScan(bool enable)
Enables/disables auto-scan.
Definition dr1801uv_codeplug.cc:335
Power
Possible power settings.
Definition dr1801uv_codeplug.hh:80
virtual bool hasPTTID() const
Returns true if a PTT ID is set.
Definition dr1801uv_codeplug.cc:425
virtual bool encode(Channel *channel, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the given channel.
Definition dr1801uv_codeplug.cc:543
DCSMode
Possible DCS modes.
Definition dr1801uv_codeplug.hh:104
ChannelElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:121
virtual void setRXTone(const SelectiveCall &code)
Sets the RX CTCSS/DCS signaling.
Definition dr1801uv_codeplug.cc:368
virtual void enableTalkaround(bool enable)
Enables/disables talkaround.
Definition dr1801uv_codeplug.cc:420
virtual void setTXFrequency(Frequency MHz)
Sets the TX frequency in MHz.
Definition dr1801uv_codeplug.cc:199
virtual void setFirstIndex(unsigned int index)
Sets the index of the first element.
Definition dr1801uv_codeplug.cc:636
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const
Links all contacts.
Definition dr1801uv_codeplug.cc:671
virtual unsigned int firstIndex() const
Returns the index of the first contact.
Definition dr1801uv_codeplug.cc:632
virtual void setContactCount(unsigned int count)
Sets the number of contacts.
Definition dr1801uv_codeplug.cc:626
virtual unsigned int contactCount() const
Returns the number of contacts.
Definition dr1801uv_codeplug.cc:622
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all contacts.
Definition dr1801uv_codeplug.cc:693
virtual ContactElement contact(unsigned int index) const
Returns a reference to the n-th contact.
Definition dr1801uv_codeplug.cc:641
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes all contacts and stores them into the given context and config.
Definition dr1801uv_codeplug.cc:646
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:617
static constexpr unsigned int size()
Returns the size of the element.
Definition dr1801uv_codeplug.hh:457
ContactBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:604
Implements the binary encoding of a contact.
Definition dr1801uv_codeplug.hh:365
virtual void setSuccessorIndex(uint16_t index)
Sets successor index.
Definition dr1801uv_codeplug.cc:747
ContactElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:714
virtual DMRContact * toContactObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a DMR contact object from this contact elmeent.
Definition dr1801uv_codeplug.cc:799
virtual bool linkContactObj(DMRContact *contact, Context &ctx, const ErrorStack &err=ErrorStack())
Links the DMR contact object.
Definition dr1801uv_codeplug.cc:805
virtual void setCallType(DMRContact::Type type)
Sets the call type.
Definition dr1801uv_codeplug.cc:776
virtual void setDMRID(uint32_t id)
Sets the number.
Definition dr1801uv_codeplug.cc:762
virtual QString name() const
Returns the name of the contact.
Definition dr1801uv_codeplug.cc:788
virtual bool encode(DMRContact *contact, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the contact.
Definition dr1801uv_codeplug.cc:811
bool isValid() const
Returns true if the pointer is not null.
Definition dr1801uv_codeplug.cc:727
virtual uint16_t successorIndex() const
Returns the index of the next element.
Definition dr1801uv_codeplug.cc:743
virtual bool hasSuccessor() const
Returns true if the contact has a successor.
Definition dr1801uv_codeplug.cc:739
CallType
Possible call types.
Definition dr1801uv_codeplug.hh:368
virtual void setName(const QString &name)
Sets the name of the contact.
Definition dr1801uv_codeplug.cc:792
virtual void clearSuccessorIndex()
Clears the successor index.
Definition dr1801uv_codeplug.cc:751
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:734
static constexpr unsigned int size()
Returns the size of the element.
Definition dr1801uv_codeplug.hh:384
virtual DMRContact::Type type() const
Returns the call type.
Definition dr1801uv_codeplug.cc:767
virtual uint32_t dmrID() const
Returns the number.
Definition dr1801uv_codeplug.cc:756
virtual void enableActiveDec(bool enable)
Enables active decoding.
Definition dr1801uv_codeplug.cc:3022
virtual bool callAlterEnc() const
Returns true if the call alter encoding is enabled.
Definition dr1801uv_codeplug.cc:3044
virtual Interval callHangTime() const
Returns the hold-time in seconds.
Definition dr1801uv_codeplug.cc:2922
virtual bool activeDec() const
Returns true if the active decoding is enabled.
Definition dr1801uv_codeplug.cc:3018
virtual unsigned int activeResend() const
Returns the active resend count.
Definition dr1801uv_codeplug.cc:2954
virtual void enableRemoteMonitorEnc(bool enable)
Enables remote monitor encoding.
Definition dr1801uv_codeplug.cc:3065
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2916
virtual void setRemoteListen(unsigned int sec)
Sets the remote-listen duration in seconds.
Definition dr1801uv_codeplug.cc:2938
virtual void enableActiveEnc(bool enable)
Enables active encoding.
Definition dr1801uv_codeplug.cc:3014
virtual bool activeEnc() const
Returns true if the active encoding is enabled.
Definition dr1801uv_codeplug.cc:3010
virtual bool checkEnc() const
Returns true if the check encoding is enabled.
Definition dr1801uv_codeplug.cc:3027
virtual void setSMSFormat(SMSFormat format)
Sets the SMS format.
Definition dr1801uv_codeplug.cc:2988
virtual void enableCheckDec(bool enable)
Enables check decoding.
Definition dr1801uv_codeplug.cc:3039
virtual void setActiveResend(unsigned int count)
Sets the active resend count.
Definition dr1801uv_codeplug.cc:2958
virtual void enableRemoteMonitorDec(bool enable)
Enables remote monitor decoding.
Definition dr1801uv_codeplug.cc:3073
virtual void enableCallAlterEnc(bool enable)
Enables call alter encoding.
Definition dr1801uv_codeplug.cc:3048
virtual void setCallHangTime(const Interval &dur)
Sets the hold-time in seconds.
Definition dr1801uv_codeplug.cc:2927
virtual void enableCheckEnc(bool enable)
Enables check encoding.
Definition dr1801uv_codeplug.cc:3031
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:2129
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all keys.
Definition dr1801uv_codeplug.cc:3094
virtual void enableCallAlterDec(bool enable)
Enables call alter decoding.
Definition dr1801uv_codeplug.cc:3056
virtual void enableKillDec(bool enable)
Enables kill decoding.
Definition dr1801uv_codeplug.cc:3005
virtual bool remoteMonitorEnc() const
Returns true if the remote monitor encoding is enabled.
Definition dr1801uv_codeplug.cc:3061
virtual SMSFormat smsFormat() const
Returns the SMS format.
Definition dr1801uv_codeplug.cc:2984
virtual unsigned int remoteListen() const
Returns the remote-listen duration in seconds.
Definition dr1801uv_codeplug.cc:2934
virtual bool remoteMonitorDec() const
Returns true if the remote monitor decoding is enabled.
Definition dr1801uv_codeplug.cc:3069
virtual unsigned int voiceHead() const
Returns the voice head count.
Definition dr1801uv_codeplug.cc:2974
virtual void setVoiceHead(unsigned int count)
Sets the voice head count.
Definition dr1801uv_codeplug.cc:2978
virtual bool checkDec() const
Returns true if the check decoding is enabled.
Definition dr1801uv_codeplug.cc:3035
virtual bool killDec() const
Returns true if the kill decoding is enabled.
Definition dr1801uv_codeplug.cc:3001
DMRSettingsElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2903
SMSFormat
Possible SMS encodings.
Definition dr1801uv_codeplug.hh:2114
virtual void setActiveWait(unsigned int ms)
Sets the active wait period in ms.
Definition dr1801uv_codeplug.cc:2948
virtual bool killEnc() const
Returns true if the kill encoding is enabled.
Definition dr1801uv_codeplug.cc:2993
virtual void enableKillEnc(bool enable)
Enables kill encoding.
Definition dr1801uv_codeplug.cc:2997
virtual bool callAlterDec() const
Returns true if the call alter decoding is enabled.
Definition dr1801uv_codeplug.cc:3052
virtual void setPreSend(unsigned int count)
Sets the pre-send count.
Definition dr1801uv_codeplug.cc:2968
virtual unsigned int activeWait() const
Returns the active wait period in ms.
Definition dr1801uv_codeplug.cc:2944
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes the DMR settings.
Definition dr1801uv_codeplug.cc:3078
virtual unsigned int preSend() const
Returns the pre-send count.
Definition dr1801uv_codeplug.cc:2964
Implements the DTMF ID bank.
Definition dr1801uv_codeplug.hh:1708
DTMFIDBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2571
virtual unsigned int idCount() const
Returns the number of IDs encoded.
Definition dr1801uv_codeplug.cc:2589
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1720
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2584
virtual DTMFIDElement id(unsigned int n) const
Returns a reference to the n-th ID.
Definition dr1801uv_codeplug.cc:2598
virtual void setIDCount(unsigned int n)
Sets the ID count.
Definition dr1801uv_codeplug.cc:2593
Implements the DTMF ID.
Definition dr1801uv_codeplug.hh:1658
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2623
virtual void setNumberLength(unsigned int len)
Sets the number length.
Definition dr1801uv_codeplug.cc:2632
virtual unsigned int numberLength() const
Returns the length of the number.
Definition dr1801uv_codeplug.cc:2628
DTMFIDElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2610
virtual QString number() const
Returns the DTMF code/number.
Definition dr1801uv_codeplug.cc:2637
virtual void setNumber(const QString &number)
Sets the DTMF code/number.
Definition dr1801uv_codeplug.cc:2646
static constexpr unsigned int size()
Size of the element.
Definition dr1801uv_codeplug.hh:1670
static QVector< QChar > _bin_dtmf_tab
Translation table.
Definition dr1801uv_codeplug.hh:2606
virtual PTTIDBankElement pttIDs() const
Returns a reference to the PTT ID bank.
Definition dr1801uv_codeplug.cc:2462
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2360
Kill
Possible kill actions.
Definition dr1801uv_codeplug.hh:1889
virtual QString wakeCode() const
Returns the DTMF wake code as a string.
Definition dr1801uv_codeplug.cc:2387
virtual unsigned int autoResetTime() const
Returns the auto-reset time in seconds [5,60s].
Definition dr1801uv_codeplug.cc:2425
virtual void setAutoResetTime(unsigned int sec)
Set the auto-reset time in seconds.
Definition dr1801uv_codeplug.cc:2429
virtual void setKillType(Kill type)
Sets the kill type.
Definition dr1801uv_codeplug.cc:2447
virtual NonNumber groupCode() const
Returns the group code.
Definition dr1801uv_codeplug.cc:2407
virtual Kill killType() const
Returns the kill type.
Definition dr1801uv_codeplug.cc:2443
virtual void setRadioID(const QString &id)
Sets the DTMF radio ID as a string.
Definition dr1801uv_codeplug.cc:2369
NonNumber
Possible DTMF non-number codes.
Definition dr1801uv_codeplug.hh:1881
Response
Possible responses.
Definition dr1801uv_codeplug.hh:1885
virtual void setResponse(Response resp)
Sets the decode response.
Definition dr1801uv_codeplug.cc:2420
DTMFSettingsElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2347
virtual void setDelimiter(NonNumber code)
Sets the delimiter code.
Definition dr1801uv_codeplug.cc:2402
virtual QString radioID() const
Returns the DTMF radio ID as a string.
Definition dr1801uv_codeplug.cc:2365
virtual void setKillCode(const QString &code)
Sets the DTMF kill code as a string.
Definition dr1801uv_codeplug.cc:2380
virtual void setWakeCode(const QString &code)
Sets the DTMF wake code as a string.
Definition dr1801uv_codeplug.cc:2391
virtual DTMFIDBankElement dtmfIDs() const
Returns a reference to the DTMF IDs.
Definition dr1801uv_codeplug.cc:2457
virtual NonNumber delimiter() const
Returns the delimiter code.
Definition dr1801uv_codeplug.cc:2398
virtual bool killWakeEnabled() const
Returns true if the kill/wake decoding is endabled.
Definition dr1801uv_codeplug.cc:2434
virtual QString killCode() const
Returns the DTMF kill code as a string.
Definition dr1801uv_codeplug.cc:2376
virtual void setGroupCode(NonNumber code)
Sets the group code.
Definition dr1801uv_codeplug.cc:2411
virtual void enableKillWake(bool enable)
Enables/disables the kill/wake decoding.
Definition dr1801uv_codeplug.cc:2438
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1904
virtual DTMFSystemBankElement dtmfSystems() const
Returns a reference to the DTMF systems.
Definition dr1801uv_codeplug.cc:2452
virtual Response response() const
Returns the decode response.
Definition dr1801uv_codeplug.cc:2416
Implements the DTMF systems bank.
Definition dr1801uv_codeplug.hh:1613
virtual void setSystemCount(unsigned int count)
Sets the number of DTMF systems.
Definition dr1801uv_codeplug.cc:2492
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1625
virtual unsigned int systemCount() const
Returns the number of DTMF systems.
Definition dr1801uv_codeplug.cc:2488
virtual DTMFSystemElement system(unsigned int n) const
Returns a reference to the n-th system.
Definition dr1801uv_codeplug.cc:2497
DTMFSystemBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2470
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2483
Implements the DTMF system.
Definition dr1801uv_codeplug.hh:1555
virtual void setCodeItervall(unsigned int ms)
Sets the code interval in milliseconds.
Definition dr1801uv_codeplug.cc:2554
virtual unsigned int codeDuration() const
Returns the code duration in milliseconds.
Definition dr1801uv_codeplug.cc:2541
virtual bool sideToneEnabled() const
Returns true if the side-tone is enabled.
Definition dr1801uv_codeplug.cc:2523
virtual void setResetTime(unsigned int ms)
Sets the reset time in milliseconds.
Definition dr1801uv_codeplug.cc:2563
virtual unsigned int codeItervall() const
Returns the code interval in milliseconds.
Definition dr1801uv_codeplug.cc:2550
virtual void setPreTime(unsigned int ms)
Sets the pre-time in milliseconds.
Definition dr1801uv_codeplug.cc:2536
virtual void setCodeDuration(unsigned int ms)
Sets the code duration in milliseconds.
Definition dr1801uv_codeplug.cc:2545
virtual unsigned int resetTime() const
Returns the reset time in milliseconds.
Definition dr1801uv_codeplug.cc:2559
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1567
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2518
virtual unsigned int preTime() const
Returns the pre-time in milliseconds.
Definition dr1801uv_codeplug.cc:2532
DTMFSystemElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2505
virtual void enableSideTone(bool enable)
Enables/disable side-tone.
Definition dr1801uv_codeplug.cc:2527
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all keys.
Definition dr1801uv_codeplug.cc:2236
virtual EncryptionKeyElement key(unsigned int index) const
Returns a reference to the encryption key.
Definition dr1801uv_codeplug.cc:2207
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes the all encryption keys defined.
Definition dr1801uv_codeplug.cc:2212
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1529
EncryptionKeyBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2189
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2202
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const
Links all encryption keys.
Definition dr1801uv_codeplug.cc:2227
Implements the binary encoding of an encryption key.
Definition dr1801uv_codeplug.hh:1459
virtual unsigned int keyLength() const
Returns the length of the key.
Definition dr1801uv_codeplug.cc:2290
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2271
virtual bool encode(EncryptionKey *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the key.
Definition dr1801uv_codeplug.cc:2331
virtual void setIndex(unsigned int index)
Sets the index of the key.
Definition dr1801uv_codeplug.cc:2285
virtual void setKey(const QString &key)
Sets the key.
Definition dr1801uv_codeplug.cc:2299
virtual bool linkKeyObj(EncryptionKey *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Links the key object.
Definition dr1801uv_codeplug.cc:2324
virtual QString key() const
Returns the key as a string.
Definition dr1801uv_codeplug.cc:2295
static constexpr unsigned int size()
Returns the size of the element.
Definition dr1801uv_codeplug.hh:1472
virtual EncryptionKey * toKeyObj(Context &ctx, const ErrorStack &err=ErrorStack())
Creates a key object for this element.
Definition dr1801uv_codeplug.cc:2305
EncryptionKeyElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2258
virtual unsigned int index() const
Returns the index of the key.
Definition dr1801uv_codeplug.cc:2281
bool isValid() const
Returns true if the pointer is not null.
Definition dr1801uv_codeplug.cc:2276
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:836
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const
Links all group lists.
Definition dr1801uv_codeplug.cc:876
virtual unsigned int groupListCount() const
Returns the number of group lists defined.
Definition dr1801uv_codeplug.cc:841
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes all group lists.
Definition dr1801uv_codeplug.cc:856
virtual GroupListElement groupList(unsigned int index) const
Returns a reference to the group list at the given index.
Definition dr1801uv_codeplug.cc:851
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all group lists.
Definition dr1801uv_codeplug.cc:897
static constexpr unsigned int size()
Returns the size of the element.
Definition dr1801uv_codeplug.hh:578
GroupListBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:823
virtual void setGroupListCount(unsigned int count)
Sets the number of group lists.
Definition dr1801uv_codeplug.cc:845
Implements the binary encoding of a group list.
Definition dr1801uv_codeplug.hh:503
virtual unsigned int index() const
Returns the index of the group list.
Definition dr1801uv_codeplug.cc:940
virtual unsigned int count() const
Returns the number of elements in the list.
Definition dr1801uv_codeplug.cc:949
virtual void setCount(unsigned int n)
Sets the number of elements in the list.
Definition dr1801uv_codeplug.cc:953
GroupListElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:917
virtual unsigned int memberIndex(unsigned int n) const
Returns the n-th member index.
Definition dr1801uv_codeplug.cc:962
virtual bool linkGroupListObj(RXGroupList *list, Context &ctx, const ErrorStack &err=ErrorStack()) const
Links the group list object.
Definition dr1801uv_codeplug.cc:982
virtual void setMemberIndex(unsigned int n, unsigned int index)
Sets the n-th member index.
Definition dr1801uv_codeplug.cc:966
virtual void setIndex(unsigned int index)
Sets the index of the group list.
Definition dr1801uv_codeplug.cc:944
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:516
virtual RXGroupList * toGroupListObj(Context &ctx, const ErrorStack &err=ErrorStack()) const
Constructs a group list object from this elmeent.
Definition dr1801uv_codeplug.cc:975
virtual void clearMemberIndex(unsigned int n)
Clears the n-th member index.
Definition dr1801uv_codeplug.cc:970
virtual bool hasMemberIndex(unsigned int n) const
Returns true if the n-th member index is set.
Definition dr1801uv_codeplug.cc:959
bool isValid() const
Returns true if the pointer is not null.
Definition dr1801uv_codeplug.cc:935
virtual bool encode(RXGroupList *list, Context &ctx, const ErrorStack &err=ErrorStack())
Links the group list object.
Definition dr1801uv_codeplug.cc:1000
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:930
virtual Function sideKey1Long() const
Returns the function for the side-key 1, long press.
Definition dr1801uv_codeplug.cc:2092
virtual Function sideKey2Long() const
Returns the function for the side-key 2, long press.
Definition dr1801uv_codeplug.cc:2110
virtual Function topKeyLong() const
Returns the function for the top-key, long press.
Definition dr1801uv_codeplug.cc:2128
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1359
virtual void setSideKey1Short(Function func)
Sets the function for the side-key 1, short press.
Definition dr1801uv_codeplug.cc:2087
virtual void setSideKey1Long(Function func)
Sets the function for the side-key 1, long press.
Definition dr1801uv_codeplug.cc:2096
KeySettingsElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2065
virtual Function topKeyShort() const
Returns the function for the top-key, short press.
Definition dr1801uv_codeplug.cc:2119
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2078
virtual void setSideKey2Short(Function func)
Sets the function for the side-key 2, short press.
Definition dr1801uv_codeplug.cc:2105
virtual void setTopKeyShort(Function func)
Sets the function for the top-key, short press.
Definition dr1801uv_codeplug.cc:2123
virtual Function sideKey2Short() const
Returns the function for the side-key 2, short press.
Definition dr1801uv_codeplug.cc:2101
virtual void setSideKey2Long(Function func)
Sets the function for the side-key 2, long press.
Definition dr1801uv_codeplug.cc:2114
Function
Possible key functions.
Definition dr1801uv_codeplug.hh:1341
virtual void setTopKeyLong(Function func)
Sets the function for the side-key, long press.
Definition dr1801uv_codeplug.cc:2132
virtual Function sideKey1Short() const
Returns the function for the side-key 1, short press.
Definition dr1801uv_codeplug.cc:2083
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all scan lists.
Definition dr1801uv_codeplug.cc:1998
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes all scan lists.
Definition dr1801uv_codeplug.cc:1978
virtual MessageElement message(unsigned int n) const
Returns a reference to the n-th message.
Definition dr1801uv_codeplug.cc:1973
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:1959
static constexpr unsigned int size()
Size of the element.
Definition dr1801uv_codeplug.hh:1301
virtual void setMessageCount(unsigned int count)
Sets the number of messages.
Definition dr1801uv_codeplug.cc:1968
MessageBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:1946
virtual unsigned int messageCount() const
Returns the number of elements in the bank.
Definition dr1801uv_codeplug.cc:1964
Implements the binary representation of a single message.
Definition dr1801uv_codeplug.hh:1238
virtual unsigned int index() const
Returns the index of the message.
Definition dr1801uv_codeplug.cc:2042
virtual void setIndex(unsigned int index)
Sets the index of the message.
Definition dr1801uv_codeplug.cc:2046
MessageElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2019
bool isValid() const
Returns true if the pointer is not null.
Definition dr1801uv_codeplug.cc:2037
virtual void setText(const QString &text)
Sets the message text.
Definition dr1801uv_codeplug.cc:2055
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1251
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2032
virtual QString text() const
Returns the message text.
Definition dr1801uv_codeplug.cc:2051
Implements the binary encoding of a one-touch setting.
Definition dr1801uv_codeplug.hh:2266
virtual bool hasDTMFID() const
Returns true if a DTMF ID is set.
Definition dr1801uv_codeplug.cc:3217
virtual void setContactIndex(unsigned int index)
Sets the contact index.
Definition dr1801uv_codeplug.cc:3173
virtual void clearDTMFIDIndex()
Clears the DTMF ID index.
Definition dr1801uv_codeplug.cc:3229
virtual void clearContact()
Clears the contact.
Definition dr1801uv_codeplug.cc:3177
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:2288
virtual void setDTMFIDIndex(unsigned int index)
Sets the DTMF ID index.
Definition dr1801uv_codeplug.cc:3225
virtual void clearMessage()
Clears the message.
Definition dr1801uv_codeplug.cc:3203
virtual unsigned int messageIndex() const
Returns the message index.
Definition dr1801uv_codeplug.cc:3195
virtual void setMessageIndex(unsigned int index)
Sets the message index.
Definition dr1801uv_codeplug.cc:3199
virtual bool hasContact() const
Returns true if a contact is set.
Definition dr1801uv_codeplug.cc:3165
virtual unsigned int dtmfIDIndex() const
Returns the DTMF ID index.
Definition dr1801uv_codeplug.cc:3221
virtual Type type() const
Returns the type of the one-touch setting.
Definition dr1801uv_codeplug.cc:3208
OneTouchSettingElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:3142
virtual unsigned int contactIndex() const
Returns the DMR contact index.
Definition dr1801uv_codeplug.cc:3169
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:3155
bool isValid() const
Returns true if the setting is enabled.
Definition dr1801uv_codeplug.cc:3160
virtual void setType(Type type)
Sets the type of the one-touch setting.
Definition dr1801uv_codeplug.cc:3212
Action
Possible actions to perform.
Definition dr1801uv_codeplug.hh:2269
virtual void setAction(Action action)
Sets the one-touch action.
Definition dr1801uv_codeplug.cc:3186
Type
Possible one-touch types.
Definition dr1801uv_codeplug.hh:2273
virtual Action action() const
Returns the one-touch action.
Definition dr1801uv_codeplug.cc:3182
virtual bool hasMessage() const
Returns true, if a message is set.
Definition dr1801uv_codeplug.cc:3191
virtual OneTouchSettingElement setting(unsigned int n) const
Returns a reference to the n-th one-touch setting.
Definition dr1801uv_codeplug.cc:3134
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:3125
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:2362
OneTouchSettingsElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:3112
virtual unsigned int settingsCount() const
Returns the number of one-touch settings.
Definition dr1801uv_codeplug.cc:3129
Implements the encoding of the DTMF PTT IDs.
Definition dr1801uv_codeplug.hh:1833
virtual void setPTTIDCount(unsigned int n)
Set the number of PTT IDs.
Definition dr1801uv_codeplug.cc:2683
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1845
virtual PTTIDElement pttID(unsigned int n)
Returns a reference to the n-th PTT ID.
Definition dr1801uv_codeplug.cc:2688
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2674
virtual unsigned int idCount() const
Returns the number of PTT IDs defined.
Definition dr1801uv_codeplug.cc:2679
PTTIDBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2661
Implements the PTT ID.
Definition dr1801uv_codeplug.hh:1753
virtual bool hasEOTID() const
Returns true if the EOT DTMF ID is set.
Definition dr1801uv_codeplug.cc:2766
virtual void setIDMode(IDMode mode)
Sets the ID mode.
Definition dr1801uv_codeplug.cc:2744
PTTIDElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2696
Transmit
Possible modes of transmission.
Definition dr1801uv_codeplug.hh:1756
virtual unsigned int dtmfSystemIndex() const
Returns the DTMF system index.
Definition dr1801uv_codeplug.cc:2718
virtual void setBOTIDIndex(unsigned int index)
Sets the BOT DTMF ID index.
Definition dr1801uv_codeplug.cc:2757
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2709
virtual unsigned int botIDIndex() const
Returns the BOT DTMF ID index.
Definition dr1801uv_codeplug.cc:2753
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1775
virtual void clearDTMFSystem()
Clears the DTMF system.
Definition dr1801uv_codeplug.cc:2726
virtual void setTransmitMode(Transmit mode)
Sets the ID transmission mode.
Definition dr1801uv_codeplug.cc:2735
virtual void clearBOTID()
Clears the BOT DTMF ID index.
Definition dr1801uv_codeplug.cc:2761
virtual void setDTMFSystemIndex(unsigned int index)
Sets the DTMF system index.
Definition dr1801uv_codeplug.cc:2722
virtual void setEOTIDIndex(unsigned int index)
Sets the EOT DTMF ID index.
Definition dr1801uv_codeplug.cc:2774
virtual Transmit transmitMode() const
Returns the ID transmission mode.
Definition dr1801uv_codeplug.cc:2731
virtual unsigned int eotIDIndex() const
Returns the EOT DTMF ID index.
Definition dr1801uv_codeplug.cc:2770
virtual bool hasBOTID() const
Returns true if the BOT DTMF ID is set.
Definition dr1801uv_codeplug.cc:2749
IDMode
Possible ID modes.
Definition dr1801uv_codeplug.hh:1760
virtual void clearEOTID()
Clears the EOT DTMF ID index.
Definition dr1801uv_codeplug.cc:2778
virtual bool hasDTMFSystem() const
Returns true, if the DTMF system is set.
Definition dr1801uv_codeplug.cc:2714
virtual IDMode idMode() const
Returns the ID mode.
Definition dr1801uv_codeplug.cc:2740
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all scan lists.
Definition dr1801uv_codeplug.cc:1724
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1198
virtual ScanListElement scanList(unsigned int index) const
Returns a reference to the n-th scan list.
Definition dr1801uv_codeplug.cc:1676
virtual void setScanListCount(unsigned int count)
Sets the number of scan lists.
Definition dr1801uv_codeplug.cc:1670
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:1661
virtual unsigned int scanListCount() const
Returns the number of scan lists.
Definition dr1801uv_codeplug.cc:1666
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const
Links the scan lists.
Definition dr1801uv_codeplug.cc:1702
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes all scan lists.
Definition dr1801uv_codeplug.cc:1681
ScanListBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:1648
Implements the binary encoding of a scan list element.
Definition dr1801uv_codeplug.hh:1072
PriorityChannel
Possible priority channel modes.
Definition dr1801uv_codeplug.hh:1075
virtual bool linkScanListObj(ScanList *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Links the scan-list object.
Definition dr1801uv_codeplug.cc:1859
virtual void setName(const QString &name)
Sets the name of the scan list.
Definition dr1801uv_codeplug.cc:1839
virtual unsigned int priorityChannel2Index() const
Returns the priority channel 2 index.
Definition dr1801uv_codeplug.cc:1809
ScanListElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:1743
virtual void setPriorityChannel2(PriorityChannel mode)
Sets the priority channel 2 setting.
Definition dr1801uv_codeplug.cc:1805
virtual unsigned int entryIndex(unsigned int n)
Returns the n-th entry index.
Definition dr1801uv_codeplug.cc:1844
virtual unsigned int priorityChannel1Index() const
Returns the priority channel 1 index.
Definition dr1801uv_codeplug.cc:1792
virtual void setPriorityChannel2Index(unsigned int index)
Sets the priority channel 2 index.
Definition dr1801uv_codeplug.cc:1813
virtual bool encode(ScanList *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the scan list.
Definition dr1801uv_codeplug.cc:1902
virtual void setEntryCount(unsigned int num)
Sets the number of entries.
Definition dr1801uv_codeplug.cc:1779
bool isValid() const
Returns true if the pointer is not null.
Definition dr1801uv_codeplug.cc:1761
virtual void setPriorityChannel1Index(unsigned int index)
Sets the priority channel 1 index.
Definition dr1801uv_codeplug.cc:1796
virtual PriorityChannel priorityChannel1() const
Returns the priority channel 1 setting.
Definition dr1801uv_codeplug.cc:1784
virtual ScanList * toScanListObj(Context &ctx, const ErrorStack &err=ErrorStack())
Constructs a scan-list object from this element.
Definition dr1801uv_codeplug.cc:1853
virtual PriorityChannel priorityChannel2() const
Returns the priority channel 2 setting.
Definition dr1801uv_codeplug.cc:1801
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:1096
RevertChannel
Possible revert channel modes.
Definition dr1801uv_codeplug.hh:1080
virtual QString name() const
Returns the name of the scan list.
Definition dr1801uv_codeplug.cc:1835
virtual void setEntryIndex(unsigned int n, unsigned int index)
Sets the n-th entry index.
Definition dr1801uv_codeplug.cc:1848
virtual unsigned int revertChannelIndex() const
Returns the revert channel index.
Definition dr1801uv_codeplug.cc:1826
virtual void setRevertChannelIndex(unsigned int index)
Sets the revert channel index.
Definition dr1801uv_codeplug.cc:1830
virtual RevertChannel revertChannel() const
Returns the revert channel setting.
Definition dr1801uv_codeplug.cc:1818
virtual void setRevertChannel(RevertChannel mode)
Sets the revert channel setting.
Definition dr1801uv_codeplug.cc:1822
virtual unsigned int index() const
Returns the index of the scan list.
Definition dr1801uv_codeplug.cc:1766
virtual void setIndex(unsigned int idx)
Sets the index of the scan list.
Definition dr1801uv_codeplug.cc:1770
virtual unsigned int entryCount() const
Returns the number of entries.
Definition dr1801uv_codeplug.cc:1775
virtual void setPriorityChannel1(PriorityChannel mode)
Sets the priority channel 1 setting.
Definition dr1801uv_codeplug.cc:1788
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:1756
virtual unsigned int dmrID() const
Returns the radios DMR ID.
Definition dr1801uv_codeplug.cc:1252
virtual float reverseBurstFrequency() const
Returns the reverse burst frequency in Hz.
Definition dr1801uv_codeplug.cc:1443
virtual void enableDMRVoiceEndTone(bool enable)
Enables/disables the DMR voice end roger tone.
Definition dr1801uv_codeplug.cc:1396
virtual void setBootLine2(const QString &line)
Sets the boot-screen line 2.
Definition dr1801uv_codeplug.cc:1535
virtual unsigned int loneWorkerReminderTime() const
Returns the lone-worker reminder time in seconds.
Definition dr1801uv_codeplug.cc:1557
virtual bool dmrCallEndToneEnabled() const
Returns true if the DMR call end roger tone is enabled.
Definition dr1801uv_codeplug.cc:1408
BacklightTime
Possible backlight time settings.
Definition dr1801uv_codeplug.hh:772
SquelchMode
Possible squelch modes.
Definition dr1801uv_codeplug.hh:759
virtual void setRingTone(RingTone tone)
Sets the ring tone.
Definition dr1801uv_codeplug.cc:1429
ScanMode
Possible scan modes.
Definition dr1801uv_codeplug.hh:792
virtual void enableEncryption(bool enable)
Enables/disables encryption globally.
Definition dr1801uv_codeplug.cc:1304
virtual bool lockSideKey2() const
Returns true if the side-key 2 gets locked too.
Definition dr1801uv_codeplug.cc:1333
virtual void setBootPassword(const QString &passwd)
Sets and enables boot password.
Definition dr1801uv_codeplug.cc:1574
virtual bool campandingEnabled() const
Returns true, if campanding is enabled.
Definition dr1801uv_codeplug.cc:1461
virtual bool fromConfig(Config *config, const ErrorStack &err=ErrorStack())
Encode from config.
Definition dr1801uv_codeplug.cc:1628
virtual void setScanMode(ScanMode mode)
Sets the scan mode.
Definition dr1801uv_codeplug.cc:1509
virtual bool encryptionEnabled() const
Returns true if encryption is enabled.
Definition dr1801uv_codeplug.cc:1300
DisplayMode
Possible display modes.
Definition dr1801uv_codeplug.hh:782
DualWatchMode
Possible dual-watch modes.
Definition dr1801uv_codeplug.hh:787
virtual RingTone ringTone() const
Returns the ring tone.
Definition dr1801uv_codeplug.cc:1425
virtual void setRadioName(const QString &name)
Sets the radio name.
Definition dr1801uv_codeplug.cc:1438
virtual DualWatchMode dualWatchMode() const
Returns the dual-watch mode.
Definition dr1801uv_codeplug.cc:1496
virtual void enableLockSideKey2(bool enable)
Enables/disables locking the side-key 2.
Definition dr1801uv_codeplug.cc:1337
virtual bool lockSideKey1() const
Returns true if the side-key 1 gets locked too.
Definition dr1801uv_codeplug.cc:1325
virtual void setTuningModeUp(TuningMode mode)
Sets the tuning mode up-direction.
Definition dr1801uv_codeplug.cc:1474
virtual void setProgPassword(const QString &passwd)
Sets and enables programming password.
Definition dr1801uv_codeplug.cc:1596
BootScreen
Possible boot screen modes.
Definition dr1801uv_codeplug.hh:797
virtual void setLoneWorkerReminderTime(unsigned int sec)
Sets the lone-worker resminder time in seconds.
Definition dr1801uv_codeplug.cc:1561
PowerSaveMode
Possible power-save modes.
Definition dr1801uv_codeplug.hh:749
virtual void setLoneWorkerResponseTime(unsigned int sec)
Sets the lone-worker response time in seconds.
Definition dr1801uv_codeplug.cc:1553
virtual BacklightTime backlightTime() const
Returns the backlight time settings.
Definition dr1801uv_codeplug.cc:1452
virtual unsigned int voxDelay() const
Returns the VOX delay in ms.
Definition dr1801uv_codeplug.cc:1291
virtual bool keyLockEnabled() const
Returns true if the key-lock is enabled.
Definition dr1801uv_codeplug.cc:1309
virtual void setBacklightTime(BacklightTime time)
Sets the backlight time.
Definition dr1801uv_codeplug.cc:1456
virtual void enableLockPTT(bool enable)
Enables/disables locking the PTT.
Definition dr1801uv_codeplug.cc:1345
SettingsElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:1234
virtual bool fmCallOutToneEnabled() const
Returns true if the FM call out roger tone is enabled.
Definition dr1801uv_codeplug.cc:1384
virtual bool bootPasswordEnabled() const
Returns true if the boot password is enabled.
Definition dr1801uv_codeplug.cc:1566
virtual bool ledEnabled() const
Returns true if the LED is enabled.
Definition dr1801uv_codeplug.cc:1540
virtual void setDualWatchMode(DualWatchMode mode)
Sets the dual-watch mode.
Definition dr1801uv_codeplug.cc:1500
virtual Level voxSensitivity() const
Returns the VOX sensitivity [0,10].
Definition dr1801uv_codeplug.cc:1275
virtual TuningMode tunigModeDown() const
Returns the tuning mode down-direction.
Definition dr1801uv_codeplug.cc:1478
virtual BootScreen bootScreen() const
Returns the boot-screen mode.
Definition dr1801uv_codeplug.cc:1514
virtual void enableLED(bool enabled)
Enables/disables the LED.
Definition dr1801uv_codeplug.cc:1544
virtual TuningMode tunigModeUp() const
Returns the tuning mode up-direction.
Definition dr1801uv_codeplug.cc:1470
virtual void enableDMRCallOutTone(bool enable)
Enables/disables the DMR call out roger tone.
Definition dr1801uv_codeplug.cc:1380
virtual bool dmrVoiceEndToneEnabled() const
Returns true if the DMR voice end roger tone is enabled.
Definition dr1801uv_codeplug.cc:1392
virtual void setBootScreen(BootScreen mode)
Sets the boot-screen mode.
Definition dr1801uv_codeplug.cc:1518
virtual void enableFMCallOutTone(bool enable)
Enables/disables the FM call out roger tone.
Definition dr1801uv_codeplug.cc:1388
virtual void enableCampanding(bool enable)
Enables/disables campanding.
Definition dr1801uv_codeplug.cc:1465
virtual void setKeyLockDelay(unsigned int sec)
Sets the key-lock delay in seconds.
Definition dr1801uv_codeplug.cc:1321
virtual QString bootLine1() const
Returns the boot-screen line 1.
Definition dr1801uv_codeplug.cc:1523
virtual QString bootPassword() const
Returns the boot password.
Definition dr1801uv_codeplug.cc:1570
virtual bool updateConfig(Config *config, const ErrorStack &err=ErrorStack())
Updates configuration.
Definition dr1801uv_codeplug.cc:1610
virtual bool progPasswordEnabled() const
Returns true if the programming password is enabled.
Definition dr1801uv_codeplug.cc:1588
virtual void setVOXDelay(unsigned int ms)
Sets the VOX delay in ms.
Definition dr1801uv_codeplug.cc:1295
virtual void enableMessageTone(bool enable)
Enables/disables message tone.
Definition dr1801uv_codeplug.cc:1420
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:812
virtual void enableDMRCallEndTone(bool enable)
Enables/disables the DMR call end roger tone.
Definition dr1801uv_codeplug.cc:1412
virtual bool messageToneEnabled() const
Returns true if the message tone is enabled.
Definition dr1801uv_codeplug.cc:1416
virtual QString progPassword() const
Returns the programming password.
Definition dr1801uv_codeplug.cc:1592
virtual void setTuningModeDown(TuningMode mode)
Sets the tuning mode down-direction.
Definition dr1801uv_codeplug.cc:1482
virtual DisplayMode displayMode() const
Returns the display mode.
Definition dr1801uv_codeplug.cc:1487
virtual void setDMRID(unsigned int id)
Sets the radios DMR ID.
Definition dr1801uv_codeplug.cc:1256
virtual PowerSaveMode powerSaveMode() const
Returns the the power-save mode.
Definition dr1801uv_codeplug.cc:1261
virtual QString radioName() const
Returns the radio name.
Definition dr1801uv_codeplug.cc:1434
virtual bool dmrCallOutToneEnabled() const
Returns true if the DMR call out roger tone is enabled.
Definition dr1801uv_codeplug.cc:1376
virtual void setReverseBurstFrequency(float Hz)
Sets the reverse burst frequency in Hz.
Definition dr1801uv_codeplug.cc:1447
TuningMode
Possible tuning modes.
Definition dr1801uv_codeplug.hh:777
virtual void enableFMVoiceEndTone(bool enable)
Enables/disables the FM voice end roger tone.
Definition dr1801uv_codeplug.cc:1404
virtual void enableRogerTones(bool enable)
Enables/disables roger tones.
Definition dr1801uv_codeplug.cc:1372
virtual void setBootLine1(const QString &line)
Sets the boot-screen line 1.
Definition dr1801uv_codeplug.cc:1527
virtual ScanMode scanMode() const
Returns the scan mode.
Definition dr1801uv_codeplug.cc:1505
virtual QString bootLine2() const
Returns the boot-screen line 2.
Definition dr1801uv_codeplug.cc:1531
virtual void setVOXSensitivity(Level sens)
Sets the VOX sensitivity [0,10].
Definition dr1801uv_codeplug.cc:1282
virtual void setPowerSaveMode(PowerSaveMode mode)
Sets the power-save mode.
Definition dr1801uv_codeplug.cc:1269
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:1247
virtual void enableLockSideKey1(bool enable)
Enables/disables locking the side-key 1.
Definition dr1801uv_codeplug.cc:1329
virtual void enableKeyLock(bool enable)
Enable/disable key-lock.
Definition dr1801uv_codeplug.cc:1313
virtual bool lockPTT() const
Returns true if the PTT gets locked too.
Definition dr1801uv_codeplug.cc:1341
virtual unsigned int keyLockDelay() const
Returns the key-lock delay in seconds.
Definition dr1801uv_codeplug.cc:1317
virtual void setDisplayMode(DisplayMode mode)
Sets the display mode.
Definition dr1801uv_codeplug.cc:1491
virtual bool rogerTonesEnabled() const
Returns true, if the roger tones are enabled.
Definition dr1801uv_codeplug.cc:1368
Language
Possible UI languages.
Definition dr1801uv_codeplug.hh:754
virtual void setLanguage(Language lang)
Sets the UI language.
Definition dr1801uv_codeplug.cc:1354
virtual unsigned int loneWorkerResponseTime() const
Returns the lone-worker response time in seconds.
Definition dr1801uv_codeplug.cc:1549
virtual SquelchMode squelchMode() const
Returns the squelch mode.
Definition dr1801uv_codeplug.cc:1359
RingTone
Possible ring tone variants.
Definition dr1801uv_codeplug.hh:764
virtual void clearProgPassword()
Clears and disables programming password.
Definition dr1801uv_codeplug.cc:1603
virtual void clearBootPassword()
Clears and disables boot password.
Definition dr1801uv_codeplug.cc:1581
virtual Language language() const
Returns the UI language.
Definition dr1801uv_codeplug.cc:1350
virtual void setSquelchMode(SquelchMode mode)
Sets the squelch mode.
Definition dr1801uv_codeplug.cc:1363
virtual bool fmVoiceEndToneEnabled() const
Returns true if the FM voice end roger tone is enabled.
Definition dr1801uv_codeplug.cc:1400
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:2153
virtual ChannelElement vfoB() const
Returns a reference to the VFO A settings.
Definition dr1801uv_codeplug.cc:2163
virtual QString nameA() const
Returns the name of the first VFO.
Definition dr1801uv_codeplug.cc:2168
virtual void setNameB(const QString &name)
Sets the name for the second VFO.
Definition dr1801uv_codeplug.cc:2181
virtual QString nameB() const
Returns the name of the second VFO.
Definition dr1801uv_codeplug.cc:2177
VFOBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:2140
static constexpr unsigned int size()
Returns the size of the element.
Definition dr1801uv_codeplug.hh:1418
virtual ChannelElement vfoA() const
Returns a reference to the VFO A settings.
Definition dr1801uv_codeplug.cc:2158
virtual void setNameA(const QString &name)
Sets the name for the first VFO.
Definition dr1801uv_codeplug.cc:2172
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:695
virtual bool encode(Context &ctx, const ErrorStack &err=ErrorStack())
Encodes all zones.
Definition dr1801uv_codeplug.cc:1110
virtual void setUpZoneIndex(unsigned int index)
Sets the so-called up-zone index.
Definition dr1801uv_codeplug.cc:1046
virtual bool link(Context &ctx, const ErrorStack &err=ErrorStack()) const
Links all zones.
Definition dr1801uv_codeplug.cc:1088
virtual unsigned int upZoneIndex() const
Returns the so-called up-zone index.
Definition dr1801uv_codeplug.cc:1042
virtual void setZoneCount(unsigned int count)
Sets the number of zones.
Definition dr1801uv_codeplug.cc:1036
ZoneBankElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:1014
virtual ZoneElement zone(unsigned int index) const
Returns a reference to the n-th zone.
Definition dr1801uv_codeplug.cc:1060
virtual bool decode(Context &ctx, const ErrorStack &err=ErrorStack()) const
Decodes all zones.
Definition dr1801uv_codeplug.cc:1065
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:1027
virtual unsigned int downZoneIndex() const
Returns the so-called down-zone index.
Definition dr1801uv_codeplug.cc:1051
virtual unsigned int zoneCount() const
Returns the number of zones.
Definition dr1801uv_codeplug.cc:1032
virtual void setDownZoneIndex(unsigned int index)
Sets the so-called down-zone index.
Definition dr1801uv_codeplug.cc:1055
Implements the binary encoding of a zone.
Definition dr1801uv_codeplug.hh:618
virtual bool encode(Zone *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Encodes the zone.
Definition dr1801uv_codeplug.cc:1217
virtual void setName(const QString &name)
Sets the name of the zone.
Definition dr1801uv_codeplug.cc:1156
void clear()
Abstract method to reset the element within the codeplug.
Definition dr1801uv_codeplug.cc:1140
ZoneElement(uint8_t *ptr, size_t size)
Hidden constructor.
Definition dr1801uv_codeplug.cc:1127
virtual QString name() const
Returns the name of the zone.
Definition dr1801uv_codeplug.cc:1151
virtual unsigned int index() const
Returns the index of the zone.
Definition dr1801uv_codeplug.cc:1163
virtual void setIndex(unsigned int index)
Sets the index of the zone.
Definition dr1801uv_codeplug.cc:1167
virtual bool linkZoneObj(Zone *obj, Context &ctx, const ErrorStack &err=ErrorStack())
Links the zone object.
Definition dr1801uv_codeplug.cc:1199
bool isValid() const
Returns true if the pointer is not null.
Definition dr1801uv_codeplug.cc:1145
static constexpr unsigned int size()
The size of the element.
Definition dr1801uv_codeplug.hh:631
virtual Zone * toZoneObj(Context &ctx, const ErrorStack &err=ErrorStack())
Constructs a zone object from this element.
Definition dr1801uv_codeplug.cc:1187
virtual unsigned int numEntries() const
Returns the number of entries.
Definition dr1801uv_codeplug.cc:1172
virtual void setEntryIndex(unsigned int n, unsigned int index)
Sets the n-th entry index.
Definition dr1801uv_codeplug.cc:1181
virtual unsigned int entryIndex(unsigned int n)
Returns the channel index of the n-th entry.
Definition dr1801uv_codeplug.cc:1176
bool decode(Config *config, const ErrorStack &err=ErrorStack())
Decodes a binary codeplug to the given abstract configuration config.
Definition dr1801uv_codeplug.cc:3352
bool index(Config *config, Context &ctx, const ErrorStack &err=ErrorStack()) const
Indexes all elements of the codeplug.
Definition dr1801uv_codeplug.cc:3289
virtual bool decodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Decode codeplug elements.
Definition dr1801uv_codeplug.cc:3369
virtual bool encodeElements(Context &ctx, const ErrorStack &err=ErrorStack())
Encode all elements.
Definition dr1801uv_codeplug.cc:3450
Config * preprocess(Config *config, const ErrorStack &err) const
Returns a prepared configuration for this particular radio.
Definition dr1801uv_codeplug.cc:3245
virtual bool linkElements(Context &ctx, const ErrorStack &err=ErrorStack())
Link decoded elements.
Definition dr1801uv_codeplug.cc:3420
bool encode(Config *config, const Flags &flags, const ErrorStack &err=ErrorStack())
Encodes a given abstract configuration (config) to the device specific binary code-plug.
Definition dr1801uv_codeplug.cc:3334
bool postprocess(Config *config, const ErrorStack &err) const
Returns a post-processed configuration of the decoded config.
Definition dr1801uv_codeplug.cc:3272
DR1801UVCodeplug(QObject *parent=nullptr)
Default constructor.
Definition dr1801uv_codeplug.cc:3237
Base class of all encryption keys.
Definition encryptionextension.hh:10
Implements a stack of error messages to provide a pretty formatted error traceback.
Definition errorstack.hh:43
Bandwidth
Possible bandwidth of an analog channel.
Definition channel.hh:279
Represents a time interval.
Definition interval.hh:11
static constexpr Interval fromSeconds(unsigned long long s)
Definition interval.hh:76
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
Generic representation of a scan list.
Definition scanlist.hh:15
Represents a zone within the generic configuration.
Definition zone.hh:15
Some limits.
Definition dr1801uv_codeplug.hh:2090
static constexpr unsigned int alarmSystemCount()
The maximum number of alarm systems.
Definition dr1801uv_codeplug.hh:2092
Some internal offsets within the element.
Definition dr1801uv_codeplug.hh:2097
Some limits.
Definition dr1801uv_codeplug.hh:2042
static constexpr unsigned int nameLength()
The maximum name length.
Definition dr1801uv_codeplug.hh:2044
Some internal offsets within the codeplug.
Definition dr1801uv_codeplug.hh:2049
Limits of some elements.
Definition dr1801uv_codeplug.hh:341
static constexpr unsigned int channelNameLength()
Returns the maximum length of a channel name.
Definition dr1801uv_codeplug.hh:345
static constexpr unsigned int channelCount()
Returns the maximum number of channels.
Definition dr1801uv_codeplug.hh:343
Offsets within the element.
Definition dr1801uv_codeplug.hh:350
Some offsets within the codeplug.
Definition dr1801uv_codeplug.hh:265
Some Limits.
Definition dr1801uv_codeplug.hh:481
static constexpr unsigned int contactCount()
The maximum number of contacts.
Definition dr1801uv_codeplug.hh:483
Offsets within the element.
Definition dr1801uv_codeplug.hh:488
Some limits.
Definition dr1801uv_codeplug.hh:419
static constexpr unsigned int nameLength()
Maximum length of the contact name.
Definition dr1801uv_codeplug.hh:421
Defines offsets within the element.
Definition dr1801uv_codeplug.hh:426
Some limits.
Definition dr1801uv_codeplug.hh:2219
static constexpr Range< unsigned int > activeWait()
The range of active wait period.
Definition dr1801uv_codeplug.hh:2226
static constexpr Range< unsigned int > activeResend()
The range of active resend count.
Definition dr1801uv_codeplug.hh:2228
static constexpr Range< unsigned int > preSend()
The range of pre-send count.
Definition dr1801uv_codeplug.hh:2230
static constexpr Range< Interval > holdTime()
The range of hold time.
Definition dr1801uv_codeplug.hh:2221
static constexpr Range< unsigned int > remoteListen()
The range of remote listen duration.
Definition dr1801uv_codeplug.hh:2224
static constexpr Range< unsigned int > voiceHead()
The range of voice head count.
Definition dr1801uv_codeplug.hh:2232
Internal offsets within the element.
Definition dr1801uv_codeplug.hh:2237
Some limits.
Definition dr1801uv_codeplug.hh:1732
static constexpr unsigned int idCount()
The maximum number of IDs.
Definition dr1801uv_codeplug.hh:1734
Some offsets within the codeplug.
Definition dr1801uv_codeplug.hh:1739
Some limits.
Definition dr1801uv_codeplug.hh:1679
static constexpr unsigned int numberLength()
The maximum number of digits of the number.
Definition dr1801uv_codeplug.hh:1681
Some internal offset within the element.
Definition dr1801uv_codeplug.hh:1691
Some limits.
Definition dr1801uv_codeplug.hh:1957
static constexpr unsigned int radioIDLength()
The maximum length of the radio ID.
Definition dr1801uv_codeplug.hh:1959
static constexpr unsigned int killCodeLength()
The maximum length of the kill code.
Definition dr1801uv_codeplug.hh:1961
static constexpr unsigned int wakeCodeLength()
The maximum length of the wake code.
Definition dr1801uv_codeplug.hh:1963
Internal offsets within the settings element.
Definition dr1801uv_codeplug.hh:1968
Some limits.
Definition dr1801uv_codeplug.hh:1637
static constexpr unsigned int systemCount()
The maximum number of DTMF systems.
Definition dr1801uv_codeplug.hh:1639
Some offsets within the element.
Definition dr1801uv_codeplug.hh:1644
Some offsets within the element.
Definition dr1801uv_codeplug.hh:1596
Some limits for the key bank.
Definition dr1801uv_codeplug.hh:1543
static constexpr unsigned int keyCount()
The number of keys.
Definition dr1801uv_codeplug.hh:1545
Some limits for the element.
Definition dr1801uv_codeplug.hh:1496
static constexpr unsigned int keyLength()
The maximum length of the key.
Definition dr1801uv_codeplug.hh:1498
Some internal offsets within the element.
Definition dr1801uv_codeplug.hh:1503
Some limits.
Definition dr1801uv_codeplug.hh:597
static constexpr unsigned int groupListCount()
The maximum number of group lists.
Definition dr1801uv_codeplug.hh:599
Some offsets within the element.
Definition dr1801uv_codeplug.hh:604
Some limits.
Definition dr1801uv_codeplug.hh:554
Some offset within the codeplug.
Definition dr1801uv_codeplug.hh:546
Internal offsets within the element.
Definition dr1801uv_codeplug.hh:1388
Some limits.
Definition dr1801uv_codeplug.hh:1318
static constexpr unsigned int messageCount()
Maximum number of messages.
Definition dr1801uv_codeplug.hh:1319
Offsets within the element.
Definition dr1801uv_codeplug.hh:1324
Some limits.
Definition dr1801uv_codeplug.hh:1275
static constexpr unsigned int textLength()
The maximum message length.
Definition dr1801uv_codeplug.hh:1277
Some offsets within the element.
Definition dr1801uv_codeplug.hh:1265
Defines the offsets within the codeplug.
Definition dr1801uv_codeplug.hh:2408
Some internal offsets.
Definition dr1801uv_codeplug.hh:2332
Some limits.
Definition dr1801uv_codeplug.hh:2372
static constexpr unsigned int settingsCount()
Returns the maximum number of one-touch settings.
Definition dr1801uv_codeplug.hh:2374
Some internal offset.
Definition dr1801uv_codeplug.hh:2379
Some limits.
Definition dr1801uv_codeplug.hh:1857
static constexpr unsigned int idCount()
The maximum number of PTT IDs.
Definition dr1801uv_codeplug.hh:1859
Some internal offsets within the element.
Definition dr1801uv_codeplug.hh:1864
Some internal offsets within the element.
Definition dr1801uv_codeplug.hh:1816
Some limits.
Definition dr1801uv_codeplug.hh:1226
static constexpr unsigned int scanListCount()
Maximum number of scan lists.
Definition dr1801uv_codeplug.hh:1228
Some offsets within the element.
Definition dr1801uv_codeplug.hh:1217
Some limits.
Definition dr1801uv_codeplug.hh:1171
static constexpr unsigned int nameLength()
Maximum length of the name.
Definition dr1801uv_codeplug.hh:1173
static constexpr unsigned int memberCount()
Maximum number of channels in scan list.
Definition dr1801uv_codeplug.hh:1175
Some offsets within the element.
Definition dr1801uv_codeplug.hh:1154
Some limits.
Definition dr1801uv_codeplug.hh:1052
static constexpr unsigned int bootLineLength()
Maximum boot-text lines length.
Definition dr1801uv_codeplug.hh:1056
static constexpr unsigned int bootPasswordLength()
Maximum boot password length.
Definition dr1801uv_codeplug.hh:1058
static constexpr unsigned int radioNameLength()
Maximum radio name length.
Definition dr1801uv_codeplug.hh:1054
static constexpr unsigned int progPasswordLength()
Maximum programming password length.
Definition dr1801uv_codeplug.hh:1060
static constexpr Range< unsigned int > vox()
VOX sensitivity levels.
Definition dr1801uv_codeplug.hh:1062
Some offsets within the element.
Definition dr1801uv_codeplug.hh:1002
Some limits for the element.
Definition dr1801uv_codeplug.hh:1436
static constexpr unsigned int nameLength()
The maximum length of the VFO names (not set).
Definition dr1801uv_codeplug.hh:1438
Some offsets within the element.
Definition dr1801uv_codeplug.hh:1443
Some limits.
Definition dr1801uv_codeplug.hh:723
static constexpr unsigned int zoneCount()
The maximum number of zones.
Definition dr1801uv_codeplug.hh:725
Some offsets within the element.
Definition dr1801uv_codeplug.hh:730
Some limits.
Definition dr1801uv_codeplug.hh:658
static constexpr unsigned int nameLength()
The maximum name length.
Definition dr1801uv_codeplug.hh:660
static constexpr unsigned int memberCount()
The maximum number of channels in the zone.
Definition dr1801uv_codeplug.hh:662
Some offset within the element.
Definition dr1801uv_codeplug.hh:667
Helper type to encode frequencies without any rounding error.
Definition frequency.hh:107
Encodes a selective call.
Definition signaling.hh:13